astrox-python 0.1.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.
- astrox_python-0.1.0/.gitignore +20 -0
- astrox_python-0.1.0/LICENSE +21 -0
- astrox_python-0.1.0/PKG-INFO +82 -0
- astrox_python-0.1.0/README.md +54 -0
- astrox_python-0.1.0/astrox/__init__.py +49 -0
- astrox_python-0.1.0/astrox/_http.py +504 -0
- astrox_python-0.1.0/astrox/access.py +173 -0
- astrox_python-0.1.0/astrox/components/__init__.py +202 -0
- astrox_python-0.1.0/astrox/components/_axes.py +508 -0
- astrox_python-0.1.0/astrox/components/_common.py +141 -0
- astrox_python-0.1.0/astrox/components/_constraints.py +138 -0
- astrox_python-0.1.0/astrox/components/_objects.py +167 -0
- astrox_python-0.1.0/astrox/components/_positions.py +673 -0
- astrox_python-0.1.0/astrox/components/_rotations.py +115 -0
- astrox_python-0.1.0/astrox/components/_sensors.py +134 -0
- astrox_python-0.1.0/astrox/components/_vgt.py +337 -0
- astrox_python-0.1.0/astrox/coverage/__init__.py +41 -0
- astrox_python-0.1.0/astrox/coverage/_core.py +552 -0
- astrox_python-0.1.0/astrox/coverage/_fom.py +125 -0
- astrox_python-0.1.0/astrox/coverage/coverage_time.py +83 -0
- astrox_python-0.1.0/astrox/coverage/number_of_assets.py +160 -0
- astrox_python-0.1.0/astrox/coverage/response_time.py +160 -0
- astrox_python-0.1.0/astrox/coverage/revisit_time.py +160 -0
- astrox_python-0.1.0/astrox/coverage/simple_coverage.py +152 -0
- astrox_python-0.1.0/astrox/exceptions.py +92 -0
- astrox_python-0.1.0/astrox/lighting.py +121 -0
- astrox_python-0.1.0/astrox/orbits.py +499 -0
- astrox_python-0.1.0/astrox/propagator.py +1072 -0
- astrox_python-0.1.0/astrox/rocket.py +82 -0
- astrox_python-0.1.0/docs/automated-workflows.md +77 -0
- astrox_python-0.1.0/docs/sdk/access.md +191 -0
- astrox_python-0.1.0/docs/sdk/components.md +351 -0
- astrox_python-0.1.0/docs/sdk/coverage.md +171 -0
- astrox_python-0.1.0/docs/sdk/lighting.md +75 -0
- astrox_python-0.1.0/docs/sdk/orbits.md +215 -0
- astrox_python-0.1.0/docs/sdk/propagator.md +272 -0
- astrox_python-0.1.0/docs/sdk/rocket.md +55 -0
- astrox_python-0.1.0/docs/sdk-principles.md +155 -0
- astrox_python-0.1.0/docs/test-principles.md +178 -0
- astrox_python-0.1.0/examples/01_propagation/README.md +47 -0
- astrox_python-0.1.0/examples/01_propagation/ballistic_apogee_alt.py +91 -0
- astrox_python-0.1.0/examples/01_propagation/ballistic_delta_v.py +108 -0
- astrox_python-0.1.0/examples/01_propagation/ballistic_min_ecc.py +28 -0
- astrox_python-0.1.0/examples/01_propagation/ballistic_time_of_flight.py +28 -0
- astrox_python-0.1.0/examples/01_propagation/batch_propagators.py +81 -0
- astrox_python-0.1.0/examples/01_propagation/hpop.py +95 -0
- astrox_python-0.1.0/examples/01_propagation/j2_classical.py +53 -0
- astrox_python-0.1.0/examples/01_propagation/propagator_reference.py +130 -0
- astrox_python-0.1.0/examples/01_propagation/sgp4_tle.py +31 -0
- astrox_python-0.1.0/examples/01_propagation/simple_ascent.py +31 -0
- astrox_python-0.1.0/examples/01_propagation/two_body_classical.py +37 -0
- astrox_python-0.1.0/examples/02_orbits/README.md +30 -0
- astrox_python-0.1.0/examples/02_orbits/conversions.py +62 -0
- astrox_python-0.1.0/examples/02_orbits/lambert_delta_v.py +74 -0
- astrox_python-0.1.0/examples/02_orbits/orbit_system.py +73 -0
- astrox_python-0.1.0/examples/02_orbits/wizards.py +116 -0
- astrox_python-0.1.0/examples/03_lighting/README.md +26 -0
- astrox_python-0.1.0/examples/03_lighting/lighting.py +60 -0
- astrox_python-0.1.0/examples/04_access/README.md +30 -0
- astrox_python-0.1.0/examples/04_access/chain.py +69 -0
- astrox_python-0.1.0/examples/04_access/compute.py +64 -0
- astrox_python-0.1.0/examples/04_access/constraints.py +88 -0
- astrox_python-0.1.0/examples/04_access/custom_axes.py +76 -0
- astrox_python-0.1.0/examples/04_access/sensor_pointing.py +75 -0
- astrox_python-0.1.0/examples/05_rocket/README.md +7 -0
- astrox_python-0.1.0/examples/05_rocket/landing_zone.py +44 -0
- astrox_python-0.1.0/examples/06_coverage/README.md +32 -0
- astrox_python-0.1.0/examples/06_coverage/compute.py +58 -0
- astrox_python-0.1.0/examples/06_coverage/fom.py +63 -0
- astrox_python-0.1.0/examples/06_coverage/grid_points.py +31 -0
- astrox_python-0.1.0/examples/06_coverage/reports.py +57 -0
- astrox_python-0.1.0/examples/manifest.toml +16 -0
- astrox_python-0.1.0/pyproject.toml +118 -0
- astrox_python-0.1.0/tests/README.md +9 -0
- astrox_python-0.1.0/tests/conftest.py +11 -0
- astrox_python-0.1.0/tests/sdk/access/helpers.py +58 -0
- astrox_python-0.1.0/tests/sdk/access/test_chain.py +292 -0
- astrox_python-0.1.0/tests/sdk/access/test_compute.py +349 -0
- astrox_python-0.1.0/tests/sdk/access/test_values.py +88 -0
- astrox_python-0.1.0/tests/sdk/client/test_client.py +487 -0
- astrox_python-0.1.0/tests/sdk/components/test_components.py +1101 -0
- astrox_python-0.1.0/tests/sdk/coverage/test_coverage.py +558 -0
- astrox_python-0.1.0/tests/sdk/coverage/test_coverage_fom.py +340 -0
- astrox_python-0.1.0/tests/sdk/helpers.py +19 -0
- astrox_python-0.1.0/tests/sdk/lighting/test_lighting.py +374 -0
- astrox_python-0.1.0/tests/sdk/orbits/helpers.py +263 -0
- astrox_python-0.1.0/tests/sdk/orbits/test_conversions.py +409 -0
- astrox_python-0.1.0/tests/sdk/orbits/test_keplerian.py +202 -0
- astrox_python-0.1.0/tests/sdk/orbits/test_orbit_system.py +267 -0
- astrox_python-0.1.0/tests/sdk/orbits/test_wizards.py +343 -0
- astrox_python-0.1.0/tests/sdk/propagator/helpers.py +275 -0
- astrox_python-0.1.0/tests/sdk/propagator/test_ballistic.py +202 -0
- astrox_python-0.1.0/tests/sdk/propagator/test_hpop.py +392 -0
- astrox_python-0.1.0/tests/sdk/propagator/test_j2_two_body.py +197 -0
- astrox_python-0.1.0/tests/sdk/propagator/test_multi.py +363 -0
- astrox_python-0.1.0/tests/sdk/propagator/test_public_contract.py +447 -0
- astrox_python-0.1.0/tests/sdk/propagator/test_sgp4_simple_ascent.py +263 -0
- astrox_python-0.1.0/tests/sdk/rocket/__init__.py +0 -0
- astrox_python-0.1.0/tests/sdk/rocket/test_rocket.py +158 -0
- astrox_python-0.1.0/tests/validation/README.md +67 -0
- astrox_python-0.1.0/tests/validation/_external/gmat/README.md +13 -0
- astrox_python-0.1.0/tests/validation/_external/gmat/hpop_driver.py +301 -0
- astrox_python-0.1.0/tests/validation/_external/gmat/test_hpop_driver.py +36 -0
- astrox_python-0.1.0/tests/validation/_support/__init__.py +64 -0
- astrox_python-0.1.0/tests/validation/_support/contracts.py +462 -0
- astrox_python-0.1.0/tests/validation/_support/external_tools.py +87 -0
- astrox_python-0.1.0/tests/validation/_support/gmat.py +90 -0
- astrox_python-0.1.0/tests/validation/_support/skyfield.py +58 -0
- astrox_python-0.1.0/tests/validation/_support/test_contracts.py +194 -0
- astrox_python-0.1.0/tests/validation/_support/test_external_tools.py +57 -0
- astrox_python-0.1.0/tests/validation/_support/test_gmat.py +91 -0
- astrox_python-0.1.0/tests/validation/_support/test_skyfield.py +81 -0
- astrox_python-0.1.0/tests/validation/cross_validation/__init__.py +11 -0
- astrox_python-0.1.0/tests/validation/cross_validation/access/README.md +41 -0
- astrox_python-0.1.0/tests/validation/cross_validation/access/__init__.py +11 -0
- astrox_python-0.1.0/tests/validation/cross_validation/access/_aer.py +396 -0
- astrox_python-0.1.0/tests/validation/cross_validation/access/_cases.py +284 -0
- astrox_python-0.1.0/tests/validation/cross_validation/access/_constraints.py +283 -0
- astrox_python-0.1.0/tests/validation/cross_validation/access/_geometry.py +378 -0
- astrox_python-0.1.0/tests/validation/cross_validation/access/_mixed_model.py +121 -0
- astrox_python-0.1.0/tests/validation/cross_validation/access/_orientation.py +650 -0
- astrox_python-0.1.0/tests/validation/cross_validation/access/test_axes_orientation_geometry.py +465 -0
- astrox_python-0.1.0/tests/validation/cross_validation/access/test_chain_sgp4_skyfield.py +450 -0
- astrox_python-0.1.0/tests/validation/cross_validation/access/test_composite_czml_axes_geometry.py +919 -0
- astrox_python-0.1.0/tests/validation/cross_validation/access/test_compute_constraints_skyfield.py +962 -0
- astrox_python-0.1.0/tests/validation/cross_validation/access/test_compute_ground_sgp4_skyfield.py +245 -0
- astrox_python-0.1.0/tests/validation/cross_validation/access/test_compute_j2_two_body_geometry.py +63 -0
- astrox_python-0.1.0/tests/validation/cross_validation/access/test_compute_sgp4_j2_geometry.py +77 -0
- astrox_python-0.1.0/tests/validation/cross_validation/access/test_compute_site_hpop_geometry.py +59 -0
- astrox_python-0.1.0/tests/validation/cross_validation/access/test_compute_site_j2_geometry.py +59 -0
- astrox_python-0.1.0/tests/validation/cross_validation/access/test_compute_site_two_body_geometry.py +59 -0
- astrox_python-0.1.0/tests/validation/cross_validation/access/test_sensor_pointing_geometry.py +392 -0
- astrox_python-0.1.0/tests/validation/cross_validation/access/test_vgt_orientation_resolution.py +512 -0
- astrox_python-0.1.0/tests/validation/cross_validation/coverage/_fom_helpers.py +207 -0
- astrox_python-0.1.0/tests/validation/cross_validation/coverage/test_fom_at_time_boundaries_invariants.py +156 -0
- astrox_python-0.1.0/tests/validation/cross_validation/coverage/test_fom_edge_cases_invariants.py +233 -0
- astrox_python-0.1.0/tests/validation/cross_validation/coverage/test_fom_grid_options_invariants.py +386 -0
- astrox_python-0.1.0/tests/validation/cross_validation/coverage/test_fom_interval_invariants.py +316 -0
- astrox_python-0.1.0/tests/validation/cross_validation/coverage/test_fom_resource_options_invariants.py +189 -0
- astrox_python-0.1.0/tests/validation/cross_validation/coverage/test_fom_response_shapes_invariants.py +174 -0
- astrox_python-0.1.0/tests/validation/cross_validation/coverage/test_fom_response_time_dynamic_invariants.py +137 -0
- astrox_python-0.1.0/tests/validation/cross_validation/coverage/test_grid_generation_local.py +727 -0
- astrox_python-0.1.0/tests/validation/cross_validation/coverage/test_grid_point_modifiers_invariants.py +442 -0
- astrox_python-0.1.0/tests/validation/cross_validation/coverage/test_resource_reports_invariants.py +648 -0
- astrox_python-0.1.0/tests/validation/cross_validation/coverage/test_sgp4_grid_membership_skyfield.py +154 -0
- astrox_python-0.1.0/tests/validation/cross_validation/lighting/__init__.py +11 -0
- astrox_python-0.1.0/tests/validation/cross_validation/lighting/test_site_sun_skyfield.py +681 -0
- astrox_python-0.1.0/tests/validation/cross_validation/lighting/test_spacecraft_solar_intensity_orekit.py +280 -0
- astrox_python-0.1.0/tests/validation/cross_validation/lighting/test_spacecraft_sun_skyfield.py +455 -0
- astrox_python-0.1.0/tests/validation/cross_validation/orbit_system/__init__.py +0 -0
- astrox_python-0.1.0/tests/validation/cross_validation/orbit_system/_support.py +1025 -0
- astrox_python-0.1.0/tests/validation/cross_validation/orbit_system/test_convert_czml_position.py +202 -0
- astrox_python-0.1.0/tests/validation/cross_validation/orbit_system/test_earth_moon_libration.py +91 -0
- astrox_python-0.1.0/tests/validation/cross_validation/orbits/__init__.py +11 -0
- astrox_python-0.1.0/tests/validation/cross_validation/orbits/test_kozai_izsak_mean_elements_invariants.py +148 -0
- astrox_python-0.1.0/tests/validation/cross_validation/orbits/test_lambert_lamberthub.py +407 -0
- astrox_python-0.1.0/tests/validation/cross_validation/orbits/test_walker_constellation_equations.py +233 -0
- astrox_python-0.1.0/tests/validation/cross_validation/orbits/test_wizards_local_derivation.py +261 -0
- astrox_python-0.1.0/tests/validation/cross_validation/propagator/test_ballistic_geodetic.py +249 -0
- astrox_python-0.1.0/tests/validation/cross_validation/propagator/test_hpop_gmat.py +632 -0
- astrox_python-0.1.0/tests/validation/cross_validation/propagator/test_j2_analytical.py +308 -0
- astrox_python-0.1.0/tests/validation/cross_validation/propagator/test_multi_sgp4_skyfield.py +171 -0
- astrox_python-0.1.0/tests/validation/cross_validation/propagator/test_sgp4_skyfield.py +183 -0
- astrox_python-0.1.0/tests/validation/cross_validation/propagator/test_simple_ascent_geodetic.py +190 -0
- astrox_python-0.1.0/tests/validation/cross_validation/propagator/test_two_body_brahe.py +267 -0
- astrox_python-0.1.0/tests/validation/cross_validation/rocket/__init__.py +0 -0
- astrox_python-0.1.0/tests/validation/cross_validation/rocket/test_landing_zone_geographiclib.py +273 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/__init__.py +1 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/access/__init__.py +1 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/access/access.snap.json +1434 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/access/test_access.py +597 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/access/test_chain_topology.py +486 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/access/test_compute_model_pairs.py +131 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/access/test_compute_options.py +133 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/coverage/coverage.snap.json +1884 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/coverage/test_coverage.py +453 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/lighting/__init__.py +1 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/lighting/lighting.snap.json +310 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/lighting/test_lighting.py +241 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/orbits/__init__.py +1 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/orbits/conversions.snap.json +104 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/orbits/orbit_system.snap.json +119 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/orbits/test_conversion_roundtrip.py +251 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/orbits/test_conversions.py +193 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/orbits/test_orbit_system.py +100 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/orbits/test_wizards.py +138 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/orbits/wizards.snap.json +254 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/propagator/__init__.py +1 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/propagator/ballistic.snap.json +213 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/propagator/hpop.snap.json +172 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/propagator/j2.snap.json +49 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/propagator/multi_j2.snap.json +35 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/propagator/multi_sgp4.snap.json +35 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/propagator/multi_two_body.snap.json +35 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/propagator/sgp4.snap.json +38 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/propagator/simple_ascent.snap.json +49 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/propagator/test_ballistic.py +107 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/propagator/test_hpop.py +211 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/propagator/test_j2.py +65 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/propagator/test_multi_j2.py +85 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/propagator/test_multi_sgp4.py +70 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/propagator/test_multi_two_body.py +85 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/propagator/test_sgp4.py +58 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/propagator/test_simple_ascent.py +56 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/propagator/test_two_body.py +63 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/propagator/two_body.snap.json +49 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/rocket/__init__.py +0 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/rocket/landing_zone.snap.json +65 -0
- astrox_python-0.1.0/tests/validation/live_snapshot/rocket/test_landing_zone.py +101 -0
- astrox_python-0.1.0/uv.lock +2181 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Python-generated files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[oc]
|
|
4
|
+
build/
|
|
5
|
+
dist/
|
|
6
|
+
wheels/
|
|
7
|
+
*.egg-info
|
|
8
|
+
.codex
|
|
9
|
+
.runtime/
|
|
10
|
+
|
|
11
|
+
# Virtual environments
|
|
12
|
+
.venv
|
|
13
|
+
|
|
14
|
+
# Internal & intermediate docs
|
|
15
|
+
*.md
|
|
16
|
+
!README.md
|
|
17
|
+
!docs/**/*.md
|
|
18
|
+
docs/MAINTAINER_QUESTIONS.md
|
|
19
|
+
!openapi/**/*.md
|
|
20
|
+
!.agents/skills/**/*.md
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Mtrya
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: astrox-python
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Python SDK for the ASTROX Web API.
|
|
5
|
+
Project-URL: Homepage, https://github.com/Mtrya/astrox-python
|
|
6
|
+
Project-URL: Repository, https://github.com/Mtrya/astrox-python.git
|
|
7
|
+
Project-URL: Issues, https://github.com/Mtrya/astrox-python/issues
|
|
8
|
+
Project-URL: Documentation, https://github.com/Mtrya/astrox-python/tree/main/docs
|
|
9
|
+
Author-email: Mtrya <erchanmion20@outlook.com>
|
|
10
|
+
License-Expression: MIT
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Keywords: astrodynamics,astrox,orbit,propagation,sdk,space
|
|
13
|
+
Classifier: Development Status :: 3 - Alpha
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Intended Audience :: Science/Research
|
|
16
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
17
|
+
Classifier: Operating System :: OS Independent
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
23
|
+
Classifier: Topic :: Scientific/Engineering :: Astronomy
|
|
24
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
25
|
+
Requires-Python: >=3.10
|
|
26
|
+
Requires-Dist: requests>=2.34.2
|
|
27
|
+
Description-Content-Type: text/markdown
|
|
28
|
+
|
|
29
|
+
# astrox-python
|
|
30
|
+
|
|
31
|
+
Python SDK for the ASTROX Web API.
|
|
32
|
+
|
|
33
|
+
## Installation
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
pip install astrox-python
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Requires Python 3.10 or later.
|
|
40
|
+
|
|
41
|
+
## Quickstart
|
|
42
|
+
|
|
43
|
+
Propagate a simple Keplerian orbit with J2 perturbations:
|
|
44
|
+
|
|
45
|
+
```python
|
|
46
|
+
from astrox import orbits, propagator
|
|
47
|
+
|
|
48
|
+
orbit = orbits.keplerian(
|
|
49
|
+
semi_major_axis_m=6778137.0,
|
|
50
|
+
eccentricity=0.001,
|
|
51
|
+
inclination_deg=28.5,
|
|
52
|
+
argument_of_periapsis_deg=0.0,
|
|
53
|
+
raan_deg=0.0,
|
|
54
|
+
true_anomaly_deg=0.0,
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
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
|
+
orbit=orbit,
|
|
62
|
+
)
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Documentation
|
|
66
|
+
|
|
67
|
+
- SDK guides and API notes: [`docs/sdk/`](./docs/sdk/)
|
|
68
|
+
- Runnable examples: [`examples/`](./examples/)
|
|
69
|
+
|
|
70
|
+
## Development
|
|
71
|
+
|
|
72
|
+
Install from a checkout:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
uv sync --group dev
|
|
76
|
+
uv build --no-build-isolation
|
|
77
|
+
uv run python -m pytest -q tests/sdk
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## License
|
|
81
|
+
|
|
82
|
+
MIT — see [LICENSE](./LICENSE).
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# astrox-python
|
|
2
|
+
|
|
3
|
+
Python SDK for the ASTROX Web API.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install astrox-python
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Requires Python 3.10 or later.
|
|
12
|
+
|
|
13
|
+
## Quickstart
|
|
14
|
+
|
|
15
|
+
Propagate a simple Keplerian orbit with J2 perturbations:
|
|
16
|
+
|
|
17
|
+
```python
|
|
18
|
+
from astrox import orbits, propagator
|
|
19
|
+
|
|
20
|
+
orbit = orbits.keplerian(
|
|
21
|
+
semi_major_axis_m=6778137.0,
|
|
22
|
+
eccentricity=0.001,
|
|
23
|
+
inclination_deg=28.5,
|
|
24
|
+
argument_of_periapsis_deg=0.0,
|
|
25
|
+
raan_deg=0.0,
|
|
26
|
+
true_anomaly_deg=0.0,
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
period_s, position = propagator.j2(
|
|
30
|
+
start="2026-01-01T00:00:00Z",
|
|
31
|
+
stop="2026-01-01T01:00:00Z",
|
|
32
|
+
orbit_epoch="2026-01-01T00:00:00Z",
|
|
33
|
+
orbit=orbit,
|
|
34
|
+
)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Documentation
|
|
38
|
+
|
|
39
|
+
- SDK guides and API notes: [`docs/sdk/`](./docs/sdk/)
|
|
40
|
+
- Runnable examples: [`examples/`](./examples/)
|
|
41
|
+
|
|
42
|
+
## Development
|
|
43
|
+
|
|
44
|
+
Install from a checkout:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
uv sync --group dev
|
|
48
|
+
uv build --no-build-isolation
|
|
49
|
+
uv run python -m pytest -q tests/sdk
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## License
|
|
53
|
+
|
|
54
|
+
MIT — see [LICENSE](./LICENSE).
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"""Python interface for the ASTROX Web API.
|
|
2
|
+
|
|
3
|
+
Functions are organized by domain modules and can use package-level
|
|
4
|
+
configuration without requiring explicit client management:
|
|
5
|
+
|
|
6
|
+
import astrox
|
|
7
|
+
from astrox import access, coverage, components, lighting, orbits, propagator
|
|
8
|
+
|
|
9
|
+
astrox.configure(base_url="http://custom:8765", timeout=120)
|
|
10
|
+
orbit = orbits.keplerian(...)
|
|
11
|
+
period_s, position = propagator.j2(
|
|
12
|
+
start="2026-01-01T00:00:00Z",
|
|
13
|
+
stop="2026-01-01T01:00:00Z",
|
|
14
|
+
orbit_epoch="2026-01-01T00:00:00Z",
|
|
15
|
+
orbit=orbit,
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
For advanced configuration, instantiate Client directly:
|
|
19
|
+
|
|
20
|
+
client = astrox.Client(timeout=60)
|
|
21
|
+
|
|
22
|
+
Raw route access is available for advanced callers:
|
|
23
|
+
|
|
24
|
+
result = astrox.raw.post("/Propagator/J2", json={...})
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
from importlib.metadata import PackageNotFoundError, version
|
|
28
|
+
|
|
29
|
+
from astrox import access, coverage, components, lighting, orbits, propagator, rocket
|
|
30
|
+
from astrox._http import Client, configure, get_session, raw
|
|
31
|
+
|
|
32
|
+
try:
|
|
33
|
+
__version__ = version("astrox-python")
|
|
34
|
+
except PackageNotFoundError:
|
|
35
|
+
__version__ = "0.0.0+unknown"
|
|
36
|
+
|
|
37
|
+
__all__ = [
|
|
38
|
+
"Client",
|
|
39
|
+
"configure",
|
|
40
|
+
"get_session",
|
|
41
|
+
"access",
|
|
42
|
+
"coverage",
|
|
43
|
+
"components",
|
|
44
|
+
"lighting",
|
|
45
|
+
"orbits",
|
|
46
|
+
"propagator",
|
|
47
|
+
"rocket",
|
|
48
|
+
"raw",
|
|
49
|
+
]
|