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
Transform one Geocentric to multiple earth-locations #549
Comments
I manage to make a working (no error) code by substracting two apparent (earth -> body) - (earth + wgs). But i have some differences between results.
|
Thank you for providing a working example! One source of difference could be light travel time. An observer at the geocenter sees a slightly earlier Moon, whose light left earlier, than does an observer up on the planet's surface. But the difference is maybe not big enough to explain 30mas? If the Moon moves through 360° in 29 days, and if the Earth's radius is 0.02 light seconds, then the error from light travel time would be:
It is also possible that Earth deflection is the difference — but that would appear only in apparent positions. Are you seeing a 30mas difference for both astrometric and apparent positions, or only apparent ones? |
For the moment, Astrometric seems more precise, but i can't exclude a 10 mas error. At first i thought about atmospheric, but then i remember that it's only for alt/az. Thanks, i will run more precise tests tonight to measure this. |
Diurnal aberration can add up to 320 mas at the equator. |
@mkbrewer — Wow, is the effect that large? Thanks, that's probably the difference, then. I’ve never run the numbers to compute it; with the speed of a point on the equator amounting to only around 1/100th of the speed of the Earth in its orbit, I had not realized that in absolute terms it amounted to several hundred mas. |
Equation (7.50) on page 267 of the ES. |
I make some more tests based on your responses. I use the moon as body, a time of the last lunar node (2021/01/24 21h47 GMT) and plot several position on earth. But, a problem i didn't realize when i post my first resolution is that when you substract ICRF childs class you get back an ICRF object, that doesn't fit my use. So i guess i have to do myself the substraction of two ICRF childs. And i can confirm with sub function in ICRF python-skyfield/skyfield/positionlib.py Lines 169 to 177 in 2c05c63
|
Yes. In order to do this properly, you need to take the difference in the ICRS vectors including the difference in light time and then transform through GCRS to add the proper aberration and deflection of light due to the gravitational field of the Earth to apparent. Therefore, the initial geocentric calculations are redundant and a waste of time. |
Of course, if you don't care about the difference in light time, then the initial geocentric calculations will save ephemeris lookup time. But if you are using one of the JPL ephemerides, those lookups are quite fast.. One possibility for rigorous speed up would be to do the lookup of the Earth once and then apply different observer locations to calculate the different light time delays to the target body. Once it has the proper ephemeris record in memory, this is just an additional Chebyshev polynomial evaluation |
You could also just do the target body lookup once and then use the target body velocity to account for the different light time delays. So there are several possibilities here, but they are all at a fairly low level. |
Thanks for pointing that out! It should probably call |
For example, so vectors from the geocenter are `Geocentric`. For #549.
As shown just above, I've committed a fix for vector subtraction that will use more specific vector classes like
As for your original question, is this an accurate summary of the discussion so far?
|
You are too reactive for me. I had my response since the third post, the discussion after it's just bonuses and some curiosity.
I get everything i need now, thanks a lot, i learn everything :
I close the issue, i as i have my response. I will share tests results later here. But as it's a side project it may take some days. |
Hi,
First thanks for your work, your library is really amazing.
But for a specific application, i try to generate astrometric table and graph in alt/az for earth observers. I know the dates in advance, but not the locations.
To gain some time and I/O reads from the Kernel file i try to find a way to pre-compute Geocentric position and use them on demand to transform from Geocentric to a Apparent with the observer coordinate.
I try adding/substrating different positions object with no success. I think i have to Positions class directly, but it's not clear in my head, and the documentation is not talking about this approach.
How can we use an existing Geocentric Position (Apparent or not) and transform it into multiple Earth locations ? I guess it's just a Vector transformation, but don't know how to handle it.
Sorry i don't have a lot of code to show.
The text was updated successfully, but these errors were encountered: