Class AemWriter
- java.lang.Object
-
- org.orekit.files.ccsds.utils.generation.AbstractMessageWriter<AdmHeader,AemSegment,Aem>
-
- org.orekit.files.ccsds.ndm.adm.aem.AemWriter
-
- All Implemented Interfaces:
MessageWriter<AdmHeader,AemSegment,Aem>
public class AemWriter extends AbstractMessageWriter<AdmHeader,AemSegment,Aem>
A writer for Attitude Ephemeris Messsage (AEM) files.Metadata
The AEM header and metadata used by this writer are described in the following tables. Many metadata items are optional or have default values so they do not need to be specified. At a minimum the user must supply those values that are required and for which no default exits:
AdmMetadataKey.OBJECT_NAME
,AdmCommonMetadataKey.OBJECT_ID
,AemMetadataKey.START_TIME
andAemMetadataKey.STOP_TIME
. The usage column in the table indicates where the metadata item is used, either in the AEM header or in the metadata section at the start of an AEM attitude segment.The AEM header for the whole AEM file is set when calling
AbstractMessageWriter.writeHeader(Generator, Header)
, the entries are defined in table 4-2 of the ADM standard.AEM metadata Keyword Mandatory Default in Orekit CCSDS_AEM_VERS
Yes CCSDS_AEM_VERS
HeaderKey.COMMENT
No empty HeaderKey.CREATION_DATE
Yes Now
HeaderKey.ORIGINATOR
Yes AbstractMessageWriter.DEFAULT_ORIGINATOR
The AEM metadata for the AEM file is set when calling
writeSegmentContent(Generator, double, AemSegment)
, the entries are defined in tables 4-3, 4-4 and annex A of the ADM standard.AEM metadata Keyword Mandatory Default in Orekit MetadataKey.COMMENT
No empty AdmMetadataKey.OBJECT_NAME
Yes AdmCommonMetadataKey.OBJECT_ID
Yes AdmMetadataKey.CENTER_NAME
No AemMetadataKey.REF_FRAME_A
Yes AemMetadataKey.REF_FRAME_B
Yes AemMetadataKey.ATTITUDE_DIR
Yes MetadataKey.TIME_SYSTEM
Yes AemMetadataKey.START_TIME
Yes default to propagation start time (for forward propagation) AemMetadataKey.USEABLE_START_TIME
No AemMetadataKey.USEABLE_STOP_TIME
No AemMetadataKey.STOP_TIME
Yes default to propagation target time (for forward propagation) AemMetadataKey.ATTITUDE_TYPE
Yes QUATERNION/DERIVATIVE
AemMetadataKey.QUATERNION_TYPE
No FIRST
AemMetadataKey.EULER_ROT_SEQ
No AemMetadataKey.RATE_FRAME
No REF_FRAME_B
AemMetadataKey.INTERPOLATION_METHOD
No AemMetadataKey.INTERPOLATION_DEGREE
No always set in AemMetadata
The
MetadataKey.TIME_SYSTEM
must be constant for the whole file and is used to interpret all dates exceptHeaderKey.CREATION_DATE
which is always inUTC
. The guessing algorithm is not guaranteed to work so it is recommended to provide values forAdmMetadataKey.CENTER_NAME
andMetadataKey.TIME_SYSTEM
to avoid any bugs associated with incorrect guesses.Standardized values for
MetadataKey.TIME_SYSTEM
are GMST, GPS, MET, MRT, SCLK, TAI, TCB, TDB, TT, UT1, and UTC. Standardized values for reference frames are EME2000, GTOD, ICRF, ITRF2000, ITRF-93, ITRF-97, LVLH, RTN, QSW, TOD, TNW, NTW and RSW. Additionally ITRF followed by a four digit year may be used.- Since:
- 10.2
- Author:
- Bryan Cazabonne
-
-
Field Summary
Fields Modifier and Type Field Description static double
CCSDS_AEM_VERS
Version number implemented.static int
KVN_PADDING_WIDTH
Padding width for aligning the '=' sign.-
Fields inherited from class org.orekit.files.ccsds.utils.generation.AbstractMessageWriter
DEFAULT_ORIGINATOR
-
-
Constructor Summary
Constructors Constructor Description AemWriter(IERSConventions conventions, DataContext dataContext, AbsoluteDate missionReferenceDate)
Constructor used to create a new AEM writer configured with the necessary parameters to successfully fill in all required fields that aren't part of a standard object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
writeSegmentContent(Generator generator, double formatVersion, AemSegment segment)
Write one segment content (without XML wrapping).-
Methods inherited from class org.orekit.files.ccsds.utils.generation.AbstractMessageWriter
getContext, getDefaultVersion, getFormatVersionKey, getRoot, getTimeConverter, getVersion, setContext, writeFooter, writeHeader, writeSegment
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.files.ccsds.utils.generation.MessageWriter
writeMessage
-
-
-
-
Field Detail
-
CCSDS_AEM_VERS
public static final double CCSDS_AEM_VERS
Version number implemented.- See Also:
- Constant Field Values
-
KVN_PADDING_WIDTH
public static final int KVN_PADDING_WIDTH
Padding width for aligning the '=' sign.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
AemWriter
public AemWriter(IERSConventions conventions, DataContext dataContext, AbsoluteDate missionReferenceDate)
Constructor used to create a new AEM writer configured with the necessary parameters to successfully fill in all required fields that aren't part of a standard object.- Parameters:
conventions
- IERS ConventionsdataContext
- used to retrieve frames, time scales, etc.missionReferenceDate
- reference date for Mission Elapsed Time or Mission Relative Time time systems- Since:
- 11.0
-
-
Method Detail
-
writeSegmentContent
protected void writeSegmentContent(Generator generator, double formatVersion, AemSegment segment) throws IOException
Write one segment content (without XML wrapping).- Specified by:
writeSegmentContent
in classAbstractMessageWriter<AdmHeader,AemSegment,Aem>
- Parameters:
generator
- generator to use for producing outputformatVersion
- format version to usesegment
- segment to write- Throws:
IOException
- if any buffer writing operations fails
-
-