nrl-tracker 0.21.4__tar.gz → 1.6.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {nrl_tracker-0.21.4/nrl_tracker.egg-info → nrl_tracker-1.6.0}/PKG-INFO +10 -6
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/README.md +6 -5
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0/nrl_tracker.egg-info}/PKG-INFO +10 -6
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/nrl_tracker.egg-info/SOURCES.txt +17 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/nrl_tracker.egg-info/requires.txt +4 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pyproject.toml +8 -1
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/__init__.py +1 -1
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/assignment_algorithms/data_association.py +2 -7
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/astronomical/__init__.py +126 -7
- nrl_tracker-1.6.0/pytcl/astronomical/ephemerides.py +530 -0
- nrl_tracker-1.6.0/pytcl/astronomical/reference_frames.py +1380 -0
- nrl_tracker-1.6.0/pytcl/astronomical/relativity.py +472 -0
- nrl_tracker-1.6.0/pytcl/astronomical/sgp4.py +710 -0
- nrl_tracker-1.6.0/pytcl/astronomical/tle.py +558 -0
- nrl_tracker-1.6.0/pytcl/atmosphere/__init__.py +68 -0
- nrl_tracker-1.6.0/pytcl/atmosphere/ionosphere.py +512 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/containers/__init__.py +28 -21
- nrl_tracker-1.6.0/pytcl/containers/base.py +219 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/containers/cluster_set.py +1 -10
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/containers/covertree.py +21 -26
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/containers/kd_tree.py +94 -29
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/containers/measurement_set.py +1 -9
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/containers/rtree.py +199 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/containers/vptree.py +17 -26
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/coordinate_systems/projections/__init__.py +4 -2
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/core/__init__.py +18 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/core/validation.py +331 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_estimation/imm.py +1 -4
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_estimation/kalman/__init__.py +18 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_estimation/kalman/extended.py +1 -4
- nrl_tracker-1.6.0/pytcl/dynamic_estimation/kalman/h_infinity.py +613 -0
- nrl_tracker-1.6.0/pytcl/dynamic_estimation/kalman/square_root.py +484 -0
- nrl_tracker-1.6.0/pytcl/dynamic_estimation/kalman/sr_ukf.py +302 -0
- nrl_tracker-1.6.0/pytcl/dynamic_estimation/kalman/ud_filter.py +404 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_estimation/kalman/unscented.py +1 -4
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_estimation/smoothers.py +1 -5
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_models/discrete_time/__init__.py +1 -5
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_models/process_noise/__init__.py +1 -5
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/gravity/egm.py +13 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/gravity/spherical_harmonics.py +97 -36
- nrl_tracker-1.6.0/pytcl/logging_config.py +328 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/magnetism/__init__.py +10 -14
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/magnetism/wmm.py +260 -23
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/interpolation/__init__.py +2 -2
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/special_functions/__init__.py +2 -2
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/special_functions/debye.py +132 -26
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/special_functions/hypergeometric.py +79 -15
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/navigation/__init__.py +14 -10
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/navigation/geodesy.py +245 -159
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/navigation/great_circle.py +98 -16
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/navigation/ins.py +1 -5
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/trackers/__init__.py +3 -14
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/trackers/multi_target.py +1 -4
- nrl_tracker-1.6.0/tests/test_ephemerides.py +343 -0
- nrl_tracker-1.6.0/tests/test_h_infinity.py +391 -0
- nrl_tracker-1.6.0/tests/test_relativity.py +463 -0
- nrl_tracker-1.6.0/tests/test_sgp4.py +388 -0
- nrl_tracker-1.6.0/tests/test_spatial_containers_parametrized.py +467 -0
- nrl_tracker-1.6.0/tests/test_tod_mod.py +308 -0
- nrl_tracker-1.6.0/tests/test_validation.py +482 -0
- nrl_tracker-0.21.4/pytcl/astronomical/reference_frames.py +0 -677
- nrl_tracker-0.21.4/pytcl/atmosphere/__init__.py +0 -37
- nrl_tracker-0.21.4/pytcl/dynamic_estimation/kalman/square_root.py +0 -1003
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/CONTRIBUTING.md +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/LICENSE +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/MANIFEST.in +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/nrl_tracker.egg-info/dependency_links.txt +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/nrl_tracker.egg-info/top_level.txt +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/assignment_algorithms/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/assignment_algorithms/gating.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/assignment_algorithms/jpda.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/assignment_algorithms/three_dimensional/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/assignment_algorithms/three_dimensional/assignment.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/assignment_algorithms/two_dimensional/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/assignment_algorithms/two_dimensional/assignment.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/assignment_algorithms/two_dimensional/kbest.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/astronomical/lambert.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/astronomical/orbital_mechanics.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/astronomical/time_systems.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/atmosphere/models.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/clustering/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/clustering/dbscan.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/clustering/gaussian_mixture.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/clustering/hierarchical.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/clustering/kmeans.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/containers/track_list.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/coordinate_systems/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/coordinate_systems/conversions/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/coordinate_systems/conversions/geodetic.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/coordinate_systems/conversions/spherical.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/coordinate_systems/jacobians/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/coordinate_systems/jacobians/jacobians.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/coordinate_systems/projections/projections.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/coordinate_systems/rotations/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/coordinate_systems/rotations/rotations.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/core/array_utils.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/core/constants.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_estimation/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_estimation/batch_estimation/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_estimation/information_filter.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_estimation/kalman/linear.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_estimation/measurement_update/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_estimation/particle_filters/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_estimation/particle_filters/bootstrap.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_models/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_models/continuous_time/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_models/continuous_time/dynamics.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_models/discrete_time/coordinated_turn.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_models/discrete_time/polynomial.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_models/discrete_time/singer.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_models/process_noise/coordinated_turn.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_models/process_noise/polynomial.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_models/process_noise/singer.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/gravity/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/gravity/clenshaw.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/gravity/models.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/gravity/tides.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/magnetism/emm.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/magnetism/igrf.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/basic_matrix/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/basic_matrix/decompositions.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/basic_matrix/special_matrices.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/combinatorics/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/combinatorics/combinatorics.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/continuous_optimization/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/geometry/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/geometry/geometry.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/interpolation/interpolation.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/numerical_integration/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/numerical_integration/quadrature.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/polynomials/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/signal_processing/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/signal_processing/detection.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/signal_processing/filters.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/signal_processing/matched_filter.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/special_functions/bessel.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/special_functions/elliptic.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/special_functions/error_functions.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/special_functions/gamma_functions.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/special_functions/lambert_w.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/special_functions/marcum_q.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/statistics/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/statistics/distributions.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/statistics/estimators.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/transforms/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/transforms/fourier.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/transforms/stft.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/transforms/wavelets.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/misc/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/navigation/ins_gnss.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/navigation/rhumb.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/performance_evaluation/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/performance_evaluation/estimation_metrics.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/performance_evaluation/track_metrics.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/physical_values/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/plotting/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/plotting/coordinates.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/plotting/ellipses.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/plotting/metrics.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/plotting/tracks.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/scheduling/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/static_estimation/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/static_estimation/least_squares.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/static_estimation/maximum_likelihood.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/static_estimation/robust.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/terrain/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/terrain/dem.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/terrain/loaders.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/terrain/visibility.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/trackers/hypothesis.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/trackers/mht.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/trackers/single_target.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/transponders/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/setup.cfg +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/__init__.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/conftest.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_additional_trees.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_assignment_algorithms.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_astronomical.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_clustering.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_coordinate_systems.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_coverage_boost.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_coverage_boost_2.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_dynamic_models.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_egm.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_emm.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_gaussian_mixtures.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_geophysical.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_great_circle.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_ins.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_ins_gnss.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_kalman_filters.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_mathematical_functions.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_maximum_likelihood.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_mht.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_performance_evaluation.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_phase6_specialized.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_plotting.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_projections.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_rhumb.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_signal_processing.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_smoothers.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_spatial_structures.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_special_functions_phase12.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_static_estimation.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_terrain.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_terrain_loaders.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_tides.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_trackers.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_tracking_containers.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_transforms.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_v030_comprehensive.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_v030_features.py +0 -0
- {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/unit/test_core.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: nrl-tracker
|
|
3
|
-
Version:
|
|
3
|
+
Version: 1.6.0
|
|
4
4
|
Summary: Python port of the U.S. Naval Research Laboratory's Tracker Component Library for target tracking algorithms
|
|
5
5
|
Author: Original: David F. Crouse, Naval Research Laboratory
|
|
6
6
|
Maintainer: Python Port Contributors
|
|
@@ -45,6 +45,7 @@ Provides-Extra: dev
|
|
|
45
45
|
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
46
46
|
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
47
47
|
Requires-Dist: pytest-xdist>=3.0.0; extra == "dev"
|
|
48
|
+
Requires-Dist: pytest-benchmark>=4.0.0; extra == "dev"
|
|
48
49
|
Requires-Dist: hypothesis>=6.0.0; extra == "dev"
|
|
49
50
|
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
50
51
|
Requires-Dist: isort>=5.12.0; extra == "dev"
|
|
@@ -55,20 +56,23 @@ Requires-Dist: sphinx>=6.0.0; extra == "dev"
|
|
|
55
56
|
Requires-Dist: sphinx-rtd-theme>=1.2.0; extra == "dev"
|
|
56
57
|
Requires-Dist: myst-parser>=1.0.0; extra == "dev"
|
|
57
58
|
Requires-Dist: nbsphinx>=0.9.0; extra == "dev"
|
|
59
|
+
Provides-Extra: benchmark
|
|
60
|
+
Requires-Dist: pytest-benchmark>=4.0.0; extra == "benchmark"
|
|
58
61
|
Provides-Extra: all
|
|
59
62
|
Requires-Dist: nrl-tracker[astronomy,dev,geodesy,optimization,signal,visualization]; extra == "all"
|
|
60
63
|
|
|
61
64
|
# Tracker Component Library (Python)
|
|
62
65
|
|
|
63
|
-
[](https://pypi.org/project/nrl-tracker/)
|
|
64
67
|
[](https://www.python.org/downloads/)
|
|
65
68
|
[](https://en.wikipedia.org/wiki/Public_domain)
|
|
66
69
|
[](https://github.com/psf/black)
|
|
67
|
-
[](https://github.com/nedonatelli/TCL)
|
|
71
|
+
[](docs/gap_analysis.rst)
|
|
68
72
|
|
|
69
73
|
A Python port of the [U.S. Naval Research Laboratory's Tracker Component Library](https://github.com/USNavalResearchLaboratory/TrackerComponentLibrary), a comprehensive collection of algorithms for target tracking, estimation, coordinate systems, and related mathematical functions.
|
|
70
74
|
|
|
71
|
-
**
|
|
75
|
+
**1,070+ functions** | **150+ modules** | **1,922 tests** | **99% MATLAB parity**
|
|
72
76
|
|
|
73
77
|
## Overview
|
|
74
78
|
|
|
@@ -76,10 +80,10 @@ The Tracker Component Library provides building blocks for developing target tra
|
|
|
76
80
|
|
|
77
81
|
- **Coordinate Systems**: Conversions between Cartesian, spherical, geodetic, and other coordinate systems
|
|
78
82
|
- **Dynamic Models**: State transition matrices for constant velocity, coordinated turn, and other motion models
|
|
79
|
-
- **Estimation Algorithms**: Kalman filters (EKF, UKF,
|
|
83
|
+
- **Estimation Algorithms**: Kalman filters (EKF, UKF, CKF, H-infinity), particle filters, and batch estimation
|
|
80
84
|
- **Assignment Algorithms**: Hungarian algorithm, auction algorithms, and multi-dimensional assignment
|
|
81
85
|
- **Mathematical Functions**: Special functions, statistics, numerical integration, and more
|
|
82
|
-
- **Astronomical Code**:
|
|
86
|
+
- **Astronomical Code**: SGP4/SDP4 propagation, TLE parsing, reference frames (GCRF, ITRF, TEME, TOD, MOD), ephemerides
|
|
83
87
|
- **Navigation**: Geodetic calculations, INS algorithms, GNSS utilities
|
|
84
88
|
- **Geophysical Models**: Gravity, magnetism, atmosphere, and terrain models
|
|
85
89
|
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
# Tracker Component Library (Python)
|
|
2
2
|
|
|
3
|
-
[](https://pypi.org/project/nrl-tracker/)
|
|
4
4
|
[](https://www.python.org/downloads/)
|
|
5
5
|
[](https://en.wikipedia.org/wiki/Public_domain)
|
|
6
6
|
[](https://github.com/psf/black)
|
|
7
|
-
[](https://github.com/nedonatelli/TCL)
|
|
8
|
+
[](docs/gap_analysis.rst)
|
|
8
9
|
|
|
9
10
|
A Python port of the [U.S. Naval Research Laboratory's Tracker Component Library](https://github.com/USNavalResearchLaboratory/TrackerComponentLibrary), a comprehensive collection of algorithms for target tracking, estimation, coordinate systems, and related mathematical functions.
|
|
10
11
|
|
|
11
|
-
**
|
|
12
|
+
**1,070+ functions** | **150+ modules** | **1,922 tests** | **99% MATLAB parity**
|
|
12
13
|
|
|
13
14
|
## Overview
|
|
14
15
|
|
|
@@ -16,10 +17,10 @@ The Tracker Component Library provides building blocks for developing target tra
|
|
|
16
17
|
|
|
17
18
|
- **Coordinate Systems**: Conversions between Cartesian, spherical, geodetic, and other coordinate systems
|
|
18
19
|
- **Dynamic Models**: State transition matrices for constant velocity, coordinated turn, and other motion models
|
|
19
|
-
- **Estimation Algorithms**: Kalman filters (EKF, UKF,
|
|
20
|
+
- **Estimation Algorithms**: Kalman filters (EKF, UKF, CKF, H-infinity), particle filters, and batch estimation
|
|
20
21
|
- **Assignment Algorithms**: Hungarian algorithm, auction algorithms, and multi-dimensional assignment
|
|
21
22
|
- **Mathematical Functions**: Special functions, statistics, numerical integration, and more
|
|
22
|
-
- **Astronomical Code**:
|
|
23
|
+
- **Astronomical Code**: SGP4/SDP4 propagation, TLE parsing, reference frames (GCRF, ITRF, TEME, TOD, MOD), ephemerides
|
|
23
24
|
- **Navigation**: Geodetic calculations, INS algorithms, GNSS utilities
|
|
24
25
|
- **Geophysical Models**: Gravity, magnetism, atmosphere, and terrain models
|
|
25
26
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: nrl-tracker
|
|
3
|
-
Version:
|
|
3
|
+
Version: 1.6.0
|
|
4
4
|
Summary: Python port of the U.S. Naval Research Laboratory's Tracker Component Library for target tracking algorithms
|
|
5
5
|
Author: Original: David F. Crouse, Naval Research Laboratory
|
|
6
6
|
Maintainer: Python Port Contributors
|
|
@@ -45,6 +45,7 @@ Provides-Extra: dev
|
|
|
45
45
|
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
46
46
|
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
47
47
|
Requires-Dist: pytest-xdist>=3.0.0; extra == "dev"
|
|
48
|
+
Requires-Dist: pytest-benchmark>=4.0.0; extra == "dev"
|
|
48
49
|
Requires-Dist: hypothesis>=6.0.0; extra == "dev"
|
|
49
50
|
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
50
51
|
Requires-Dist: isort>=5.12.0; extra == "dev"
|
|
@@ -55,20 +56,23 @@ Requires-Dist: sphinx>=6.0.0; extra == "dev"
|
|
|
55
56
|
Requires-Dist: sphinx-rtd-theme>=1.2.0; extra == "dev"
|
|
56
57
|
Requires-Dist: myst-parser>=1.0.0; extra == "dev"
|
|
57
58
|
Requires-Dist: nbsphinx>=0.9.0; extra == "dev"
|
|
59
|
+
Provides-Extra: benchmark
|
|
60
|
+
Requires-Dist: pytest-benchmark>=4.0.0; extra == "benchmark"
|
|
58
61
|
Provides-Extra: all
|
|
59
62
|
Requires-Dist: nrl-tracker[astronomy,dev,geodesy,optimization,signal,visualization]; extra == "all"
|
|
60
63
|
|
|
61
64
|
# Tracker Component Library (Python)
|
|
62
65
|
|
|
63
|
-
[](https://pypi.org/project/nrl-tracker/)
|
|
64
67
|
[](https://www.python.org/downloads/)
|
|
65
68
|
[](https://en.wikipedia.org/wiki/Public_domain)
|
|
66
69
|
[](https://github.com/psf/black)
|
|
67
|
-
[](https://github.com/nedonatelli/TCL)
|
|
71
|
+
[](docs/gap_analysis.rst)
|
|
68
72
|
|
|
69
73
|
A Python port of the [U.S. Naval Research Laboratory's Tracker Component Library](https://github.com/USNavalResearchLaboratory/TrackerComponentLibrary), a comprehensive collection of algorithms for target tracking, estimation, coordinate systems, and related mathematical functions.
|
|
70
74
|
|
|
71
|
-
**
|
|
75
|
+
**1,070+ functions** | **150+ modules** | **1,922 tests** | **99% MATLAB parity**
|
|
72
76
|
|
|
73
77
|
## Overview
|
|
74
78
|
|
|
@@ -76,10 +80,10 @@ The Tracker Component Library provides building blocks for developing target tra
|
|
|
76
80
|
|
|
77
81
|
- **Coordinate Systems**: Conversions between Cartesian, spherical, geodetic, and other coordinate systems
|
|
78
82
|
- **Dynamic Models**: State transition matrices for constant velocity, coordinated turn, and other motion models
|
|
79
|
-
- **Estimation Algorithms**: Kalman filters (EKF, UKF,
|
|
83
|
+
- **Estimation Algorithms**: Kalman filters (EKF, UKF, CKF, H-infinity), particle filters, and batch estimation
|
|
80
84
|
- **Assignment Algorithms**: Hungarian algorithm, auction algorithms, and multi-dimensional assignment
|
|
81
85
|
- **Mathematical Functions**: Special functions, statistics, numerical integration, and more
|
|
82
|
-
- **Astronomical Code**:
|
|
86
|
+
- **Astronomical Code**: SGP4/SDP4 propagation, TLE parsing, reference frames (GCRF, ITRF, TEME, TOD, MOD), ephemerides
|
|
83
87
|
- **Navigation**: Geodetic calculations, INS algorithms, GNSS utilities
|
|
84
88
|
- **Geophysical Models**: Gravity, magnetism, atmosphere, and terrain models
|
|
85
89
|
|
|
@@ -9,6 +9,7 @@ nrl_tracker.egg-info/dependency_links.txt
|
|
|
9
9
|
nrl_tracker.egg-info/requires.txt
|
|
10
10
|
nrl_tracker.egg-info/top_level.txt
|
|
11
11
|
pytcl/__init__.py
|
|
12
|
+
pytcl/logging_config.py
|
|
12
13
|
pytcl/assignment_algorithms/__init__.py
|
|
13
14
|
pytcl/assignment_algorithms/data_association.py
|
|
14
15
|
pytcl/assignment_algorithms/gating.py
|
|
@@ -19,11 +20,16 @@ pytcl/assignment_algorithms/two_dimensional/__init__.py
|
|
|
19
20
|
pytcl/assignment_algorithms/two_dimensional/assignment.py
|
|
20
21
|
pytcl/assignment_algorithms/two_dimensional/kbest.py
|
|
21
22
|
pytcl/astronomical/__init__.py
|
|
23
|
+
pytcl/astronomical/ephemerides.py
|
|
22
24
|
pytcl/astronomical/lambert.py
|
|
23
25
|
pytcl/astronomical/orbital_mechanics.py
|
|
24
26
|
pytcl/astronomical/reference_frames.py
|
|
27
|
+
pytcl/astronomical/relativity.py
|
|
28
|
+
pytcl/astronomical/sgp4.py
|
|
25
29
|
pytcl/astronomical/time_systems.py
|
|
30
|
+
pytcl/astronomical/tle.py
|
|
26
31
|
pytcl/atmosphere/__init__.py
|
|
32
|
+
pytcl/atmosphere/ionosphere.py
|
|
27
33
|
pytcl/atmosphere/models.py
|
|
28
34
|
pytcl/clustering/__init__.py
|
|
29
35
|
pytcl/clustering/dbscan.py
|
|
@@ -31,6 +37,7 @@ pytcl/clustering/gaussian_mixture.py
|
|
|
31
37
|
pytcl/clustering/hierarchical.py
|
|
32
38
|
pytcl/clustering/kmeans.py
|
|
33
39
|
pytcl/containers/__init__.py
|
|
40
|
+
pytcl/containers/base.py
|
|
34
41
|
pytcl/containers/cluster_set.py
|
|
35
42
|
pytcl/containers/covertree.py
|
|
36
43
|
pytcl/containers/kd_tree.py
|
|
@@ -59,8 +66,11 @@ pytcl/dynamic_estimation/smoothers.py
|
|
|
59
66
|
pytcl/dynamic_estimation/batch_estimation/__init__.py
|
|
60
67
|
pytcl/dynamic_estimation/kalman/__init__.py
|
|
61
68
|
pytcl/dynamic_estimation/kalman/extended.py
|
|
69
|
+
pytcl/dynamic_estimation/kalman/h_infinity.py
|
|
62
70
|
pytcl/dynamic_estimation/kalman/linear.py
|
|
63
71
|
pytcl/dynamic_estimation/kalman/square_root.py
|
|
72
|
+
pytcl/dynamic_estimation/kalman/sr_ukf.py
|
|
73
|
+
pytcl/dynamic_estimation/kalman/ud_filter.py
|
|
64
74
|
pytcl/dynamic_estimation/kalman/unscented.py
|
|
65
75
|
pytcl/dynamic_estimation/measurement_update/__init__.py
|
|
66
76
|
pytcl/dynamic_estimation/particle_filters/__init__.py
|
|
@@ -163,9 +173,11 @@ tests/test_coverage_boost_2.py
|
|
|
163
173
|
tests/test_dynamic_models.py
|
|
164
174
|
tests/test_egm.py
|
|
165
175
|
tests/test_emm.py
|
|
176
|
+
tests/test_ephemerides.py
|
|
166
177
|
tests/test_gaussian_mixtures.py
|
|
167
178
|
tests/test_geophysical.py
|
|
168
179
|
tests/test_great_circle.py
|
|
180
|
+
tests/test_h_infinity.py
|
|
169
181
|
tests/test_ins.py
|
|
170
182
|
tests/test_ins_gnss.py
|
|
171
183
|
tests/test_kalman_filters.py
|
|
@@ -176,18 +188,23 @@ tests/test_performance_evaluation.py
|
|
|
176
188
|
tests/test_phase6_specialized.py
|
|
177
189
|
tests/test_plotting.py
|
|
178
190
|
tests/test_projections.py
|
|
191
|
+
tests/test_relativity.py
|
|
179
192
|
tests/test_rhumb.py
|
|
193
|
+
tests/test_sgp4.py
|
|
180
194
|
tests/test_signal_processing.py
|
|
181
195
|
tests/test_smoothers.py
|
|
196
|
+
tests/test_spatial_containers_parametrized.py
|
|
182
197
|
tests/test_spatial_structures.py
|
|
183
198
|
tests/test_special_functions_phase12.py
|
|
184
199
|
tests/test_static_estimation.py
|
|
185
200
|
tests/test_terrain.py
|
|
186
201
|
tests/test_terrain_loaders.py
|
|
187
202
|
tests/test_tides.py
|
|
203
|
+
tests/test_tod_mod.py
|
|
188
204
|
tests/test_trackers.py
|
|
189
205
|
tests/test_tracking_containers.py
|
|
190
206
|
tests/test_transforms.py
|
|
191
207
|
tests/test_v030_comprehensive.py
|
|
192
208
|
tests/test_v030_features.py
|
|
209
|
+
tests/test_validation.py
|
|
193
210
|
tests/unit/test_core.py
|
|
@@ -9,10 +9,14 @@ nrl-tracker[astronomy,dev,geodesy,optimization,signal,visualization]
|
|
|
9
9
|
astropy>=5.0
|
|
10
10
|
jplephem>=2.18
|
|
11
11
|
|
|
12
|
+
[benchmark]
|
|
13
|
+
pytest-benchmark>=4.0.0
|
|
14
|
+
|
|
12
15
|
[dev]
|
|
13
16
|
pytest>=7.0.0
|
|
14
17
|
pytest-cov>=4.0.0
|
|
15
18
|
pytest-xdist>=3.0.0
|
|
19
|
+
pytest-benchmark>=4.0.0
|
|
16
20
|
hypothesis>=6.0.0
|
|
17
21
|
black>=23.0.0
|
|
18
22
|
isort>=5.12.0
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "nrl-tracker"
|
|
7
|
-
version = "
|
|
7
|
+
version = "1.6.0"
|
|
8
8
|
description = "Python port of the U.S. Naval Research Laboratory's Tracker Component Library for target tracking algorithms"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [
|
|
@@ -67,6 +67,7 @@ dev = [
|
|
|
67
67
|
"pytest>=7.0.0",
|
|
68
68
|
"pytest-cov>=4.0.0",
|
|
69
69
|
"pytest-xdist>=3.0.0",
|
|
70
|
+
"pytest-benchmark>=4.0.0",
|
|
70
71
|
"hypothesis>=6.0.0",
|
|
71
72
|
"black>=23.0.0",
|
|
72
73
|
"isort>=5.12.0",
|
|
@@ -78,6 +79,9 @@ dev = [
|
|
|
78
79
|
"myst-parser>=1.0.0",
|
|
79
80
|
"nbsphinx>=0.9.0",
|
|
80
81
|
]
|
|
82
|
+
benchmark = [
|
|
83
|
+
"pytest-benchmark>=4.0.0",
|
|
84
|
+
]
|
|
81
85
|
all = [
|
|
82
86
|
"nrl-tracker[astronomy,geodesy,visualization,optimization,signal,dev]",
|
|
83
87
|
]
|
|
@@ -100,6 +104,9 @@ testpaths = ["tests"]
|
|
|
100
104
|
markers = [
|
|
101
105
|
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
|
|
102
106
|
"matlab_validated: tests validated against MATLAB reference output",
|
|
107
|
+
"benchmark: marks tests as benchmarks",
|
|
108
|
+
"light: marks benchmark as part of light (PR) suite",
|
|
109
|
+
"full: marks benchmark as part of full (main) suite",
|
|
103
110
|
]
|
|
104
111
|
filterwarnings = [
|
|
105
112
|
"ignore::DeprecationWarning",
|
|
@@ -10,13 +10,8 @@ from typing import List, NamedTuple, Optional
|
|
|
10
10
|
import numpy as np
|
|
11
11
|
from numpy.typing import ArrayLike, NDArray
|
|
12
12
|
|
|
13
|
-
from pytcl.assignment_algorithms.gating import
|
|
14
|
-
|
|
15
|
-
mahalanobis_distance,
|
|
16
|
-
)
|
|
17
|
-
from pytcl.assignment_algorithms.two_dimensional import (
|
|
18
|
-
assign2d,
|
|
19
|
-
)
|
|
13
|
+
from pytcl.assignment_algorithms.gating import mahalanobis_batch, mahalanobis_distance
|
|
14
|
+
from pytcl.assignment_algorithms.two_dimensional import assign2d
|
|
20
15
|
|
|
21
16
|
|
|
22
17
|
class AssociationResult(NamedTuple):
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
Astronomical calculations for target tracking.
|
|
3
3
|
|
|
4
4
|
This module provides time system conversions, orbital mechanics,
|
|
5
|
-
Lambert problem solvers,
|
|
5
|
+
Lambert problem solvers, reference frame transformations, and high-precision
|
|
6
|
+
ephemerides for celestial bodies.
|
|
6
7
|
|
|
7
8
|
Examples
|
|
8
9
|
--------
|
|
@@ -18,8 +19,19 @@ Examples
|
|
|
18
19
|
>>> r1 = np.array([5000, 10000, 2100])
|
|
19
20
|
>>> r2 = np.array([-14600, 2500, 7000])
|
|
20
21
|
>>> sol = lambert_universal(r1, r2, 3600)
|
|
22
|
+
|
|
23
|
+
>>> # Query Sun position with high precision
|
|
24
|
+
>>> from pytcl.astronomical import sun_position
|
|
25
|
+
>>> r_sun, v_sun = sun_position(2451545.0) # J2000.0
|
|
21
26
|
"""
|
|
22
27
|
|
|
28
|
+
from pytcl.astronomical.ephemerides import (
|
|
29
|
+
DEEphemeris,
|
|
30
|
+
barycenter_position,
|
|
31
|
+
moon_position,
|
|
32
|
+
planet_position,
|
|
33
|
+
sun_position,
|
|
34
|
+
)
|
|
23
35
|
from pytcl.astronomical.lambert import (
|
|
24
36
|
LambertSolution,
|
|
25
37
|
bi_elliptic_transfer,
|
|
@@ -28,8 +40,10 @@ from pytcl.astronomical.lambert import (
|
|
|
28
40
|
lambert_universal,
|
|
29
41
|
minimum_energy_transfer,
|
|
30
42
|
)
|
|
31
|
-
from pytcl.astronomical.orbital_mechanics import (
|
|
32
|
-
GM_EARTH,
|
|
43
|
+
from pytcl.astronomical.orbital_mechanics import (
|
|
44
|
+
GM_EARTH, # Constants; Types; Anomaly conversions; Element conversions; Propagation; Orbital quantities
|
|
45
|
+
)
|
|
46
|
+
from pytcl.astronomical.orbital_mechanics import (
|
|
33
47
|
GM_JUPITER,
|
|
34
48
|
GM_MARS,
|
|
35
49
|
GM_MOON,
|
|
@@ -62,8 +76,10 @@ from pytcl.astronomical.orbital_mechanics import ( # Constants; Types; Anomaly
|
|
|
62
76
|
true_to_mean_anomaly,
|
|
63
77
|
vis_viva,
|
|
64
78
|
)
|
|
65
|
-
from pytcl.astronomical.reference_frames import (
|
|
66
|
-
earth_rotation_angle,
|
|
79
|
+
from pytcl.astronomical.reference_frames import (
|
|
80
|
+
earth_rotation_angle, # Time utilities; Precession; Nutation; Earth rotation; Polar motion; Full transformations; Ecliptic/equatorial
|
|
81
|
+
)
|
|
82
|
+
from pytcl.astronomical.reference_frames import (
|
|
67
83
|
ecef_to_eci,
|
|
68
84
|
eci_to_ecef,
|
|
69
85
|
ecliptic_to_equatorial,
|
|
@@ -71,20 +87,59 @@ from pytcl.astronomical.reference_frames import ( # Time utilities; Precession;
|
|
|
71
87
|
equatorial_to_ecliptic,
|
|
72
88
|
gast_iau82,
|
|
73
89
|
gcrf_to_itrf,
|
|
90
|
+
gcrf_to_mod,
|
|
91
|
+
gcrf_to_teme,
|
|
92
|
+
gcrf_to_tod,
|
|
74
93
|
gmst_iau82,
|
|
75
94
|
itrf_to_gcrf,
|
|
95
|
+
itrf_to_teme,
|
|
96
|
+
itrf_to_teme_with_velocity,
|
|
97
|
+
itrf_to_tod,
|
|
76
98
|
julian_centuries_j2000,
|
|
77
99
|
mean_obliquity_iau80,
|
|
100
|
+
mod_to_gcrf,
|
|
101
|
+
mod_to_tod,
|
|
78
102
|
nutation_angles_iau80,
|
|
79
103
|
nutation_matrix,
|
|
104
|
+
pef_to_teme,
|
|
80
105
|
polar_motion_matrix,
|
|
81
106
|
precession_angles_iau76,
|
|
82
107
|
precession_matrix_iau76,
|
|
83
108
|
sidereal_rotation_matrix,
|
|
109
|
+
teme_to_gcrf,
|
|
110
|
+
teme_to_itrf,
|
|
111
|
+
teme_to_itrf_with_velocity,
|
|
112
|
+
teme_to_pef,
|
|
113
|
+
tod_to_gcrf,
|
|
114
|
+
tod_to_itrf,
|
|
115
|
+
tod_to_mod,
|
|
84
116
|
true_obliquity,
|
|
85
117
|
)
|
|
86
|
-
from pytcl.astronomical.
|
|
87
|
-
|
|
118
|
+
from pytcl.astronomical.relativity import (
|
|
119
|
+
C_LIGHT, # Physical constants; Schwarzschild metric; Time dilation; Shapiro delay; Precession; PN effects; Range corrections
|
|
120
|
+
)
|
|
121
|
+
from pytcl.astronomical.relativity import (
|
|
122
|
+
G_GRAV,
|
|
123
|
+
geodetic_precession,
|
|
124
|
+
gravitational_time_dilation,
|
|
125
|
+
lense_thirring_precession,
|
|
126
|
+
post_newtonian_acceleration,
|
|
127
|
+
proper_time_rate,
|
|
128
|
+
relativistic_range_correction,
|
|
129
|
+
schwarzschild_precession_per_orbit,
|
|
130
|
+
schwarzschild_radius,
|
|
131
|
+
shapiro_delay,
|
|
132
|
+
)
|
|
133
|
+
from pytcl.astronomical.sgp4 import (
|
|
134
|
+
SGP4Satellite,
|
|
135
|
+
SGP4State,
|
|
136
|
+
sgp4_propagate,
|
|
137
|
+
sgp4_propagate_batch,
|
|
138
|
+
)
|
|
139
|
+
from pytcl.astronomical.time_systems import (
|
|
140
|
+
JD_GPS_EPOCH, # Julian dates; Time scales; Unix time; GPS week; Sidereal time; Leap seconds; Constants
|
|
141
|
+
)
|
|
142
|
+
from pytcl.astronomical.time_systems import (
|
|
88
143
|
JD_J2000,
|
|
89
144
|
JD_UNIX_EPOCH,
|
|
90
145
|
MJD_OFFSET,
|
|
@@ -112,6 +167,17 @@ from pytcl.astronomical.time_systems import ( # Julian dates; Time scales; Unix
|
|
|
112
167
|
utc_to_tai,
|
|
113
168
|
utc_to_tt,
|
|
114
169
|
)
|
|
170
|
+
from pytcl.astronomical.tle import (
|
|
171
|
+
TLE,
|
|
172
|
+
format_tle,
|
|
173
|
+
is_deep_space,
|
|
174
|
+
orbital_period_from_tle,
|
|
175
|
+
parse_tle,
|
|
176
|
+
parse_tle_3line,
|
|
177
|
+
semi_major_axis_from_mean_motion,
|
|
178
|
+
tle_epoch_to_datetime,
|
|
179
|
+
tle_epoch_to_jd,
|
|
180
|
+
)
|
|
115
181
|
|
|
116
182
|
__all__ = [
|
|
117
183
|
# Time systems - Julian dates
|
|
@@ -218,4 +284,57 @@ __all__ = [
|
|
|
218
284
|
# Reference frames - Ecliptic/equatorial
|
|
219
285
|
"ecliptic_to_equatorial",
|
|
220
286
|
"equatorial_to_ecliptic",
|
|
287
|
+
# Reference frames - TEME (for SGP4/SDP4)
|
|
288
|
+
"teme_to_pef",
|
|
289
|
+
"pef_to_teme",
|
|
290
|
+
"teme_to_itrf",
|
|
291
|
+
"itrf_to_teme",
|
|
292
|
+
"teme_to_gcrf",
|
|
293
|
+
"gcrf_to_teme",
|
|
294
|
+
"teme_to_itrf_with_velocity",
|
|
295
|
+
"itrf_to_teme_with_velocity",
|
|
296
|
+
# Reference frames - TOD/MOD (legacy conventions)
|
|
297
|
+
"gcrf_to_mod",
|
|
298
|
+
"mod_to_gcrf",
|
|
299
|
+
"gcrf_to_tod",
|
|
300
|
+
"tod_to_gcrf",
|
|
301
|
+
"mod_to_tod",
|
|
302
|
+
"tod_to_mod",
|
|
303
|
+
"tod_to_itrf",
|
|
304
|
+
"itrf_to_tod",
|
|
305
|
+
# TLE parsing
|
|
306
|
+
"TLE",
|
|
307
|
+
"parse_tle",
|
|
308
|
+
"parse_tle_3line",
|
|
309
|
+
"tle_epoch_to_jd",
|
|
310
|
+
"tle_epoch_to_datetime",
|
|
311
|
+
"format_tle",
|
|
312
|
+
"is_deep_space",
|
|
313
|
+
"semi_major_axis_from_mean_motion",
|
|
314
|
+
"orbital_period_from_tle",
|
|
315
|
+
# SGP4/SDP4 propagation
|
|
316
|
+
"SGP4State",
|
|
317
|
+
"SGP4Satellite",
|
|
318
|
+
"sgp4_propagate",
|
|
319
|
+
"sgp4_propagate_batch",
|
|
320
|
+
# Ephemerides - Classes
|
|
321
|
+
"DEEphemeris",
|
|
322
|
+
# Ephemerides - Functions
|
|
323
|
+
"sun_position",
|
|
324
|
+
"moon_position",
|
|
325
|
+
"planet_position",
|
|
326
|
+
"barycenter_position",
|
|
327
|
+
# Relativity - Constants
|
|
328
|
+
"C_LIGHT",
|
|
329
|
+
"G_GRAV",
|
|
330
|
+
# Relativity - Functions
|
|
331
|
+
"schwarzschild_radius",
|
|
332
|
+
"gravitational_time_dilation",
|
|
333
|
+
"proper_time_rate",
|
|
334
|
+
"shapiro_delay",
|
|
335
|
+
"schwarzschild_precession_per_orbit",
|
|
336
|
+
"post_newtonian_acceleration",
|
|
337
|
+
"geodetic_precession",
|
|
338
|
+
"lense_thirring_precession",
|
|
339
|
+
"relativistic_range_correction",
|
|
221
340
|
]
|