Trying to figure out If a space object is in the FieldOfView of the ground radar

I am new to Astro Physics and OREKIT. My question may not be put in right words.
How do I find If a space object is in the FieldOfView of the ground radar?
The radar can have BoresightAzimuth more than 180 degrees as it can swivel.
We have MaxLongitudeAzimuth, MinLongitudeAzimuth, MaxLatitudeElevation, MaxLatitudeElevation for defining our custom FieldOfView.
We wanted to test for a given Epoch and satellite position if it is in the FOV of the ground radar.
Thank you.

Hi @mallinarc

What you have to do is to add a GroundFieldOfViewDetector to an orbit Propagator using the addEventDetector() method.

To initialize the GroundFieldOfViewDetector you will need first to create a Frame. The Frame is, in this case, the frame attached to the sensor. As a result, it represents your ground station. I would recommend you to use a TopocentricFrame.
The second argument to initialize the GroundFieldOfViewDetector is the FieldOfView. Depending the geometry of your sensor, Orekit proposes different types of field of view. All of them can be found on the org.orekit.geometry.fov package of Orekit.

Now, depending the accuracy you want on the calculation, the Propagator to use can be a KeplerianPropagator, an EcksteinHechlerPropagator, or a NumericalPropagator. In a first place, I would recommend you to use an EcksteinHechlerPropagator because it is an analytical orbit propagator providing a reasonable accuracy for event detection. If you want to test if the satellite is in the FOV of a ground radar of a given epoch, I would recommend you to perform the orbit propagation around the expected date (i.e., few hours before and after).

You will find a very interesting example of what you want to do in the test class of the GroundFieldOfViewDetector. This example uses a KeplerianPropagator to perform the orbit propagation but it can be replaced by an EcksteinHechlerPropagator. Also, please note the use of the EventsLogger class in the example to highlight FOV visibility, which can also be very useful for your example :slightly_smiling_face:

I hope my answer will help you.

Best regards,

Hi @mallinarc,

If I understand correctly you’re trying to build a field a view from a mixture of great circles and small circles on the ground station’s celestial sphere. I don’t believe any of Orekit’s existing implementations support that. Your small circles could be approximated using many great circles, or you could create your own implementation of FieldOfView, or your own implementation of an EventDetector's g function. Using FunctionalDetector.withGFunction(...) may be the way to get the shape you describe with the least amount of code.

Contributions welcome.


Thank you to both Evan, and Bryan. Let me fiddle with it and see how it goes.
Thank you