code-lab-org / tatc

Tradespace Analysis Toolkit for Constellations (version 3) Library
BSD 3-Clause "New" or "Revised" License
9 stars 4 forks source link

Add Dilution of Precision Calculations #34

Closed mpj15 closed 3 months ago

mpj15 commented 1 year ago

I added a function to /analysis/track.py that computes dilution of precision (DOP) over time for a ground site. This is useful for analysis of GNSS satellite systems such as GPS.

The function can calculate the common different types of DOP, position (PDOP), geometric (GDOP), horizontal (HDOP), vertical (VDOP), and time (TDOP). The output has been verified with STK and with a Matlab version of the code.

I also included an example Jupyter notebook to demonstrate use.

The function is a bit slow because it requires stepping through a discrete time series, and useful analysis typically requires evaluation at many ground points. Maybe numba can help speed it up.

ptgrogan commented 4 months ago

I moved the dop analysis function to a separate file to keep file length down. I also cleaned up the code some to take advantage of vectorized functions in numpy.

mpj15 commented 4 months ago

Thank you for cleaning up the code! I added a check to the DOP calc that I had meant to put in earlier. Now it will not fail on a singular psuedorange matrix, instead returning NaN and a warning.