# 4. List of Keys¶

In this page, an exhaustive list with the possible keys that can be defined in input JSON files for the json_interface application is provided. These are used to create the settings as discussed in Tudat Libraries.

The type path before a key name denotes that a string such as "@path(relPath)" has to be provided when using relative paths inside Modular Files. When providing absolute paths or not using modular files, both "@path(file)" and "file" will work.

T[ ] denotes that an array of T is expected. If no number is indicated, there is no constraint on the size of the array. For instance, number[ 6 ] is used for state vectors. A second [ ] is used to represent matrices, e.g. number[ ][ ] corresponds to Eigen::MatrixXd, and number[ 3 ][ 3 ] corresponds to Eigen::Matrix3d. When a vector is expected (i.e. an Eigen::Matrix with only one row and/or one column), it is possible to provide it as a an array of numbers (e.g. [ 1, 2, 3 ]) only if at least one of the dimensions of the expected Eigen::Matrix is of fixed size, and this size matches the length of the provided array. If the expected matrix has dynamic size (both for the number of rows and columns), it is mandatory to provide an array of arrays (e.g. [ [ 1, 2, 3 ] ] will be converted to a matrix of dynamic size 1x3, while [ [ 1 ], [ 2 ], [ 3 ] ] will be converted to a matrix of dynamic size 3x1).

Some keys appear twice because they accept different value types (and a different description for each case is provided). For instance, the body’s initial state can be of value type number[ 6 ] (where a Cartesian state is assumed), or an object containing keys such as x, vy, semiMajorAxis, inclination, etc.

In some parts, key paths are used to refer to the key of a given object in the JSON tree. The different keys are separated by dots. For instance atmosphere.type refers to the key type of an object assigned to the key atmosphere. When the key path is absolute (or in other words relative to the JSON defined in the main input file), the key path starts with a dot (for instance, .initialEpoch refers to the key initialEpoch defined directly in the root object of the main input file). When the key path does not start with a dot, it is relative to the context in which it is mentioned. For arrays, the index (starting from zero) is used, so centralBodies[ 1 ] refers to the second body in the array assigned to the key centralBodies.

Unfold All Fold All

• number initialEpoch (optional). Used for the initial time of the integrator (if not provided inside the integrator object) and for interpolation of Spice ephemeris (if Spice enabled and set to preload ephemeris).

• number finalEpoch (optional). Used for interpolation of Spice ephemeris (if Spice enabled and set to preload ephemeris) and to create the time-termination condition. If smaller than initialEpoch, the dynamics will be propagated backwards in time.

• string globalFrameOrigin (optional). Used to set the global frame origin for the propagation. Default value: "SSB".

• string globalFrameOrientation (optional). Used to set the global frame orientation for the propagation. Updates the frame orientation of ephemeris and rotation model settings if not specified. Default value: "ECLIPJ2000".

• object spice (optional). Used to provide Spice settings.

Spice

• boolean useStandardKernels (mandatory). Whether the standard kernels should be preloaded.
• path[ ] alternativeKernels (optional). Additional kernels to load when using standard kernels. Default value: [ ].
• path[ ] kernels (mandatory if useStandardKernels set to false). Kernels to load when not using standard kernels.
• boolean preloadEphemeris (optional). Whether the kernels should be preloaded from .initialEpoch - interpolationOffsets[ 0 ] to .finalEpoch + interpolationOffsets[ 1 ]. Default value: true.
• number interpolationStep (optional). Step to use for interpolation of ephemeris. Default value: 300.0.
• number[ 2 ] interpolationOffsets (optional). Offsets to use for the interpolation. Default value: [10*interpolationStep, 10*interpolationStep].
• object bodies (mandatory). Used to define all the bodies to be considered in the propagation, sets the Tudat NamedBodyMap class. The keys of the object are the body names.

Body

• boolean useDefaultSettings (optional). Whether the default settings should be used. If any of the settings listed below is provided, the default settings will be overridden. Default value: false.

• number[ 6 ] initialState (optional). Initial Cartesian state. Used to define a segment of the propagator’s initial states (if not defined).

• object initialState (optional). Initial state. Used to define a segment of the propagator’s initial states (if not defined).

State

• string type (mandatory). Possible values: "cartesian", "keplerian", "spherical".

Cartesian State

• number x (optional).
• number y (optional).
• number z (optional).
• number vx (optional).
• number vy (optional).
• number vz (optional).

Keplerian State

• number centralBodyGravitationalParameter (optional). If not specified, will be retrieved from the corresponding central body specified in the propagator.
• number centralBodyAverageRadius (optional). If not specified, will be retrieved from the corresponding central body specified in the propagator.
• number semiMajorAxis (mandatory/optional).
• number eccentricity (optional). Default value: 0.
• number inclination (optional). Default value: 0.
• number argumentOfPeriapsis (optional). Default value: 0.
• number longitudeOfAscendingNode (optional). Default value: 0.
• number trueAnomaly (optional). Default value: 0.
• number meanAnomaly (optional). Default value: 0.
• number eccentricAnomaly (optional). Default value: 0.
• number semiLatusRectum (optional). Default value: 0.
• number meanMotion (optional). Default value: 0.
• number period (mandatory/optional).
• number altitude (mandatory/optional).
• number periapsisDistance (mandatory/optional).
• number apoapsisDistance (mandatory/optional).
• number periapsisAltitude (mandatory/optional).
• number apoapsisAltitude (mandatory/optional).

Spherical State

• number centralBodyAverageRadius (optional). If not specified, will be retrieved from the corresponding central body specified in the propagator.
• number epoch (optional). If not specified, will be retrieved from the initial epoch of the integrator.
• number radius (mandatory if altitude undefined).
• number altitude (mandatory if radius undefined).
• number latitude (optional). Default value: 0.
• number longitude (optional). Default value: 0.
• number speed (mandatory).
• number flightPathAngle (optional). Default value: 0.
• number headingAngle (optional). Default value: 0.
• number mass (optional). Initial/constant mass. Used to define the constant mass of the body or its initial mass when it is varying, in which case it will be used to define an entry of the propagator’s initial states (if not defined).

• number[ 7 ] rotationalState (optional). Initial rotational state. Used to define a segment of the propagator’s initial states (if not defined).

• number referenceArea (optional). Area to be used for aerodynamics and radiation pressure settings (if not defined for these individual objects).

• object aerodynamics (optional). Used to provide aerodynamics settings of the body.

Aerodynamics

• string coefficientsType (optional). Possible values: "constant", "tabulated". Default value: "constant".
• number referenceArea (optional). Reference area with which aerodynamic forces and moments are non-dimensionalized. If not specified, it will be retrieved from the body’s referenceArea key. Note that the reference area has to be defined at least once, either at the body level or in the aerodynamics settings. The definition of the reference area is optional only if it has already been defined in the body’s keys
• number referenceLength (mandatory if moment coefficients provided). Reference length with which aerodynamic moments are non-dimensionalized.
• number lateralReferenceLength (mandatory if moment coefficients provided). Lateral reference length with which aerodynamic moments are non-dimensionalized.
• number momentReferencePoint (mandatory if moment coefficients provided). Point w.r.t. which the arm of the moment on a vehicle panel is determined.
• string[ ] independentVariableNames (optional). Vector with identifiers of the physical meaning of each independent variable of the aerodynamic coefficients. Possible values: machNumber, angleOfAttack, angleOfSideslip, altitude, controlSurfaceDeflection, undefined.
• boolean areCoefficientsInAerodynamicFrame (optional). Boolean to define whether the aerodynamic coefficients are defined in the aerodynamic frame (lift, drag, side force) or in the body frame (typically denoted as Cx, Cy, Cz). Default value: FIXME.
• boolean areCoefficientsInNegativeAxisDirection (optional). Boolean to define whether the aerodynamic coefficients are positive along the positive axes of the body or aerodynamic frame. FIXME Note that for (lift, drag, side force), the coefficients are typically defined in negative direction. Default value: true.

Constant Coefficients Aerodynamics

• number dragCoefficient (optional). FIXME.
• number[ 3 ] forceCoefficients (mandatory if dragCoefficient undefined). Constant force coefficients. Default value: FIXME.
• number[ 3 ] momentCoefficients (optional). Constant moment coefficients.

Tabulated Coefficients Aerodynamics

• path[ 3 ] forceCoefficients (mandatory). Paths to the files containing the values for each force coefficient as a function of the independent variables.

• path[ 3 ] momentCoefficients (optional). Paths to the files containing the values for each moment coefficient as a function of the independent variables.

• number[ ] independentVariableValues (optional). Values of the independent variable, if not provided in the input files, when only one independent variable is used.

• object interpolator (optional). Settings to be used for creating the one-dimensional interpolator of data, when only one independent variable is used.

Interpolator

• string type (mandatory). Possible values: "linear", "cubicSpline", "lagrange", "hermiteSpline", "piecewiseConstant".
• string lookupScheme (optional). Selected type of lookup scheme for independent variables. Possible values: "huntingAlgorithm", "binarySearch". Default value: "huntingAlgorithm".
• boolean useLongDoubleTimeStep (optional). Whether the time step is to be a long double, for higher precision. Default value: false.
• string boundaryHandling (optional). Boundary handling method, in case the independent variable is outside the specified range. Possible values: "throwException", "boundaryValue", "boundaryValueWithWarning", "extrapolate", "extrapolateWithWarning". Default value: "extrapolate".

LagrangeInterpolator

• number order (mandatory). Order of the Lagrange interpolator.
• boolean useLongDoubleTimeStep (optional). Whether the time step is to be a long double, for higher precision. Default value: false.
• string lookupScheme (optional). Selected type of lookup scheme for independent variables. Possible values: "huntingAlgorithm", "binarySearch". Default value: "huntingAlgorithm".
• string lagrangeBoundaryHandling (optional). Possible values: "cubicSplineBoundary", "noBoundary". Default value: "cubicSplineBoundary".
• object atmosphere (optional). Used to provide atmosphere settings of the body.

Atmosphere

• string type (mandatory). Possible values: "exponential", "tabulated", "nrlmsise00".

Exponential Atmosphere

• number densityScaleHeight (mandatory). Scale height for density profile of atmosphere.
• number constantTemperature (mandatory). Constant atmospheric temperature.
• number densityAtZeroAltitude (mandatory). Atmospheric density at ground level.
• number specificGasConstant (optional). Specific gas constant for (constant) atmospheric chemical composition. Default value: 287.
• number ratioOfSpecificHeats (optional). Ratio of specific heats for (constant) atmospheric chemical composition. Default value: 1.4.

Tabulated Atmosphere

• map file (mandatory). Map of files containing atmospheric properties, the map should contain as many files as independent variables and each file should contain as many dimensions as dependent variables.
• string[ ] independentVariablesNames (mandatory). Names of independent variables included in the tabulated atmosphere. Possible values: "altitude", "longitude", "latitude", "time". Default value: "altitude".
• string[ ] dependentVariablesNames (mandatory). Names of dependent variables included in the tabulated atmosphere. Possible values: "density", "pressure", "temperature", "gasConstant", "specificHeatRatio", "molarMass". Default values: "density", "pressure", "temperature".
• number specificGasConstant (optional). Specific gas constant for (constant) atmospheric chemical composition. Default value: 287.
• number ratioOfSpecificHeats (optional). Ratio of specific heats for (constant) atmospheric chemical composition. Default value: 1.4.
• string[ ] boundaryHandling (optional). Boundary handling methods, in case an independent variable is outside the specified range. Possible values: "throwException", "boundaryValue", "boundaryValueWithWarning", "extrapolate", "extrapolateWithWarning". Default value: "boundaryValue".

NRLMSISE00 Atmosphere

• path spaceWeatherFile (optional). Custom file containing space weather data, with the same format as in here. If not specified, an (old) version of that file is used.
• object ephemeris (optional). Used to provide ephemeris settings of the body.

Ephemeris

• string type (mandatory). Possible values: "constant", "kepler", "approximatePlanetPositions", "directSpice", "interpolatedSpice", "tabulated".
• string frameOrigin (optional). Identifier of the reference frame origin. Default value: "SSB".
• string frameOrigin (optional). Identifier of the reference frame orientation. Default value: "ECLIPJ2000".

Constant Ephemeris

• number[ 6 ] constantState (mandatory). Constant Cartesian state.

Kepler Ephemeris

• number[ 6 ] initialStateInKeplerianElements (mandatory). Initial Keplerian state.
• number epochOfInitialState (mandatory). Initial epoch from which propagation of Kepler orbit is performed.
• number centralBodyGravitationalParameter (mandatory). Gravitational parameter of central body about which the Kepler orbit is defined.
• number rootFinderAbsoluteTolerance (optional). Convergence tolerance for root finder used to convert mean to eccentric anomaly. Default value: 200.0 * std::numeric_limits< double >::epsilon( ).
• number rootFinderMaximumNumberOfIterations (optional). Maximum iteration for root finder used to convert mean to eccentric anomaly. Default value: 1000.

Approximate Planet Positions Ephemeris

• string bodyIdentifier (mandatory). Parameter identifying for which body an ephemeris is to be created. Possible values: "mercury", "venus", "earthMoonBarycenter", "mars", "jupiter", "saturn", "uranus", "neptune", "pluto".
• boolean useCircularCoplanarApproximation (mandatory). Boolean defining whether a circular, coplanar orbit of the body is to be assumed (creating an ApproximatePlanetPositionsCircularCoplanar object), or whether a non-zero inclination and long-period changes in the orbit are to be included (creating an ApproximatePlanetPositions object).

Direct Spice Ephemeris

• boolean correctForStellarAberration (optional). Whether to correct for stellar aberration in retrieved values of (observed state). Default value: false.
• boolean correctForLightTimeAberration (optional). Whether to correct for light time in retrieved values of (observed state). Default value: false.
• boolean convergeLighTimeAberration (optional). Whether to use single iteration or max. 3 iterations for calculating light time. Default value: false.

Interpolated Spice Ephemeris

• number initialTime (mandatory). Initial time from which interpolated data from Spice should be created.

• number finalTime (mandatory). Final time until which interpolated data from Spice should be created.

• number timeStep (mandatory). Time step with which interpolated data from Spice should be created.

• object interpolator (optional). Settings to be used for the state interpolation. Default value: {"type":"lagrange","order":6}.

Interpolator

• string type (mandatory). Possible values: "linear", "cubicSpline", "lagrange", "hermiteSpline", "piecewiseConstant".
• string lookupScheme (optional). Selected type of lookup scheme for independent variables. Possible values: "huntingAlgorithm", "binarySearch". Default value: "huntingAlgorithm".
• boolean useLongDoubleTimeStep (optional). Whether the time step is to be a long double, for higher precision. Default value: false.
• string boundaryHandling (optional). Boundary handling method, in case the independent variable is outside the specified range. Possible values: "throwException", "boundaryValue", "boundaryValueWithWarning", "extrapolate", "extrapolateWithWarning". Default value: "extrapolate".

LagrangeInterpolator

• number order (mandatory). Order of the Lagrange interpolator.
• boolean useLongDoubleTimeStep (optional). Whether the time step is to be a long double, for higher precision. Default value: false.
• string lookupScheme (optional). Selected type of lookup scheme for independent variables. Possible values: "huntingAlgorithm", "binarySearch". Default value: "huntingAlgorithm".
• string lagrangeBoundaryHandling (optional). Possible values: "cubicSplineBoundary", "noBoundary". Default value: "cubicSplineBoundary".
• boolean useLongDoubleStates (optional). Whether to use long double states doubles for higher precision. Default value: false.

Tabulated Ephemeris

• object bodyStateHistory (mandatory). Map containing the Cartesian states, where the keys are the epochs they correspond to.
• boolean useLongDoubleStates (optional). Whether to use long double states doubles for higher precision. Default value: false.
• object gravityField (optional). Used to provide gravity field settings of the body.

Gravity Field

• string type (mandatory). Possible values: "pointMass", "pointMassSpice", "sphericalHarmonic".

Point Mass Gravity Field

• number gravitationalParameter (mandatory). Gravitational parameter for gravity field.

Spherical Harmonic Gravity Field from built-in model

• string model (mandatory). Identifier of the built-in spherical harmonics gravity field model to be used. Models currently available: EGM96, GGM02C, GGM02S (Earth); GLGM3150, LPE200 (Moon); JGMRO120D (Mars). Possible values: "egm96", "ggm02c", "ggm02s", "glgm3150", "lpe200", "jgmro120d".

Spherical Harmonic Gravity Field from custom file

• path file (mandatory). Path to a PDS file containing the cosine and sine coefficients. Each row contains a degree, order, cosine coefficient and sine coefficient.
• string associatedReferenceFrame (mandatory). Identifier of the associated reference frame, e.g. IAU_Earth.
• number maximumDegree (mandatory). Maximum degree of the coefficients to be loaded from the file.
• number maximumOrder (mandatory). Maximum order of the coefficients to be loaded from the file.
• number gravitationalParameterIndex (mandatory). Index (starting from zero) at which the associated gravitational parameter of the model can be found in a vector resulting from splitting the first line of the input file (aka header). Must be set to -1 if the file has no header. Default value: 0.
• number referenceRadiusIndex (mandatory). Index (starting from zero) at which the associated reference radius of the model can be found in a vector resulting from splitting the header. Must be set to -1 if the file has no header. Default value: 1.
• number gravitationalParameter (mandatory if gravitationalParameterIndex set to -1). Value of the gravitational parameter, to be provided if the file has no header.
• number referenceRadius (mandatory if referenceRadiusIndex set to -1). Value of the reference radius, to be provided if the file has no header.

Spherical Harmonic Gravity Field with manual coefficients

• number gravitationalParameter (mandatory). Value of the associated gravitational parameter.
• number[ ][ ] cosineCoefficients (mandatory). Matrix containing the cosine spherical harmonic coefficients (geodesy-normalised). Rows correspond to degrees and columns to orders.
• number[ ][ ] sineCoefficients (mandatory). Matrix containing the sine spherical harmonic coefficients (geodesy-normalised). Rows correspond to degrees and columns to orders.
• string associatedReferenceFrame (mandatory). Identifier of the associated reference frame, e.g. IAU_Earth.
• object[ ] gravityFieldVariation (optional). Used to provide a list of gravity field variation settings.

Gravity Field Variation

• string bodyDeformationType (mandatory). Possible values: "basicSolidBody", "basicSolidBody".

Basic Solid Body Gravity Field Variation

• string[ ] deformingBodies (mandatory). List with the names of the bodies causing tidal deformation.

• string[ ][ ] loveNumbers (mandatory). List of Love numbers for the deformed body. Each element is a complex number, which in JSON is represented as a string. For instance, 2 - 0.5i is written as "(2,-0.5)".

• number referenceRadius (mandatory). Reference (typically equatorial) radius of the body being deformed.

• object modelInterpolation (optional). Settings that are to be used to create an interpolator for the gravity field variations immediately upon creation. If not defined, no interpolation is used, and the model is evaluated during propagation.

Model Interpolation

• number initialTime (mandatory). Start time for model interpolation.

• number finalTime (mandatory). End time for model interpolation.

• number timeStep (mandatory). Time step with which to evaluate model, and provide input to interpolator.

• object interpolator (mandatory). The settings for the interpolator to be used in the model interpolation.

Interpolator

• string type (mandatory). Possible values: "linear", "cubicSpline", "lagrange", "hermiteSpline", "piecewiseConstant".
• string lookupScheme (optional). Selected type of lookup scheme for independent variables. Possible values: "huntingAlgorithm", "binarySearch". Default value: "huntingAlgorithm".
• boolean useLongDoubleTimeStep (optional). Whether the time step is to be a long double, for higher precision. Default value: false.
• string boundaryHandling (optional). Boundary handling method, in case the independent variable is outside the specified range. Possible values: "throwException", "boundaryValue", "boundaryValueWithWarning", "extrapolate", "extrapolateWithWarning". Default value: "extrapolate".

LagrangeInterpolator

• number order (mandatory). Order of the Lagrange interpolator.
• boolean useLongDoubleTimeStep (optional). Whether the time step is to be a long double, for higher precision. Default value: false.
• string lookupScheme (optional). Selected type of lookup scheme for independent variables. Possible values: "huntingAlgorithm", "binarySearch". Default value: "huntingAlgorithm".
• string lagrangeBoundaryHandling (optional). Possible values: "cubicSplineBoundary", "noBoundary". Default value: "cubicSplineBoundary".

Tabulated Gravity Field Variation

• object cosineCoefficientCorrections (mandatory). Map of corrections to cosine coefficients, where the keys correspond to the epoch.

• object sineCoefficientCorrections (mandatory). Map of corrections to sine coefficients, where the keys correspond to the epoch.

• number minimumDegree (mandatory). Minimum degree of spherical harmonic corrections.

• number minimumOrder (mandatory). Minimum order of spherical harmonic corrections.

• object interpolator (mandatory). Settings that are to be used to create an interpolator for the gravity field variations immediately upon creation.

Interpolator

• string type (mandatory). Possible values: "linear", "cubicSpline", "lagrange", "hermiteSpline", "piecewiseConstant".
• string lookupScheme (optional). Selected type of lookup scheme for independent variables. Possible values: "huntingAlgorithm", "binarySearch". Default value: "huntingAlgorithm".
• boolean useLongDoubleTimeStep (optional). Whether the time step is to be a long double, for higher precision. Default value: false.
• string boundaryHandling (optional). Boundary handling method, in case the independent variable is outside the specified range. Possible values: "throwException", "boundaryValue", "boundaryValueWithWarning", "extrapolate", "extrapolateWithWarning". Default value: "extrapolate".

LagrangeInterpolator

• number order (mandatory). Order of the Lagrange interpolator.
• boolean useLongDoubleTimeStep (optional). Whether the time step is to be a long double, for higher precision. Default value: false.
• string lookupScheme (optional). Selected type of lookup scheme for independent variables. Possible values: "huntingAlgorithm", "binarySearch". Default value: "huntingAlgorithm".
• string lagrangeBoundaryHandling (optional). Possible values: "cubicSplineBoundary", "noBoundary". Default value: "cubicSplineBoundary".
• object radiationPressure (optional). Used to provide a map of radiation pressure settings, in which the keys are the names of the radiating bodies causing a radiation pressure on the body.

• string type (optional). Possible values: "cannonBall". Default value: "cannonBall".
• string sourceBody (optional). Name of the radiating body. If not provided, it will be retrieved from the key to which the radiation pressure object is assigned.
• string[ ] occultingBodies (optional). List with the names of the bodies causing (partial) occultation, if any.

• number referenceArea (optional). Surface area that undergoes radiation pressure. If not defined, it will be retrieved from the body’s referenceArea key to which the map of radiation pressure objects is assigned. Note that for the cannon ball radiation pressure to be calculated, the reference area has to be defined at least once, either at the body level or in the cannon ball radiation pressure settings. The definition of the reference area is optional only if it has already been defined in the body’s keys.
• object rotationModel (optional). Used to provide rotation model settings of the body.

Rotation Model

• string type (mandatory). Possible values: "simple", "spice".
• string originalFrame (mandatory). Identifier of the base frame of rotation model.
• string targetFrame (mandatory; except for GCRS to ITRS, where “GCRS” is hard-coded). Identifier of the target frame of rotation model.

Simple Rotation Model

• number initialTime (mandatory). Time at which initialOrientation represents the instantaneous rotation.
• number rotationRate (mandatory). Rotation rate of body about its local z-axis.
• number[ 3 ][ 3 ] initialOrientation (optional). Rotation from base to target frame at initialTime. If not specified, will be computed using Spice.

GCRS to ITRS (high-accuracy Earth model)

• strinf precessionNutationTheory (optional). IAU convention to use for precession-nutation model (may be “IAU2000a”, “IAU2000b” or “IAU2006”)
• object shapeModel (optional). Used to provide shape model settings.

Shape Model

• string type (mandatory). Possible values: "spherical", "sphericalSpice", "oblateSpheroid".

Spherical Shape Model

Oblate Spheroid Shape Model

• number flattening (mandatory). Flattening of spheroid shape model.
• object[ ] propagators (mandatory). Used to define the propagator(s), sets the Tudat PropagatorSettings class.

Propagator

• string integratedStateType (optional). Possible values: "translational", "mass", "rotational". Default value: "translational".
• string[ ] bodiesToPropagate (mandatory). Names of the bodies to propagate.
• number[ ] initialStates (optional). Vector containing the concatenated initial states of all the bodies to be propagated. If not defined, it will be determined from the properties initialState, mass or rotationalState of the bodies to be propagated. If all the bodies to propagate are celestial bodies and this property is not defined, the ephemeris at the initial epoch will be used.

Translational Propagator

• string type (optional). Type of the translational propagator to be used. Possible values: "cowell", "encke", "gaussKeplerian", "gaussModifiedEquinoctial", "unifiedStateModelQuaternions", "unifiedStateModelModifiedRodriguesParameters", "unifiedStateModelExponentialMap". Default value: "cowell".

• string[ ] centralBodies (mandatory). Names of the central bodies.

• object[ ] accelerations (mandatory). Map in which each object contains a map of acceleration lists. The keys of the outer map are the names of the bodies undergoing the accelerations, while the keys of the inner maps are the names of the bodies exerting the accelerations. For instance, accelerations.satellite.Earth is read as: accelerations on satellite caused by Earth.

Acceleration

• string type (mandatory). Possible values: "undefined", "pointMassGravity", "sphericalHarmonicGravity", "mutualSphericalHarmonicGravity", "aerodynamic", "cannonBallRadiationPressure", "thrust", "relativisticCorrection", "empirical".

Spherical Harmonic Gravity Acceleration

• number maximumDegree (mandatory). Maximum degree that is to be used for spherical harmonic acceleration.
• number maximumOrder (mandatory). Maximum order that is to be used for spherical harmonic acceleration.

Mutual Spherical Harmonic Gravity Acceleration

• number maximumDegreeOfBodyExertingAcceleration (mandatory). Maximum degree of body exerting acceleration.
• number maximumOrderOfBodyExertingAcceleration (mandatory). Maximum order of body exerting acceleration.
• number maximumDegreeOfBodyUndergoingAcceleration (mandatory). Maximum order of body undergoing acceleration.
• number maximumOrderOfBodyUndergoingAcceleration (mandatory). Maximum order of body undergoing acceleration.
• number maximumDegreeOfCentralBody (optional). Maximum degree of central body (only relevant for 3rd body acceleration).
• number maximumOrderOfCentralBody (optional). Maximum order of central body (only relevant for 3rd body acceleration).

Thrust Acceleration

• object direction (mandatory). Settings for the direction of the thrust.

Thrust Direction

• string type (mandatory). Possible values: "colinearWithStateSegment", "fromExistingBodyOrientation".
• string relativeBody (mandatory). Name of the body relative to which thrust guidance algorithm is defined.

Colinear With State Segment Thrust Direction

• boolean colinearWithVelocity (mandatory). Whether thrust is colinear with velocity (if true) or position (if false).
• boolean towardsRelativeBody (mandatory). Whether the thrust is in the direction of position/velocity of $$x_{thrusting\,body} - x_{central\,body}$$.
• object magnitude (mandatory). Settings for the magnitude of the thrust.

Thrust Magnitude

• string type (mandatory). Possible values: "constant", "fromEngineProperties".

Constant Thrust Magnitude

• number constantMagnitude (mandatory). Constant thrust magnitude that is to be used.
• number specificImpulse (mandatory). Constant specific impulse that is to be used.
• number[ 3 ] bodyFixedDirection (optional). Direction of thrust force in body-fixed frame. Default value: [1, 0, 0].

From Engine Thrust Magnitude

• boolean useAllEngines (optional). Whether all engines of the associated body are to be combined into a single thrust magnitude. Default value: true.
• string originID (optional). Reference identifier of thrust origin that is to be used.

Interpolated Thrust Acceleration

• object dataInterpolation (mandatory). Settings to create the interpolator interface.

Data Interpolation

• object data (mandatory). Object containing the settings to create the data to be interpolated.

Data

• object map (mandatory if independentVariableValues, dependentVariableValues or file undefined). Object containing the values of the dependent variable (scalar or vectorial) to be interpolated. The keys are the string representation of the values of the independent variable (scalar).
• number[ ] independentVariableValues (optional). List of values of the dependent variable (scalar).
• number[ ][ ] dependentVariableValues (optional). List of values of the independent variable (scalar or vectorial).
• number[ ][ ] dependentVariableFirstDerivativeValues (mandatory if the interpolator type is "hermiteSpline"). List of values of the first derivatives of the independent variable (scalar or vectorial).
• path file (optional). Path to the file containing the data to be interpolated. Each line corresponds to a pair of dependent-independent values. The first column contains the values of the independent variables, while the second column (and subsequent columns for vectorial dependent variables) contains the values of the dependent variable. Empty characters (such as space or tabulator) can be used to separate values.
• object interpolator (mandatory). Object containing the settings to create the interpolator to be used to interpolate the data.

Interpolator

• string type (mandatory). Possible values: "linear", "cubicSpline", "lagrange", "hermiteSpline", "piecewiseConstant".
• string lookupScheme (optional). Selected type of lookup scheme for independent variables. Possible values: "huntingAlgorithm", "binarySearch". Default value: "huntingAlgorithm".
• boolean useLongDoubleTimeStep (optional). Whether the time step is to be a long double, for higher precision. Default value: false.
• string boundaryHandling (optional). Boundary handling method, in case the independent variable is outside the specified range. Possible values: "throwException", "boundaryValue", "boundaryValueWithWarning", "extrapolate", "extrapolateWithWarning". Default value: "extrapolate".

LagrangeInterpolator

• number order (mandatory). Order of the Lagrange interpolator.
• boolean useLongDoubleTimeStep (optional). Whether the time step is to be a long double, for higher precision. Default value: false.
• string lookupScheme (optional). Selected type of lookup scheme for independent variables. Possible values: "huntingAlgorithm", "binarySearch". Default value: "huntingAlgorithm".
• string lagrangeBoundaryHandling (optional). Possible values: "cubicSplineBoundary", "noBoundary". Default value: "cubicSplineBoundary".
• number specificImpulse (mandatory). Constant specific impulse.

• string frame (mandatory). Identifier of frame in which thrust returned by interpolator is expressed. Possible values: "intertial", "lvlh".

• string centralBody (mandatory). Name of the central body.

Relativistic Correction Acceleration

• boolean calculateSchwarzschildCorrection (optional). Whether the Schwarzschild term is used. Default value: true.
• boolean calculateLenseThirringCorrection (optional). Whether the Lense-Thirring term is used. Default value: false.
• boolean calculateDeSitterCorrection (optional). Whether the de Sitter term is used. Default value: false.
• string primaryBody (mandatory). Name of primary body (e.g. Sun for acceleration acting on an Earth-orbiting satellite).
• number[ 3 ] centralBodyAngularMomentum (optional). Constant angular momentum of central body. Default value: [0, 0, 0].

Empirical Acceleration

• number constantAcceleration (optional). Acceleration (in RSW frame) that is constant. Default value: [0, 0, 0].
• number sineAcceleration (optional). Acceleration (in RSW frame) that scales with sine of true anomaly. Default value: [0, 0, 0].
• number cosineAcceleration (optional). Acceleration (in RSW frame) that scales with cosine of true anomaly. Default value: [0, 0, 0].

Mass Propagator

• object[ ] massRateModels (mandatory). Map of mass-rate model lists, with the keys being the names of the bodies they are associated to.

Mass Rate Model

• string type (mandatory). Possible values: "fromThrust".

From Thrust Mass Rate Model

• boolean useAllThrustModels (optional). Whether all engines of the associated body are to be combined into a single thrust model. Default value: true.
• string associatedThrustSource (mandatory if useAllThrustModels set to false). Name of engine model from which thrust is to be derived.

Rotational Propagator

• string type (optional). Type of the translational propagator to be used. Possible values: "quaternions", "modifiedRodriguesParameters", "exponentialMap". Default value: "quaternions".

• object[ ] torques (mandatory). Map in which each object contains a map of torque lists. The keys of the outer map are the names of the bodies undergoing the torque, while the keys of the inner maps are the names of the bodies exerting the torque. For instance, torques.Earth.Moon is read as: torque on Earth caused by the Moon.

Torque

• string type (mandatory). Possible values: "undefined", "secondOrderGravitational", "aerodynamic".
• object integrator (mandatory). Used to define the integrator, sets the Tudat IntegratorSettings class.

Integrator

• string type (optional). Method to use for the integration of the equations of motion. Possible values: "euler", "rungeKutta4", "rungeKuttaVariableStepSize", "adamsBashforthMoulton", bulirschStoer . Default value: "rungeKutta4".
• number initialTime (optional). Initial value of the independent variable (typically, seconds since J2000). If not provided, will be obtained from .initialEpoch.
• number saveFrequency (optional). Frequency with which the state is saved to the results map. For instance, a value of 5 means that the results are only saved for 1 in every 5 integration steps. Default value: 1.
• boolean assessPropagationTerminationConditionDuringIntegrationSubsteps (optional). Whether the termination conditions defined in .termination should be assessed after each integrator substep (e.g. for an RK4 integrator, after computing k1, k2, k3…). Not applicable to the Euler integrator. Default value: false.

Euler Integrator

• number stepSize (mandatory). Fixed step-size. Must be negative for backwards propagations.

Runge-Kutta 4 Integrator

• number stepSize (mandatory). Fixed step-size. Must be negative for backwards propagations.

Runge-Kutta Variable Step-Size Integrator

• string rungeKuttaCoefficientSet (mandatory). Identifier of the Runge-Kutta method to be used that will determine the coefficients set. Possible values: "rungeKuttaFehlberg45", "rungeKuttaFehlberg56", "rungeKuttaFehlberg78", "rungeKutta87DormandPrince".
• number initialStepSize (mandatory). Initial step-size. Must be negative for backwards propagations.
• number minimumStepSize (mandatory). An error will be thrown if the required step-size for the specified error tolerances is smaller than this value.
• number maximumStepSize (mandatory). An error will be thrown if the required step-size for the specified error tolerances is larger than this value.
• number relativeErrorTolerance (optional). Relative error tolerance for step-size control. Default value: 1.0E-12.
• number absoluteErrorTolerance (optional). Absolute error tolerance for step-size control. Default value: 1.0E-12.
• number safetyFactorForNextStepSize (optional). Safety factor for step-size control. Default value: 0.8.
• number maximumFactorIncreaseForNextStepSize (optional). Maximum increase factor in step-size in subsequent iterations. Default value: 4.0.
• number minimumFactorDecreaseForNextStepSize (optional). Minimum decrease factor in step-size in subsequent iterations. Default value: 0.1.

• number initialStepSize (mandatory). Initial step-size. Must be negative for backwards propagations.
• number minimumStepSize (mandatory). An error will be thrown if the required step-size for the specified error tolerances is smaller than this value.
• number maximumStepSize (mandatory). An error will be thrown if the required step-size for the specified error tolerances is larger than this value.
• number relativeErrorTolerance (optional). Relative error tolerance for step-size control. Default value: 1.0E-12.
• number absoluteErrorTolerance (optional). Absolute error tolerance for step-size control. Default value: 1.0E-12.
• number minimumOrder (optional). Minimum order of numerical integrator. Default value: 6.
• number maximumOrder (optional). Maximum order of numerical integrator. Default value: 11.

Bulirsch-Stoer Variable Step-Size Integrator

• number initialStepSize (mandatory). Initial step-size. Must be negative for backwards propagations.
• number maximumNumberOfSteps (mandatory). Number of entries in the sequence, e.g. number of integrations used for a single extrapolation.
• number minimumStepSize (mandatory). An error will be thrown if the required step-size for the specified error tolerances is smaller than this value.
• number maximumStepSize (mandatory). An error will be thrown if the required step-size for the specified error tolerances is larger than this value.
• number relativeErrorTolerance (optional). Relative error tolerance for step-size control. Default value: 1.0E-12.
• number absoluteErrorTolerance (optional). Absolute error tolerance for step-size control. Default value: 1.0E-12.
• number safetyFactorForNextStepSize (optional). Safety factor for step-size control. Default value: 0.7.
• number maximumFactorIncreaseForNextStepSize (optional). Maximum increase factor in step-size in subsequent iterations. Default value: 10.0.
• number minimumFactorDecreaseForNextStepSize (optional). Minimum decrease factor in step-size in subsequent iterations. Default value: 0.1.
• object termination (optional). Used to define termination condition(s), sets the Tudat PropagationTerminationSettings class. The time termination condition will be created automatically and added to the provided conditions (if any) if the key .finalEpoch is specified. Either a single termination condition object or a multiple termination condition object can be provided.

Single Termination Condition

• object variable (mandatory). Variable the termination condition is associated to. Currently, a termination condition can only be defined as a function of the independent variable, the CPU-time variable or a dependent variable. For the independent and CPU-time variables, the key lowerLimit is ignored.

Variable

• string type (optional). Possible values: "independent", "cpuTime", "state", "dependent". Default value: "dependent".

Dependent Variable

• string dependentVariableType (mandatory). Possible values: "machNumber", "altitude", "airspeed", "localDensity", "localTemperature", "stagnationPointHeatFlux", "localDynamicPressure", "localAerodynamicHeatRate", "relativeSpeed", "relativePosition", "relativeDistance", "relativeVelocity", "radiationPressure", "totalAccelerationNorm", "accelerationNorm", "totalAcceleration", "acceleration", "sphericalHarmonicsAccelerationTerms", "aerodynamicForceCoefficients", "aerodynamicMomentCoefficients", "rotationMatrixToBodyFixedFrame", "intermediateAerodynamicRotationMatrix", "relativeBodyAerodynamicOrientationAngle", "bodyFixedAirspeedBasedVelocity", "totalAerodynamicGLoad", "geodeticLatitude", "controlSurfaceDeflection", "totalMassRates", "lvlhToInertialFrameRotation", "periapsisAltitude", "totalTorqueNorm", "torqueNorm", "totalTorque", "torque", "bodyFixedGroundspeedBasedVelocity", "bodyFixedRelativeCartesianPosition", "bodyFixedRelativeSphericalPosition", "keplerElements", "modifiedEquinoctialElements".
• string body (mandatory). Name of the associated body. For some variables, name of the body undergoing the acceleration or torque.
• string relativeToBody (optional). For some variables, name of the body with respect to which the variable value should be computed (e.g. relative position or altitude w.r.t. Earth).
• number componentIndex (optional). For vectorial variables, the index (starting from 0) to be accessed. If not specified, the whole vector is used.

Acceleration Dependent Variable

• string accelerationType (mandatory). Possible values: "undefined", "pointMassGravity", "aerodynamic", "cannonBallRadiationPressure", "sphericalHarmonicGravity", "mutualSphericalHarmonicGravity", "thirdBodyPointMassGravity", "thirdBodySphericalHarmonicGravity", "thirdBodyMutualSphericalHarmonicGravity", "thrust", "relativisticCorrection", "empirical".
• string bodyExertingAcceleration (mandatory). Name of the body exerting the acceleration.

Spherical Harmonic Acceleration Terms Dependent Variable

• string bodyExertingAcceleration (mandatory). Name of body exerting acceleration.
• number[ ][ ] componentIndices (mandatory). List of indices for degree/order that is to be saved. For instance, when saving the degree/order terms 0/0, 2/0 and 2/2, use "componentIndices": [ [ 0, 0 ], [ 2, 0 ], [ 2, 2 ] ]

Variation of Spherical Harmonic Acceleration Dependent Variable

• string deformationType (mandatory). Variable defining the type of gravity field variation. Possible values: "basicSolidBody", "tabulatedVariation".
• string identifier (optional). Variable denoting the identifier for gravity field variation.

Variation of Spherical Harmonic Acceleration Terms Dependent Variable

• string deformationType (mandatory). Variable defining the type of gravity field variation. Possible values: "basicSolidBody", "tabulatedVariation".
• string identifier (optional). Variable denoting the identifier for gravity field variation.
• number maximumDegree (mandatory). Value of the maximum degree of the spherical harmonics model, for which an acceleration has to be saved.
• number maximumOrder (mandatory). Value of the maximum order of the spherical harmonics model, for which an acceleration has to be saved.

Torque Dependent Variable

• string torqueType (mandatory). Possible values: "undefined", "secondOrderGravitational", "aerodynamic".
• string bodyExertingTorque (mandatory). Name of the body exerting the torque.

Intermediate Aerodynamic Rotation Matrix Dependent Variable

• string baseFrame (mandatory). Identifier of the target frame.
• string targetFrame (mandatory). Identifier of the base frame.

Relative Body Aerodynamic Orientation Angle Variable

• string angle (mandatory). Aerodynamic reference frame angle. Possible values: "latitude", "longitude", "heading", "flightPath", "angleOfAttach", "sideslip", "bank".
• number lowerLimit (mandatory if upperLimit undefined). The propagation will terminate if the value of variable is smaller than this value (or larger than upperLimit if defined).

• number upperLimit (mandatory if lowerLimit undefined). The propagation will terminate if the value of variable is larger than this value (or smaller than lowerLimit if defined).

Multiple Termination Condition

• object[ ] anyOf (mandatory if allOf undefined). Object containing a list of single and/or multiple termination conditions. The propagation will terminate if any of the conditions is met.
• object[ ] allOf (mandatory if anyOf undefined). Object containing a list of single and/or multiple termination conditions. The propagation will terminate only if all the conditions are met.
• object[ ] export (optional). Used to define the export settings. Each element represents an output file to which results will be saved.

Export

• path file (mandatory). Path to the file in which to save the results. The file will contain a matrix in which each row corresponds to an integration step and each column to the values of the variables in the same order as provided in variables.

• object[ ] variables (mandatory). List of variables that are going to be saved.

Variable

• string type (optional). Possible values: "independent", "cpuTime", "state", "dependent". Default value: "dependent".

Dependent Variable

• string dependentVariableType (mandatory). Possible values: "machNumber", "altitude", "airspeed", "localDensity", "localTemperature", "stagnationPointHeatFlux", "localDynamicPressure", "localAerodynamicHeatRate", "relativeSpeed", "relativePosition", "relativeDistance", "relativeVelocity", "radiationPressure", "totalAccelerationNorm", "accelerationNorm", "totalAcceleration", "acceleration", "sphericalHarmonicsAccelerationTerms", "aerodynamicForceCoefficients", "aerodynamicMomentCoefficients", "rotationMatrixToBodyFixedFrame", "intermediateAerodynamicRotationMatrix", "relativeBodyAerodynamicOrientationAngle", "bodyFixedAirspeedBasedVelocity", "totalAerodynamicGLoad", "geodeticLatitude", "controlSurfaceDeflection", "totalMassRates", "lvlhToInertialFrameRotation", "periapsisAltitude", "totalTorqueNorm", "torqueNorm", "totalTorque", "torque", "bodyFixedGroundspeedBasedVelocity", "bodyFixedRelativeCartesianPosition", "bodyFixedRelativeSphericalPosition", "keplerElements", "modifiedEquinoctialElements".
• string body (mandatory). Name of the associated body. For some variables, name of the body undergoing the acceleration or torque.
• string relativeToBody (optional). For some variables, name of the body with respect to which the variable value should be computed (e.g. relative position or altitude w.r.t. Earth).
• number componentIndex (optional). For vectorial variables, the index (starting from 0) to be accessed. If not specified, the whole vector is used.

Acceleration Dependent Variable

• string accelerationType (mandatory). Possible values: "undefined", "pointMassGravity", "aerodynamic", "cannonBallRadiationPressure", "sphericalHarmonicGravity", "mutualSphericalHarmonicGravity", "thirdBodyPointMassGravity", "thirdBodySphericalHarmonicGravity", "thirdBodyMutualSphericalHarmonicGravity", "thrust", "relativisticCorrection", "empirical".
• string bodyExertingAcceleration (mandatory). Name of the body exerting the acceleration.

Spherical Harmonic Acceleration Terms Dependent Variable

• string bodyExertingAcceleration (mandatory). Name of body exerting acceleration.
• number[ ][ ] componentIndices (mandatory). List of indices for degree/order that is to be saved. For instance, when saving the degree/order terms 0/0, 2/0 and 2/2, use "componentIndices": [ [ 0, 0 ], [ 2, 0 ], [ 2, 2 ] ]

Variation of Spherical Harmonic Acceleration Dependent Variable

• string deformationType (mandatory). Variable defining the type of gravity field variation. Possible values: "basicSolidBody", "tabulatedVariation".
• string identifier (optional). Variable denoting the identifier for gravity field variation.

Variation of Spherical Harmonic Acceleration Terms Dependent Variable

• string deformationType (mandatory). Variable defining the type of gravity field variation. Possible values: "basicSolidBody", "tabulatedVariation".
• string identifier (optional). Variable denoting the identifier for gravity field variation.
• number maximumDegree (mandatory). Value of the maximum degree of the spherical harmonics model, for which an acceleration has to be saved.
• number maximumOrder (mandatory). Value of the maximum order of the spherical harmonics model, for which an acceleration has to be saved.

Torque Dependent Variable

• string torqueType (mandatory). Possible values: "undefined", "secondOrderGravitational", "aerodynamic".
• string bodyExertingTorque (mandatory). Name of the body exerting the torque.

Intermediate Aerodynamic Rotation Matrix Dependent Variable

• string baseFrame (mandatory). Identifier of the target frame.
• string targetFrame (mandatory). Identifier of the base frame.

Relative Body Aerodynamic Orientation Angle Variable

• string angle (mandatory). Aerodynamic reference frame angle. Possible values: "latitude", "longitude", "heading", "flightPath", "angleOfAttach", "sideslip", "bank".
• string header (optional). Header to be included in the first line of the output file.

• boolean epochsInFirstColumn (optional). Whether to include the epochs in the first column of the results matrix. Default value: true.

• boolean onlyInitialStep (optional). Whether to save only the values corresponding to the initial integration step. Does not override onlyFinalStep. Default value: false.

• boolean onlyFinalStep (optional). Whether to save only the values corresponding to the final integration step. Does not override onlyInitialStep. Default value: false.

• number numericalPrecision (optional). Maximum number of significant digits to be used for decimal numbers. Default value: 15.

• number printVariableIndicesToTerminal (optional). Boolean that defines whether indices at which in output vector, at which variables are saved, will be printed to the terminal Default value: false.

• object options (optional). Used to configure options for the application.

Options

• boolean notifyOnPropagationStart (optional). Whether a message should be printed when the propagation starts. Default value: false.
• boolean notifyOnPropagationTermination (optional). Whether a message should be printed when the propagation is terminated with no errors. Default value: false.
• number printInterval (optional). Period of time (if any) after which the current state should be outputted to the command-line.
• boolean defaultValueUsedForMissingKey (optional). Behaviour of the JSON validator when a default value is used for a missing optional key. Possible values: continueSilently, printWarning, throwError. Default value: continueSilently.
• boolean unusedKey (optional). Behaviour of the JSON validator when the propagation starts and there are keys defined in the JSON file that have not been used. Possible values: continueSilently, printWarning, throwError. Default value: printWarning.
• path fullSettingsFile (optional). Path where the file (if any) containing the full settings actually used in the propagation, including all the used default values, should be saved.
• boolean tagOutputFilesIfPropagationFails (optional). Whether the generated output files should contain the header FAILURE if the propagation terminates before reaching the termination condition. Default value: true.