Splitting tutorials

Hi all,

The Orekit project includes some tutorials as small (or not-so-small) standalone programs that can be run from a console or an IDE. These include things like simple frame and propagation tutorials up to a full-blown orbit determination program.

These tutorials are not easily found by new users and require some manual steps to get working. As an example, when using the Eclipse IDE, the src/tutorials/java and src/tutorials/resources folders must be added to the build path because they are not standard maven paths and are ignored by default. The tutorials also require orekit-data to be fetch separately and installed in the home directory. The tutorials are not built by the Continuous Integration server and sometimes get out of synch with respect to the library. Some tutorials need configuration files that are parsed using a very limited key=value parser. This is becoming more and more cumbersome as the configuration becomes more complex (see for example the ugly configuration of ground stations in the orbit determination program). As the tutorials are in the main Orekit library, we cannot use any external dependencies in them because we do not want to add dependencies to Orekit itself.

For all these reasons, we would like to propose to remove the tutorials from the main project and to move them to a side project, also on the forge. This would be another maven project, with regular paths. As the project would be separate from the main Orekit library, we could use as many dependencies as we want to them and improve the tutorials with better configuration files (using a Yaml parser library), with graphical output (using a plotting library) or even some 3D display if we want.

What do you think about this proposal?

It is indeed a good idea … and we have the same problems with Rugged tutorials !

I love this idea and would love to contribute efforts towards doing that.

Seems like a good idea ! It could also be a good way to make the tutorials more visible: I suspect that a dedicated button on the main Orekit download page would be very helpful for newcomers.

I have created a new project Orekit tutorials on the forge. All existing committers of the Orekit library have been given commit access to this project.

I will remove the now obsolete tutorials section from the main library.

Great, as we discussed earlier, we should also collect the Python examples and notebooks (or links to) at a more central place, I guess this would be a good place to do it? Either as wiki with links or as actual git’ed files?

Yes, putting the Python examples there would be great.
Perhaps this can be done as committed files, both Python source code (in src/main/python) and as Markdown documentation files (in src/site/markdown).

Hi @petrus.hyvonen,

Yes, that’s for sure, we have to do it. It is high time to ensure better visibility for your work!

On this subject, have you seen that we have added links to the Python Wrapper examples on the “Tutorials” page of the Orekit documentation?

https://www.orekit.org/doc-tutorials.html

Ah nice with the tutorals list! :slight_smile: I will do some effort to update and collect a bit of more material. Especially in the test cases in python there are some more advanced/complex examples.

1 Like