Comments (7)
Thanks! I have been banging my head against this for a few days now...
Here is the information I have collected so far:
- There are several different versions of VSOP87 (A to E). I am using version E since it returns the state of the planets in barycentric rectangular coordinates whereas the others use heliocentric and/or spherical coordinates.
- The reference frame used by VSOP87E is described as
the inertial frame defined by the dynamical equinox and ecliptic J2000 (JD2451545.0)
. I am not sure whatdynamical
means in this context. The README supplied with the data advises to use the following rotation matrix to transform from the abovementioned frame to equatorial FK5:
X +1.000000000000 +0.000000440360 -0.000000190919 X
Y = -0.000000479966 +0.917482137087 -0.397776982902 Y
Z FK5 0.000000000000 +0.397776982902 +0.917482137087 Z VSOP87A
- This leads to the results in my post above. It shows the difference between JPL DE200 (evaluated via JPLEphemeris.jl and my VSOP87 implementation with the rotation applied.
- Most other open-source implementations of VSOP87 follow the description in "Astronomical Algorithms" by Meeus which uses version C and provides the following correction for spherical coordinates:
- I also found this quote in some online forum about a closed-source astrodynamics software (https://www.orbiter-forum.com/showthread.php?p=499906&postcount=23):
Reference Frame: The VSOP87 ephemeris uses a coordinate system that isn't quite inertial. If I remember correctly, it rotates slowly with respect to FK5 and ICRF inertial reference frames. One or other of the latter inertial reference frames is probably used by GMAT - I don't know which - so you also need to make sure that you rotate coordinates from FK5/IRCF to the dynamical reference frame used by VSOP87. Another little nuisance with which to complicate life.
- Finally, there is an online version of VSOP87: MULTI-SAT. It has the following information in its user manual:
Here is the paper they referenced but I have not understood it yet 😜 :
Standish 1982.pdf
from satellitetoolbox.jl.
Good @helgee ! I will process all this information to see if I can help you! Probably I will have time this week to do this.
from satellitetoolbox.jl.
I am working on a pure Julia version of VSOP87: https://github.com/JuliaAstro/AstroBase.jl/blob/master/src/ephemerides/Ephemerides.jl
Would that fit the bill?
It has the advantage of not needing any external data files (e.g. SPICE kernels) but it is actually slower than JPLEphemeris.jl right now.
from satellitetoolbox.jl.
Hi @helgee ,
Indeed, that will be perfect! Thanks!
Maybe, I can add the very, very simple approach on Vallado's book and let the user choose. However, it will be very good to use the VSOP87 due to the precision.
from satellitetoolbox.jl.
So, my VSOP87 implementation is complete and agrees with the original Fortran version in it's native frame (dynamical ecliptic frame J2000
). They give a rotation matrix to FK5 but with that rotation applied there is still a rather large discrepancy to DE200 (to which VSOP87 was originally fitted).
Any ideas what this could be?
EDIT: This graph looks virtually identical for all bodies so this must be a frame alignment issue.
from satellitetoolbox.jl.
Hi @helgee ,
Can you please provide me more information about the inputs and the expected results? I might be able to help.
from satellitetoolbox.jl.
Hi @helgee ,
That matrix that rotates the VSOP frame to FK5 seems correct. It is possible to obtain a very, very close approximation using the information available in [1].
Moreover, there is a good test to see if the problem is just a frame rotation. If both vector representations have the same origin, then those norms must be very close. Is it possible to plot the norm difference? Like, norm(v_de200) - norm(v_vsop87)
. If this is significantly lower than the first result, then it maybe an error in the reference frame.
However, I was thinking about this error and it does not seem to be that big at all. For example, according to [1], VSOP87 has an accuracy of 1 arcseg (I think so, I did not read the paper carefully). If you account the distance between the Sun and Mars, that angular error will be translated into a linear error of about 1,100 km. Hence, if my interpretation is correct, then it seems fine :)
[1] http://adsabs.harvard.edu/full/1988A%26A...202..309B
from satellitetoolbox.jl.
Related Issues (20)
- Solar Radiation HOT 1
- IERS data format change HOT 7
- get_iers_eop() HOT 3
- Wrong docstring for rv_to_mean_elements_j2osc HOT 1
- High precision orbit propagator HOT 3
- Automatically download TLE HOT 3
- Quick fix to rv_to_kepler HOT 7
- Docstring update for getters functions HOT 2
- Precompilation error when SatelliteToolbox and get_iers_eop are used as dependencies HOT 2
- IERS data service down HOT 7
- Daily Ap index using get_Ap() and get_space_indices()
- Allow the propagators to initialize the structure in place HOT 1
- 2023 Space Index File not available HOT 2
- Compatibility of transformations code with Automatic Differentiation tools (Zygote) HOT 2
- Discrepancies between J2 Propagator and STK J2Perturbations HOT 20
- sgp4 propagator accuracy HOT 5
- ITRF to TEME transformation HOT 4
- Can't find ground_station_accesses in v0.10.0 HOT 10
- init_orbit_propagator method definition warning HOT 2
- Add `geocentric_to_ecef`? HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from satellitetoolbox.jl.