Tudat / tudat

NOTE: This Tudat version is no longer supported. See https://docs.tudat.space/en/stable/ and https://github.com/tudat-team/tudat-bundle for the new version
BSD 3-Clause "New" or "Revised" License
87 stars 142 forks source link

Ephemeris data does not load past 2025 #532

Closed ViktorJordanov closed 5 years ago

ViktorJordanov commented 5 years ago

Hi,

I want to analyse the stability of an asteroid over long periods of time. What I have noticed however, is that every time that I put the end epoch of the analysis past 1 Jan 2025, I get a message from spice that insufficient data has been loaded in. This is a small part of it:

SPICE(SPKINSUFFDATA) --

Insufficient ephemeris data has been loaded to compute the state of 399 (EARTH) relative to 0 (SOLAR SYSTEM BARYCENTER) at the ephemeris epoch 2025 JAN 01 00:05:00.000.

I am now propagating the asteroid (which was initialised with kepler elements) and the Earth and the Moon (both initialised with ephemeris data). I have looked online for information on the error SPKINSUFFDATA, but could not find any useful information on how I could possibly extend the period to a time later than 2025.

I thus wanted to ask you, whether there is a way to solve this problem, by loading in more data that goes on for far longer than 2025? Another option for this, I think, is to only load the ephemeris for one short time period, lets say somewhere in 2020, after which I propagate ALL bodies that I use as perturbing accelerations (so I should add Venus and Mars and the Sun for example in my bodiesToPropagate). I am afraid however, that if I do this, the computational time will become (unnecessarily) very long, since I will be propagating way more bodies. Especially, since I have another analysis in the same program including a grid search and a lambert targeter. I thus would preferably like to minimise the computing power for the propagations...

Could you give me advise on how I could solve this, and perform the propagation for lets say 100 years (or more)?

DominicDirkx commented 5 years ago

Hi Viktor,

The reason for this, is that we decided to ship a truncated Spice kernel for solar system ephemerides (called de430_small.bsp) with Tudat, to reduce the total package size. The full spice kernel (such as de430.bsp) can be found here:

https://naif.jpl.nasa.gov/pub/naif/generic_kernels/spk/planets/

You can save this file into the ...Tudat/External/SpiceInterface/Kernels/

directory, and then use:

std::vector< std::string > additionalKernels;
std::string path = input_output::getSpiceKernelPath( );
additionalKernels.push_back( path + "de430.bsp" );
spice_interface::loadStandardSpiceKernels( additionalKernels );

instead of the usual

spice_interface::loadStandardSpiceKernels( );

to load the de430.bsp (instead of the default de430_small.bsp)

Best,

Dominic