SatelliteToolbox.jl
SatelliteToolbox.jl copied to clipboard
Generalize `ground_station_visible` to allow for arbitrary azimuth/elevation pointing
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.~~
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.
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!
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
No, it is no niche! It is a very useful one!
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).
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:
- Stabilize the API related with the orbit representations (keplerian elements and state vectors).
- Finish the IAU-2006 theory by adding the Equinox-based approach.
- Stabilize the propagators API.
- Implement a high precision numerical propagator.
Out of curiosity, what algorithms are out there for high precision propagation?
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.