open-space-toolkit-astrodynamics 17.2.0__py312-none-manylinux2014_x86_64.whl
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.
- open_space_toolkit_astrodynamics-17.2.0.dist-info/METADATA +30 -0
- open_space_toolkit_astrodynamics-17.2.0.dist-info/RECORD +151 -0
- open_space_toolkit_astrodynamics-17.2.0.dist-info/WHEEL +5 -0
- open_space_toolkit_astrodynamics-17.2.0.dist-info/top_level.txt +1 -0
- open_space_toolkit_astrodynamics-17.2.0.dist-info/zip-safe +1 -0
- ostk/__init__.py +1 -0
- ostk/astrodynamics/OpenSpaceToolkitAstrodynamicsPy.cpython-312-x86_64-linux-gnu.so +0 -0
- ostk/astrodynamics/__init__.py +11 -0
- ostk/astrodynamics/__init__.pyi +720 -0
- ostk/astrodynamics/access.pyi +577 -0
- ostk/astrodynamics/conjunction/__init__.pyi +121 -0
- ostk/astrodynamics/conjunction/close_approach.pyi +89 -0
- ostk/astrodynamics/conjunction/message/__init__.pyi +3 -0
- ostk/astrodynamics/conjunction/message/ccsds.pyi +705 -0
- ostk/astrodynamics/converters.py +130 -0
- ostk/astrodynamics/converters.pyi +58 -0
- ostk/astrodynamics/data/__init__.pyi +3 -0
- ostk/astrodynamics/data/provider.pyi +22 -0
- ostk/astrodynamics/dataframe.py +597 -0
- ostk/astrodynamics/display.py +281 -0
- ostk/astrodynamics/dynamics.pyi +311 -0
- ostk/astrodynamics/eclipse.pyi +70 -0
- ostk/astrodynamics/estimator.pyi +268 -0
- ostk/astrodynamics/event_condition.pyi +910 -0
- ostk/astrodynamics/flight/__init__.pyi +626 -0
- ostk/astrodynamics/flight/profile/__init__.pyi +99 -0
- ostk/astrodynamics/flight/profile/model.pyi +179 -0
- ostk/astrodynamics/flight/system.pyi +268 -0
- ostk/astrodynamics/guidance_law.pyi +416 -0
- ostk/astrodynamics/libopen-space-toolkit-astrodynamics.so.17 +0 -0
- ostk/astrodynamics/pytrajectory/__init__.py +1 -0
- ostk/astrodynamics/pytrajectory/__init__.pyi +3 -0
- ostk/astrodynamics/pytrajectory/pystate.py +263 -0
- ostk/astrodynamics/pytrajectory/pystate.pyi +66 -0
- ostk/astrodynamics/solver.pyi +432 -0
- ostk/astrodynamics/test/__init__.py +1 -0
- ostk/astrodynamics/test/access/__init__.py +1 -0
- ostk/astrodynamics/test/access/test_generator.py +319 -0
- ostk/astrodynamics/test/access/test_visibility_criterion.py +201 -0
- ostk/astrodynamics/test/conftest.py +119 -0
- ostk/astrodynamics/test/conjunction/close_approach/__init__.py +0 -0
- ostk/astrodynamics/test/conjunction/close_approach/test_generator.py +228 -0
- ostk/astrodynamics/test/conjunction/message/ccsds/__init__.py +1 -0
- ostk/astrodynamics/test/conjunction/message/ccsds/conftest.py +325 -0
- ostk/astrodynamics/test/conjunction/message/ccsds/data/cdm.json +303 -0
- ostk/astrodynamics/test/conjunction/message/ccsds/test_cdm.py +416 -0
- ostk/astrodynamics/test/conjunction/test_close_approach.py +244 -0
- ostk/astrodynamics/test/data/provider/test_off_nadir.py +58 -0
- ostk/astrodynamics/test/dynamics/__init__.py +1 -0
- ostk/astrodynamics/test/dynamics/data/Tabulated_Earth_Gravity.csv +565 -0
- ostk/astrodynamics/test/dynamics/data/Tabulated_Earth_Gravity_Truth.csv +100 -0
- ostk/astrodynamics/test/dynamics/test_atmospheric_drag.py +128 -0
- ostk/astrodynamics/test/dynamics/test_central_body_gravity.py +58 -0
- ostk/astrodynamics/test/dynamics/test_dynamics.py +50 -0
- ostk/astrodynamics/test/dynamics/test_position_derivative.py +51 -0
- ostk/astrodynamics/test/dynamics/test_tabulated.py +138 -0
- ostk/astrodynamics/test/dynamics/test_third_body_gravity.py +67 -0
- ostk/astrodynamics/test/dynamics/test_thruster.py +157 -0
- ostk/astrodynamics/test/eclipse/__init__.py +1 -0
- ostk/astrodynamics/test/eclipse/test_generator.py +138 -0
- ostk/astrodynamics/test/estimator/test_orbit_determination_solver.py +261 -0
- ostk/astrodynamics/test/estimator/test_tle_solver.py +216 -0
- ostk/astrodynamics/test/event_condition/test_angular_condition.py +113 -0
- ostk/astrodynamics/test/event_condition/test_boolean_condition.py +55 -0
- ostk/astrodynamics/test/event_condition/test_brouwer_lyddane_mean_long_condition.py +135 -0
- ostk/astrodynamics/test/event_condition/test_coe_condition.py +135 -0
- ostk/astrodynamics/test/event_condition/test_instant_condition.py +48 -0
- ostk/astrodynamics/test/event_condition/test_logical_condition.py +120 -0
- ostk/astrodynamics/test/event_condition/test_real_condition.py +50 -0
- ostk/astrodynamics/test/flight/__init__.py +1 -0
- ostk/astrodynamics/test/flight/profile/model/test_tabulated_profile.py +115 -0
- ostk/astrodynamics/test/flight/system/__init__.py +1 -0
- ostk/astrodynamics/test/flight/system/test_propulsion_system.py +64 -0
- ostk/astrodynamics/test/flight/system/test_satellite_system.py +83 -0
- ostk/astrodynamics/test/flight/system/test_satellite_system_builder.py +71 -0
- ostk/astrodynamics/test/flight/test_maneuver.py +231 -0
- ostk/astrodynamics/test/flight/test_profile.py +293 -0
- ostk/astrodynamics/test/flight/test_system.py +45 -0
- ostk/astrodynamics/test/guidance_law/test_constant_thrust.py +177 -0
- ostk/astrodynamics/test/guidance_law/test_guidance_law.py +60 -0
- ostk/astrodynamics/test/guidance_law/test_heterogeneous_guidance_law.py +164 -0
- ostk/astrodynamics/test/guidance_law/test_qlaw.py +209 -0
- ostk/astrodynamics/test/solvers/__init__.py +1 -0
- ostk/astrodynamics/test/solvers/test_finite_difference_solver.py +196 -0
- ostk/astrodynamics/test/solvers/test_least_squares_solver.py +334 -0
- ostk/astrodynamics/test/solvers/test_temporal_condition_solver.py +161 -0
- ostk/astrodynamics/test/test_access.py +128 -0
- ostk/astrodynamics/test/test_converters.py +290 -0
- ostk/astrodynamics/test/test_dataframe.py +1355 -0
- ostk/astrodynamics/test/test_display.py +184 -0
- ostk/astrodynamics/test/test_event_condition.py +80 -0
- ostk/astrodynamics/test/test_import.py +26 -0
- ostk/astrodynamics/test/test_root_solver.py +70 -0
- ostk/astrodynamics/test/test_trajectory.py +126 -0
- ostk/astrodynamics/test/test_utilities.py +338 -0
- ostk/astrodynamics/test/test_viewer.py +318 -0
- ostk/astrodynamics/test/trajectory/__init__.py +1 -0
- ostk/astrodynamics/test/trajectory/model/test_nadir_trajectory.py +87 -0
- ostk/astrodynamics/test/trajectory/model/test_tabulated_trajectory.py +303 -0
- ostk/astrodynamics/test/trajectory/model/test_target_scan_trajectory.py +126 -0
- ostk/astrodynamics/test/trajectory/orbit/__init__.py +1 -0
- ostk/astrodynamics/test/trajectory/orbit/message/__init__.py +1 -0
- ostk/astrodynamics/test/trajectory/orbit/message/spacex/__init__.py +1 -0
- ostk/astrodynamics/test/trajectory/orbit/message/spacex/conftest.py +18 -0
- ostk/astrodynamics/test/trajectory/orbit/message/spacex/data/opm_1.yaml +44 -0
- ostk/astrodynamics/test/trajectory/orbit/message/spacex/test_opm.py +108 -0
- ostk/astrodynamics/test/trajectory/orbit/models/__init__.py +1 -0
- ostk/astrodynamics/test/trajectory/orbit/models/kepler/__init__.py +1 -0
- ostk/astrodynamics/test/trajectory/orbit/models/kepler/test_brouwer_lyddane_mean.py +65 -0
- ostk/astrodynamics/test/trajectory/orbit/models/kepler/test_brouwer_lyddane_mean_long.py +102 -0
- ostk/astrodynamics/test/trajectory/orbit/models/kepler/test_brouwer_lyddane_mean_short.py +102 -0
- ostk/astrodynamics/test/trajectory/orbit/models/kepler/test_coe.py +305 -0
- ostk/astrodynamics/test/trajectory/orbit/models/sgp4/__init__.py +1 -0
- ostk/astrodynamics/test/trajectory/orbit/models/sgp4/test_tle.py +337 -0
- ostk/astrodynamics/test/trajectory/orbit/models/test_kepler.py +130 -0
- ostk/astrodynamics/test/trajectory/orbit/models/test_modified_equinoctial.py +142 -0
- ostk/astrodynamics/test/trajectory/orbit/models/test_propagated.py +234 -0
- ostk/astrodynamics/test/trajectory/orbit/models/test_sgp4.py +1 -0
- ostk/astrodynamics/test/trajectory/orbit/models/test_tabulated.py +380 -0
- ostk/astrodynamics/test/trajectory/orbit/test_model.py +1 -0
- ostk/astrodynamics/test/trajectory/orbit/test_pass.py +75 -0
- ostk/astrodynamics/test/trajectory/state/coordinate_subset/test_angular_velocity.py +30 -0
- ostk/astrodynamics/test/trajectory/state/coordinate_subset/test_attitude_quaternion.py +18 -0
- ostk/astrodynamics/test/trajectory/state/coordinate_subset/test_cartesian_acceleration.py +136 -0
- ostk/astrodynamics/test/trajectory/state/coordinate_subset/test_cartesian_position.py +107 -0
- ostk/astrodynamics/test/trajectory/state/coordinate_subset/test_cartesian_velocity.py +115 -0
- ostk/astrodynamics/test/trajectory/state/test_coordinate_broker.py +84 -0
- ostk/astrodynamics/test/trajectory/state/test_coordinate_subset.py +58 -0
- ostk/astrodynamics/test/trajectory/state/test_numerical_solver.py +316 -0
- ostk/astrodynamics/test/trajectory/test_local_orbital_frame_direction.py +81 -0
- ostk/astrodynamics/test/trajectory/test_local_orbital_frame_factory.py +119 -0
- ostk/astrodynamics/test/trajectory/test_model.py +1 -0
- ostk/astrodynamics/test/trajectory/test_orbit.py +212 -0
- ostk/astrodynamics/test/trajectory/test_propagator.py +452 -0
- ostk/astrodynamics/test/trajectory/test_segment.py +694 -0
- ostk/astrodynamics/test/trajectory/test_sequence.py +550 -0
- ostk/astrodynamics/test/trajectory/test_state.py +629 -0
- ostk/astrodynamics/test/trajectory/test_state_builder.py +172 -0
- ostk/astrodynamics/trajectory/__init__.pyi +1982 -0
- ostk/astrodynamics/trajectory/model.pyi +259 -0
- ostk/astrodynamics/trajectory/orbit/__init__.pyi +349 -0
- ostk/astrodynamics/trajectory/orbit/message/__init__.pyi +3 -0
- ostk/astrodynamics/trajectory/orbit/message/spacex.pyi +264 -0
- ostk/astrodynamics/trajectory/orbit/model/__init__.pyi +648 -0
- ostk/astrodynamics/trajectory/orbit/model/brouwerLyddaneMean.pyi +121 -0
- ostk/astrodynamics/trajectory/orbit/model/kepler.pyi +709 -0
- ostk/astrodynamics/trajectory/orbit/model/sgp4.pyi +330 -0
- ostk/astrodynamics/trajectory/state/__init__.pyi +402 -0
- ostk/astrodynamics/trajectory/state/coordinate_subset.pyi +208 -0
- ostk/astrodynamics/utilities.py +396 -0
- ostk/astrodynamics/viewer.py +851 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
import ostk.astrodynamics.trajectory
|
|
3
|
+
import ostk.physics.coordinate
|
|
4
|
+
import ostk.physics.time
|
|
5
|
+
import ostk.physics.unit
|
|
6
|
+
import typing
|
|
7
|
+
from . import close_approach
|
|
8
|
+
from . import message
|
|
9
|
+
__all__ = ['CloseApproach', 'close_approach', 'message']
|
|
10
|
+
class CloseApproach:
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
Close approach between two objects.
|
|
14
|
+
|
|
15
|
+
This class represents a close approach event between two objects, providing access to the states of both
|
|
16
|
+
objects at the time of closest approach, the miss distance, and the relative state.
|
|
17
|
+
|
|
18
|
+
"""
|
|
19
|
+
__hash__: typing.ClassVar[None] = None
|
|
20
|
+
@staticmethod
|
|
21
|
+
def undefined() -> CloseApproach:
|
|
22
|
+
"""
|
|
23
|
+
Construct an undefined close approach.
|
|
24
|
+
|
|
25
|
+
Returns:
|
|
26
|
+
CloseApproach: An undefined close approach.
|
|
27
|
+
"""
|
|
28
|
+
def __eq__(self, arg0: CloseApproach) -> bool:
|
|
29
|
+
"""
|
|
30
|
+
Equal to operator.
|
|
31
|
+
|
|
32
|
+
Args:
|
|
33
|
+
other (CloseApproach): Another close approach.
|
|
34
|
+
|
|
35
|
+
Returns:
|
|
36
|
+
bool: True if close approaches are equal.
|
|
37
|
+
"""
|
|
38
|
+
def __init__(self, object_1_state: ostk.astrodynamics.trajectory.State, object_2_state: ostk.astrodynamics.trajectory.State) -> None:
|
|
39
|
+
"""
|
|
40
|
+
Constructor.
|
|
41
|
+
|
|
42
|
+
Args:
|
|
43
|
+
object_1_state (State): The state of Object 1.
|
|
44
|
+
object_2_state (State): The state of Object 2.
|
|
45
|
+
"""
|
|
46
|
+
def __ne__(self, arg0: CloseApproach) -> bool:
|
|
47
|
+
"""
|
|
48
|
+
Not equal to operator.
|
|
49
|
+
|
|
50
|
+
Args:
|
|
51
|
+
other (CloseApproach): Another close approach.
|
|
52
|
+
|
|
53
|
+
Returns:
|
|
54
|
+
bool: True if close approaches are not equal.
|
|
55
|
+
"""
|
|
56
|
+
def __repr__(self) -> str:
|
|
57
|
+
...
|
|
58
|
+
def __str__(self) -> str:
|
|
59
|
+
...
|
|
60
|
+
def compute_miss_distance_components_in_frame(self, frame: ostk.physics.coordinate.Frame) -> tuple[ostk.physics.unit.Length, ostk.physics.unit.Length, ostk.physics.unit.Length]:
|
|
61
|
+
"""
|
|
62
|
+
Compute the miss distance components in the desired frame.
|
|
63
|
+
|
|
64
|
+
Args:
|
|
65
|
+
frame (Frame): The frame in which to resolve the miss distance components.
|
|
66
|
+
|
|
67
|
+
Returns:
|
|
68
|
+
tuple[Length, Length, Length]: The miss distance components (x, y, z).
|
|
69
|
+
"""
|
|
70
|
+
def compute_miss_distance_components_in_local_orbital_frame(self, local_orbital_frame_factory: ostk.astrodynamics.trajectory.LocalOrbitalFrameFactory) -> tuple[ostk.physics.unit.Length, ostk.physics.unit.Length, ostk.physics.unit.Length]:
|
|
71
|
+
"""
|
|
72
|
+
Compute the miss distance components in a local orbital frame (generated from Object 1 state).
|
|
73
|
+
|
|
74
|
+
Args:
|
|
75
|
+
local_orbital_frame_factory (LocalOrbitalFrameFactory): The local orbital frame factory.
|
|
76
|
+
|
|
77
|
+
Returns:
|
|
78
|
+
tuple[Length, Length, Length]: The miss distance components (radial, in-track, cross-track or similar depending on the factory).
|
|
79
|
+
"""
|
|
80
|
+
def get_instant(self) -> ostk.physics.time.Instant:
|
|
81
|
+
"""
|
|
82
|
+
Get the instant of the close approach.
|
|
83
|
+
|
|
84
|
+
Returns:
|
|
85
|
+
Instant: The instant of closest approach.
|
|
86
|
+
"""
|
|
87
|
+
def get_miss_distance(self) -> ostk.physics.unit.Length:
|
|
88
|
+
"""
|
|
89
|
+
Get the miss distance.
|
|
90
|
+
|
|
91
|
+
Returns:
|
|
92
|
+
Length: The miss distance between the two objects.
|
|
93
|
+
"""
|
|
94
|
+
def get_object_1_state(self) -> ostk.astrodynamics.trajectory.State:
|
|
95
|
+
"""
|
|
96
|
+
Get the state of Object 1.
|
|
97
|
+
|
|
98
|
+
Returns:
|
|
99
|
+
State: The state of Object 1.
|
|
100
|
+
"""
|
|
101
|
+
def get_object_2_state(self) -> ostk.astrodynamics.trajectory.State:
|
|
102
|
+
"""
|
|
103
|
+
Get the state of Object 2.
|
|
104
|
+
|
|
105
|
+
Returns:
|
|
106
|
+
State: The state of Object 2.
|
|
107
|
+
"""
|
|
108
|
+
def get_relative_state(self) -> ostk.astrodynamics.trajectory.State:
|
|
109
|
+
"""
|
|
110
|
+
Get the relative state (Object 2 relative to Object 1).
|
|
111
|
+
|
|
112
|
+
Returns:
|
|
113
|
+
State: The relative state.
|
|
114
|
+
"""
|
|
115
|
+
def is_defined(self) -> bool:
|
|
116
|
+
"""
|
|
117
|
+
Check if the close approach is defined.
|
|
118
|
+
|
|
119
|
+
Returns:
|
|
120
|
+
bool: True if close approach is defined, False otherwise.
|
|
121
|
+
"""
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
import ostk.astrodynamics
|
|
3
|
+
import ostk.astrodynamics.conjunction
|
|
4
|
+
import ostk.physics.time
|
|
5
|
+
__all__ = ['Generator']
|
|
6
|
+
class Generator:
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
Compute close approaches to a reference trajectory.
|
|
10
|
+
|
|
11
|
+
This class computes close approach events between a reference trajectory and other object trajectories
|
|
12
|
+
over a specified time interval. It uses a temporal condition solver to identify time periods when objects
|
|
13
|
+
are approaching and then determines the exact time of closest approach.
|
|
14
|
+
|
|
15
|
+
"""
|
|
16
|
+
@staticmethod
|
|
17
|
+
def undefined() -> Generator:
|
|
18
|
+
"""
|
|
19
|
+
Construct an undefined generator.
|
|
20
|
+
|
|
21
|
+
Returns:
|
|
22
|
+
Generator: An undefined generator.
|
|
23
|
+
"""
|
|
24
|
+
def __init__(self, reference_trajectory: ostk.astrodynamics.Trajectory, step: ostk.physics.time.Duration = ..., tolerance: ostk.physics.time.Duration = ...) -> None:
|
|
25
|
+
"""
|
|
26
|
+
Constructor.
|
|
27
|
+
|
|
28
|
+
Args:
|
|
29
|
+
reference_trajectory (Trajectory): The reference trajectory for which to compute close approaches (Object 1).
|
|
30
|
+
step (Duration): The step to use during the close approach search. Set it to a duration smaller than the minimum possible
|
|
31
|
+
interval where both objects can be moving apart - which is about a quarter of an orbital period. Defaults to
|
|
32
|
+
Duration.minutes(20.0) - but it should be set lower for low velocity conjunctions as they tend to exhibit more than two
|
|
33
|
+
close approaches per orbit in a non deterministic manner.
|
|
34
|
+
tolerance (Duration): The tolerance to use during the close approach search. Defaults to Duration.milliseconds(1.0) - which
|
|
35
|
+
means that objects moving at 7km/s will be up to 7m away from their “true” position.
|
|
36
|
+
"""
|
|
37
|
+
def compute_close_approaches(self, trajectory: ostk.astrodynamics.Trajectory, search_interval: ostk.physics.time.Interval) -> list[ostk.astrodynamics.conjunction.CloseApproach]:
|
|
38
|
+
"""
|
|
39
|
+
Compute close approaches between the reference trajectory and another object over a search interval.
|
|
40
|
+
|
|
41
|
+
Args:
|
|
42
|
+
trajectory (Trajectory): The trajectory of the other object (Object 2).
|
|
43
|
+
search_interval (Interval): The interval over which close approaches are searched.
|
|
44
|
+
|
|
45
|
+
Returns:
|
|
46
|
+
list[CloseApproach]: Array of close approaches over the search interval (with Object 1 being the reference trajectory).
|
|
47
|
+
"""
|
|
48
|
+
def get_reference_trajectory(self) -> ostk.astrodynamics.Trajectory:
|
|
49
|
+
"""
|
|
50
|
+
Get the reference trajectory.
|
|
51
|
+
|
|
52
|
+
Returns:
|
|
53
|
+
Trajectory: The reference trajectory.
|
|
54
|
+
"""
|
|
55
|
+
def get_step(self) -> ostk.physics.time.Duration:
|
|
56
|
+
"""
|
|
57
|
+
Get the step.
|
|
58
|
+
|
|
59
|
+
Returns:
|
|
60
|
+
Duration: The step.
|
|
61
|
+
"""
|
|
62
|
+
def get_tolerance(self) -> ostk.physics.time.Duration:
|
|
63
|
+
"""
|
|
64
|
+
Get the tolerance.
|
|
65
|
+
|
|
66
|
+
Returns:
|
|
67
|
+
Duration: The tolerance.
|
|
68
|
+
"""
|
|
69
|
+
def is_defined(self) -> bool:
|
|
70
|
+
"""
|
|
71
|
+
Check if the generator is defined.
|
|
72
|
+
|
|
73
|
+
Returns:
|
|
74
|
+
bool: True if generator is defined, False otherwise.
|
|
75
|
+
"""
|
|
76
|
+
def set_step(self, step: ostk.physics.time.Duration) -> None:
|
|
77
|
+
"""
|
|
78
|
+
Set the step.
|
|
79
|
+
|
|
80
|
+
Args:
|
|
81
|
+
step (Duration): The step.
|
|
82
|
+
"""
|
|
83
|
+
def set_tolerance(self, tolerance: ostk.physics.time.Duration) -> None:
|
|
84
|
+
"""
|
|
85
|
+
Set the tolerance.
|
|
86
|
+
|
|
87
|
+
Args:
|
|
88
|
+
tolerance (Duration): The tolerance.
|
|
89
|
+
"""
|