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.
Files changed (215) hide show
  1. {nrl_tracker-0.21.4/nrl_tracker.egg-info → nrl_tracker-1.6.0}/PKG-INFO +10 -6
  2. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/README.md +6 -5
  3. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0/nrl_tracker.egg-info}/PKG-INFO +10 -6
  4. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/nrl_tracker.egg-info/SOURCES.txt +17 -0
  5. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/nrl_tracker.egg-info/requires.txt +4 -0
  6. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pyproject.toml +8 -1
  7. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/__init__.py +1 -1
  8. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/assignment_algorithms/data_association.py +2 -7
  9. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/astronomical/__init__.py +126 -7
  10. nrl_tracker-1.6.0/pytcl/astronomical/ephemerides.py +530 -0
  11. nrl_tracker-1.6.0/pytcl/astronomical/reference_frames.py +1380 -0
  12. nrl_tracker-1.6.0/pytcl/astronomical/relativity.py +472 -0
  13. nrl_tracker-1.6.0/pytcl/astronomical/sgp4.py +710 -0
  14. nrl_tracker-1.6.0/pytcl/astronomical/tle.py +558 -0
  15. nrl_tracker-1.6.0/pytcl/atmosphere/__init__.py +68 -0
  16. nrl_tracker-1.6.0/pytcl/atmosphere/ionosphere.py +512 -0
  17. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/containers/__init__.py +28 -21
  18. nrl_tracker-1.6.0/pytcl/containers/base.py +219 -0
  19. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/containers/cluster_set.py +1 -10
  20. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/containers/covertree.py +21 -26
  21. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/containers/kd_tree.py +94 -29
  22. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/containers/measurement_set.py +1 -9
  23. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/containers/rtree.py +199 -0
  24. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/containers/vptree.py +17 -26
  25. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/coordinate_systems/projections/__init__.py +4 -2
  26. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/core/__init__.py +18 -0
  27. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/core/validation.py +331 -0
  28. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_estimation/imm.py +1 -4
  29. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_estimation/kalman/__init__.py +18 -0
  30. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_estimation/kalman/extended.py +1 -4
  31. nrl_tracker-1.6.0/pytcl/dynamic_estimation/kalman/h_infinity.py +613 -0
  32. nrl_tracker-1.6.0/pytcl/dynamic_estimation/kalman/square_root.py +484 -0
  33. nrl_tracker-1.6.0/pytcl/dynamic_estimation/kalman/sr_ukf.py +302 -0
  34. nrl_tracker-1.6.0/pytcl/dynamic_estimation/kalman/ud_filter.py +404 -0
  35. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_estimation/kalman/unscented.py +1 -4
  36. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_estimation/smoothers.py +1 -5
  37. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_models/discrete_time/__init__.py +1 -5
  38. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_models/process_noise/__init__.py +1 -5
  39. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/gravity/egm.py +13 -0
  40. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/gravity/spherical_harmonics.py +97 -36
  41. nrl_tracker-1.6.0/pytcl/logging_config.py +328 -0
  42. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/magnetism/__init__.py +10 -14
  43. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/magnetism/wmm.py +260 -23
  44. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/interpolation/__init__.py +2 -2
  45. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/special_functions/__init__.py +2 -2
  46. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/special_functions/debye.py +132 -26
  47. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/special_functions/hypergeometric.py +79 -15
  48. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/navigation/__init__.py +14 -10
  49. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/navigation/geodesy.py +245 -159
  50. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/navigation/great_circle.py +98 -16
  51. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/navigation/ins.py +1 -5
  52. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/trackers/__init__.py +3 -14
  53. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/trackers/multi_target.py +1 -4
  54. nrl_tracker-1.6.0/tests/test_ephemerides.py +343 -0
  55. nrl_tracker-1.6.0/tests/test_h_infinity.py +391 -0
  56. nrl_tracker-1.6.0/tests/test_relativity.py +463 -0
  57. nrl_tracker-1.6.0/tests/test_sgp4.py +388 -0
  58. nrl_tracker-1.6.0/tests/test_spatial_containers_parametrized.py +467 -0
  59. nrl_tracker-1.6.0/tests/test_tod_mod.py +308 -0
  60. nrl_tracker-1.6.0/tests/test_validation.py +482 -0
  61. nrl_tracker-0.21.4/pytcl/astronomical/reference_frames.py +0 -677
  62. nrl_tracker-0.21.4/pytcl/atmosphere/__init__.py +0 -37
  63. nrl_tracker-0.21.4/pytcl/dynamic_estimation/kalman/square_root.py +0 -1003
  64. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/CONTRIBUTING.md +0 -0
  65. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/LICENSE +0 -0
  66. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/MANIFEST.in +0 -0
  67. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/nrl_tracker.egg-info/dependency_links.txt +0 -0
  68. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/nrl_tracker.egg-info/top_level.txt +0 -0
  69. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/assignment_algorithms/__init__.py +0 -0
  70. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/assignment_algorithms/gating.py +0 -0
  71. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/assignment_algorithms/jpda.py +0 -0
  72. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/assignment_algorithms/three_dimensional/__init__.py +0 -0
  73. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/assignment_algorithms/three_dimensional/assignment.py +0 -0
  74. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/assignment_algorithms/two_dimensional/__init__.py +0 -0
  75. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/assignment_algorithms/two_dimensional/assignment.py +0 -0
  76. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/assignment_algorithms/two_dimensional/kbest.py +0 -0
  77. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/astronomical/lambert.py +0 -0
  78. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/astronomical/orbital_mechanics.py +0 -0
  79. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/astronomical/time_systems.py +0 -0
  80. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/atmosphere/models.py +0 -0
  81. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/clustering/__init__.py +0 -0
  82. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/clustering/dbscan.py +0 -0
  83. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/clustering/gaussian_mixture.py +0 -0
  84. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/clustering/hierarchical.py +0 -0
  85. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/clustering/kmeans.py +0 -0
  86. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/containers/track_list.py +0 -0
  87. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/coordinate_systems/__init__.py +0 -0
  88. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/coordinate_systems/conversions/__init__.py +0 -0
  89. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/coordinate_systems/conversions/geodetic.py +0 -0
  90. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/coordinate_systems/conversions/spherical.py +0 -0
  91. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/coordinate_systems/jacobians/__init__.py +0 -0
  92. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/coordinate_systems/jacobians/jacobians.py +0 -0
  93. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/coordinate_systems/projections/projections.py +0 -0
  94. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/coordinate_systems/rotations/__init__.py +0 -0
  95. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/coordinate_systems/rotations/rotations.py +0 -0
  96. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/core/array_utils.py +0 -0
  97. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/core/constants.py +0 -0
  98. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_estimation/__init__.py +0 -0
  99. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_estimation/batch_estimation/__init__.py +0 -0
  100. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_estimation/information_filter.py +0 -0
  101. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_estimation/kalman/linear.py +0 -0
  102. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_estimation/measurement_update/__init__.py +0 -0
  103. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_estimation/particle_filters/__init__.py +0 -0
  104. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_estimation/particle_filters/bootstrap.py +0 -0
  105. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_models/__init__.py +0 -0
  106. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_models/continuous_time/__init__.py +0 -0
  107. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_models/continuous_time/dynamics.py +0 -0
  108. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_models/discrete_time/coordinated_turn.py +0 -0
  109. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_models/discrete_time/polynomial.py +0 -0
  110. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_models/discrete_time/singer.py +0 -0
  111. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_models/process_noise/coordinated_turn.py +0 -0
  112. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_models/process_noise/polynomial.py +0 -0
  113. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/dynamic_models/process_noise/singer.py +0 -0
  114. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/gravity/__init__.py +0 -0
  115. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/gravity/clenshaw.py +0 -0
  116. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/gravity/models.py +0 -0
  117. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/gravity/tides.py +0 -0
  118. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/magnetism/emm.py +0 -0
  119. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/magnetism/igrf.py +0 -0
  120. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/__init__.py +0 -0
  121. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/basic_matrix/__init__.py +0 -0
  122. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/basic_matrix/decompositions.py +0 -0
  123. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/basic_matrix/special_matrices.py +0 -0
  124. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/combinatorics/__init__.py +0 -0
  125. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/combinatorics/combinatorics.py +0 -0
  126. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/continuous_optimization/__init__.py +0 -0
  127. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/geometry/__init__.py +0 -0
  128. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/geometry/geometry.py +0 -0
  129. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/interpolation/interpolation.py +0 -0
  130. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/numerical_integration/__init__.py +0 -0
  131. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/numerical_integration/quadrature.py +0 -0
  132. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/polynomials/__init__.py +0 -0
  133. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/signal_processing/__init__.py +0 -0
  134. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/signal_processing/detection.py +0 -0
  135. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/signal_processing/filters.py +0 -0
  136. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/signal_processing/matched_filter.py +0 -0
  137. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/special_functions/bessel.py +0 -0
  138. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/special_functions/elliptic.py +0 -0
  139. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/special_functions/error_functions.py +0 -0
  140. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/special_functions/gamma_functions.py +0 -0
  141. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/special_functions/lambert_w.py +0 -0
  142. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/special_functions/marcum_q.py +0 -0
  143. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/statistics/__init__.py +0 -0
  144. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/statistics/distributions.py +0 -0
  145. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/statistics/estimators.py +0 -0
  146. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/transforms/__init__.py +0 -0
  147. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/transforms/fourier.py +0 -0
  148. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/transforms/stft.py +0 -0
  149. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/mathematical_functions/transforms/wavelets.py +0 -0
  150. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/misc/__init__.py +0 -0
  151. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/navigation/ins_gnss.py +0 -0
  152. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/navigation/rhumb.py +0 -0
  153. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/performance_evaluation/__init__.py +0 -0
  154. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/performance_evaluation/estimation_metrics.py +0 -0
  155. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/performance_evaluation/track_metrics.py +0 -0
  156. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/physical_values/__init__.py +0 -0
  157. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/plotting/__init__.py +0 -0
  158. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/plotting/coordinates.py +0 -0
  159. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/plotting/ellipses.py +0 -0
  160. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/plotting/metrics.py +0 -0
  161. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/plotting/tracks.py +0 -0
  162. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/scheduling/__init__.py +0 -0
  163. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/static_estimation/__init__.py +0 -0
  164. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/static_estimation/least_squares.py +0 -0
  165. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/static_estimation/maximum_likelihood.py +0 -0
  166. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/static_estimation/robust.py +0 -0
  167. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/terrain/__init__.py +0 -0
  168. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/terrain/dem.py +0 -0
  169. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/terrain/loaders.py +0 -0
  170. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/terrain/visibility.py +0 -0
  171. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/trackers/hypothesis.py +0 -0
  172. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/trackers/mht.py +0 -0
  173. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/trackers/single_target.py +0 -0
  174. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/pytcl/transponders/__init__.py +0 -0
  175. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/setup.cfg +0 -0
  176. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/__init__.py +0 -0
  177. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/conftest.py +0 -0
  178. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_additional_trees.py +0 -0
  179. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_assignment_algorithms.py +0 -0
  180. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_astronomical.py +0 -0
  181. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_clustering.py +0 -0
  182. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_coordinate_systems.py +0 -0
  183. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_coverage_boost.py +0 -0
  184. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_coverage_boost_2.py +0 -0
  185. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_dynamic_models.py +0 -0
  186. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_egm.py +0 -0
  187. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_emm.py +0 -0
  188. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_gaussian_mixtures.py +0 -0
  189. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_geophysical.py +0 -0
  190. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_great_circle.py +0 -0
  191. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_ins.py +0 -0
  192. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_ins_gnss.py +0 -0
  193. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_kalman_filters.py +0 -0
  194. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_mathematical_functions.py +0 -0
  195. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_maximum_likelihood.py +0 -0
  196. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_mht.py +0 -0
  197. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_performance_evaluation.py +0 -0
  198. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_phase6_specialized.py +0 -0
  199. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_plotting.py +0 -0
  200. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_projections.py +0 -0
  201. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_rhumb.py +0 -0
  202. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_signal_processing.py +0 -0
  203. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_smoothers.py +0 -0
  204. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_spatial_structures.py +0 -0
  205. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_special_functions_phase12.py +0 -0
  206. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_static_estimation.py +0 -0
  207. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_terrain.py +0 -0
  208. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_terrain_loaders.py +0 -0
  209. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_tides.py +0 -0
  210. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_trackers.py +0 -0
  211. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_tracking_containers.py +0 -0
  212. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_transforms.py +0 -0
  213. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_v030_comprehensive.py +0 -0
  214. {nrl_tracker-0.21.4 → nrl_tracker-1.6.0}/tests/test_v030_features.py +0 -0
  215. {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: 0.21.4
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
- [![PyPI version](https://img.shields.io/badge/pypi-v0.21.4-blue.svg)](https://pypi.org/project/nrl-tracker/)
66
+ [![PyPI version](https://img.shields.io/badge/pypi-v1.6.0-blue.svg)](https://pypi.org/project/nrl-tracker/)
64
67
  [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
65
68
  [![License: Public Domain](https://img.shields.io/badge/License-Public%20Domain-brightgreen.svg)](https://en.wikipedia.org/wiki/Public_domain)
66
69
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
67
- [![Tests](https://img.shields.io/badge/tests-1530%20passing-success.svg)](https://github.com/nedonatelli/TCL)
70
+ [![Tests](https://img.shields.io/badge/tests-1922%20passing-success.svg)](https://github.com/nedonatelli/TCL)
71
+ [![MATLAB Parity](https://img.shields.io/badge/MATLAB%20Parity-99%25-brightgreen.svg)](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
- **800+ functions** | **144 modules** | **1,530 tests** | **15+ algorithm categories**
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, etc.), particle filters, and batch estimation
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**: Ephemeris calculations, time systems, celestial mechanics
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
- [![PyPI version](https://img.shields.io/badge/pypi-v0.21.4-blue.svg)](https://pypi.org/project/nrl-tracker/)
3
+ [![PyPI version](https://img.shields.io/badge/pypi-v1.6.0-blue.svg)](https://pypi.org/project/nrl-tracker/)
4
4
  [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
5
5
  [![License: Public Domain](https://img.shields.io/badge/License-Public%20Domain-brightgreen.svg)](https://en.wikipedia.org/wiki/Public_domain)
6
6
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
7
- [![Tests](https://img.shields.io/badge/tests-1530%20passing-success.svg)](https://github.com/nedonatelli/TCL)
7
+ [![Tests](https://img.shields.io/badge/tests-1922%20passing-success.svg)](https://github.com/nedonatelli/TCL)
8
+ [![MATLAB Parity](https://img.shields.io/badge/MATLAB%20Parity-99%25-brightgreen.svg)](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
- **800+ functions** | **144 modules** | **1,530 tests** | **15+ algorithm categories**
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, etc.), particle filters, and batch estimation
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**: Ephemeris calculations, time systems, celestial mechanics
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: 0.21.4
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
- [![PyPI version](https://img.shields.io/badge/pypi-v0.21.4-blue.svg)](https://pypi.org/project/nrl-tracker/)
66
+ [![PyPI version](https://img.shields.io/badge/pypi-v1.6.0-blue.svg)](https://pypi.org/project/nrl-tracker/)
64
67
  [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
65
68
  [![License: Public Domain](https://img.shields.io/badge/License-Public%20Domain-brightgreen.svg)](https://en.wikipedia.org/wiki/Public_domain)
66
69
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
67
- [![Tests](https://img.shields.io/badge/tests-1530%20passing-success.svg)](https://github.com/nedonatelli/TCL)
70
+ [![Tests](https://img.shields.io/badge/tests-1922%20passing-success.svg)](https://github.com/nedonatelli/TCL)
71
+ [![MATLAB Parity](https://img.shields.io/badge/MATLAB%20Parity-99%25-brightgreen.svg)](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
- **800+ functions** | **144 modules** | **1,530 tests** | **15+ algorithm categories**
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, etc.), particle filters, and batch estimation
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**: Ephemeris calculations, time systems, celestial mechanics
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 = "0.21.4"
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",
@@ -20,7 +20,7 @@ References
20
20
  no. 5, pp. 18-27, May 2017.
21
21
  """
22
22
 
23
- __version__ = "0.21.4"
23
+ __version__ = "1.6.0"
24
24
  __author__ = "Python Port Contributors"
25
25
  __original_author__ = "David F. Crouse, Naval Research Laboratory"
26
26
 
@@ -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
- mahalanobis_batch,
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, and reference frame transformations.
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 ( # Constants; Types; Anomaly conversions; Element conversions; Propagation; Orbital quantities
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 ( # Time utilities; Precession; Nutation; Earth rotation; Polar motion; Full transformations; Ecliptic/equatorial
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.time_systems import ( # Julian dates; Time scales; Unix time; GPS week; Sidereal time; Leap seconds; Constants
87
- JD_GPS_EPOCH,
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
  ]