-
-
Notifications
You must be signed in to change notification settings - Fork 237
Closed
Description
When using the find_events() function in EarthSatellite, it seems a rise may be reported as culmination if the visibility is very short. This is reproduced in the following script:
import skyfield.api as sf
import numpy as np
import pandas as pd
# timescale
ts = sf.load.timescale()
# location on Earth
groundstation = sf.wgs84.latlon(+53.10373, +8.85132) # NW1
# satellite
line1 = '1 00172U 19029BR 21063.59692852 .00001103 00000-0 33518-4 0 9998'
line2 = '2 00172 53.00000 36.7036 0003481 299.7327 99.3331 15.05527065 1779'
sat = sf.EarthSatellite(line1, line2, 'Starlink 172', ts)
# find rise/set
tspan = (ts.tt_jd(sat.epoch.tt-1), ts.tt_jd(sat.epoch.tt + 31))
t, events = sat.find_events(groundstation, tspan[0], tspan[1], altitude_degrees=25)
e = events[6:12]
t2 = t[6:12]
d = sat - groundstation
df =pd.DataFrame({'event': e,
'angle': [d.at(t).altaz()[0].degrees for t in t2],
'time': [pd.Timestamp(t.utc_iso()) for t in t2]})
print(df)The output is as follows:
event angle time
0 0 25.002596 2021-03-03 22:38:11+00:00
1 1 68.261852 2021-03-03 22:40:30+00:00
2 2 24.995762 2021-03-03 22:42:49+00:00
3 1 25.000144 2021-03-04 00:19:38+00:00
4 2 24.999859 2021-03-04 00:19:39+00:00
5 0 25.040335 2021-03-04 19:13:42+00:00
The problematic event is at index 3. The exact times (utc_jpl()) at index 3 and 4 are 'A.D. 2021-Mar-04 00:19:38.4819 UTC' and 'A.D. 2021-Mar-04 00:19:39.0614 UTC', respectively. I think the correct behavior should be to report a rise between index 2 and 3.
This might be related to #550.
Metadata
Metadata
Assignees
Labels
No labels