public class StreamingOcmWriter extends Object implements AutoCloseable
Each instance corresponds to a single Orbit Comprehensive Message.
A new OCM ephemeris trajectory state history block is started by calling
newBlock()
.
This writer is intended to write only trajectory state history blocks.
It does not writes physical properties, covariance data, maneuver data,
perturbations parameters, orbit determination or user-defined parameters.
If these blocks are needed, then OcmWriter
must be
used as it handles all OCM data blocks.
The trajectory blocks metadata identifiers (TRAJ_ID
,
TRAJ_PREV_ID
, TRAJ_NEXT_ID
) are updated automatically
using TrajectoryStateHistoryMetadata.incrementTrajID(String)
,
so users should generally only set TrajectoryStateHistoryMetadata.setTrajID(String)
in the template.
The blocks returned by this class can be used as step handlers for a Propagator
.
Propagator propagator = ...; // pre-configured propagator
OCMWriter ocmWriter = ...; // pre-configured writer
try (Generator out = ...; // set-up output stream
StreamingOcmWriter sw = new StreamingOcmWriter(out, ocmWriter, header, metadata, template)) { // set-up streaming writer
// write block 1
propagator.getMultiplexer().add(step, sw.newBlock());
propagator.propagate(startDate1, stopDate1);
...
// write block n
propagator.getMultiplexer().clear();
propagator.getMultiplexer().add(step, sw.newBlock());
propagator.propagate(startDateN, stopDateN);
}
OcmWriter
,
EphemerisOcmWriter
Modifier and Type | Class and Description |
---|---|
class |
StreamingOcmWriter.BlockWriter
A writer for a trajectory state history block of an OCM.
|
Constructor and Description |
---|
StreamingOcmWriter(Generator generator,
OcmWriter writer,
OdmHeader header,
OcmMetadata metadata,
TrajectoryStateHistoryMetadata template)
Construct a writer that for each segment uses the reference frame of the
first state's attitude.
|
StreamingOcmWriter(Generator generator,
OcmWriter writer,
OdmHeader header,
OcmMetadata metadata,
TrajectoryStateHistoryMetadata template,
boolean useAttitudeFrame)
Simple constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
close() |
StreamingOcmWriter.BlockWriter |
newBlock()
Create a writer for a new OCM trajectory state history block.
|
public StreamingOcmWriter(Generator generator, OcmWriter writer, OdmHeader header, OcmMetadata metadata, TrajectoryStateHistoryMetadata template)
generator
- generator for OCM outputwriter
- writer for the OCM message formatheader
- file header (may be null)metadata
- file metadatatemplate
- template for trajectory metadataStreamingOcmWriter(Generator, OcmWriter, OdmHeader, OcmMetadata, TrajectoryStateHistoryMetadata, boolean)
public StreamingOcmWriter(Generator generator, OcmWriter writer, OdmHeader header, OcmMetadata metadata, TrajectoryStateHistoryMetadata template, boolean useAttitudeFrame)
generator
- generator for OCM outputwriter
- writer for the OCM message formatheader
- file header (may be null)metadata
- file metadatatemplate
- template for trajectory metadatauseAttitudeFrame
- if true
then the reference frame for
each segment is taken from the first state's
attitude. Otherwise the template
's
reference frame is used, TrajectoryStateHistoryMetadata.getTrajReferenceFrame()
.public StreamingOcmWriter.BlockWriter newBlock()
The returned writer can only write a single trajectory state history block in an OCM. This method must be called to create a writer for each trajectory state history block.
public void close() throws IOException
close
in interface AutoCloseable
IOException
Copyright © 2002-2023 CS GROUP. All rights reserved.