JuliaSpace / SatelliteToolbox.jl

A toolbox for satellite analysis written in julia language.
MIT License
249 stars 33 forks source link

Simplify the API related to the coordinate transformations #18

Closed ronisbr closed 5 years ago

ronisbr commented 5 years ago

In the API of coordinate transformations (rECEFtoECI, etc.) we have a parameter to select which theory we should use. According to Vallado, when implementing IAU2000, it is better to use the CIO approach. In this case, the name of the intermediate reference systems will not be equal to those of IAU76 theory. In the former we have ITRF <-> PEF<-> TOD <-> GCRF, whereas in the latter we have ITRF <-> TIRS <-> CIRS <-> GCRF.

Hence, in most scenarios we can infer which theory is desired by only looking the reference systems. The only possible confusion would be the conversion ITRF <-> GCRF. However, in this case, we need the EOP data, and then we can also infer the desired theory by looking the EOP data type.

benelsen commented 5 years ago

Leaving the option to specify a model and only defaulting to one using the specified frames might have been interesting if there was a need to implement truncated models of nutation (IAU2000B) for performance reasons or revisions to the model. (maybe even automate fetching the eops, or generalize to other bodies).

ronisbr commented 5 years ago

Hi @benelsen

You are right, thanks for the suggestion. I think I will leave the API simplified until we have the IAU2000B. The first implementation, as suggested by Vallado, will be using CIO approach. In this case, the selection of the model will be clear based on the frames. In the future, we can do what you proposed and then add a keyword to switch from FK5 to IAU2000B.

As for the automate fetching, it is very easy to do. I will see if I can do (if you want to help, PRs are welcome!!).