Repository navigation
TAT-C v3.5.0
What's Changed
Major refactoring that focused on completing unit tests to approach full code coverage. Drops support for Python < 3.10 to improve compatibility with modern libraries. Replaces the TwoLineElements schema with GeneralPerturbationsOrbit to support modern orbit specifications including OMM CSV and JSON. Drops the CRS-based buffering approach to determine ground track in favor of geometric projections using the SPICE library. During refactoring, a few bug fixes and breaking changes were also made.
Added:
- Added
GeosynchronousOrbitorbit schema. - Support for Python 3.14.
Changed:
- Changed the default orbit epoch from
datetime.now()to2020-01-01T00:00:00Z. - Refactored all orbit schemas to inherit uniform getters from
OrbitBase. - Replaced
TwoLineElementswith a more generalGeneralPerturbationsOrbitto accommodate post-TLE GP data formats. - Improved
TundraOrbitandMolniyaOrbitschemas to consider J2 perturbations when calculating orbit period. - Fixed a bug where SPICE projected instrument footprints around the geocentric, rather than geodetic, pointing vector, leading to ~2 km positioning errors.
- Fixed
TrainConstellationmember right ascension of ascending node spacing to be based on a sidereal day, rather than a solar day. - Fixed
SOCConstellationmember generation to use hexagonal spacing with a non-zerorelative_spacingvalue. - Fixed
MOGConstellationmember generation to use the mean anomaly of the reference orbit. - Fixed a bug in
config.pywhere default configurations (defaults.yml) were never provided in wheels. - Fixed
collect_orbit_trackto only assign theEPSG:4326CRS to output when requesting WGS84 coordinates, rather than for all coordinate systems. - Fixed
collect_orbit_trackto use a proper East/North/Up velocity when requesting WGS84 coordinates. - Improved
collect_observationsto use the apogee altitude, rather than the initial altitude, to determine the maximum access duration. - Fixed a bug where
collect_multi_observationscould crash on an empty satellite list. - Fixed a bug in
grid_observationsandgrid_latencieswhere spatial aggregation never actually worked. - Fixed a bug in
compute_dopwhere the latitude and longitude were reversed in output geometry. - Improved
compute_dopto use the nearest GP element to each time rather than the first one specified for an orbit. - Fixed the definition of binormal unit vector in
ro_coverage.pyto accommodate eccentric orbits. - Improved
collect_ro_observationsto interpolate among samples closest to target elevation. - Improved performance of
collect_ro_observationsthrough vectorized profile sampling, a more direct interface to Skyfield for orbit track computation, and making tangent point velocity calculation optional. - Fixed a bug where
collect_ro_observationscould use incorrect inertial positions for repeat track orbits more than 1 cycle after epoch. - Added utility methods:
compute_apoapsis_radiusandgeodesic_distance. - Requires
setuptools >= 77.0.0and switchesproject.licenseto an SPDX expression string to resolve a build metadata deprecation warning (issue #124).
Removed
- Support for Python < 3.10.
- Removed the
TwoLineElementsorbit schema. - Removed the legacy
crsandmethodparameters fromcollect_ground_trackandcompute_ground_track; all instrument projection now uses the SPICE library.
Full Changelog: v3.4.10...v3.5.0