Class OemWriter

All Implemented Interfaces:
MessageWriter<OdmHeader,OemSegment,Oem>

public class OemWriter extends AbstractMessageWriter<OdmHeader,OemSegment,Oem>
A writer for Orbit Ephemeris Message (OEM) files.

Metadata

The OEM metadata used by this writer is described in the following table. 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: OdmMetadataKey.OBJECT_NAME, and CommonMetadataKey.OBJECT_ID. The usage column in the table indicates where the metadata item is used, either in the OEM header or in the metadata section at the start of an OEM ephemeris segment.

OEM metadata
Keyword Usage Obligatory Default Reference
CCSDS_OEM_VERS Header Yes Oem.FORMAT_VERSION_KEY Table 5-2
COMMENT Header No Table 5-2
HeaderKey.CREATION_DATE Header Yes Now Table 5.2, 6.5.9
HeaderKey.ORIGINATOR Header Yes AbstractMessageWriter.DEFAULT_ORIGINATOR Table 5-2
OdmMetadataKey.OBJECT_NAME Segment Yes Table 5-3
CommonMetadataKey.OBJECT_ID Segment Yes Table 5-3
CommonMetadataKey.CENTER_NAME Segment Yes Table 5-3
CommonMetadataKey.REF_FRAME Segment Yes Table 5-3, Annex A
CommonMetadataKey.REF_FRAME_EPOCH Segment No Table 5-3, 6.5.9
MetadataKey.TIME_SYSTEM Segment Yes
OemMetadataKey.START_TIME Segment Yes Table 5-3, 6.5.9
OemMetadataKey.USEABLE_START_TIME Segment No Table 5-3, 6.5.9
OemMetadataKey.STOP_TIME Segment Yes Table 5-3, 6.5.9
OemMetadataKey.USEABLE_STOP_TIME Segment No Table 5-3, 6.5.9
OemMetadataKey.INTERPOLATION Segment No Table 5-3
OemMetadataKey.INTERPOLATION_DEGREE Segment No Table 5-3

The MetadataKey.TIME_SYSTEM must be constant for the whole file and is used to interpret all dates except HeaderKey.CREATION_DATE which is always in UTC. The guessing algorithm is not guaranteed to work so it is recommended to provide values for CommonMetadataKey.CENTER_NAME and MetadataKey.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:
9.0
Author:
Hank Grabowski, Evan Ward
See Also:
  • Field Details

    • CCSDS_OEM_VERS

      public static final double CCSDS_OEM_VERS
      Version number implemented.
      See Also:
    • DEFAULT_FILE_NAME

      public static final String DEFAULT_FILE_NAME
      Default file name for error messages.
      See Also:
    • KVN_PADDING_WIDTH

      public static final int KVN_PADDING_WIDTH
      Padding width for aligning the '=' sign.
      See Also:
  • Constructor Details

    • OemWriter

      public OemWriter(IERSConventions conventions, DataContext dataContext, AbsoluteDate missionReferenceDate)
      Constructor used to create a new OEM writer configured with the necessary parameters to successfully fill in all required fields that aren't part of a standard object.

      If the mandatory header entries are not present (or if header is null), built-in defaults will be used

      The writer is built from the complete header and partial metadata. The template metadata is used to initialize and independent local copy, that will be updated as new segments are written (with at least the segment start and stop will change, but some other parts may change too). The template argument itself is not changed.

      Calling this constructor directly is not recommended. Users should rather use writerBuilder.buildOemWriter().

      Parameters:
      conventions - IERS Conventions
      dataContext - used to retrieve frames, time scales, etc.
      missionReferenceDate - reference date for Mission Elapsed Time or Mission Relative Time time systems
      Since:
      11.0
      See Also:
  • Method Details