-
-
Notifications
You must be signed in to change notification settings - Fork 217
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comparison between the is_sunlit() function and JPL Horizons #994
Comments
Could you re-examine your HORIZONS output and look for the section, probably down near the bottom, where it defines what the |
Of course:
I agree that Horizons has no idea about an object's size based on a TLE. I'm hoping it would make a satellite-sized circle to try and illuminate. |
I believe I'm starting to understand what you mean by this. I went to a couple of ISS tracking visualizers tonight. I happened to be able to watch the ISS as it came out of Earth's shadow traveling from over Africa towards central Asia, and then back into the shadow over the Pacific heading towards South America. The way Skyfield would naturally calculate intersect_line_and_sphere (e.g. how you coded it) for is_sunlit() agrees with what I watched. While both Horizons and my modification to intersect_line_and_sphere disagrees with that behavior. This got me thinking about what Horizons returns for lunar eclipses (spoiler: Illu% stays near 100%, which we know it shouldn't). However, this did lead me to the correct observer table settings I need to be returning:
Now going back to the Skyfield example with observing the ISS from Bluffton:
The first three noted as "/u = Total umbral eclipse", while the second three are "/* = None of above ("free and clear")" matches your example. I'm sorry for not assuming the problem could be with Horizons or, in this case, my own user error in what I was asking for from it. Many thanks for taking the time to respond to my question, and for writing and maintaining this awesome software! |
I'm a recent user of Skyfield and it's been an excellent tool! I've been looking at satellite illuminations and was using JPL's Horizon app as a check. I was working through your ISS example from "Bluffton":
and when I compare it to JPL Horizons, it suggests that the ISS should be illuminated for the first set events
When I explored this further with the Hubble Space Telescope and stayed in the Geocentric frame, I also found a similar discrepancy
and there's a strong offset between where Skyfield and Horizons say the maximum and minimum illumination should occur. So, I went looking at the source code, specifically the "intersect_line_and_sphere" in geometry.py. I noticed your return of the quadratic roots
and was wondering what guarantees the minus_b variable to actually be -b in the quadratic formula. So, I did the obvious thing of trying an explicit call of "-minus_b" in the return
to see what kind of result I would get. When I re-run my code looking at the illumination for HST and compare it to Horizons
and was happy to find an agreement between the two methods (I'll note that around 30% illumination in Horizions is where Skyfield makes its binary call of sunlit or not sunlit). I spent some time trying to see if anyone else has ever raised and mainly wondering if I'm doing something wrong (with the Skyfield code as it comes downloaded, not my temporary modification). Apologies if this is more "discussion" then "issue".
The text was updated successfully, but these errors were encountered: