astrox-python 0.1.0__tar.gz → 0.2.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 (341) hide show
  1. {astrox_python-0.1.0 → astrox_python-0.2.0}/PKG-INFO +30 -25
  2. astrox_python-0.2.0/README.md +59 -0
  3. {astrox_python-0.1.0 → astrox_python-0.2.0}/astrox/__init__.py +22 -2
  4. astrox_python-0.2.0/astrox/astrogator/__init__.py +8 -0
  5. astrox_python-0.2.0/astrox/astrogator/_api.py +60 -0
  6. astrox_python-0.2.0/astrox/astrogator/_models.py +1328 -0
  7. astrox_python-0.2.0/astrox/astrogator/_results.py +720 -0
  8. astrox_python-0.2.0/astrox/cat.py +465 -0
  9. astrox_python-0.2.0/astrox/catalog.py +175 -0
  10. astrox_python-0.2.0/astrox/celestial.py +153 -0
  11. {astrox_python-0.1.0 → astrox_python-0.2.0}/astrox/components/__init__.py +8 -0
  12. {astrox_python-0.1.0 → astrox_python-0.2.0}/astrox/components/_constraints.py +62 -2
  13. astrox_python-0.2.0/astrox/conjunction.py +288 -0
  14. {astrox_python-0.1.0 → astrox_python-0.2.0}/astrox/coverage/_core.py +1 -5
  15. {astrox_python-0.1.0 → astrox_python-0.2.0}/astrox/orbits.py +90 -1
  16. {astrox_python-0.1.0 → astrox_python-0.2.0}/astrox/propagator.py +12 -18
  17. astrox_python-0.2.0/astrox/terrain.py +197 -0
  18. astrox_python-0.2.0/docs/CONTRIBUTING.md +9 -0
  19. astrox_python-0.2.0/docs/README.md +10 -0
  20. astrox_python-0.2.0/docs/docs-principles.md +102 -0
  21. astrox_python-0.2.0/docs/getting_started.md +71 -0
  22. astrox_python-0.2.0/docs/how_to/README.md +13 -0
  23. astrox_python-0.2.0/docs/how_to/build_an_hpop_configuration.md +148 -0
  24. astrox_python-0.2.0/docs/how_to/compute_access_intervals.md +108 -0
  25. astrox_python-0.2.0/docs/how_to/compute_lighting_conditions.md +123 -0
  26. astrox_python-0.2.0/docs/how_to/convert_between_orbit_representations.md +137 -0
  27. astrox_python-0.2.0/docs/how_to/propagate_an_orbit.md +151 -0
  28. astrox_python-0.2.0/docs/how_to/run_an_astrogator_mcs.md +116 -0
  29. astrox_python-0.2.0/docs/how_to/screen_close_approaches.md +67 -0
  30. astrox_python-0.2.0/docs/i18n/en/README.md +59 -0
  31. astrox_python-0.2.0/docs/i18n/en/getting_started.md +71 -0
  32. astrox_python-0.2.0/docs/i18n/en/how_to/README.md +13 -0
  33. astrox_python-0.2.0/docs/i18n/en/how_to/build_an_hpop_configuration.md +148 -0
  34. astrox_python-0.2.0/docs/i18n/en/how_to/compute_access_intervals.md +108 -0
  35. astrox_python-0.2.0/docs/i18n/en/how_to/compute_lighting_conditions.md +123 -0
  36. astrox_python-0.2.0/docs/i18n/en/how_to/convert_between_orbit_representations.md +137 -0
  37. astrox_python-0.2.0/docs/i18n/en/how_to/propagate_an_orbit.md +151 -0
  38. astrox_python-0.2.0/docs/i18n/en/how_to/run_an_astrogator_mcs.md +116 -0
  39. astrox_python-0.2.0/docs/i18n/en/how_to/screen_close_approaches.md +67 -0
  40. astrox_python-0.2.0/docs/i18n/en/manual/README.md +17 -0
  41. astrox_python-0.2.0/docs/i18n/en/manual/access/README.md +264 -0
  42. astrox_python-0.2.0/docs/i18n/en/manual/astrogator/README.md +675 -0
  43. astrox_python-0.2.0/docs/i18n/en/manual/cat/README.md +277 -0
  44. astrox_python-0.2.0/docs/i18n/en/manual/catalog/README.md +137 -0
  45. astrox_python-0.2.0/docs/i18n/en/manual/celestial/README.md +149 -0
  46. astrox_python-0.2.0/docs/i18n/en/manual/components/README.md +807 -0
  47. astrox_python-0.2.0/docs/i18n/en/manual/conjunction/README.md +169 -0
  48. astrox_python-0.2.0/docs/i18n/en/manual/coverage/README.md +403 -0
  49. astrox_python-0.2.0/docs/i18n/en/manual/lighting/README.md +185 -0
  50. astrox_python-0.2.0/docs/i18n/en/manual/orbits/README.md +473 -0
  51. astrox_python-0.2.0/docs/i18n/en/manual/propagator/README.md +636 -0
  52. astrox_python-0.2.0/docs/i18n/en/manual/rocket/README.md +110 -0
  53. astrox_python-0.2.0/docs/i18n/en/manual/terrain/README.md +139 -0
  54. astrox_python-0.2.0/docs/manual/README.md +17 -0
  55. astrox_python-0.2.0/docs/manual/access/README.md +264 -0
  56. astrox_python-0.2.0/docs/manual/astrogator/README.md +675 -0
  57. astrox_python-0.2.0/docs/manual/cat/README.md +277 -0
  58. astrox_python-0.2.0/docs/manual/catalog/README.md +137 -0
  59. astrox_python-0.2.0/docs/manual/celestial/README.md +149 -0
  60. astrox_python-0.2.0/docs/manual/components/README.md +807 -0
  61. astrox_python-0.2.0/docs/manual/conjunction/README.md +169 -0
  62. astrox_python-0.2.0/docs/manual/coverage/README.md +403 -0
  63. astrox_python-0.2.0/docs/manual/lighting/README.md +185 -0
  64. astrox_python-0.2.0/docs/manual/orbits/README.md +473 -0
  65. astrox_python-0.2.0/docs/manual/propagator/README.md +636 -0
  66. astrox_python-0.2.0/docs/manual/rocket/README.md +110 -0
  67. astrox_python-0.2.0/docs/manual/terrain/README.md +139 -0
  68. {astrox_python-0.1.0 → astrox_python-0.2.0}/docs/sdk-principles.md +3 -3
  69. astrox_python-0.2.0/docs/validation/README.md +21 -0
  70. astrox_python-0.2.0/docs/validation/access.md +348 -0
  71. astrox_python-0.2.0/docs/validation/astrogator.md +238 -0
  72. astrox_python-0.2.0/docs/validation/cat.md +64 -0
  73. astrox_python-0.2.0/docs/validation/catalog.md +18 -0
  74. astrox_python-0.2.0/docs/validation/celestial.md +45 -0
  75. astrox_python-0.2.0/docs/validation/conjunction.md +62 -0
  76. astrox_python-0.2.0/docs/validation/coverage.md +216 -0
  77. astrox_python-0.2.0/docs/validation/lighting.md +171 -0
  78. astrox_python-0.2.0/docs/validation/orbits.md +194 -0
  79. astrox_python-0.2.0/docs/validation/propagator.md +271 -0
  80. astrox_python-0.2.0/docs/validation/rocket.md +93 -0
  81. astrox_python-0.2.0/docs/validation/terrain.md +23 -0
  82. astrox_python-0.2.0/examples/01_propagation/README.md +47 -0
  83. {astrox_python-0.1.0 → astrox_python-0.2.0}/examples/01_propagation/ballistic_apogee_alt.py +25 -26
  84. astrox_python-0.2.0/examples/01_propagation/ballistic_delta_v.py +107 -0
  85. {astrox_python-0.1.0 → astrox_python-0.2.0}/examples/01_propagation/ballistic_min_ecc.py +3 -3
  86. {astrox_python-0.1.0 → astrox_python-0.2.0}/examples/01_propagation/ballistic_time_of_flight.py +3 -3
  87. {astrox_python-0.1.0 → astrox_python-0.2.0}/examples/01_propagation/batch_propagators.py +4 -4
  88. {astrox_python-0.1.0 → astrox_python-0.2.0}/examples/01_propagation/hpop.py +9 -9
  89. {astrox_python-0.1.0 → astrox_python-0.2.0}/examples/01_propagation/j2_classical.py +11 -11
  90. {astrox_python-0.1.0 → astrox_python-0.2.0}/examples/01_propagation/propagator_reference.py +19 -16
  91. {astrox_python-0.1.0 → astrox_python-0.2.0}/examples/01_propagation/sgp4_tle.py +10 -7
  92. {astrox_python-0.1.0 → astrox_python-0.2.0}/examples/01_propagation/simple_ascent.py +4 -4
  93. {astrox_python-0.1.0 → astrox_python-0.2.0}/examples/01_propagation/two_body_classical.py +4 -4
  94. astrox_python-0.2.0/examples/02_orbits/README.md +30 -0
  95. {astrox_python-0.1.0 → astrox_python-0.2.0}/examples/02_orbits/conversions.py +8 -8
  96. {astrox_python-0.1.0 → astrox_python-0.2.0}/examples/02_orbits/lambert_delta_v.py +5 -5
  97. {astrox_python-0.1.0 → astrox_python-0.2.0}/examples/02_orbits/orbit_system.py +16 -17
  98. {astrox_python-0.1.0 → astrox_python-0.2.0}/examples/02_orbits/wizards.py +4 -4
  99. astrox_python-0.2.0/examples/03_lighting/README.md +26 -0
  100. {astrox_python-0.1.0 → astrox_python-0.2.0}/examples/03_lighting/lighting.py +9 -9
  101. astrox_python-0.2.0/examples/04_access/README.md +30 -0
  102. {astrox_python-0.1.0 → astrox_python-0.2.0}/examples/04_access/chain.py +5 -5
  103. {astrox_python-0.1.0 → astrox_python-0.2.0}/examples/04_access/compute.py +7 -7
  104. {astrox_python-0.1.0 → astrox_python-0.2.0}/examples/04_access/constraints.py +7 -7
  105. {astrox_python-0.1.0 → astrox_python-0.2.0}/examples/04_access/custom_axes.py +3 -3
  106. {astrox_python-0.1.0 → astrox_python-0.2.0}/examples/04_access/sensor_pointing.py +3 -3
  107. astrox_python-0.2.0/examples/05_rocket/README.md +7 -0
  108. {astrox_python-0.1.0 → astrox_python-0.2.0}/examples/05_rocket/landing_zone.py +5 -5
  109. astrox_python-0.2.0/examples/06_coverage/README.md +32 -0
  110. {astrox_python-0.1.0 → astrox_python-0.2.0}/examples/06_coverage/compute.py +6 -6
  111. {astrox_python-0.1.0 → astrox_python-0.2.0}/examples/06_coverage/fom.py +6 -6
  112. {astrox_python-0.1.0 → astrox_python-0.2.0}/examples/06_coverage/grid_points.py +3 -3
  113. {astrox_python-0.1.0 → astrox_python-0.2.0}/examples/06_coverage/reports.py +5 -5
  114. astrox_python-0.2.0/examples/07_astrogator/run_mcs.py +68 -0
  115. astrox_python-0.2.0/examples/08_conjunction/README.md +17 -0
  116. astrox_python-0.2.0/examples/08_conjunction/close_approaches.py +79 -0
  117. astrox_python-0.2.0/examples/09_cat/README.md +17 -0
  118. astrox_python-0.2.0/examples/09_cat/cat_workflows.py +81 -0
  119. astrox_python-0.2.0/examples/10_catalog/README.md +17 -0
  120. astrox_python-0.2.0/examples/10_catalog/catalog_queries.py +30 -0
  121. astrox_python-0.2.0/examples/11_celestial/README.md +17 -0
  122. astrox_python-0.2.0/examples/11_celestial/celestial_queries.py +42 -0
  123. astrox_python-0.2.0/examples/12_terrain/README.md +17 -0
  124. astrox_python-0.2.0/examples/12_terrain/terrain_masks.py +36 -0
  125. {astrox_python-0.1.0 → astrox_python-0.2.0}/pyproject.toml +1 -1
  126. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/sdk/access/test_chain.py +30 -0
  127. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/sdk/access/test_compute.py +4 -0
  128. astrox_python-0.2.0/tests/sdk/astrogator/test_api.py +181 -0
  129. astrox_python-0.2.0/tests/sdk/astrogator/test_models.py +625 -0
  130. astrox_python-0.2.0/tests/sdk/astrogator/test_results.py +301 -0
  131. astrox_python-0.2.0/tests/sdk/cat/test_cat.py +646 -0
  132. astrox_python-0.2.0/tests/sdk/catalog/test_catalog.py +187 -0
  133. astrox_python-0.2.0/tests/sdk/celestial/test_celestial.py +266 -0
  134. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/sdk/components/test_components.py +54 -0
  135. astrox_python-0.2.0/tests/sdk/conjunction/test_conjunction.py +481 -0
  136. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/sdk/coverage/test_coverage.py +10 -0
  137. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/sdk/coverage/test_coverage_fom.py +11 -1
  138. astrox_python-0.2.0/tests/sdk/orbits/test_tle.py +160 -0
  139. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/sdk/propagator/helpers.py +8 -1
  140. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/sdk/propagator/test_hpop.py +6 -0
  141. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/sdk/propagator/test_public_contract.py +5 -2
  142. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/sdk/propagator/test_sgp4_simple_ascent.py +21 -40
  143. astrox_python-0.2.0/tests/sdk/terrain/test_terrain.py +192 -0
  144. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/README.md +32 -0
  145. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/_support/__init__.py +2 -0
  146. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/_support/contracts.py +82 -0
  147. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/_support/test_contracts.py +58 -0
  148. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/access/README.md +1 -0
  149. astrox_python-0.2.0/tests/validation/cross_validation/access/_exclusion.py +285 -0
  150. astrox_python-0.2.0/tests/validation/cross_validation/access/test_compute_exclusion_constraints_invariants.py +576 -0
  151. astrox_python-0.2.0/tests/validation/cross_validation/astrogator/__init__.py +1 -0
  152. astrox_python-0.2.0/tests/validation/cross_validation/astrogator/test_branch_semantics.py +540 -0
  153. astrox_python-0.2.0/tests/validation/cross_validation/astrogator/test_initial_state_conversions.py +184 -0
  154. astrox_python-0.2.0/tests/validation/cross_validation/astrogator/test_maneuver_invariants.py +226 -0
  155. astrox_python-0.2.0/tests/validation/cross_validation/astrogator/test_run_mcs_two_body_brahe.py +267 -0
  156. astrox_python-0.2.0/tests/validation/cross_validation/astrogator/test_scalar_invariants.py +596 -0
  157. astrox_python-0.2.0/tests/validation/cross_validation/astrogator/test_sequence_czml_brahe.py +180 -0
  158. astrox_python-0.2.0/tests/validation/cross_validation/astrogator/test_target_sequence_local.py +229 -0
  159. astrox_python-0.2.0/tests/validation/cross_validation/cat/test_cat_skyfield.py +939 -0
  160. astrox_python-0.2.0/tests/validation/cross_validation/celestial/test_cb_axes_rotation_invariants.py +313 -0
  161. astrox_python-0.2.0/tests/validation/cross_validation/celestial/test_ephemeris_skyfield.py +285 -0
  162. astrox_python-0.2.0/tests/validation/cross_validation/conjunction/test_close_approaches_skyfield.py +718 -0
  163. astrox_python-0.2.0/tests/validation/cross_validation/coverage/test_exclusion_grid_constraints_skyfield.py +266 -0
  164. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/coverage/test_fom_grid_options_invariants.py +20 -2
  165. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/coverage/test_grid_point_modifiers_invariants.py +58 -1
  166. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/propagator/test_sgp4_skyfield.py +11 -5
  167. astrox_python-0.2.0/tests/validation/cross_validation/terrain/test_terrain_mask_invariants.py +163 -0
  168. astrox_python-0.2.0/tests/validation/live_snapshot/access/access.snap.json +1434 -0
  169. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/access/test_access.py +23 -6
  170. astrox_python-0.2.0/tests/validation/live_snapshot/astrogator/__init__.py +1 -0
  171. astrox_python-0.2.0/tests/validation/live_snapshot/astrogator/run_mcs.snap.json +2571 -0
  172. astrox_python-0.2.0/tests/validation/live_snapshot/astrogator/test_run_mcs.py +352 -0
  173. astrox_python-0.2.0/tests/validation/live_snapshot/cat/cat.snap.json +485 -0
  174. astrox_python-0.2.0/tests/validation/live_snapshot/cat/test_cat.py +146 -0
  175. astrox_python-0.2.0/tests/validation/live_snapshot/catalog/catalog.snap.json +200 -0
  176. astrox_python-0.2.0/tests/validation/live_snapshot/catalog/test_catalog.py +106 -0
  177. astrox_python-0.2.0/tests/validation/live_snapshot/celestial/celestial.snap.json +194 -0
  178. astrox_python-0.2.0/tests/validation/live_snapshot/celestial/test_celestial.py +191 -0
  179. astrox_python-0.2.0/tests/validation/live_snapshot/conjunction/close_approaches.snap.json +66 -0
  180. astrox_python-0.2.0/tests/validation/live_snapshot/conjunction/test_close_approaches.py +124 -0
  181. astrox_python-0.2.0/tests/validation/live_snapshot/propagator/ballistic.snap.json +213 -0
  182. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/propagator/test_ballistic.py +24 -6
  183. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/propagator/test_sgp4.py +6 -6
  184. astrox_python-0.2.0/tests/validation/live_snapshot/terrain/terrain.snap.json +121 -0
  185. astrox_python-0.2.0/tests/validation/live_snapshot/terrain/test_terrain.py +124 -0
  186. {astrox_python-0.1.0 → astrox_python-0.2.0}/uv.lock +61 -557
  187. astrox_python-0.1.0/README.md +0 -54
  188. astrox_python-0.1.0/docs/sdk/access.md +0 -191
  189. astrox_python-0.1.0/docs/sdk/components.md +0 -351
  190. astrox_python-0.1.0/docs/sdk/coverage.md +0 -171
  191. astrox_python-0.1.0/docs/sdk/lighting.md +0 -75
  192. astrox_python-0.1.0/docs/sdk/orbits.md +0 -215
  193. astrox_python-0.1.0/docs/sdk/propagator.md +0 -272
  194. astrox_python-0.1.0/docs/sdk/rocket.md +0 -55
  195. astrox_python-0.1.0/examples/01_propagation/README.md +0 -47
  196. astrox_python-0.1.0/examples/01_propagation/ballistic_delta_v.py +0 -108
  197. astrox_python-0.1.0/examples/02_orbits/README.md +0 -30
  198. astrox_python-0.1.0/examples/03_lighting/README.md +0 -26
  199. astrox_python-0.1.0/examples/04_access/README.md +0 -30
  200. astrox_python-0.1.0/examples/05_rocket/README.md +0 -7
  201. astrox_python-0.1.0/examples/06_coverage/README.md +0 -32
  202. astrox_python-0.1.0/tests/validation/live_snapshot/access/access.snap.json +0 -1434
  203. astrox_python-0.1.0/tests/validation/live_snapshot/propagator/ballistic.snap.json +0 -213
  204. {astrox_python-0.1.0 → astrox_python-0.2.0}/.gitignore +0 -0
  205. {astrox_python-0.1.0 → astrox_python-0.2.0}/LICENSE +0 -0
  206. {astrox_python-0.1.0 → astrox_python-0.2.0}/astrox/_http.py +0 -0
  207. {astrox_python-0.1.0 → astrox_python-0.2.0}/astrox/access.py +0 -0
  208. {astrox_python-0.1.0 → astrox_python-0.2.0}/astrox/components/_axes.py +0 -0
  209. {astrox_python-0.1.0 → astrox_python-0.2.0}/astrox/components/_common.py +0 -0
  210. {astrox_python-0.1.0 → astrox_python-0.2.0}/astrox/components/_objects.py +0 -0
  211. {astrox_python-0.1.0 → astrox_python-0.2.0}/astrox/components/_positions.py +0 -0
  212. {astrox_python-0.1.0 → astrox_python-0.2.0}/astrox/components/_rotations.py +0 -0
  213. {astrox_python-0.1.0 → astrox_python-0.2.0}/astrox/components/_sensors.py +0 -0
  214. {astrox_python-0.1.0 → astrox_python-0.2.0}/astrox/components/_vgt.py +0 -0
  215. {astrox_python-0.1.0 → astrox_python-0.2.0}/astrox/coverage/__init__.py +0 -0
  216. {astrox_python-0.1.0 → astrox_python-0.2.0}/astrox/coverage/_fom.py +0 -0
  217. {astrox_python-0.1.0 → astrox_python-0.2.0}/astrox/coverage/coverage_time.py +0 -0
  218. {astrox_python-0.1.0 → astrox_python-0.2.0}/astrox/coverage/number_of_assets.py +0 -0
  219. {astrox_python-0.1.0 → astrox_python-0.2.0}/astrox/coverage/response_time.py +0 -0
  220. {astrox_python-0.1.0 → astrox_python-0.2.0}/astrox/coverage/revisit_time.py +0 -0
  221. {astrox_python-0.1.0 → astrox_python-0.2.0}/astrox/coverage/simple_coverage.py +0 -0
  222. {astrox_python-0.1.0 → astrox_python-0.2.0}/astrox/exceptions.py +0 -0
  223. {astrox_python-0.1.0 → astrox_python-0.2.0}/astrox/lighting.py +0 -0
  224. {astrox_python-0.1.0 → astrox_python-0.2.0}/astrox/rocket.py +0 -0
  225. {astrox_python-0.1.0 → astrox_python-0.2.0}/docs/automated-workflows.md +0 -0
  226. {astrox_python-0.1.0 → astrox_python-0.2.0}/docs/test-principles.md +0 -0
  227. {astrox_python-0.1.0 → astrox_python-0.2.0}/examples/manifest.toml +0 -0
  228. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/README.md +0 -0
  229. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/conftest.py +0 -0
  230. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/sdk/access/helpers.py +0 -0
  231. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/sdk/access/test_values.py +0 -0
  232. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/sdk/client/test_client.py +0 -0
  233. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/sdk/helpers.py +0 -0
  234. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/sdk/lighting/test_lighting.py +0 -0
  235. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/sdk/orbits/helpers.py +0 -0
  236. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/sdk/orbits/test_conversions.py +0 -0
  237. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/sdk/orbits/test_keplerian.py +0 -0
  238. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/sdk/orbits/test_orbit_system.py +0 -0
  239. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/sdk/orbits/test_wizards.py +0 -0
  240. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/sdk/propagator/test_ballistic.py +0 -0
  241. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/sdk/propagator/test_j2_two_body.py +0 -0
  242. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/sdk/propagator/test_multi.py +0 -0
  243. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/sdk/rocket/__init__.py +0 -0
  244. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/sdk/rocket/test_rocket.py +0 -0
  245. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/_external/gmat/README.md +0 -0
  246. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/_external/gmat/hpop_driver.py +0 -0
  247. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/_external/gmat/test_hpop_driver.py +0 -0
  248. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/_support/external_tools.py +0 -0
  249. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/_support/gmat.py +0 -0
  250. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/_support/skyfield.py +0 -0
  251. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/_support/test_external_tools.py +0 -0
  252. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/_support/test_gmat.py +0 -0
  253. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/_support/test_skyfield.py +0 -0
  254. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/__init__.py +0 -0
  255. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/access/__init__.py +0 -0
  256. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/access/_aer.py +0 -0
  257. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/access/_cases.py +0 -0
  258. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/access/_constraints.py +0 -0
  259. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/access/_geometry.py +0 -0
  260. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/access/_mixed_model.py +0 -0
  261. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/access/_orientation.py +0 -0
  262. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/access/test_axes_orientation_geometry.py +0 -0
  263. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/access/test_chain_sgp4_skyfield.py +0 -0
  264. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/access/test_composite_czml_axes_geometry.py +0 -0
  265. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/access/test_compute_constraints_skyfield.py +0 -0
  266. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/access/test_compute_ground_sgp4_skyfield.py +0 -0
  267. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/access/test_compute_j2_two_body_geometry.py +0 -0
  268. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/access/test_compute_sgp4_j2_geometry.py +0 -0
  269. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/access/test_compute_site_hpop_geometry.py +0 -0
  270. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/access/test_compute_site_j2_geometry.py +0 -0
  271. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/access/test_compute_site_two_body_geometry.py +0 -0
  272. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/access/test_sensor_pointing_geometry.py +0 -0
  273. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/access/test_vgt_orientation_resolution.py +0 -0
  274. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/coverage/_fom_helpers.py +0 -0
  275. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/coverage/test_fom_at_time_boundaries_invariants.py +0 -0
  276. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/coverage/test_fom_edge_cases_invariants.py +0 -0
  277. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/coverage/test_fom_interval_invariants.py +0 -0
  278. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/coverage/test_fom_resource_options_invariants.py +0 -0
  279. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/coverage/test_fom_response_shapes_invariants.py +0 -0
  280. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/coverage/test_fom_response_time_dynamic_invariants.py +0 -0
  281. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/coverage/test_grid_generation_local.py +0 -0
  282. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/coverage/test_resource_reports_invariants.py +0 -0
  283. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/coverage/test_sgp4_grid_membership_skyfield.py +0 -0
  284. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/lighting/__init__.py +0 -0
  285. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/lighting/test_site_sun_skyfield.py +0 -0
  286. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/lighting/test_spacecraft_solar_intensity_orekit.py +0 -0
  287. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/lighting/test_spacecraft_sun_skyfield.py +0 -0
  288. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/orbit_system/__init__.py +0 -0
  289. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/orbit_system/_support.py +0 -0
  290. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/orbit_system/test_convert_czml_position.py +0 -0
  291. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/orbit_system/test_earth_moon_libration.py +0 -0
  292. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/orbits/__init__.py +0 -0
  293. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/orbits/test_kozai_izsak_mean_elements_invariants.py +0 -0
  294. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/orbits/test_lambert_lamberthub.py +0 -0
  295. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/orbits/test_walker_constellation_equations.py +0 -0
  296. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/orbits/test_wizards_local_derivation.py +0 -0
  297. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/propagator/test_ballistic_geodetic.py +0 -0
  298. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/propagator/test_hpop_gmat.py +0 -0
  299. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/propagator/test_j2_analytical.py +0 -0
  300. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/propagator/test_multi_sgp4_skyfield.py +0 -0
  301. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/propagator/test_simple_ascent_geodetic.py +0 -0
  302. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/propagator/test_two_body_brahe.py +0 -0
  303. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/rocket/__init__.py +0 -0
  304. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/cross_validation/rocket/test_landing_zone_geographiclib.py +0 -0
  305. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/__init__.py +0 -0
  306. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/access/__init__.py +0 -0
  307. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/access/test_chain_topology.py +0 -0
  308. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/access/test_compute_model_pairs.py +0 -0
  309. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/access/test_compute_options.py +0 -0
  310. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/coverage/coverage.snap.json +0 -0
  311. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/coverage/test_coverage.py +0 -0
  312. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/lighting/__init__.py +0 -0
  313. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/lighting/lighting.snap.json +0 -0
  314. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/lighting/test_lighting.py +0 -0
  315. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/orbits/__init__.py +0 -0
  316. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/orbits/conversions.snap.json +0 -0
  317. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/orbits/orbit_system.snap.json +0 -0
  318. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/orbits/test_conversion_roundtrip.py +0 -0
  319. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/orbits/test_conversions.py +0 -0
  320. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/orbits/test_orbit_system.py +0 -0
  321. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/orbits/test_wizards.py +0 -0
  322. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/orbits/wizards.snap.json +0 -0
  323. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/propagator/__init__.py +0 -0
  324. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/propagator/hpop.snap.json +0 -0
  325. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/propagator/j2.snap.json +0 -0
  326. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/propagator/multi_j2.snap.json +0 -0
  327. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/propagator/multi_sgp4.snap.json +0 -0
  328. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/propagator/multi_two_body.snap.json +0 -0
  329. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/propagator/sgp4.snap.json +0 -0
  330. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/propagator/simple_ascent.snap.json +0 -0
  331. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/propagator/test_hpop.py +0 -0
  332. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/propagator/test_j2.py +0 -0
  333. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/propagator/test_multi_j2.py +0 -0
  334. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/propagator/test_multi_sgp4.py +0 -0
  335. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/propagator/test_multi_two_body.py +0 -0
  336. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/propagator/test_simple_ascent.py +0 -0
  337. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/propagator/test_two_body.py +0 -0
  338. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/propagator/two_body.snap.json +0 -0
  339. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/rocket/__init__.py +0 -0
  340. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/rocket/landing_zone.snap.json +0 -0
  341. {astrox_python-0.1.0 → astrox_python-0.2.0}/tests/validation/live_snapshot/rocket/test_landing_zone.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: astrox-python
3
- Version: 0.1.0
3
+ Version: 0.2.0
4
4
  Summary: Python SDK for the ASTROX Web API.
5
5
  Project-URL: Homepage, https://github.com/Mtrya/astrox-python
6
6
  Project-URL: Repository, https://github.com/Mtrya/astrox-python.git
@@ -28,55 +28,60 @@ Description-Content-Type: text/markdown
28
28
 
29
29
  # astrox-python
30
30
 
31
- Python SDK for the ASTROX Web API.
31
+ astrox-python ASTROX Web API 的 Python SDK。
32
32
 
33
- ## Installation
33
+ ## 安装
34
+
35
+ 需要 Python 3.10 或更高版本。
34
36
 
35
37
  ```bash
36
38
  pip install astrox-python
37
39
  ```
38
40
 
39
- Requires Python 3.10 or later.
40
-
41
- ## Quickstart
41
+ ## 一分钟示例
42
42
 
43
- Propagate a simple Keplerian orbit with J2 perturbations:
43
+ 用一组开普勒根数做 J2 传播:
44
44
 
45
45
  ```python
46
+ import astrox
46
47
  from astrox import orbits, propagator
47
48
 
49
+ astrox.configure(base_url="http://astrox.cn:8765")
50
+
48
51
  orbit = orbits.keplerian(
49
52
  semi_major_axis_m=6778137.0,
50
53
  eccentricity=0.001,
51
- inclination_deg=28.5,
54
+ inclination_deg=51.6,
52
55
  argument_of_periapsis_deg=0.0,
53
- raan_deg=0.0,
54
- true_anomaly_deg=0.0,
56
+ raan_deg=120.0,
57
+ true_anomaly_deg=45.0,
55
58
  )
56
59
 
57
60
  period_s, position = propagator.j2(
58
- start="2026-01-01T00:00:00Z",
59
- stop="2026-01-01T01:00:00Z",
60
- orbit_epoch="2026-01-01T00:00:00Z",
61
+ start="2024-01-01T00:00:00.000Z",
62
+ stop="2024-01-01T00:10:00.000Z",
63
+ orbit_epoch="2024-01-01T00:00:00.000Z",
61
64
  orbit=orbit,
62
65
  )
66
+
67
+ print(f"轨道周期: {period_s:.3f} s")
68
+ print(f"位置/速度采样数: {len(position.cartesian_velocity)}")
63
69
  ```
64
70
 
65
- ## Documentation
71
+ 完整首次运行流程见 [快速上手](docs/getting_started.md)。
66
72
 
67
- - SDK guides and API notes: [`docs/sdk/`](./docs/sdk/)
68
- - Runnable examples: [`examples/`](./examples/)
73
+ ## 文档
69
74
 
70
- ## Development
75
+ - 完整文档导航:[docs/README.md](docs/README.md)
76
+ - 可运行示例:[examples/](examples/)
77
+ - 英文快照:[docs/i18n/en/README.md](docs/i18n/en/README.md)
71
78
 
72
- Install from a checkout:
79
+ ## 参与开发
73
80
 
74
- ```bash
75
- uv sync --group dev
76
- uv build --no-build-isolation
77
- uv run python -m pytest -q tests/sdk
78
- ```
81
+ 开发环境搭建与构建步骤见 [CONTRIBUTING.md](docs/CONTRIBUTING.md)。
82
+
83
+ ## 许可
79
84
 
80
- ## License
85
+ MIT 许可证,详见 [LICENSE](LICENSE)。
81
86
 
82
- MIT see [LICENSE](./LICENSE).
87
+ 本项目目前处于 Alpha 阶段。
@@ -0,0 +1,59 @@
1
+ # astrox-python
2
+
3
+ astrox-python 是 ASTROX Web API 的 Python SDK。
4
+
5
+ ## 安装
6
+
7
+ 需要 Python 3.10 或更高版本。
8
+
9
+ ```bash
10
+ pip install astrox-python
11
+ ```
12
+
13
+ ## 一分钟示例
14
+
15
+ 用一组开普勒根数做 J2 传播:
16
+
17
+ ```python
18
+ import astrox
19
+ from astrox import orbits, propagator
20
+
21
+ astrox.configure(base_url="http://astrox.cn:8765")
22
+
23
+ orbit = orbits.keplerian(
24
+ semi_major_axis_m=6778137.0,
25
+ eccentricity=0.001,
26
+ inclination_deg=51.6,
27
+ argument_of_periapsis_deg=0.0,
28
+ raan_deg=120.0,
29
+ true_anomaly_deg=45.0,
30
+ )
31
+
32
+ period_s, position = propagator.j2(
33
+ start="2024-01-01T00:00:00.000Z",
34
+ stop="2024-01-01T00:10:00.000Z",
35
+ orbit_epoch="2024-01-01T00:00:00.000Z",
36
+ orbit=orbit,
37
+ )
38
+
39
+ print(f"轨道周期: {period_s:.3f} s")
40
+ print(f"位置/速度采样数: {len(position.cartesian_velocity)}")
41
+ ```
42
+
43
+ 完整首次运行流程见 [快速上手](docs/getting_started.md)。
44
+
45
+ ## 文档
46
+
47
+ - 完整文档导航:[docs/README.md](docs/README.md)
48
+ - 可运行示例:[examples/](examples/)
49
+ - 英文快照:[docs/i18n/en/README.md](docs/i18n/en/README.md)
50
+
51
+ ## 参与开发
52
+
53
+ 开发环境搭建与构建步骤见 [CONTRIBUTING.md](docs/CONTRIBUTING.md)。
54
+
55
+ ## 许可
56
+
57
+ MIT 许可证,详见 [LICENSE](LICENSE)。
58
+
59
+ 本项目目前处于 Alpha 阶段。
@@ -4,7 +4,7 @@ Functions are organized by domain modules and can use package-level
4
4
  configuration without requiring explicit client management:
5
5
 
6
6
  import astrox
7
- from astrox import access, coverage, components, lighting, orbits, propagator
7
+ from astrox import access, celestial, catalog, components, coverage, lighting, orbits, propagator, terrain
8
8
 
9
9
  astrox.configure(base_url="http://custom:8765", timeout=120)
10
10
  orbit = orbits.keplerian(...)
@@ -26,7 +26,21 @@ Raw route access is available for advanced callers:
26
26
 
27
27
  from importlib.metadata import PackageNotFoundError, version
28
28
 
29
- from astrox import access, coverage, components, lighting, orbits, propagator, rocket
29
+ from astrox import (
30
+ access,
31
+ astrogator,
32
+ catalog,
33
+ cat,
34
+ celestial,
35
+ conjunction,
36
+ components,
37
+ coverage,
38
+ lighting,
39
+ orbits,
40
+ propagator,
41
+ rocket,
42
+ terrain,
43
+ )
30
44
  from astrox._http import Client, configure, get_session, raw
31
45
 
32
46
  try:
@@ -39,11 +53,17 @@ __all__ = [
39
53
  "configure",
40
54
  "get_session",
41
55
  "access",
56
+ "astrogator",
57
+ "catalog",
58
+ "cat",
59
+ "celestial",
60
+ "conjunction",
42
61
  "coverage",
43
62
  "components",
44
63
  "lighting",
45
64
  "orbits",
46
65
  "propagator",
47
66
  "rocket",
67
+ "terrain",
48
68
  "raw",
49
69
  ]
@@ -0,0 +1,8 @@
1
+ """Pythonic Astrogator mission-control sequence API."""
2
+
3
+ from . import _models, _results
4
+ from ._api import run_mcs
5
+ from ._models import * # noqa: F403
6
+ from ._results import * # noqa: F403
7
+
8
+ __all__ = [*_models.__all__, *_results.__all__, "run_mcs"] # noqa: PLE0604
@@ -0,0 +1,60 @@
1
+ """Public Astrogator RunMCS endpoint."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from collections.abc import Sequence
6
+
7
+ from astrox._http import raw
8
+ from astrox.propagator import HpopConfig
9
+
10
+ from ._models import (
11
+ EngineConstant,
12
+ EntityPath,
13
+ MCSSegment,
14
+ _mission_wire,
15
+ )
16
+ from ._results import RunMCSResult, run_mcs_result_from_wire
17
+
18
+
19
+ def _entities_to_wire(values: Sequence[EntityPath] | None) -> list[dict[str, object]] | None:
20
+ if values is None:
21
+ return None
22
+ if isinstance(values, (str, bytes)) or not isinstance(values, Sequence):
23
+ raise TypeError("entities must be a sequence of astrogator EntityPath values")
24
+ items = tuple(values)
25
+ if not all(isinstance(item, EntityPath) for item in items):
26
+ raise TypeError("entities must be a sequence of astrogator EntityPath values")
27
+ return [item.to_wire() for item in items]
28
+
29
+
30
+ def run_mcs(
31
+ main_sequence: Sequence[MCSSegment],
32
+ *,
33
+ central_body: str = "Earth",
34
+ out_czml_frame_name: str = "INERTIAL",
35
+ compute_czml_positions: bool | None = None,
36
+ entities: Sequence[EntityPath] | None = None,
37
+ propagators: Sequence[HpopConfig] | None = None,
38
+ engine_models: Sequence[EngineConstant] | None = None,
39
+ text: str | None = None,
40
+ ) -> RunMCSResult:
41
+ """Run an ASTROX Astrogator mission-control sequence."""
42
+
43
+ payload = _mission_wire(
44
+ central_body=central_body,
45
+ main_sequence=main_sequence,
46
+ compute_czml_positions=compute_czml_positions,
47
+ out_czml_frame_name=out_czml_frame_name,
48
+ text=text,
49
+ propagators=propagators,
50
+ engine_models=engine_models,
51
+ )
52
+ entity_values = _entities_to_wire(entities)
53
+ if entity_values is not None:
54
+ payload["Entities"] = entity_values
55
+
56
+ result = raw.post("/Astrogator/RunMCS", json=payload)
57
+ return run_mcs_result_from_wire(result)
58
+
59
+
60
+ __all__ = ["run_mcs"]