Seeking Advice on Satellite Tracking and Interference Detection with Orekit

Hello, esteemed community members,

I hope this message finds you well. I am currently engaged in a small demo that involves calculating the tracking window for a ground station monitoring Satellite A , and I am seeking some guidance on a potential interference issue.

The task at hand is to propagate the orbit of Satellite A for a duration of 3 days from the epoch and to check if the ground station tracking Satellite A might be interfered with by Satellite B, assuming the frequency bands of the two satellites are quite close.

I have a rudimentary idea that involves using an OrekitFixedStepHandler to calculate at each step during the propagation whether the absolute differences in Azimuth and Elevation between the ground station’s capture of Satellite A and its tracking of Satellite B are less than 1 degree. If this condition is met, it could indicate a potential interference with the signal of Satellite A.

However, I feel that this approach may not be the most elegant solution. I am aware that Orekit offers a robust set of EventDetector utilities, and I am wondering if it would be possible to leverage or extend the AbstractDetector class to create a custom detector for this purpose. Ideally, this detector would be able to log the times when potential interference begins and when it ceases.

Does anyone have experience with creating a such custom EventDetector in Orekit, or is there an existing detector that could be adapted for this task? I would greatly appreciate any insights, suggestions, or resources that you could share to guide me in the right direction.

Thank you in advance for your valuable time and assistance.

Warm regards,

I apologize for being a beginner and constantly asking questions that may seem basic, but the experts who answer my questions are truly formidable. I often feel that it’s almost criminal for me to receive replies from experts like luc, especially when my questions are so novice-level. When I receive a reply, I am both happy and frustrated, thinking that my “silly questions” might be taking up the valuable time of these experts.

Even though I try my best to search the forum to see if similar questions have been asked before, I feel guilty that my ignorance and lack of effort might be taking up the time and energy of the real “Orekit developers” who could be continuously optimizing and improving Orekit. It feels like a sin.

I was wondering if it might be possible for the forum to create a special “Beginner’s Corner” to separate the novice questions from the truly valuable ones?

1 Like

Hello @houmingyang

The detector you’re talking about already exists, it’s the AngularSeparationDetector.

Best regards,

There is indeed already an existing detector for this: AngularSeparationDetector. I agree the name is misleading.
There is a catch, though: as it is an event detector, it is registered to one (and only one) propagator, so it needs to find the position of the other satellite (which is referred to as the beacon in this detector) by other means. The beacon is provided by a PVCoordinatesProvider, so this could be another propagator as the Propagator interface extends the PVCoordinatesProvider interface. You should be cautious here and refrain for example from using a NumericalPropagator for the beacon, otherwise you would end up with the top level propagator calling the event detector which in turn would call the beacon propagator using very small time steps. So I suggest that the beacon propagator is some analytical propagator. You could use TLE or Ecksteing-Hechler, or Brouwer-Lyddane depending on your satellite, but if you really only have a numerical propagator for the second satellite, then you should use a two-steps method: first propagate the beacon once with ephemeris generation mode activated, and then use the generated ephemeris (which is now an analytical propagator since all computations have already been performed) as the beacon propagator.

Don’t worry about your questions. Yes it takes some time to answer them and sometimes we can’t afford to do that, but when we do it is because we are willing to do so. Remember your questions and the answers will remain available for other people too, so such discussions will help them too. I would only suggest to dig into the existing code, tutorials and previous forum discussions. Sometimes the answer is already there.

I don’t think a beginners corner would be easy to set up. All questions are valuable.

First of all, thank you everyone for your understanding and support for beginners. I believe the forum will become better and better, and Orekit will become more and more powerful!:+1:Secondly, Expert Luc’s reply is quite informative, and I am understanding and learning at a snail’s pace. I don’t know if my understanding is correct, so I can set my tracked “main star” A to use NumericalPropagator, and the “beacon star” B that I use to detect interference should use TLEPropagator, right?

1 Like

Yes, exactly.