Nutze Skyfield fuer praezisere Daemmerungsberechnung

This commit is contained in:
2026-07-13 19:35:39 +02:00
parent dc5292735f
commit 97357a88e0
1092 changed files with 370248 additions and 61 deletions
+39
View File
@@ -0,0 +1,39 @@
from skyfield.api import (
load_constellation_map, load_constellation_names, position_of_radec,
)
from skyfield.functions import load_bundled_npy
from skyfield.timelib import Time, julian_date_of_besselian_epoch
def test_constellations():
lookup = load_constellation_map()
assert lookup(position_of_radec(0, 0)) == 'Psc'
assert lookup(position_of_radec(360, 90)) == 'UMi'
# (4.65, 0) used to be in Orion, but, precession
assert lookup(position_of_radec(4.65, 0)) == 'Eri'
assert lookup(position_of_radec(4.75, 0.3)) == 'Ori'
# exploit extend() bug, issue 547
B1875 = Time(None, julian_date_of_besselian_epoch(1875))
assert lookup(position_of_radec(18.1747, 39., epoch=B1875)) == 'Her'
assert lookup(position_of_radec(18.1753, 39., epoch=B1875)) == 'Lyr'
# Verify we are not using the paper's original table, which had an error.
star = position_of_radec(16.323165, -18.848203, epoch=B1875)
assert lookup(star) == 'Sco'
# Test vectorization.
assert list(
lookup(position_of_radec([4.65, 4.75], [0, 0.3]))
) == ['Eri', 'Ori']
def test_that_constellation_abbreviations_match():
# This test should ideally not have to load the underlying data
# source that is behind load_constellation_map(), but for the moment
# I do not see a quick alternative.
arrays = load_bundled_npy('constellations.npz')
abbrevs1 = set(arrays['indexed_abbreviations'])
abbrevs2 = {abbrev for abbrev, name in load_constellation_names()}
assert abbrevs1 == abbrevs2