Closed bsics closed 2 years ago
If you want Skyfield to apply aberration, you need to call .apparent()
on the astrometric position returned by .observe()
. Could you try that and see if it changes the result?
(Oh, also: I've edited your question so that it uses GitHub's Markdown formatting on your code; double-check to make sure you like how I applied their formatting. Thanks!)
That is great. This solves the systematic discrepancies I observed. For the date I used above:
>>> lon_sun.degrees
184.37617577276538
Thank you!
I'm glad it agrees more closely now! Here's the documentation in case you at any point want to read more:
https://rhodesmill.org/skyfield/positions.html#barycentric-astrometric-apparent
Hi, I implemented VSOP87 and ELP2000-82B to calculate sun and moon geocentric positions, and wanted to validate my implementations against JPL ephemerides. Out of convenience, I used skyfield. Everything was perfect for the Moon, but with the Sun positions I had consistently about 20 arcsec difference in the true coordinates between VSOP87 and skyfield. It was bad, because the estimated VSOP87 accuracy is ~2 arcsec
Here is the difference I get for 700+ positions over the span of 7 years.
Interestingly enough, the difference is gone when I remove the aberation (ligth time) correction in my code:
For that I went straight to Horizons. I found that the Horizons web application results are coherent with my VSOP87 code and not with skyfield.
For exemple, skyfield gives:
My VSOP87 code gives:
And Horizons gives:
I use skyfield v1.35 installed from anaconda, the conda_forge channel. The same conclusions with ecliptic or equatorial coordiantes.