I am new with Orekit. I have followed the instructions in the tutorial ‘Integration in other languages’.
I am using Matlab r2019a and Orekit 10.3. When I run the program, I get errors like: "Arguments to IMPORT must either end with "." or else specify a fully qualified class name: “org.orekit.frames.Frame” fails this test.".*
I have changed the lines as it is said in the tutorial, but it still doesn’t work.
I am also struggled with using Orekit through Matlab but have overcome most of the issues. I have attached a file for a basic numerical propagation run. Please let me know if you have any questions.orekitNumPropTest.m (10.6 KB)
You will need to change the values for Hipparchus and Orekit depending on what version you are using.
Thank you so much for answering.
After running your file I have realized that my problem lies in how I add the file path. I am not used to integrate other languages in Matlab. Can you help me with that? When adding the java path, where do the Hipparchus folder and the Orekit java file have to be?
The particular Matlab script is run from my Orekit directory (e.g., C:\Orekit). The orekit-10.1.jar will be in that directory. The Hipparchus files (I separate them by release version) are in a sub directory (C:\Orekit\hipparchus_1_7). I am certain there are other more efficient ways to specify these paths but this works for me. Perhaps another user could provide that.
Don’t know if this all of it but on the lines:
DM = org.orekit.data.DataProvidersManager.getInstance();
crawler = org.orekit.data.DirectoryCrawler(File([cd ,’\OrekitData’]));
You need to change the ‘\OrekitData’ to match your directory ‘\orekit-data’
See if that helps
Thank you, I miss that. I’m trying with other functions like Vectors3D, and the same error appears. It seems like it’s not importing libraries because every function is undefined, I don’t know. Is there any way I can check that?
I’ve run into some issues running @StephenC 's .m file with the new version(s) of Orekit (v11.1) and Matlab (R2021b). I updated the Matlab Java version to 8 and mapped all of the directories and files properly, but still was getting error messages. Eventually, I figured out from the javadoc that there have been some changes since upgrading from 10.1 to 11.1 that throw errors for some of the method calls. The attached .m file seems to be sufficient to get orekit up and running in Matlab for Orekit v11.1 with Hipparchus v2.0. orekitStartup.m (2.3 KB)
Note that the KeplerianPropagator no longer has a setSlaveMode method. I “fixed” this by simply removing the statement. Not sure what the effects might be.
I still get an error in @StephenC 's file when trying to run “periodMin = periodKm(sma_m/1000.0);” but I don’t think that is an Orekit issue… Still working my way through this example to get it all running.
A question for Matlab users: Has anyone figured out how to get autocompletion for the java methods/classes/etc to work? It’s a pain to constantly refer back to the javadoc.
Hi all
I think I have made it successfully to connect between matlab and Orekit, and run basic code faultlessly.
However, when the code "earthFrame = FramesFactory.getITRF(IERSConventions.IERS_2003,true);
" was run in matlab, there are some exception occurred.
That is
org.orekit.errors.OrekitException: unable to find
file
/assets/org/orekit/IERS-conventions/2003/nutation-arguments.txt
Actually, I find that the file is in the path of “resource\assets\org\orkit\IERS-conventions\2003.”
Maybe you configured the wrong path to access these data?
The configuration of this path is done at the beginning of the code when initializing the data context.
Could you check it?
This problem has been solved. Previous Orekit jar was exported through Eclipse by myself, maybe something went wrong. Well, I load the file of “orekit-11.2.1.jar” and add it to matlab classpath. Then all code run successfully.
Thanks a lot.
Hi, Orekit developers
How to write the matlab code according to Java language of:
"
final Collection(DSSTForceModel> forces = new ArrayList(DSSTForceModel>();
forces.add(zonal);
forces.add(tesseral);
"
It’s different in matlab, right?