I’m a last-year aerospace engineering student currently working on a mission analysis project for a constellation of Earth observation satellites. The main objective is to define the optimal configuration (number of satellites, number of orbital planes, and their parameters) to ensure sufficient coverage and revisit time over a specific region.
I would like to know how Orekit can be used to support the following tasks:
Define and simulate a constellation with multiple satellites, possibly in multiple orbital planes (Walker-type or custom constellations).
Compute access times and visibility over specific ground targets or regions.
Estimate revisit time, coverage duration, and gap duration per region of interest.
Evaluate different configurations (trade-offs) to determine the minimum number of satellites and optimal orbital planes required to meet mission requirements.
Optionally simulate basic observation constraints (e.g., sensor field of view, incidence angle, Sun elevation).
I’m now looking for advice or examples on:
The best way to model and manage a satellite constellation in Orekit.
How to link satellite positions and orbits to ground region access analysis.
Methods or existing tools/classes within Orekit that could help in performing constellation-level optimization or revisit time analysis.
Any reference architecture or pattern you would recommend for such a use case.
Any help, code example, or pointer to relevant parts of the API/documentation would be greatly appreciated.
You will have to post-process the entry/exist events above to do that
Here, you will need to loop by yourself among different configurations and compare the performances you achieve in each configuration
This is done either using other event detectors (there are many available in the events package, or using fixed or variable step handlers taking into account attitude and fields of view.
I would suggest you to take a look at the tutorials, they will help give you a grasp of some of Orekit capabilities. Unfortunately, there are many parts that are supported by Orekit but for which we did not write tutorials
I plan to use Orekit through Python, and I was wondering: is it possible to explore all the features you mentioned (e.g., Walker constellations, access/visibility computations, event processing, trade-off loops, observation constraints, etc.) using only Python, or would I need to use Java for some parts?
I’d really like to stay within the Python environment if possible.
Python will very likely be fine, I have yet not encountered something I cannot do from Python, there may be needed some workarounds but the things above is likely needing not much workarounds - it is mostly when you start to want to subclass (not possible in orekit_jpype) and one needs then to focus on using a similar Interface instead.
In worst case you can write some small part in java, but very unlikely you will need this.
Some things may be more speedy from java, but if it is just analysis, take a break and get a coffee
Hi @petrus.hyvonen,
I’ll move forward using Python only for now, especially since my goal is focused on mission analysis and trade-offs.
If I ever reach a point where subclassing becomes necessary or performance becomes critical, I’ll keep the Java fallback in mind — but for now, coffee breaks sound good