samtx / passpredict

Predict upcoming satellite overpasses over a point on Earth.
MIT License
23 stars 6 forks source link

Use Astropy for time objects and frame transformations #21

Closed samtx closed 4 years ago

samtx commented 4 years ago

Use Astropy to handle time, orientation, and reference frame computations. The latest development release of astropy 4.1rc1 has support for the TEME reference frame (ref: Working with Earth Satellites Using Astropy Coordinates)

Let astropy do all of the heavy lifting computing the julian dates, gathering the delta UT1, TEME <-> ECEF frame transformations, and getting sun position. Astropy also has a convenience method EarthLocation.of_address() that queries the Open Street Map or Google geocoding API to get the latitude and longitude of a topographic location.

During initial testing, it appears that using astropy to convert ECEF vectors to AltAz (and range) is too slow for our use case at 1900 ms. It will probably be fine to stick with the existing computing methods since those weren't giving too much of a problem and were much faster at 90 ms.

Note: the underlying numpy array data from the CartesianRepresentation object can be accessed with CartesianRepresentation.data.xyz.value

This issue should supersede issues #11 and #9