pcl::SerializableEphemerisObjectData Struct Reference

A set of Chebyshev polynomial expansions and associated ancillary data for ephemeris serialization. More...

#include <EphemerisFile.h>

Public Member Functions

 SerializableEphemerisObjectData (const IsoString &id, const IsoString &origin, const String &name=String(), const String &desc=String())
 SerializableEphemerisObjectData (const SerializableEphemerisObjectData &)=default
 SerializableEphemerisObjectData (SerializableEphemerisObjectData &&)=default
SerializableEphemerisObjectDataoperator= (const SerializableEphemerisObjectData &)=default
SerializableEphemerisObjectDataoperator= (SerializableEphemerisObjectData &&)=default

Public Attributes

SerializableEphemerisDataList data [2]
String description
IsoString objectId
String objectName
IsoString originId

Detailed Description

This structure associates a unique pair of object and origin identifiers, an optional object name, an optional descriptive text, and one or two ordered sequences of Chebyshev polynomial expansions for calculation of ephemerides within a prescribed time span. These data are suitable for generation of an ephemeris file in XEPH format with the EphemerisFile::Serialize() static member function.

The first sequence of Chebyshev polynomial expansions is mandatory for calculation of ephemeris function values (typically, the components of a position vector as a function of time). An additional sequence of expansions for the first derivative (typically, the components of a velocity vector) is optional. Derivative expansions should be used when the velocity of an object is known very accurately upon ephemeris generation, and this high accuracy must be preserved.

All ephemeris data stored in XEPH files must be referred to the International Celestial Reference System (ICRS/J2000.0).

See also

Definition at line 308 of file EphemerisFile.h.

Constructor & Destructor Documentation

◆ SerializableEphemerisObjectData() [1/3]

pcl::SerializableEphemerisObjectData::SerializableEphemerisObjectData ( const IsoString id,
const IsoString origin,
const String name = String(),
const String desc = String() 

Memberwise constructor.

Definition at line 396 of file EphemerisFile.h.

◆ SerializableEphemerisObjectData() [2/3]

pcl::SerializableEphemerisObjectData::SerializableEphemerisObjectData ( const SerializableEphemerisObjectData )

Copy constructor.

◆ SerializableEphemerisObjectData() [3/3]

pcl::SerializableEphemerisObjectData::SerializableEphemerisObjectData ( SerializableEphemerisObjectData &&  )

Move constructor.

Member Function Documentation

◆ operator=() [1/2]

SerializableEphemerisObjectData& pcl::SerializableEphemerisObjectData::operator= ( const SerializableEphemerisObjectData )

Copy assignment operator. Returns a reference to this object.

◆ operator=() [2/2]

SerializableEphemerisObjectData& pcl::SerializableEphemerisObjectData::operator= ( SerializableEphemerisObjectData &&  )

Move assignment operator. Returns a reference to this object.

Member Data Documentation

◆ data

SerializableEphemerisDataList pcl::SerializableEphemerisObjectData::data[2]

Two dynamic lists of Chebyshev polynomial expansions. The first list is mandatory for approximation of function values (typically, the components of a position vector). The second list is optional for approximation of first derivatives (typically, the components of a velocity vector). Both sequences must cover the entire ephemeris time span with arbitrary subspans in ascending time order without any gaps.

Definition at line 362 of file EphemerisFile.h.

◆ description

String pcl::SerializableEphemerisObjectData::description

Optional information about the object and/or the ephemeris data being serialized.

Definition at line 352 of file EphemerisFile.h.

◆ objectId

IsoString pcl::SerializableEphemerisObjectData::objectId

Unique identifier of the object or item for which ephemeris data have been generated. This should be a short string to uniquely identify the object in the context of the ephemeris file being serialized. For example, standard XEPH files serializing JPL DE/LE ephemerides use a two/three letter convention for object identifiers: 'Me', 'Ve', 'EMB', 'Ea', 'Ma', etc, respectively for Mercury, Venus, Earth-Moon barycenter, Earth, Mars, etc. Object identifiers are considered as case-sensitive in XEPH files.

Definition at line 320 of file EphemerisFile.h.

◆ objectName

String pcl::SerializableEphemerisObjectData::objectName

Optional Name of the object or item for which ephemeris data have been generated. This can be an arbitrary string, such as 'Saturn', 'Iris', or 'C/1996 B2'. However, bear in mind that ephemeris data can be accessed both by object identifiers and object names, so there should be no duplicate names. Object names are considered as case-insensitive in XEPH files, so all of 'Jupiter', 'jupiter' and 'JUPITER' are equivalent.

Definition at line 346 of file EphemerisFile.h.

◆ originId

IsoString pcl::SerializableEphemerisObjectData::originId

Identifier of the origin of coordinates (case-sensitive). This can be the unique identifier of a solar system object, or the identifier of an arbitrary object or location, which will be treated as implementation-specific, that is, specific to the data being serialized and to the procedures employed to generate them.

For example, if the ephemeris data being serialized are geocentric, this member should be "Ea", which is the unique identifier of the Earth's center in standard fundamental ephemerides files. Similarly, if the ephemerides are heliocentric, this member should be "Sn". If the ephemeris data are with respect to the solar system barycenter, this member must be "SSB", also for coherence with fundamental ephemerides.

Definition at line 336 of file EphemerisFile.h.

The documentation for this struct was generated from the following file: