open-space-toolkit-astrodynamics 13.1.0__py310-none-manylinux2014_x86_64.whl → 15.0.0__py310-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.
Files changed (59) hide show
  1. {open_space_toolkit_astrodynamics-13.1.0.dist-info → open_space_toolkit_astrodynamics-15.0.0.dist-info}/METADATA +4 -4
  2. {open_space_toolkit_astrodynamics-13.1.0.dist-info → open_space_toolkit_astrodynamics-15.0.0.dist-info}/RECORD +59 -28
  3. {open_space_toolkit_astrodynamics-13.1.0.dist-info → open_space_toolkit_astrodynamics-15.0.0.dist-info}/WHEEL +1 -1
  4. ostk/astrodynamics/OpenSpaceToolkitAstrodynamicsPy.cpython-310-x86_64-linux-gnu.so +0 -0
  5. ostk/astrodynamics/__init__.pyi +785 -0
  6. ostk/astrodynamics/access.pyi +588 -0
  7. ostk/astrodynamics/conjunction/__init__.pyi +3 -0
  8. ostk/astrodynamics/conjunction/message/__init__.pyi +3 -0
  9. ostk/astrodynamics/conjunction/message/ccsds.pyi +723 -0
  10. ostk/astrodynamics/converters.pyi +58 -0
  11. ostk/astrodynamics/data/__init__.pyi +3 -0
  12. ostk/astrodynamics/data/provider.pyi +22 -0
  13. ostk/astrodynamics/dynamics.pyi +329 -0
  14. ostk/astrodynamics/event_condition.pyi +580 -0
  15. ostk/astrodynamics/flight/__init__.pyi +547 -0
  16. ostk/astrodynamics/flight/profile/__init__.pyi +102 -0
  17. ostk/astrodynamics/flight/profile/model.pyi +176 -0
  18. ostk/astrodynamics/flight/system.pyi +277 -0
  19. ostk/astrodynamics/guidance_law.pyi +282 -0
  20. ostk/astrodynamics/{libopen-space-toolkit-astrodynamics.so.13 → libopen-space-toolkit-astrodynamics.so.15} +0 -0
  21. ostk/astrodynamics/pytrajectory/__init__.pyi +3 -0
  22. ostk/astrodynamics/pytrajectory/pystate.py +2 -4
  23. ostk/astrodynamics/pytrajectory/pystate.pyi +65 -0
  24. ostk/astrodynamics/solver.pyi +232 -0
  25. ostk/astrodynamics/test/access/test_generator.py +130 -59
  26. ostk/astrodynamics/test/access/test_visibility_criterion.py +198 -0
  27. ostk/astrodynamics/test/data/provider/test_off_nadir.py +58 -0
  28. ostk/astrodynamics/test/dynamics/test_dynamics.py +1 -1
  29. ostk/astrodynamics/test/flight/system/test_propulsion_system.py +2 -11
  30. ostk/astrodynamics/test/flight/system/test_satellite_system.py +6 -14
  31. ostk/astrodynamics/test/flight/test_maneuver.py +49 -64
  32. ostk/astrodynamics/test/flight/test_profile.py +4 -2
  33. ostk/astrodynamics/test/flight/test_system.py +5 -15
  34. ostk/astrodynamics/test/solvers/test_finite_difference_solver.py +31 -16
  35. ostk/astrodynamics/test/solvers/test_temporal_condition_solver.py +9 -1
  36. ostk/astrodynamics/test/test_display.py +11 -5
  37. ostk/astrodynamics/test/test_event_condition.py +4 -2
  38. ostk/astrodynamics/test/test_utilities.py +1 -1
  39. ostk/astrodynamics/test/test_viewer.py +70 -1
  40. ostk/astrodynamics/test/trajectory/state/coordinate_subset/test_cartesian_acceleration.py +136 -0
  41. ostk/astrodynamics/test/trajectory/state/test_coordinate_subset.py +9 -0
  42. ostk/astrodynamics/test/trajectory/state/test_numerical_solver.py +4 -2
  43. ostk/astrodynamics/test/trajectory/test_local_orbital_frame_factory.py +25 -15
  44. ostk/astrodynamics/test/trajectory/test_propagator.py +21 -27
  45. ostk/astrodynamics/test/trajectory/test_segment.py +0 -1
  46. ostk/astrodynamics/test/trajectory/test_state_builder.py +1 -0
  47. ostk/astrodynamics/trajectory/__init__.pyi +1802 -0
  48. ostk/astrodynamics/trajectory/orbit/__init__.pyi +361 -0
  49. ostk/astrodynamics/trajectory/orbit/message/__init__.pyi +3 -0
  50. ostk/astrodynamics/trajectory/orbit/message/spacex.pyi +273 -0
  51. ostk/astrodynamics/trajectory/orbit/model/__init__.pyi +517 -0
  52. ostk/astrodynamics/trajectory/orbit/model/brouwerLyddaneMean.pyi +127 -0
  53. ostk/astrodynamics/trajectory/orbit/model/kepler.pyi +581 -0
  54. ostk/astrodynamics/trajectory/orbit/model/sgp4.pyi +333 -0
  55. ostk/astrodynamics/trajectory/state/__init__.pyi +406 -0
  56. ostk/astrodynamics/trajectory/state/coordinate_subset.pyi +223 -0
  57. ostk/astrodynamics/viewer.py +32 -0
  58. {open_space_toolkit_astrodynamics-13.1.0.dist-info → open_space_toolkit_astrodynamics-15.0.0.dist-info}/top_level.txt +0 -0
  59. {open_space_toolkit_astrodynamics-13.1.0.dist-info → open_space_toolkit_astrodynamics-15.0.0.dist-info}/zip-safe +0 -0
@@ -1,5 +1,7 @@
1
1
  # Apache License 2.0
2
2
 
3
+ from typing import Callable
4
+
3
5
  import pytest
4
6
 
5
7
  import numpy as np
@@ -99,7 +101,7 @@ def absolute_tolerance() -> float:
99
101
 
100
102
 
101
103
  @pytest.fixture
102
- def state_logger() -> callable:
104
+ def state_logger() -> Callable:
103
105
  def log_state(state: State) -> None:
104
106
  print(state.get_coordinates())
105
107
 
@@ -255,7 +257,7 @@ class TestNumericalSolver:
255
257
  def test_integrate_conditional_with_logger(
256
258
  self,
257
259
  initial_state: State,
258
- state_logger: callable,
260
+ state_logger: Callable,
259
261
  custom_condition: RealCondition,
260
262
  capsys,
261
263
  ):
@@ -1,5 +1,7 @@
1
1
  # Apache License 2.0
2
2
 
3
+ from typing import Callable
4
+
3
5
  import pytest
4
6
 
5
7
  from ostk.physics.time import Instant
@@ -7,7 +9,10 @@ from ostk.physics.time import DateTime
7
9
  from ostk.physics.time import Scale
8
10
  from ostk.physics.coordinate import Frame
9
11
  from ostk.physics.coordinate import Transform
12
+ from ostk.physics.coordinate import Position
13
+ from ostk.physics.coordinate import Velocity
10
14
 
15
+ from ostk.astrodynamics.trajectory import State
11
16
  from ostk.astrodynamics.trajectory import LocalOrbitalFrameFactory
12
17
  from ostk.astrodynamics.trajectory import LocalOrbitalFrameTransformProvider
13
18
 
@@ -23,8 +28,8 @@ def local_orbital_transform_provider_type() -> LocalOrbitalFrameTransformProvide
23
28
 
24
29
 
25
30
  @pytest.fixture
26
- def transform_generator() -> callable:
27
- return lambda instant, position, velocity: Transform.identity(Transform.Type.passive)
31
+ def transform_generator() -> Callable:
32
+ return lambda state: Transform.identity(Transform.Type.passive)
28
33
 
29
34
 
30
35
  @pytest.fixture
@@ -38,13 +43,24 @@ def instant() -> Instant:
38
43
 
39
44
 
40
45
  @pytest.fixture
41
- def position_vector() -> list:
42
- return [7500000.0, 0.0, 0.0]
46
+ def position() -> Position:
47
+ return Position.meters([7500000.0, 0.0, 0.0], Frame.GCRF())
43
48
 
44
49
 
45
50
  @pytest.fixture
46
- def velocity_vector() -> list:
47
- return [0.0, 5335.865450622126, 5335.865450622126]
51
+ def velocity() -> Velocity:
52
+ return Velocity.meters_per_second(
53
+ [0.0, 5335.865450622126, 5335.865450622126], Frame.GCRF()
54
+ )
55
+
56
+
57
+ @pytest.fixture
58
+ def state(
59
+ instant: Instant,
60
+ position: Position,
61
+ velocity: Velocity,
62
+ ) -> State:
63
+ return State(instant, position, velocity)
48
64
 
49
65
 
50
66
  class TestLocalOrbitalFrameFactory:
@@ -66,15 +82,9 @@ class TestLocalOrbitalFrameFactory:
66
82
  def test_generate_frame(
67
83
  self,
68
84
  local_orbital_frame_factory: LocalOrbitalFrameFactory,
69
- instant: Instant,
70
- position_vector: list,
71
- velocity_vector: list,
85
+ state: State,
72
86
  ):
73
- frame = local_orbital_frame_factory.generate_frame(
74
- instant,
75
- position_vector,
76
- velocity_vector,
77
- )
87
+ frame = local_orbital_frame_factory.generate_frame(state=state)
78
88
 
79
89
  assert frame is not None
80
90
  assert frame.is_defined()
@@ -99,7 +109,7 @@ class TestLocalOrbitalFrameFactory:
99
109
 
100
110
  def test_custom_constructor(
101
111
  self,
102
- transform_generator: callable,
112
+ transform_generator: Callable,
103
113
  parent_frame: Frame,
104
114
  ):
105
115
  assert (
@@ -15,8 +15,6 @@ from ostk.physics.time import Instant
15
15
  from ostk.physics.time import DateTime
16
16
  from ostk.physics.time import Scale
17
17
  from ostk.physics.time import Duration
18
- from ostk.physics.coordinate import Position
19
- from ostk.physics.coordinate import Velocity
20
18
  from ostk.physics.coordinate import Frame
21
19
  from ostk.physics.environment.object.celestial import Earth, Sun
22
20
  from ostk.physics.environment.gravitational import Earth as EarthGravitationalModel
@@ -25,13 +23,12 @@ from ostk.physics.environment.atmospheric import Earth as EarthAtmosphericModel
25
23
 
26
24
  from ostk.astrodynamics.trajectory import LocalOrbitalFrameFactory
27
25
  from ostk.astrodynamics.trajectory import LocalOrbitalFrameDirection
28
-
29
26
  from ostk.astrodynamics.trajectory.state import CoordinateSubset
30
27
  from ostk.astrodynamics.trajectory.state.coordinate_subset import CartesianPosition
31
28
  from ostk.astrodynamics.trajectory.state.coordinate_subset import CartesianVelocity
29
+ from ostk.astrodynamics.trajectory.state.coordinate_subset import CartesianAcceleration
32
30
  from ostk.astrodynamics.trajectory.state import CoordinateBroker
33
31
  from ostk.astrodynamics.trajectory.state import NumericalSolver
34
-
35
32
  from ostk.astrodynamics import Dynamics
36
33
  from ostk.astrodynamics.dynamics import Thruster
37
34
  from ostk.astrodynamics.dynamics import CentralBodyGravity
@@ -43,22 +40,9 @@ from ostk.astrodynamics.flight import Maneuver
43
40
  from ostk.astrodynamics.flight.system import PropulsionSystem
44
41
  from ostk.astrodynamics.flight.system import SatelliteSystem
45
42
  from ostk.astrodynamics.trajectory import State
46
- from ostk.astrodynamics.trajectory.state import CoordinateSubset, CoordinateBroker
47
- from ostk.astrodynamics.trajectory.state.coordinate_subset import (
48
- CartesianPosition,
49
- CartesianVelocity,
50
- )
51
43
  from ostk.astrodynamics.trajectory import Propagator
52
44
 
53
45
 
54
- from ..flight.test_maneuver import (
55
- instants as maneuver_instants,
56
- acceleration_profile as maneuver_acceleration_profile,
57
- frame as maneuver_frame,
58
- mass_flow_rate_profile as maneuver_mass_flow_rate_profile,
59
- )
60
-
61
-
62
46
  @pytest.fixture
63
47
  def propulsion_system() -> PropulsionSystem:
64
48
  return PropulsionSystem(
@@ -249,19 +233,29 @@ def event_condition(state: State) -> InstantCondition:
249
233
  )
250
234
 
251
235
 
236
+ @pytest.fixture
237
+ def maneuver_states(frame: Frame) -> list[State]:
238
+ return [
239
+ State(
240
+ Instant.J2000() + Duration.seconds(float(i)),
241
+ [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -1e-3],
242
+ frame,
243
+ [
244
+ CartesianPosition.default(),
245
+ CartesianVelocity.default(),
246
+ CartesianAcceleration.thrust_acceleration(),
247
+ CoordinateSubset.mass_flow_rate(),
248
+ ],
249
+ )
250
+ for i in range(0, 100, 10)
251
+ ]
252
+
253
+
252
254
  @pytest.fixture
253
255
  def maneuver(
254
- maneuver_instants: list[Instant],
255
- maneuver_acceleration_profile: list[np.ndarray],
256
- maneuver_frame: Frame,
257
- maneuver_mass_flow_rate_profile: list[float],
256
+ maneuver_states: list[State],
258
257
  ) -> Maneuver:
259
- return Maneuver(
260
- maneuver_instants,
261
- maneuver_acceleration_profile,
262
- maneuver_frame,
263
- maneuver_mass_flow_rate_profile,
264
- )
258
+ return Maneuver(states=maneuver_states)
265
259
 
266
260
 
267
261
  @pytest.fixture
@@ -183,7 +183,6 @@ class TestSegmentSolution:
183
183
  ):
184
184
  assert segment_solution.compute_delta_mass() is not None
185
185
 
186
- @pytest.mark.skip(reason="Not implemented yet")
187
186
  def test_extract_maneuvers(
188
187
  self,
189
188
  segment_solution: Segment.Solution,
@@ -169,3 +169,4 @@ class TestStateBuilder:
169
169
  ):
170
170
  assert state_builder.get_frame() == frame
171
171
  assert state_builder.get_coordinate_subsets() == coordinate_broker.get_subsets()
172
+ assert state_builder.get_size() == coordinate_broker.get_number_of_coordinates()