TLEBasedOrbitDetermination Data

Hello,
I was wondering what kind of data this file:

Can take? At the moment, it is loading in a yaml file which provides a TLE and a .eph file which contains SP3 version c type data. I’m interested in updating a TLE based on new observations, but I’m not sure how to put that data into that .eph file format. Is there an easier way I can give this java file information from the yaml?
If not, do you have any pointers on how to create these SP3 files from my observations so that I can update the TLEs?

Thanks!

Hi!

The supported formats for input measurements are:

  • SP3 (position-velocity)
  • CPF (position-velocity)
  • CRD (ranging)
  • Rinex (ranging and carrier phase)

These formats are official ones. More information can be found on the Internet. Just note that the first objective of SP3 and CPF files is not to be measurement files. These two formats are ephemeris files classically generated after an orbit determination. But we use it for people that want to perform position-based orbit determination.

The format is handled automatically by the tutorial. You just have to put the measurement file name in the Yaml file.

A big miss in the tutorial is to support TDM format as input measurement files. Orekit can read it, but it is not used for the orbit determination tutorial.

Finally, Orekit tutorial also have an internal format as presented by the following file. This file supports RANGE, RANGE_RATE, AZ_EL, and PV.

Unfortunately, we don’t have any converter to convert formats…

1 Like

Thank you very much!
I am unfortunately having trouble with using this format, ie W3B_skptest.txt (68.3 KB). Running this into the file I linked returns
An exception occurred while executing the Java class. Cannot invoke “org.orekit.tutorials.estimation.common.PVData.getPositionSigma()” because “pvData” is null
Nothing else has been changed besides the file which contains the measurement data.
Any hints on how I can resolve this would be really appreciated.

Hello @uyoi,

The exception you encountered seems to occur after the actual error. It looks like a parsing error occured earlier.

Could you provide a simple code sample reproducing this issue ?

Cheers,
Vincent

1 Like

Hey @Vincent,
this occurs when running this file:

TLEBasedOrbitDetermination

Which uses this yaml file as input.

Except, in the yaml file, I’m substituting the cod18836.eph measurement file with this W3B_skptest.txt (68.3 KB) file instead.

When I run the program, it returns this:

[INFO] --- exec-maven-plugin:3.4.1:java (default-cli) @ tle-updater ---
Input TLE:
1 32711U 08012A   16044.40566026 -.00000039  00000-0  00000+0 0  9991
2 32711  55.4362 301.3402 0091577 207.7302 151.8353  2.00563580 58013

[WARNING] 
java.lang.NullPointerException: Cannot invoke "org.orekit.tutorials.estimation.common.PVData.getPositionSigma()" because "pvData" is null
    at org.orekit.tutorials.estimation.common.PVParser.parseFields (PVParser.java:61)
    at org.orekit.tutorials.estimation.common.AbstractOrbitDetermination.readMeasurements (AbstractOrbitDetermination.java:2138)
    at org.orekit.tutorials.estimation.common.AbstractOrbitDetermination.run (AbstractOrbitDetermination.java:524)
    at com.example.TLEBasedOrbitDetermination.main (TLEBasedOrbitDetermination.java:90)
    at org.codehaus.mojo.exec.ExecJavaMojo.doMain (ExecJavaMojo.java:358)
    at org.codehaus.mojo.exec.ExecJavaMojo.doExec (ExecJavaMojo.java:347)
    at org.codehaus.mojo.exec.ExecJavaMojo.lambda$execute$0 (ExecJavaMojo.java:269)
    at java.lang.Thread.run (Thread.java:840)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  3.614 s
[INFO] Finished at: 2024-10-21T20:54:40+10:30
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:3.4.1:java (default-cli) on project tle-updater: An exception occurred while executing the Java class. Cannot invoke "org.orekit.tutorials.estimation.common.PVData.getPositionSigma()" because "pvData" is null -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

As an added note: the TLE and the PV data have no relation, it’s just for testing.
Thank you for your help

Hi @uyoi

That’s because the yaml file is configured for positiom only measurements. In other words the noise configuration in the measurement section is only adapted to position measurements. You shall update this block by replacing

# Measurements definition
measurements:
  # BE CAREFUL: With the current implementation of the tutorial, measurement files must be chronologically ordered
  measurementFiles: ["cod18836.eph"]
  position:
    sigmaPos: 2.0
    weight: 1.0

With

# Measurements definition
measurements:
  measurementFiles: ["W3B_skptest.txt"]
  pv:
    sigmaPos: 1.0
    sigmaVel: 0.01
    weight: 1.0

Please note that 1.0 and 0.01 are default values for position and velocity stamdard deviation. You shall update these values based on the quality of your measurements.

Another important information is that we provide a template yaml file here to help users building their own input file for orbit determination.

2 Likes

Exactly what I needed, thank you very much for your help