EphemerisFile

Lead: Rizwan Qureshi

Developer: Linda O. Jun

Tester: John M. Bez

 

 

 

Explore

Known Bugs

JIRA Bugs:

Failing Tests

Other Findings

Requirements

Interface/Functional Spec

Overview

Description

Fields

GUI

Remarks

Examples

Test Procedures

Assumptions

File Naming Conventions

Nominal Tests

Edge/Corner/Miscellaneous Tests

Unique Validation Tests

Unique Mode Tests

 

 

 

Explore

Known Bugs

JIRA Bugs:

I did a bug search in JIRA by selecting EphemerisFile (FRR-31) under components and found following P1 and P2 open bugs/issues for this feature:

      GMT-3319 Make EphemerisFile report look pretty. See Description below for details:

 

      GMT-3315 Changing EpochFormat field causes Initial Epoch and Final Epoch Fields' drop-down options of 'initialSpacecraftEpoch' and 'FinalSpacecraftEpoch' to disappear

 

      GMT-3310 Change EphemerisFile's StepSize from default IntegratorStep to user-defined value, run mission, revert back to Default StepSize, run mission, but Ephemeris report does not gets generated at default integtration steps anymore.

 

      GMT-3162 Epoch Format in Ephemeris File panel missing TDB formats

 

      GMT-2916 Output Ephem Panel - Interpolation Order does not seem to do anything

      GMT-2434 Cannot access new Ephemeris file in WordPad while GMAT is up

      GMT-2349 SPK ephemeris file does not contain the correct initial epoch

      GMT-2059 CCSDS-OEM file allowing interpolation degree greater than number of steps in segment

 

 

Failing Tests

Tests failing in the nightly regression reports related to this feature.

 

Ephem_GMAT_CCSDS_OEM_60sec_target (script)

Ephem_GMAT_Mars1_L7_G_EarthMJ2000Eq (script)

Other Findings

 

Issue 1: Issue with StepSize field. When you change Step Size from default IntegratorSteps to user-defined value, then run the mission and check out the generated EphemerisFile. It is generated at the step size that you entered. Now go back to EpemerisFile and change step size back to IntegratorStep and re-run the mission, you will see that new EphemerisFile is still being generated at old step size. I created a bug GMT-3310 in JIRA.

 

Recommendation:  Fix (Fix by: R2013a, Priority: P1    GMT-3310 was created in JIRA that addresses this issue. Consult GMT-3310 for more details.

 

 

Issue 2: Issue with EpochFormat field. Open EphemerisFile and change EpochFromat field to any epoch. As soon as you do this, you will notice that ‘InitialSpacecraftEpoch’ and ‘FinalSpacecraftEpoch’ have disappeared from InitialEpoch and FinalEpoch fields. They are still available in drop-down menu but ‘InitialSpacecraftEpoch’ and ‘FinalSpacecraftEpoch’ should not disappear AT ALL no matter what epoch formats the user selects in EpochFormat field. I created a bug GMT-3315 in JIRA.

 

Recommendation:  Fix (Fix by: R2013a, Priority: P1 or P2.  GMT-3315 was created in JIRA that addresses this issue. Pleae consult GMT-3315 for more details.  Verified and Closed.

 

 

Issue 3: This issue has to do with STYLE of the generated EphemerisFile report. When the EphmerisFile is generated, notice the Header information of the generated file. The headers should be “Right justifed”. Please consult GMT-3319 to see an actual example. of what I mean. I have included the recommended format example in the Description section.

 

Recommendation:  Fix (Fix by: R2013a, Priority: P2.  GMT-3319 was created in JIRA that addresses this issue. Please consult GMT-3319 for more details. Verified and Closed.

Status:

Issue 4: System should have thrown in an error message and stop interpolation since not enough  raw data is available to support at requested interpolation order.

The system should have throw an error message and stop interpolation since there is not enough raw data available to support the requested interpolation order of 7. However this does not happen and script runs to completion and ephemeris file is generated. Since there is not enough data to perform interpolation at the requested order of 7, it seems to me that there are issues and an error is not thrown when it should be. I created GMT-3355 to address this issue.

 

Recommendation:  Fix (Fix by: R2013a, Priority: P1.  GMT-3355 was created in JIRA that addresses this issue. Pleae consult GMT-3355 for more details.

 

Requirements

 

 

 

 

 

 

FRR-31.1.0

The system shall allow the user to create and configure an ephemeris file object.

FRR-31.2.0

The system shall output orbit ephemeris using the following file formats:

FRR-31.2.1

1)                CCSDS Orbital Ephemeris Message as defined in CCSDS publication  

           502.0-B-2

FRR-31.2.2

2)                SPK

FRR-31.4.0

The CCSDS Orbital Ephemeris Message format shall support the following user options:

FRR-31.4.1

1)    State types:

FRR-31.4.1.1

1.  Cartesian state

FRR-31.4.2

2)    Time in UTC

FRR-31.4.3

3)    Coordinate systems from CCSDS publication 502.0-B-2:

FRR-31.4.3.1

1.      EME2000 (which is EarthMJ2000Eq in GMAT)

FRR-31.4.3.2

2.      EarthMJ2000Ec

FRR-31.4.3.3

3.      EarthFixed

FRR-31.4.3.4

4.      ITRF

FRR-31.4.3.5

5.      ICRF

FRR-31.4.3.6

6.      TOD

FRR-31.4.4

4)     Interpolation methods

FRR-31.4.4.1

1.     Lagrange with user specified order.

FRR-31.4.5

5)     Step size options:

FRR-31.4.5.1

1.      Integration step size (use raw integrator steps)

FRR-31.4.5.2

2.      Fixed step size provided by user

FRR-31.5.0

The SPK orbital ephemeris file output shall support the following user options:

FRR-31.5.1

1)      State types:

FRR-31.5.1.1

1.      Cartesian state

FRR-31.5.2

2)     Time in TDB

FRR-31.5.3

3)    Coordinate systems:

FRR-31.5.3.1

1.      EME2000 (which is EarthMJ2000Eq in GMAT)

FRR-31.5.3.2

2.      EarthMJ2000Ec

FRR-31.5.3.3

3.      EarthFixed

FRR-31.5.3.4

4.      ITRF

FRR-31.5.3.5

5.      ICRF

FRR-31.5.3.6

6.      TOD

FRR-31.5.4

4)                Interpolation methods

FRR-31.5.4.1

1. Hermite with user specified order as an odd integer

FRR-31.5.5

5)                Step size options:

FRR-31.5.5.1

1.      Integration step size (use raw integrator steps)

FRR-31.7.0

The user shall be able to specify the time span of an ephemeris file using the following methods:

FRR-31.7.1

1)                User provided start and stop time

FRR-31.7.2

2)                All integration steps performed on the object

FRR-31.8.0

The system shall separately interpolate ephemeris segments bounded by the following discrete events:

FRR-31.8.1

1)                Impulsive maneuver

FRR-31.8.2

2)                Dynamics model change ( change in propagator or finite burn)

FRR-31.8.3

3)                Assignment command

FRR-31.9

The system shall throw an error message and stop interpolation if there is not enough data available to support the requested interpolation type and order

FRR-31.10

The system shall allow the user to optionally calculate/write or not calculate/write an ephemeris that has been created and configured.

FRR-31.11

The system shall only write the ephemeris for the solution of iterative processes such as differential correction and optimization

FRR-31.12

The system shall throw an error message and stop interpolation if the data points provided to the interpolator are not monotonic.

FRR-31.13

The system shall allow the user to apply the Toggle command described in FRC-16 to the Ephemeris File object.

FRR-31.14

The system shall write the last data point to an ephemeris segment using the exact ephemeris values when interpolating at a requested time step and the ephemeris interval is not an integer multiple of the requested interpolation step.

FRR-31.15

The System shall allow the user to maximize the EphemerisFile window.

 

FRR-31.16

The System shall allow the user to control the size of EphemerisFile display window.

FRR-31.17

The System shall allow the user to be able to select which EphemerisFile window to display first. (Tests RelativeZOrder field)

 

FRR-31.18

The System shall allow the user to pan the EphemerisFile display window in any direction. (Tests UpperLeft field).

 

FRR-31.19

The System shall allow the user to name the EphemerisFile and save it in any user-specified location.

FRR-31.20.0

The System shall allow the user to define time span of an ephemeris file by selecting following time systems for EpochFormat field:

FRR-31.20.1

1.        UTC

FRR-31.20.2

2.        TAI

FRR-31.20.3

3.        TT

FRR-31.20.4

4.        A1

FRR-31.20.5

5.        TDB

 

 

 

 

Interface/Functional Spec

Overview

 

Generate spacecraft’s ephemeris data.

Description

 

EphemerisFile is a user-defined resource that generates spacecraft’s ephemeris data in a report format. You can generate spacecraft’s ephemeris data in any of the user-defined coordinate frames. GMAT allows you to output ephemeris data in either CCSDS or SPK file formats. See the Remarks section for more details. EphemerisFile resource can be configured to generate ephemeris data at default integration steps or by entering user-selected step sizes.

 

GMAT allows you to generate any number of ephemeris data files by creating multiple EphermisFile resources. Spacecraft’s ephemeris data is always provided in UTC epoch format. An EphemerisFile resource can be created using either the GUI or script interface. GMAT also provides the option of when to write and stop writing ephemeris data to a text file through the Toggle On/Off commands. See the Remarks section below for detailed discussion of the interaction between EphemerisFile resource and Toggle command. 

 

See Also : Coordinate Systems resource and Toggle command.

 

Fields

 

See the User Interface Spec spreadsheet for reference information for fields.  This section is usually empty other than the hyperlink.

GUI

 

The figure below shows the default settings for the EphemerisFile resource:

                     

Figure 1 : Default Name and Settings for the EphemerisFile Object Dialog Box

GMAT allows you to modify InitialEpoch, FinalEpoch and StepSize fields of EphemerisFile resource. Instead of always generating the ephemeris file at default time span settings of ‘InitialSpacecraftEpoch’ and ‘FinalSpacecraftEpoch’, you can define your own initial and final epochs. Similarly, instead of using the default ‘IntegratorSteps’ setting for StepSize field, you can generate the ephemeris file at the step size of your choice.

 

The GUI example below, shows ephemeris file which is generated from initial epoch of ‘01 Jan 2000 14:00:00.000’ to final epoch of ‘01 Jan 2000 20:00:00.000’ while using non-default step size of 300 seconds:

 

 

                    

Figure 2 : Customized Step Size and Epochs Settings for the EphemerisFile

 

 

 

 

 

 

 

 

Remarks

 

Behavior of Coordinate System Field for CCSDS File Format

 

If the selected CoordinateSystem uses MJ2000Eq axes, the CCSDS ephemeris file contains “EME2000” for the REF_FRAME according to CCSDS convention. By CCSDS requirements, non-standard axes names are allowed when documented in an ICD. The CoordinateSystems specifications document in the user's guide is the ICD for all axes supported by GMAT. Also if you create a new coordinate system whose origin is Luna, then the CCSDS ephemeris file contains “Moon” for the CENTER_NAME.

 

There is one important difference between GMAT and IAU conventions. By IAU convention, there is no name for the IAU2000 axes that is independent of the origin. GCRF is coordinate system centered at earth with IAU2000 axes, and ICRF is a coordinate system centered at the solar system barycenter with IAU2000 axes. We have chosen to name the IAU2000 axes ICRF regardless of the origin.  Please refer to CoordinateSystems specifications document to read more about built-in coordinate systems and description of Axes types that GMAT supports. 

 

Behavior of Ephemeris File during Discontinuous & Iterative Processes

 

When generating an ephemeris file for a mission sequence, GMAT separately interpolates ephemeris segments that are bounded by discontinuous or discrete mission events. Discontinuous or discrete mission sequence events can range from impulsive or finite-burn maneuvers, changes in dynamics models or when using assignment commands. Furthermore, when a mission sequence employs iterative processes such as differential correction or optimization, GMAT only writes the ephemeris for the final solution from the iterative processes. See the Examples section below to see how an ephemeris file is generated during a discontinuous event such as an impulsive burn and iterative process like differential correction.

 

Version 1 of CCSDS Orbit Data Messages (ODMs) document used to require that the ephemeris be generated in increasing time order and only going forward. However version 2 of CCSDS ODM document now allows for ephemeris file to be generated backwards as well. Currently in GMAT, when you propagate a spacecraft backwards in time, then the ephemeris is also generated backwards. 

 

Behavior of Ephemeris File When It Does Not Meet CCSDS File Format Requirements

 

When an ephemeris file is generated, it needs to follow the Recommended Standard for ODMs that has been prepared by the CCSDS. The set of orbit data messages described in the Recommended Standard is the baseline concept of trajectory representation in data interchange applications that are cross-supported between Agencies of the CCSDS. CCSDS-ODM Recommended Standard documents establishes a common framework and provides a common basis for the interchange of orbit data.

 

Currently the ephemeris file that is generated by GMAT meets most of the recommended standards that are prescribed by the CCSDS. However whenever there is a case when GMAT’s ephemeris violates CCSDS file format requirements, then the generated ephemeris file will display a warning in ephemeris file’s Header section. More specifically, this warning will be given under COMMENT and it will let you know that this ephemeris file does not fully satisfy CCSDS file formatting requirements. 

 

Behavior of Interpolation Order Field for CCSDS and SPK File Formats

 

For CCSDS file formats, whenever there is not enough raw data available to support the requested interpolation type and order, GMA throws an error message and stops interpolation. GMAT still generates the ephemeris file but no spacecraft ephemeris data is written to the file and only the file’s Header section will be there. Within the Header section and under COMMENT, a message will be thrown saying that not enough raw data is available to generate spacecraft ephemeris data at the requested interpolation order.

 

For SPK file formats, raw data is always collected at every integrator step for each segment and then sent to SPK kernel writer. No interpolation takes place for SPK ephemeris file. 

 

Behavior When Using EphemerisFile Resource & Toggle Command

 

EphemerisFile resource generates ephemeris file at each propagation step of the entire mission duration. If you want to generate ephemeris data during specific points in your mission, then a Toggle On/Off command can be inserted into the mission sequence to control when the EphemerisFile writes data. When Toggle Off command is issued for an EphemerisFile subscriber, no data is sent to a file until a Toggle On command is issued. Similarly, when a Toggle On command is used, ephemeris data is sent to a file at each integration step until a Toggle Off command is used.

 

Below is an example script snippet that shows how to use Toggle Off/On commands while using the EphemerisFile resource. No ephemeris data is sent for first two days of propagation and only the data that is collected during last four days of propagation is sent to text file called ‘EphemerisFile1.eph’:

Create Spacecraft aSat;

Create Propagator aProp;

 

Create EphemerisFile anEphmerisFile;

 

GMAT anEphmerisFile.Spacecraft = aSat;

GMAT anEphmerisFile.Filename = 'EphemerisFile1.eph';

 

BeginMissionSequence;

 

Toggle anEphmerisFile Off;

Propagate aProp(aSat) {aSat.ElapsedDays = 2};

Toggle anEphmerisFile On;

Propagate aProp(aSat) {aSat.ElapsedDays = 4};

Examples

 

This example shows how to generate a simple ephemeris file. Ephemeris file is generated for two days of propagation. At default settings, ephemeris file is generated at each integrator step and in CCSDS file format. Ephemeris data is sent to text file called ‘EphemerisFile2.eph’:

Create Spacecraft aSat;

Create Propagator aProp;

 

Create EphemerisFile anEphmerisFile;

 

GMAT anEphmerisFile.Spacecraft = aSat;

GMAT anEphmerisFile.Filename = 'EphemerisFile2.eph';

 

BeginMissionSequence;

 

Propagate aProp(aSat) {aSat.ElapsedDays = 2};

 

 

This example shows how an ephemeris file is generated during an iterative process like differential correction that includes a discontinuous event like an impulsive burn. Ephemeris data is sent to text file called ‘EphemerisFile3.eph’:

Create Spacecraft aSat;

Create Propagator aProp;

 

Create ImpulsiveBurn TOI;

Create DifferentialCorrector aDC;

 

Create EphemerisFile anEphmerisFile;

 

GMAT anEphmerisFile.Spacecraft = aSat;

GMAT anEphmerisFile.Filename = 'EphemerisFile3.eph';

 

BeginMissionSequence;

 

Propagate aProp(aSat) {aSat.Earth.Periapsis};

 

Target aDC;

Vary aDC(TOI.Element1 = 0.24, {Perturbation = 0.001, Lower = 0.0, Upper = 3.14159, MaxStep = 0.5});

Maneuver TOI(aSat);

Propagate aProp(aSat) {aSat.Earth.Apoapsis};

Achieve aDC(aSat.Earth.RMAG = 42165);

EndTarget;

 

Propagate aProp(aSat) {aSat.ElapsedDays = 1};

 

Test Procedures

Assumptions

 

      All tests use both default and non-default values.

 

File Naming Conventions

 

The goal of the naming convention is to allow people to intuitively understand the purpose of the test by the name of the test file. The file naming conventions in this section are guidelines to be used when they “make sense” and are to be modified when they don’t “make sense”. They’re not strict rules.

 

EphemerisFile uses the following format for nominal tests:

 

Ephem_GMAT_ <description of test>

 

Use the following format for validation tests:

 

EphemerisFile_Validation__<Field>_ <description of test>

 

 

 

Nominal Tests

 

 

 

Priority

Status

Summary

P1

Done

SPH

Test whether the system allows the user to create and configure an ephemeris file object.

PI

Done

SPH

Test whether the system allows to output orbit ephemeris using both CCSDS-OEM and SPK file formats:

P1

Done

SPH

Test whether the CCSDS Orbital Ephemeris Message format supports options like Cartesian State under State Types

         P1

Done

SPH

Test whether the CCSDS Orbital Ephemeris Message format supports UTC Epoch formats

         P1

Done

RHQ

Test whether the CCSDS Orbital Ephemeris Message format supports TAI Epoch formats

        P1

Done

RHQ

Test whether the CCSDS Orbital Ephemeris Message format supports TT Epoch formats

        P1

Done

RHQ

Test whether the CCSDS Orbital Ephemeris Message format supports A1 Epoch formats

       P1

NOT done. Waiting on GMT-3162

Test whether the CCSDS Orbital Ephemeris Message format supports TDB Epoch formats

P1

Done

SPH

Test whether the CCSDS Orbital Ephemeris Message format supports EME-2000 (EarthMJ2000Eq in GMAT) Coordinate System

P1

Done

RHQ

Test whether the CCSDS Orbital Ephemeris Message format supports EarthMJ2000Ec Coordinate System

P1

Done

RHQ

Test whether the CCSDS Orbital Ephemeris Message format supports EarthFixed Coordinate System

P1

Done

RHQ

Test whether the CCSDS Orbital Ephemeris Message format supports ITRF Coordinate System

P1

Done

RHQ

Test whether the CCSDS Orbital Ephemeris Message format supports ICRF Coordinate System

P1

Done

RHQ

Test whether the CCSDS Orbital Ephemeris Message format supports TOD Coordinate Systems

P1

Done

SPH

Test whether CCSDS Orbital Ephemeris Message format supports Interpolation methods like Lagrange with user specified order.

P1

Done

SPH

Test whether CCSDS Orbital Ephemeris Message format supports Step Size options like Integration step size (use raw integrator steps)

P1

Done

RHQ

Test whether CCSDS Orbital Ephemeris Message format supports Step Size options like Fixed step size provided by user

P1

Done

SPH

Test whether the SPK file format supports options like Cartesian State under State Types

P1

Done

SPH

Test whether the SPK file format supports UTC Epoch formats

P1

Done

RHQ

Test whether the SPK file format supports TAI Epoch formats

P1

Done

RHQ

Test whether the SPK file format supports TT Epoch formats

P1

Done

RHQ

Test whether the SPK file  format supports A1 Epoch formats

P1

NOT done. Waiting on GMT-3162

Test whether the SPK file format supports TDB Epoch formats

P1

Done

SPH

Test whether the SPK file format supports EME-2000 (EarthMJ2000Eq in GMAT) Coordinate System

P1

Pending

RHQ

Test whether the SPK file format supports EarthMJ2000Ec Coordinate System

P1

Pending

RHQ

Test whether the SPK file format supports EarthFixed Coordinate System

P1

Pending

RHQ

Test whether the SPK file format supports ITRF Coordinate System

P1

Pending

RHQ

Test whether the SPK file format supports ICRF Coordinate System

P1

Pending

RHQ

Test whether the SPK file format supports TOD Coordinate Systems

P1

Done

SPH

Test whether SPK file format supports Interpolation methods like Lagrange with user specified order.

P1

Done

RHQ

Test whether SPK file format supports Step Size options like Integration step size (use raw integrator steps)

P1

Done

SPH

Test whether SPK file format supports Step Size options like Fixed step size provided by user

P1

Done

RHQ

Test whether the user is able to specify the time span of an ephemeris file using the User provided start and stop time

P1

Done

SPH

Test whether the user is able to specify the time span of an ephemeris file using All integration steps performed on the object

P1

Done

SPH & RHQ

Test whether the system separately interpolates ephemeris segments bounded by discontinuous/discrete events like Impulsive maneuver

P1

Done

SPH

Test whether the system separately interpolates ephemeris segments bounded by discontinuous/discrete events like Finite-burn maneuver

P1

Done

RHQ

Test whether the system separately interpolates ephemeris segments bounded by discontinuous/discrete events like Dynamics models changes

P1

Done

SPH

Test whether the system separately interpolates ephemeris segments bounded by discontinuous/discrete events like using Assignment command in Mission Tree

P1

Done

RHQ

 

Test whether the system throws an error message and stop interpolation if there is not enough data available to support the requested interpolation type and order

 

Ephem_GMAT_CCSDS_OEM_LagrangeInterpolationOrder_NotEnoughRawData.script

P1

Done

RHQ

Test whether the system allows the user to optionally calculate/write or not calculate/write an ephemeris that has been created and configured.

P1

Done

RHQ

Test whether the system only writes the ephemeris for the solution of iterative processes such as differential correction (DC) and optimization

P1

Done

RHQ

Test whether the system throws an error message and stop interpolation if the data points provided to the interpolator are not monotonic .

P1

Done

RHQ

Test whether the system allows the user to apply the Toggle command described in FRC-16 to the Ephemeris File object.

P1

Done

RHQ

Test whether the system writes the last data point to an ephemeris segment using the exact ephemeris values when interpolating at a requested time step and the ephemeris interval is not an integer multiple of the requested interpolation step.

P1

DONE

RHQ

Test whether the system allows the user to control the size of EphemerisFile display window.

 

P1

DONE

RHQ

Test whether the system allows the user to pan the EphemerisFile display window in any direction. (Tests UpperLeft field).

 

P1

DONE

RHQ

Test whether the System allows the user to maximize the EphemerisFile window.

 

P1

DONE

RHQ

Test whether the system allows the user to be able to select which EphemerisFile window to display first. (Tests RelativeZOrder field)

 

P1

DONE

RHQ

Test whether the System allows the user to name the EphemerisFile and save it in any user-specified location.

 

 

Edge/Corner/Miscellaneous Tests

 

I cannot think of any as of yet.

Priority

Status

Summary

 

 

 

 

 

 

 

 

 

 

 

Unique Validation Tests

These are unique validation tests that are required for special field or object couplings for this EphemerisFile feature.

Priority

Status

Summary

P1

SPH

Done

Test range constraints on Coordinate System field

P1

SPH

Done

Test range constraints on Epoch Format field

P1

SPH

Done

Test range constraints on Final Epoch field

P1

SPH

Done

Test range constraints on Initial Epoch field

P1

SPH

Done

Test range constraints on Interpolation Order field

P1

SPH

Done

Test range constraints on Interpolator field

P1

SPH

Done

Test range constraints on Spacecraft field

P1

SPH

       Done

Test range constraints on State Type field

P1

SPH

       Done

Test range constraints on Step Size field

P1

SPH

       Done

Test range constraints on Write Ephemeris field

 

 

 

 

 

 

Unique Mode Tests

 

I cannot think of any unique mode tests for this object.

Priority

Status

Summary

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Unique GUI Tests

 

 

These are tests that are unique to the GUI interface for this feature that are not covered by the standard GUI test template and procedures.

Priority

Status

Summary