Dear Orekit developers,
I opened this topic as I am experiencing some issues when trying to use the FootprintOverlapDetector in propagation.
I am attaching the code that I am using and that is causing problems.
The scenario is really simple, and in theory it should ensure event detection:
- LEO orbit propagated in simple Keplerian dynamics
- spacecraft attitude aligned along RTN orbital frame
- FootprintOverlapDetector configured as follows:
- on-ground area as a ±0.5 deg lat/lon squared area around a central point, this latter being a geodetic point corresponding to spacecraft’s position after half orbital revolution (points defined in counter-clockwise order, so that the area enclosed by the 4 vertices should be considered)
- sensor’s FoV being circular, with 3 deg of half-aperture and aligned to point towards nadir direction
When attempting to run the scenario above, I could note that the code gets stuck even before the detector comes into play during propagation, specifically in loops inside the EllipsoidTesserator (when attempting to sample the zone of interest).
I tried to run different simulations by changing at each a couple of detector-specific parameters that I suspect may affect the calculations to sample the on-ground area, i.e. the “sampling step” and the “hyperplane thickness”.
In the code attached, I am using sampling step = 50km, hyperplane thickness = 1e-10: I believe that both of them are reasonable values (but I may be wrong!), considering the dimension of the on-ground area as well suggested values for the hyperplane thickness that I managed to find on the pages of this forum.
The simulation, after getting stuck for a while in the EllipsoidTesserator, eventually fails as my JVM goes in out of memory (on my computer, I could note a RAM increase of about 10+GB before the OoM).
As said, I managed to perform different runs, where I used both smaller but also larger values for the hyperplane thickness and the sampling step (trying to find a working combination of these two parameters): in almost all the cases the runs either fail because of OoM after getting stuck for quite some time in the EllipsoidTesserator, or just get stuck for a really long time inside this latter class.
In few cases I could notice failures because of Orekit exceptions thrown when using really large values for the hyperplane thickness (e.g. 1e-2), but I guess this was due to a misuse of this value.
Is there something I am doing wrong in the code?
Lastly, I suspect that this detector may be quite sensitive to some inputs, e.g. the sampling step, hyperplane thickness, etc. (again, I may be wrong, it’s just my feeling!); if this is confirmed, I would like to ask if there is something I could do in order to make my runs working well also in different scenarios without needing to tune time by time detector parameters (up to some extent)? E.g. logics for automatic tuning of some detector parameters, etc…
Thank you in advance for your help!
TestFootprintOverlapDetector.java (5.8 KB)