SatelliteToolbox.jl icon indicating copy to clipboard operation
SatelliteToolbox.jl copied to clipboard

Generalize `ground_station_visible` to allow for arbitrary azimuth/elevation pointing

Open mihalybaci opened this issue 3 years ago • 8 comments

I have a use case for calculating ground station accesses for satellites, however, the ground stations I need to use employ off-zenith pointings. It would be helpful if ground_station_accesses and list_ground_station_accesses were generalized for arbitrary azimuth/elevation pointing of a ground station.

~~If it helps, I found this document that discusses arbitary access. However, it is limited to a) circular orbits, b) that are not tied to Earth's rotation (geo-synchronous), and c) it does not calculate detailed timing, but probability distributions for being inside a certain viewing window.~~

mihalybaci avatar Dec 31 '20 15:12 mihalybaci

I took another look at this and I think I have a fairly simple solution to generalize the ground_station_visible function. Unless my vector math is off, which is very well could be, I think its just necessary to rotate the radar site vector by the pointing angle (as measured from zenith). I did a 2D example as Pluto notebook here, and it should generalize easily to 3D I think. But I don't know how this would work within the other visibility functions.

mihalybaci avatar Mar 18 '21 18:03 mihalybaci

Hi @mihalybaci,

Sorry for the delay. I am doing a HUGE rewrite in SatelliteToolbox.jl. This is a very old project (dating back to 2013) and I understand now much better the Julia language. Hence, some terrible choices I made back then are giving me headaches :D

As soon as I clean everything, I will take a look in this feature, I promise!

ronisbr avatar Mar 18 '21 18:03 ronisbr

No worries! That will give me time to actually confirm that it works. And if this feature is too niche then don't worry about adding it. I dont know if anyone but me will need it

mihalybaci avatar Mar 18 '21 19:03 mihalybaci

No, it is no niche! It is a very useful one!

ronisbr avatar Mar 18 '21 20:03 ronisbr

I am doing a HUGE rewrite in SatelliteToolbox.jl.

Exciting 😎 Let me know if you need/want input. I am getting back in the game...

My open-source output suffered quite a bit in the past year. For good reasons (I became a father in January) and for bad reasons (two job changes in 2020).

helgee avatar Mar 18 '21 21:03 helgee

Hi @helgee

For good reasons (I became a father in January)

First of all, congratulations!!

Let me know if you need/want input. I am getting back in the game...

Yes, probably I need! Now that I have more experience on how Julia works, I am trying to:

  1. Stabilize the API related with the orbit representations (keplerian elements and state vectors).
  2. Finish the IAU-2006 theory by adding the Equinox-based approach.
  3. Stabilize the propagators API.
  4. Implement a high precision numerical propagator.

ronisbr avatar Mar 19 '21 03:03 ronisbr

Out of curiosity, what algorithms are out there for high precision propagation?

mihalybaci avatar Mar 28 '21 00:03 mihalybaci

AFAIK there is some algorithms written in MATLAB but without testing or any public verification. Basically, we need to compute the acceleration at each pointing using all the information we can get (high order Earth gravity computation, gravity from other celestial body, relativistic terms, etc.) and then use a very precise differential equation solver.

ronisbr avatar Mar 28 '21 00:03 ronisbr