I am working on setting up a UKF which I will use for orbit determination of real satellite data (I apologize if this is the wrong nomenclature). I am using TLE obtained from celestrack with an SGP4 propagator. I was referred to the following example class:

I am able to follow, but I am a bit at a loss on how to relate to my application. For instance, the example uses ephemeris data for observations, and uses a sigma error to modify them into measurements. In my case, I would directly obtain the measurements every 8 hours or so (when a new TLE is received), meaning I would have limited data, and not in the form of ephemeris data. Similarly, the example uses a regular integrator as a propagator, while I use SGP4 which is a different object than other integrators.

I apologize if this is vague and a bit generic, but I could use a helping hand on how to apply the example to my specific case. Any help would be greatly appreciated. Thank you!

EDIT: I moved the example to my own class within my project for testing purposes and I was met with a plethora of errors. Some showing incorrect inputs to Orekit functions, some missing orekit imports that cannot be located, and non-existant Orekit methods and classes. Is this example done on the latest version? I downloaded the binary package for 11.3.3 from this website and moved the file somewhere in my project root: Orekit ā Downloads

Not sure I understand. Are the āreal satellite dataā you are talking about the TLEs from Spacetrack?
In that case why not simply use the new TLE instead of trying to use it in a Kalman?
Iām not sure Iām seeing the point.

However, if you really want to do that then you should probably use your new TLE as a PV measurement or as a series of PV measurements that you will use in your Kalman.

The example on master branch should be compatible with 11.3.3 yes.
However, the link you provided points to āsite-orekit-latestā. It should be alright but maybe you should try downloading from there.
If youāre still experiencing problems we can probably walk you through them but weāll need a bit more context.

Thank you for the reply. I like your idea of using TLE as a simple PV measurement. I am talking with Bryan in this thread about using the TLE propagator with the UKF, hopefully it is possible.

Regarding my issues with the example, Iāve yet to take a look, but Iāll investigate and get back to you on exactly what libraries/imports I am missing. I am horrible with this aspect of JAVA.

Bryan is referring to the upcoming Orekit 12, at the moment only available in non-definitive form via cloning the develop branch. It should be released within a few weeks, but before that it wonāt be available as a jar on Maven central.

Thank you for the response. So would I have access to these updated methods prior to release? Otherwise I would need to find a way to use my matlab script in java (intelliJ IDEA), and I havenāt found a way to do it yet.

You can check out the develop branch of Orekit. Run a mvn clean install at the root of the project. And use the .jar generated (located in your .m2 folder in org/orekit/12.0-SNAPSHOT) in your Matlab script

I think I might have not been clear. I am actually trying to run my matlab script within JAVA, not the other way around. However, as I have been thinking about it, this will be complicated to do as I need to somehow converte the PV coordinates back into a TLE in order to propagate using SGP4, which I donāt have implemented in my matlab script and am not sure how to do.

Instead, Iām going to focus on trying to obtain the current development version to use the UKF with TLEPropagator objects in JAVA. I have found the develop branch here but I am not sure how to use the updated library in my current project.

While I try to figure out using UKF with the SGP4 propagators, I have gone back to learn about the methods and objects relevant to this. Regarding the tutorial example on my original post and what I mentioned about some imports giving me an error. The following are the imports not being found:

The top 2 I presume are not related to orekit. However, I am confused why the remaining 3 are not being found, as I have the latest version installed. I guess this issue goes more into the JAVA programming/project managing rather than orekit. Any help on this?

You can do it easily with Orekit
You can call TLE.stateToTle() method.
The first argument of this method is a SpacecraftState. You can build it using you PV
The second argument is a TLE template. It is used for the get the satellite identifiers (NORAD id, etc.). So you can intialize the keplerian parameters to 0.0 because they will he computed using the given SpacecraftState.

This one, import org.orekit.Utils; is an internal class of the tests. So youāll need to add the test suite āsrc/test/javaā of Orekit to your class path if you want to use it.

These 2 are API changes made in preparation for version 12 of Orekit.
If your program does not understand them it means that the version of Orekit it uses is not the ādevelopā version (i.e. the future version 12).

That makes sense. I downloaded the develop branch to a separate project and those errors are gone, so that makes sense based on what you said. Based on what Bryan has mentioned in this thread, I might attempt to load in orekit into matlab until version 12 is released. I am building a more automated system that takes in TLEs, uses the UKF, copmutes events, and outputs those events. I will make sure to add my thesis to the thread with published works using orekit when this is done.

Thank you for all your help, this is by far the most challenging feature I have worked on.

In that case I may work on matlab until the new orekit version is released. Alternatively I could translate my matlab code into java and make my own function, I am still debating that.

Iām having some issues importing orekit. So I realized that I donāt need my specific methods to run the UKF I built in Matlab, only the Orekit functions stateToTLE and TLEPropagator, as well as their respective implementations where necessary. So I am trying to import only the orekit-11.3.3.jar file.

I added the .jar to the same directory as my .m script with "javaaddpath āā¦\orekit-11.3.3.jarā. I then run the following lines as per the instructions on the forumā¦

However, I get an error on the first line saying Matlab cannot resolve āorg.orekit.data.DataProvdersManager.getInstanceā, am I doing something wrong?

PS: I also have the orekit-data.zip file in the same directory, however the error happens beforehand.

Thank you Bryan. It seems I also need the hipparchus jar in that path, specificaly it is asking for org.hipparchus.exception.Localizable in order to use the getDataProvidersManager() method. Would hipparchus be a library like Orekit, or is it an import from that same jar?