open-space-toolkit-astrodynamics 6.0.1__py38-none-any.whl → 7.0.0__py38-none-any.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 (71) hide show
  1. {open_space_toolkit_astrodynamics-6.0.1.dist-info → open_space_toolkit_astrodynamics-7.0.0.dist-info}/METADATA +2 -2
  2. open_space_toolkit_astrodynamics-7.0.0.dist-info/RECORD +97 -0
  3. ostk/astrodynamics/OpenSpaceToolkitAstrodynamicsPy.cpython-38-x86_64-linux-gnu.so +0 -0
  4. ostk/astrodynamics/display.py +3 -3
  5. ostk/astrodynamics/{libopen-space-toolkit-astrodynamics.so.6 → libopen-space-toolkit-astrodynamics.so.7} +0 -0
  6. ostk/astrodynamics/pytrajectory/pystate.py +4 -4
  7. ostk/astrodynamics/test/access/test_generator.py +6 -6
  8. ostk/astrodynamics/test/conftest.py +2 -2
  9. ostk/astrodynamics/test/conjunction/{messages → message}/ccsds/test_cdm.py +4 -4
  10. ostk/astrodynamics/test/dynamics/test_atmospheric_drag.py +18 -18
  11. ostk/astrodynamics/test/dynamics/test_central_body_gravity.py +1 -1
  12. ostk/astrodynamics/test/dynamics/test_dynamics.py +3 -3
  13. ostk/astrodynamics/test/dynamics/test_position_derivative.py +1 -1
  14. ostk/astrodynamics/test/dynamics/test_tabulated.py +5 -5
  15. ostk/astrodynamics/test/dynamics/test_third_body_gravity.py +1 -1
  16. ostk/astrodynamics/test/dynamics/test_thruster.py +17 -17
  17. ostk/astrodynamics/test/event_condition/test_angular_condition.py +1 -1
  18. ostk/astrodynamics/test/event_condition/test_coe_condition.py +1 -1
  19. ostk/astrodynamics/test/flight/system/test_propulsion_system.py +1 -1
  20. ostk/astrodynamics/test/flight/system/test_satellite_system.py +4 -4
  21. ostk/astrodynamics/test/flight/system/test_satellite_system_builder.py +4 -4
  22. ostk/astrodynamics/test/flight/test_profile.py +7 -7
  23. ostk/astrodynamics/test/flight/test_system.py +4 -4
  24. ostk/astrodynamics/test/guidance_law/test_qlaw.py +5 -5
  25. ostk/astrodynamics/test/solvers/test_finite_difference_solver.py +5 -5
  26. ostk/astrodynamics/test/solvers/test_temporal_condition_solver.py +4 -4
  27. ostk/astrodynamics/test/test_access.py +9 -9
  28. ostk/astrodynamics/test/test_display.py +6 -6
  29. ostk/astrodynamics/test/test_import.py +5 -5
  30. ostk/astrodynamics/test/test_trajectory.py +9 -9
  31. ostk/astrodynamics/test/test_utilities.py +7 -7
  32. ostk/astrodynamics/test/test_viewer.py +4 -3
  33. ostk/astrodynamics/test/trajectory/orbit/{messages → message}/spacex/test_opm.py +4 -4
  34. ostk/astrodynamics/test/trajectory/orbit/models/kepler/test_brouwer_lyddane_mean.py +3 -3
  35. ostk/astrodynamics/test/trajectory/orbit/models/kepler/test_brouwer_lyddane_mean_long.py +4 -4
  36. ostk/astrodynamics/test/trajectory/orbit/models/kepler/test_brouwer_lyddane_mean_short.py +4 -4
  37. ostk/astrodynamics/test/trajectory/orbit/models/kepler/test_coe.py +3 -3
  38. ostk/astrodynamics/test/trajectory/orbit/models/sgp4/test_tle.py +4 -4
  39. ostk/astrodynamics/test/trajectory/orbit/models/test_kepler.py +6 -6
  40. ostk/astrodynamics/test/trajectory/orbit/models/test_propagated.py +54 -15
  41. ostk/astrodynamics/test/trajectory/orbit/models/test_tabulated.py +1 -1
  42. ostk/astrodynamics/test/trajectory/state/{coordinates_subset → coordinate_subset}/test_angular_velocity.py +1 -1
  43. ostk/astrodynamics/test/trajectory/state/{coordinates_subset → coordinate_subset}/test_attitude_quaternion.py +1 -1
  44. ostk/astrodynamics/test/trajectory/state/{coordinates_subset → coordinate_subset}/test_cartesian_position.py +14 -14
  45. ostk/astrodynamics/test/trajectory/state/{coordinates_subset → coordinate_subset}/test_cartesian_velocity.py +14 -14
  46. ostk/astrodynamics/test/trajectory/state/test_coordinate_broker.py +84 -0
  47. ostk/astrodynamics/test/trajectory/state/test_coordinate_subset.py +43 -0
  48. ostk/astrodynamics/test/trajectory/state/test_numerical_solver.py +10 -10
  49. ostk/astrodynamics/test/trajectory/test_orbit.py +4 -4
  50. ostk/astrodynamics/test/trajectory/test_propagator.py +23 -23
  51. ostk/astrodynamics/test/trajectory/test_segment.py +8 -8
  52. ostk/astrodynamics/test/trajectory/test_sequence.py +18 -18
  53. ostk/astrodynamics/test/trajectory/test_state.py +34 -20
  54. ostk/astrodynamics/test/trajectory/test_state_builder.py +22 -22
  55. ostk/astrodynamics/utilities.py +1 -1
  56. ostk/astrodynamics/viewer.py +33 -3
  57. open_space_toolkit_astrodynamics-6.0.1.dist-info/RECORD +0 -99
  58. ostk/astrodynamics/test/flight/profile/test_state.py +0 -144
  59. ostk/astrodynamics/test/trajectory/orbit/messages/spacex/__init__.py +0 -1
  60. ostk/astrodynamics/test/trajectory/state/test_coordinates_broker.py +0 -84
  61. ostk/astrodynamics/test/trajectory/state/test_coordinates_subset.py +0 -43
  62. {open_space_toolkit_astrodynamics-6.0.1.dist-info → open_space_toolkit_astrodynamics-7.0.0.dist-info}/WHEEL +0 -0
  63. {open_space_toolkit_astrodynamics-6.0.1.dist-info → open_space_toolkit_astrodynamics-7.0.0.dist-info}/top_level.txt +0 -0
  64. {open_space_toolkit_astrodynamics-6.0.1.dist-info → open_space_toolkit_astrodynamics-7.0.0.dist-info}/zip-safe +0 -0
  65. /ostk/astrodynamics/test/conjunction/{messages → message}/ccsds/__init__.py +0 -0
  66. /ostk/astrodynamics/test/conjunction/{messages → message}/ccsds/conftest.py +0 -0
  67. /ostk/astrodynamics/test/conjunction/{messages → message}/ccsds/data/cdm.json +0 -0
  68. /ostk/astrodynamics/test/{flight/profile → trajectory/orbit/message}/__init__.py +0 -0
  69. /ostk/astrodynamics/test/trajectory/orbit/{messages → message/spacex}/__init__.py +0 -0
  70. /ostk/astrodynamics/test/trajectory/orbit/{messages → message}/spacex/conftest.py +0 -0
  71. /ostk/astrodynamics/test/trajectory/orbit/{messages → message}/spacex/data/opm_1.yaml +0 -0
@@ -14,10 +14,10 @@ from ostk.astrodynamics.trajectory import (
14
14
  StateBuilder,
15
15
  )
16
16
  from ostk.astrodynamics.trajectory.state import (
17
- CoordinatesBroker,
18
- CoordinatesSubset,
17
+ CoordinateBroker,
18
+ CoordinateSubset,
19
19
  )
20
- from ostk.astrodynamics.trajectory.state.coordinates_subset import (
20
+ from ostk.astrodynamics.trajectory.state.coordinate_subset import (
21
21
  CartesianPosition,
22
22
  CartesianVelocity,
23
23
  )
@@ -34,7 +34,7 @@ def frame() -> Frame:
34
34
 
35
35
 
36
36
  @pytest.fixture
37
- def coordinates_subsets() -> list[CoordinatesSubset]:
37
+ def coordinate_subsets() -> list[CoordinateSubset]:
38
38
  return [CartesianPosition.default(), CartesianVelocity.default()]
39
39
 
40
40
 
@@ -44,10 +44,10 @@ def coordinates() -> list[float]:
44
44
 
45
45
 
46
46
  @pytest.fixture
47
- def coordinates_broker(
48
- coordinates_subsets: list[CoordinatesSubset],
49
- ) -> CoordinatesBroker:
50
- return CoordinatesBroker(coordinates_subsets)
47
+ def coordinate_broker(
48
+ coordinate_subsets: list[CoordinateSubset],
49
+ ) -> CoordinateBroker:
50
+ return CoordinateBroker(coordinate_subsets)
51
51
 
52
52
 
53
53
  @pytest.fixture
@@ -55,23 +55,23 @@ def state(
55
55
  instant: Instant,
56
56
  coordinates: list[float],
57
57
  frame: Frame,
58
- coordinates_broker: CoordinatesBroker,
58
+ coordinate_broker: CoordinateBroker,
59
59
  ) -> State:
60
- return State(instant, coordinates, frame, coordinates_broker)
60
+ return State(instant, coordinates, frame, coordinate_broker)
61
61
 
62
62
 
63
63
  @pytest.fixture
64
- def state_builder(frame: Frame, coordinates_broker: CoordinatesBroker) -> State:
65
- return StateBuilder(frame, coordinates_broker)
64
+ def state_builder(frame: Frame, coordinate_broker: CoordinateBroker) -> State:
65
+ return StateBuilder(frame, coordinate_broker)
66
66
 
67
67
 
68
68
  class TestStateBuilder:
69
69
  def test_broker_constructor(
70
70
  self,
71
71
  frame: Frame,
72
- coordinates_broker: CoordinatesBroker,
72
+ coordinate_broker: CoordinateBroker,
73
73
  ):
74
- builder = StateBuilder(frame, coordinates_broker)
74
+ builder = StateBuilder(frame, coordinate_broker)
75
75
  assert builder is not None
76
76
  assert isinstance(builder, StateBuilder)
77
77
  assert builder.is_defined()
@@ -79,9 +79,9 @@ class TestStateBuilder:
79
79
  def test_subsets_constructor(
80
80
  self,
81
81
  frame: Frame,
82
- coordinates_subsets: list[CoordinatesSubset],
82
+ coordinate_subsets: list[CoordinateSubset],
83
83
  ):
84
- builder = StateBuilder(frame, coordinates_subsets)
84
+ builder = StateBuilder(frame, coordinate_subsets)
85
85
  assert builder is not None
86
86
  assert isinstance(builder, StateBuilder)
87
87
  assert builder.is_defined()
@@ -103,7 +103,7 @@ class TestStateBuilder:
103
103
  self,
104
104
  state_builder: StateBuilder,
105
105
  ):
106
- added_builder: StateBuilder = state_builder + CoordinatesSubset.mass()
106
+ added_builder: StateBuilder = state_builder + CoordinateSubset.mass()
107
107
  assert isinstance(added_builder, StateBuilder)
108
108
  assert state_builder != added_builder
109
109
 
@@ -125,7 +125,7 @@ class TestStateBuilder:
125
125
  assert state.get_instant() == instant
126
126
  assert (state.get_coordinates() == coordinates).all()
127
127
  assert state.get_frame() == state_builder.get_frame()
128
- assert state.get_coordinates_subsets() == state_builder.get_coordinates_subsets()
128
+ assert state.get_coordinate_subsets() == state_builder.get_coordinate_subsets()
129
129
 
130
130
  def test_reduce(
131
131
  self,
@@ -146,14 +146,14 @@ class TestStateBuilder:
146
146
  [
147
147
  CartesianPosition.default(),
148
148
  CartesianVelocity.default(),
149
- CoordinatesSubset.mass(),
149
+ CoordinateSubset.mass(),
150
150
  ],
151
151
  )
152
152
  default_state: State = State(
153
153
  state.get_instant(),
154
154
  [100],
155
155
  state.get_frame(),
156
- CoordinatesBroker([CoordinatesSubset.mass()]),
156
+ CoordinateBroker([CoordinateSubset.mass()]),
157
157
  )
158
158
  expanded_state: State = builder.expand(state, default_state)
159
159
 
@@ -165,7 +165,7 @@ class TestStateBuilder:
165
165
  self,
166
166
  state_builder: StateBuilder,
167
167
  frame: Frame,
168
- coordinates_broker: CoordinatesBroker,
168
+ coordinate_broker: CoordinateBroker,
169
169
  ):
170
170
  assert state_builder.get_frame() == frame
171
- assert state_builder.get_coordinates_subsets() == coordinates_broker.get_subsets()
171
+ assert state_builder.get_coordinate_subsets() == coordinate_broker.get_subsets()
@@ -11,7 +11,7 @@ from ostk.physics.coordinate.spherical import LLA
11
11
  from ostk.physics.coordinate.spherical import AER
12
12
  from ostk.physics.coordinate import Position
13
13
  from ostk.physics.coordinate import Frame
14
- from ostk.physics.environment.objects.celestial_bodies import Earth
14
+ from ostk.physics.environment.object.celestial import Earth
15
15
  from ostk.physics.environment.gravitational import Earth as EarthGravitationalModel
16
16
 
17
17
 
@@ -16,15 +16,15 @@ except ImportError:
16
16
 
17
17
  from ostk.mathematics.geometry.d3.transformation.rotation import Quaternion
18
18
 
19
- from ostk.physics.units import Length
20
- from ostk.physics.units import Angle
19
+ from ostk.physics.unit import Length
20
+ from ostk.physics.unit import Angle
21
21
  from ostk.physics.time import Instant, Interval, Duration
22
22
  from ostk.physics.coordinate import Position
23
23
  from ostk.physics.coordinate import Frame
24
24
  from ostk.physics.coordinate.spherical import LLA
25
25
 
26
26
  from ostk.astrodynamics.flight import Profile
27
- from ostk.astrodynamics.flight.profile import State
27
+ from ostk.astrodynamics.trajectory import State
28
28
 
29
29
  from .converters import coerce_to_datetime
30
30
  from .utilities import lla_from_position
@@ -97,6 +97,7 @@ class Viewer:
97
97
  show_orbital_track: bool = False,
98
98
  cesium_asset_id: int | None = None,
99
99
  sensors: list[Sensor] | None = None,
100
+ show_xyz_axes: bool = False,
100
101
  ) -> None:
101
102
  """
102
103
  Add Profile to Viewer.
@@ -107,12 +108,41 @@ class Viewer:
107
108
  show_orbital_track (bool, optional): Whether to show the orbital track. Defaults to False.
108
109
  cesium_asset_id (int, optional): The Cesium asset ID. Defaults to None.
109
110
  sensors (list[Sensor], optional): Sensors to be added to the asset. Defaults to None.
111
+ show_xyz_axes (bool, optional): Whether to show the XYZ axes. Defaults to False.
110
112
  """
111
113
 
112
114
  instants: list[Instant] = self._interval.generate_grid(step)
113
115
  states: list[State] = profile.get_states_at(instants)
114
116
  llas: list[LLA] = _generate_llas(states)
115
117
 
118
+ sensors = sensors or []
119
+ if show_xyz_axes:
120
+ sensors.extend(
121
+ [
122
+ ConicSensor(
123
+ name="x_axis",
124
+ direction=(+1.0, 0.0, 0.0),
125
+ half_angle=Angle.degrees(1.0),
126
+ length=Length.meters(2.0),
127
+ color="red",
128
+ ),
129
+ ConicSensor(
130
+ name="y_axis",
131
+ direction=(0.0, +1.0, 0.0),
132
+ half_angle=Angle.degrees(1.0),
133
+ length=Length.meters(2.0),
134
+ color="blue",
135
+ ),
136
+ ConicSensor(
137
+ name="z_axis",
138
+ direction=(0.0, 0.0, +1.0),
139
+ half_angle=Angle.degrees(1.0),
140
+ length=Length.meters(2.0),
141
+ color="green",
142
+ ),
143
+ ]
144
+ )
145
+
116
146
  satellite = cesiumpy.Satellite(
117
147
  position=_generate_sampled_position(instants, llas),
118
148
  orientation=_generate_sampled_orientation(states),
@@ -1,99 +0,0 @@
1
- ostk/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
2
- ostk/astrodynamics/OpenSpaceToolkitAstrodynamicsPy.cpython-38-x86_64-linux-gnu.so,sha256=EGHtnJpd0wKdCpQ473s1yTdLA1dqxkrpXWAhTFFaZ60,2025272
3
- ostk/astrodynamics/__init__.py,sha256=3gWyqFIbhAfcdeMhmfBPQPlPQTmaOzm-6flkJe745Zk,251
4
- ostk/astrodynamics/converters.py,sha256=IUxJK5qNzDMsqMSiMT6hUThCjncKoIMW0ifu8kwbww0,4680
5
- ostk/astrodynamics/display.py,sha256=y9FnoQbPFGM6LzkUdgXgeqtuVGhv57GuTKbeDdcFPgw,6306
6
- ostk/astrodynamics/libopen-space-toolkit-astrodynamics.so.6,sha256=pcm6fERimZWFhSlMWSmNP481pzxrFX3IMuqed3QVNZI,98626392
7
- ostk/astrodynamics/utilities.py,sha256=PDexbTDbx46aYKqK5b4pjLYSY6NGc4Wx9FwafOkJ4EU,4821
8
- ostk/astrodynamics/viewer.py,sha256=319Em4QOGpWNMNaiH0FilSLxuQIm4QMJjJIfJ6Y-6qU,9471
9
- ostk/astrodynamics/pytrajectory/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
10
- ostk/astrodynamics/pytrajectory/pystate.py,sha256=ceNZWYCqtsXWJlE6JKDxB5qn5ixTWGOwrYXge21XPmk,1037
11
- ostk/astrodynamics/test/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
12
- ostk/astrodynamics/test/conftest.py,sha256=J3SbQibnMVaPktAF6Z6cwVCa7xhW3uXpkOJRom6YtCo,2719
13
- ostk/astrodynamics/test/test_access.py,sha256=6sWINwQw-KMKKOfuJIJxyIIrmT513VjvoXt2rNPpm0w,3959
14
- ostk/astrodynamics/test/test_converters.py,sha256=hnvqOCtUGrzBvjv7GnmaRdl2mlKM3eWuJUspe305B-A,12114
15
- ostk/astrodynamics/test/test_display.py,sha256=8YeiYRYMpokzqprbRoDBI_xhHI5B8uxcdSzmqmF3AIc,3738
16
- ostk/astrodynamics/test/test_event_condition.py,sha256=mhMTH7wAoYFWRYt_8l2d1vjNPrFhVjMAEET4INLCVXY,1472
17
- ostk/astrodynamics/test/test_import.py,sha256=stS8jK9HiXyzRWjtDvaTqUrzCrOVnYVX5CkmQf7MJsA,1201
18
- ostk/astrodynamics/test/test_root_solver.py,sha256=hQ8O6g-WP49gZH_H3Rdufv0F0gQorpzJyIcjBGGUQ34,1831
19
- ostk/astrodynamics/test/test_trajectory.py,sha256=pvv4GQsvtU0XfWYk-F-oQNgo8ciFQBgzeJ4FojZDW-A,1364
20
- ostk/astrodynamics/test/test_utilities.py,sha256=YnJ7czgRjJ5bkYr33KF5wY5A-P0lJg2q0-_mI7spvYs,3620
21
- ostk/astrodynamics/test/test_viewer.py,sha256=i164XnG6n-_FteiO6rjXA7GGsJhMdmT-508DpKaveVY,3957
22
- ostk/astrodynamics/test/access/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
23
- ostk/astrodynamics/test/access/test_generator.py,sha256=6cwC5GGvnWLxPXmgRQ-N7tjorGUfPxA8qFcdGaTmpp4,8038
24
- ostk/astrodynamics/test/conjunction/messages/ccsds/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
25
- ostk/astrodynamics/test/conjunction/messages/ccsds/conftest.py,sha256=xyTd24828Ue2HgOWY8UhizIc5mzgRgoH2VSOfVfKCdw,14632
26
- ostk/astrodynamics/test/conjunction/messages/ccsds/test_cdm.py,sha256=SqtYXB8qhKzbQEWmCzz13xi0Uu64-VSKXuMObcFV7EI,18518
27
- ostk/astrodynamics/test/conjunction/messages/ccsds/data/cdm.json,sha256=-CL8Bu-ivigzkrqHs9Q5snSubHJ_D0YMroatEInkidc,12965
28
- ostk/astrodynamics/test/dynamics/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
29
- ostk/astrodynamics/test/dynamics/test_atmospheric_drag.py,sha256=mKXF1r-gaRz7vtMNULsl6onFOwD3uk0lYqxKStm4bxU,3765
30
- ostk/astrodynamics/test/dynamics/test_central_body_gravity.py,sha256=x2_Xe-nGVkhKuq7p5Wuq7exeXKg_de3sAGrwGsOSRfA,1790
31
- ostk/astrodynamics/test/dynamics/test_dynamics.py,sha256=FU5Qc3H6wkguml1Kt_hTX8uKplEyfcbH8wkC1TT4bjE,1240
32
- ostk/astrodynamics/test/dynamics/test_position_derivative.py,sha256=HIHH8W3WR0eHJo82N6k03CBj_i1g2OuiHm-xEumPbx4,1618
33
- ostk/astrodynamics/test/dynamics/test_tabulated.py,sha256=SDsHWFsgjUkUMeJSGnpwkN_EGt---4cd6mlZVBe8uwM,3373
34
- ostk/astrodynamics/test/dynamics/test_third_body_gravity.py,sha256=hl3svhU6gNJdKoqqdgsZt-Ngrex9whcuLPeCgepM4G8,1887
35
- ostk/astrodynamics/test/dynamics/test_thruster.py,sha256=HHFei_ZdUcwdRNXcKDTF-EhYe8ZjVht-kQjUl0nhILU,4403
36
- ostk/astrodynamics/test/dynamics/data/Tabulated_Earth_Gravity.csv,sha256=jJWOMJcQ83Vy1Wrb9PTh3ffOdoDF98kk6w5b-_E0uWg,47419
37
- ostk/astrodynamics/test/dynamics/data/Tabulated_Earth_Gravity_Truth.csv,sha256=f4x-zmxZADxD_doAbACt24k36VSTp3rSIJiSzuSroKs,8377
38
- ostk/astrodynamics/test/event_condition/test_angular_condition.py,sha256=OFlEbUDWaUs1kjUSf0AhIsOKV5qSUj6_sOxLQK5q8AU,3120
39
- ostk/astrodynamics/test/event_condition/test_boolean_condition.py,sha256=Ng6FLKD8XoUHUz6-gi3wvrYhSGNSB_iJ_n89ajN4O3s,1580
40
- ostk/astrodynamics/test/event_condition/test_coe_condition.py,sha256=1znTEcKVhR54CVfjhQeeAxbe4CdJJ1qlsKc8TK9jwqw,2581
41
- ostk/astrodynamics/test/event_condition/test_instant_condition.py,sha256=Qr5dN6nrK7XDff7L4vnGCqasMK-Fa6qvxwy_U0xgH5M,1438
42
- ostk/astrodynamics/test/event_condition/test_logical_condition.py,sha256=09h5TYWtwGt4NQW3k_tziiVs0Q2981rNII9wyKg7p2Q,3321
43
- ostk/astrodynamics/test/event_condition/test_real_condition.py,sha256=tle6HVzMFMIIkfRY7CuaA0mPtw3riJBG_JQkc1L0dpk,1374
44
- ostk/astrodynamics/test/flight/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
45
- ostk/astrodynamics/test/flight/test_profile.py,sha256=OBwXlN35Fosk9ue37cDl6NAdITv8JG3s7mnHq3_cxc8,5195
46
- ostk/astrodynamics/test/flight/test_system.py,sha256=YPrjoV3o67_1zCXCZqohlSAR7zkU0LXP2fF20M2s0C8,1326
47
- ostk/astrodynamics/test/flight/profile/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
48
- ostk/astrodynamics/test/flight/profile/test_state.py,sha256=2vc-PHFr9M9_x08n0ZCm29O4mE-zeu_0oTW8Wd4x7KY,4266
49
- ostk/astrodynamics/test/flight/system/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
50
- ostk/astrodynamics/test/flight/system/test_propulsion_system.py,sha256=ei-25MZczwzhiV5QVB9LXdmBY3VnBHr1DEVn_Zqtb1A,1027
51
- ostk/astrodynamics/test/flight/system/test_satellite_system.py,sha256=rPka530ZqX_XBVmt0SC5o765O1O90_m_U5cEUsrQuWU,2530
52
- ostk/astrodynamics/test/flight/system/test_satellite_system_builder.py,sha256=G3MUD-mBTakr-ip_261kwBTvTclnAArPPeHY3ZF9PYM,2430
53
- ostk/astrodynamics/test/guidance_law/test_constant_thrust.py,sha256=YpMkMvat4YnE1Fyy5vZ1Sf3VvbvDaC_UvbIKNNCG_B4,2635
54
- ostk/astrodynamics/test/guidance_law/test_qlaw.py,sha256=nu56zm7D9uwonCXCjpNw49nv9TApelTSlsoItQQ6VhY,3677
55
- ostk/astrodynamics/test/solvers/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
56
- ostk/astrodynamics/test/solvers/test_finite_difference_solver.py,sha256=h_CDEswTKzEld9vvTMMPXj-TI3YSeY14-Z6clYWtfB0,5417
57
- ostk/astrodynamics/test/solvers/test_temporal_condition_solver.py,sha256=s7r7VelXx1_b-6wO_GyOlmxlsfA4I_zpxrWojriQls8,4867
58
- ostk/astrodynamics/test/trajectory/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
59
- ostk/astrodynamics/test/trajectory/test_local_orbital_frame_direction.py,sha256=d72J50UGG9m0Atei0UQ8sITU1WdJmws5xgUiacLZMbw,2515
60
- ostk/astrodynamics/test/trajectory/test_local_orbital_frame_factory.py,sha256=FziYh9XxD2FEuj6WhnqOe5mF9twLTQtvcem8KzQZKXg,1864
61
- ostk/astrodynamics/test/trajectory/test_model.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
62
- ostk/astrodynamics/test/trajectory/test_orbit.py,sha256=dFZRN2E538lG6ZaiRBWUDMtKzgMIKnFILV3yeofRV1I,5075
63
- ostk/astrodynamics/test/trajectory/test_propagator.py,sha256=kEAvrFM4MZouAAnYPi91akPSXWHbGxHTo5uaXQKexII,12631
64
- ostk/astrodynamics/test/trajectory/test_segment.py,sha256=5XSCPUVrE6_oz8tsZeAb9mzQoLUuyUlfgJ-rWP54-ao,9170
65
- ostk/astrodynamics/test/trajectory/test_sequence.py,sha256=N3jPB31P4i13ocYITaVMLiMfczpATmDLVbNdImM68tQ,12909
66
- ostk/astrodynamics/test/trajectory/test_state.py,sha256=rW0HH7oy_tZ-34VIhk2rx_v2Kyg3xegBYpKs9_NznSs,6508
67
- ostk/astrodynamics/test/trajectory/test_state_builder.py,sha256=3C8JeN8VGgUzEASgh5PfnJQ2JWGkKYTm7eaelE6Lw7E,4815
68
- ostk/astrodynamics/test/trajectory/orbit/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
69
- ostk/astrodynamics/test/trajectory/orbit/test_model.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
70
- ostk/astrodynamics/test/trajectory/orbit/test_pass.py,sha256=p6YCtb-QhCS_En3ECaSM2sJsWEnqXzmWaCmai_SuK0U,2191
71
- ostk/astrodynamics/test/trajectory/orbit/messages/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
72
- ostk/astrodynamics/test/trajectory/orbit/messages/spacex/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
73
- ostk/astrodynamics/test/trajectory/orbit/messages/spacex/conftest.py,sha256=O75ywkPJjoFp0uKptCu4C2tGMRaGN-8NVFVhps85eWE,379
74
- ostk/astrodynamics/test/trajectory/orbit/messages/spacex/test_opm.py,sha256=wfxuccqIF2odRA9Dc-8wtKZ8t__4KJ9HVhN-il284OU,3893
75
- ostk/astrodynamics/test/trajectory/orbit/messages/spacex/data/opm_1.yaml,sha256=DqIdfLCPD9oV4qDvgq35fIT8Gb8zgtrHr5Nx53InSQM,1363
76
- ostk/astrodynamics/test/trajectory/orbit/models/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
77
- ostk/astrodynamics/test/trajectory/orbit/models/test_kepler.py,sha256=sf1FpdYyiGyWcal-CwVfelW1k-HYGlIdbJdcbOi9-lY,3372
78
- ostk/astrodynamics/test/trajectory/orbit/models/test_propagated.py,sha256=PnzJsRVn-TKQ7fcsmxm4YYE4e2Tr1xvBTB1r0RboRyk,6678
79
- ostk/astrodynamics/test/trajectory/orbit/models/test_sgp4.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
80
- ostk/astrodynamics/test/trajectory/orbit/models/test_tabulated.py,sha256=tL3gGDitdEYCCRwGtu2RP-9d4JWsujV53ck9DRkyeG4,11183
81
- ostk/astrodynamics/test/trajectory/orbit/models/kepler/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
82
- ostk/astrodynamics/test/trajectory/orbit/models/kepler/test_brouwer_lyddane_mean.py,sha256=9JC4LTpMXWzQ2VoEOaVaruy2hPjyiAIR5_2QTfm4MqU,1545
83
- ostk/astrodynamics/test/trajectory/orbit/models/kepler/test_brouwer_lyddane_mean_long.py,sha256=gVpnA6FE3aCD6hskOKiVkb4YlONTUMogwBY1EaOqm7M,2472
84
- ostk/astrodynamics/test/trajectory/orbit/models/kepler/test_brouwer_lyddane_mean_short.py,sha256=8g2Q8ywuU5wsvrycAKUWFY-1bqIcylBpcnMJW4ze8Hs,2489
85
- ostk/astrodynamics/test/trajectory/orbit/models/kepler/test_coe.py,sha256=C_2qGt8yzbs6S-rCheUbj8wOnLEWBNio2UD6ST-SwHk,4781
86
- ostk/astrodynamics/test/trajectory/orbit/models/sgp4/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
87
- ostk/astrodynamics/test/trajectory/orbit/models/sgp4/test_tle.py,sha256=lbPqHd87ExTNbBFcFSTMWRnWbpe_4BDJ2g2APlQLJkY,11486
88
- ostk/astrodynamics/test/trajectory/state/test_coordinates_broker.py,sha256=LUVQ6LjpWAxs6XA3vOwHO5Unnf4TMYCx31fk_ORLTcc,2907
89
- ostk/astrodynamics/test/trajectory/state/test_coordinates_subset.py,sha256=eMmifR5rJMk2yFN7pfAHq2Ub3FPvknb6gvS-nBDidro,1201
90
- ostk/astrodynamics/test/trajectory/state/test_numerical_solver.py,sha256=-SHQWgR34Xk0gO26VwQWbmRnPXp3AKfk0j9t-lPvfmk,9403
91
- ostk/astrodynamics/test/trajectory/state/coordinates_subset/test_angular_velocity.py,sha256=IWLmoMvxVejdiw8JuiDsIaii7ctbRDvU-13fgZEvWXA,626
92
- ostk/astrodynamics/test/trajectory/state/coordinates_subset/test_attitude_quaternion.py,sha256=B1Tni_YpKB9Fzb0fpXSokw9DjgiZem9uBATMQbcq8P4,394
93
- ostk/astrodynamics/test/trajectory/state/coordinates_subset/test_cartesian_position.py,sha256=L3MpDG9MDHbK2HPZejqiY0QJdiEB-FZe0rVGDl379YA,2722
94
- ostk/astrodynamics/test/trajectory/state/coordinates_subset/test_cartesian_velocity.py,sha256=k0aNqdMwwt-XSFQ1Si8kDTY79SB7fC0WWm2UNjpaOI0,3077
95
- open_space_toolkit_astrodynamics-6.0.1.dist-info/METADATA,sha256=s43E-tmC9wf-KNgY-dAknFwZec-4YtpcZrOOpY0NjQM,1777
96
- open_space_toolkit_astrodynamics-6.0.1.dist-info/WHEEL,sha256=LNQH4F1F9_Ua4GgazGQDFGQhQ8B1tSrkPIuEzIRv9nc,93
97
- open_space_toolkit_astrodynamics-6.0.1.dist-info/top_level.txt,sha256=zOR18699uDYnafgarhL8WU_LmTZY_5NVqutv-flp_x4,5
98
- open_space_toolkit_astrodynamics-6.0.1.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
99
- open_space_toolkit_astrodynamics-6.0.1.dist-info/RECORD,,
@@ -1,144 +0,0 @@
1
- # Apache License 2.0
2
-
3
- import pytest
4
-
5
- import numpy as np
6
-
7
- import ostk.mathematics as mathematics
8
-
9
- import ostk.physics as physics
10
-
11
- import ostk.astrodynamics as astrodynamics
12
-
13
- Quaternion = mathematics.geometry.d3.transformation.rotation.Quaternion
14
- DateTime = physics.time.DateTime
15
- Instant = physics.time.Instant
16
- Scale = physics.time.Scale
17
- Position = physics.coordinate.Position
18
- Velocity = physics.coordinate.Velocity
19
- Frame = physics.coordinate.Frame
20
- State = astrodynamics.flight.profile.State
21
-
22
-
23
- @pytest.fixture
24
- def instant() -> Instant:
25
- return Instant.date_time(DateTime(2020, 1, 3, 0, 0, 0), Scale.UTC)
26
-
27
-
28
- @pytest.fixture
29
- def frame() -> Frame:
30
- return Frame.GCRF()
31
-
32
-
33
- @pytest.fixture
34
- def position(frame: Frame) -> Position:
35
- return Position.meters([0.0, 3.2, 3000.0], frame)
36
-
37
-
38
- @pytest.fixture
39
- def velocity(frame: Frame) -> Velocity:
40
- return Velocity.meters_per_second([1.0, 3.0, 0.0], frame)
41
-
42
-
43
- @pytest.fixture
44
- def quaternion() -> Quaternion:
45
- return Quaternion([0.0, 0.0, 0.0, 1.0], Quaternion.Format.XYZS)
46
-
47
-
48
- @pytest.fixture
49
- def angular_velocity() -> np.array:
50
- return np.array((0.01, 0.01, 0.0))
51
-
52
-
53
- @pytest.fixture
54
- def state(
55
- instant: Instant,
56
- position: Position,
57
- velocity: Velocity,
58
- quaternion: Quaternion,
59
- angular_velocity: np.array,
60
- frame: Frame,
61
- ) -> State:
62
- return State(
63
- instant,
64
- position,
65
- velocity,
66
- quaternion,
67
- angular_velocity,
68
- frame,
69
- )
70
-
71
-
72
- class TestState:
73
- def test_constructors_list(
74
- self, instant: Instant, quaternion: Quaternion, frame: Frame
75
- ):
76
- position = Position.meters([0.0, 3.2, 3000.0], frame)
77
- velocity = Velocity.meters_per_second([1.0, 3.0, 0.0], frame)
78
- angular_velocity = [0.01, 0.01, 0.0]
79
-
80
- assert isinstance(
81
- State(instant, position, velocity, quaternion, angular_velocity, frame),
82
- State,
83
- )
84
-
85
- def test_constructors_tuples(
86
- self, instant: Instant, quaternion: Quaternion, frame: Frame
87
- ):
88
- position = Position.meters((0.0, 3.2, 3000.0), frame)
89
- velocity = Velocity.meters_per_second((1.0, 3.0, 0.0), frame)
90
- angular_velocity = (0.01, 0.01, 0.0)
91
-
92
- assert isinstance(
93
- State(instant, position, velocity, quaternion, angular_velocity, frame),
94
- State,
95
- )
96
-
97
- def test_constructors_array(
98
- self, instant: Instant, quaternion: Quaternion, frame: Frame
99
- ):
100
- position = Position.meters(np.array((0.0, 3.2, 3000.0)), Frame.GCRF())
101
- velocity = Velocity.meters_per_second(np.array((1.0, 3.0, 0.0)), Frame.GCRF())
102
- angular_velocity = np.array((0.01, 0.01, 0.0))
103
-
104
- assert isinstance(
105
- State(instant, position, velocity, quaternion, angular_velocity, frame),
106
- State,
107
- )
108
-
109
- def test_comparators(self, state: State):
110
- assert (state == state) is True
111
- assert (state != state) is False
112
-
113
- def test_get_instant(self, instant: Instant, state: State):
114
- assert isinstance(state.get_instant(), Instant)
115
- assert state.get_instant() == instant
116
-
117
- def test_get_position(self, position: Position, state: State):
118
- assert isinstance(state.get_position(), Position)
119
- assert state.get_position() == position
120
-
121
- def test_get_velocity(self, velocity: Velocity, state: State):
122
- assert isinstance(state.get_velocity(), Velocity)
123
- assert state.get_velocity() == velocity
124
-
125
- def test_get_attitude(self, quaternion: Quaternion, state: State):
126
- assert isinstance(state.get_attitude(), Quaternion)
127
- assert state.get_attitude() == quaternion
128
-
129
- def test_get_angular_velocity(self, angular_velocity: np.array, state: State):
130
- assert isinstance(state.get_angular_velocity(), np.ndarray)
131
- assert np.array_equal(state.get_angular_velocity(), angular_velocity)
132
-
133
- def test_get_frame(self, frame: Frame, state: State):
134
- assert isinstance(state.get_frame(), Frame)
135
- assert state.get_frame() == frame
136
-
137
- def test_in_frame(self, frame: Frame, state: State):
138
- assert isinstance(state.in_frame(frame), State)
139
-
140
- def test_undefined(self):
141
- state: State = State.undefined()
142
-
143
- assert isinstance(state, State)
144
- assert state.is_defined() is False
@@ -1 +0,0 @@
1
- # Apache License 2.0
@@ -1,84 +0,0 @@
1
- # Apache License 2.0
2
-
3
- import pytest
4
-
5
- from ostk.astrodynamics.trajectory.state import CoordinatesBroker, CoordinatesSubset
6
-
7
-
8
- @pytest.fixture
9
- def coordinates_subsets() -> list:
10
- return [CoordinatesSubset("Subset1", 2), CoordinatesSubset("Subset2", 3)]
11
-
12
-
13
- @pytest.fixture
14
- def coordinates_broker(coordinates_subsets) -> CoordinatesBroker:
15
- return CoordinatesBroker(coordinates_subsets)
16
-
17
-
18
- @pytest.fixture
19
- def coordinates() -> list[float]:
20
- return [1.0, 2.0, 3.0, 4.0, 5.0]
21
-
22
-
23
- class TestCoordinatesBroker:
24
- def test_constructor(self, coordinates_broker: CoordinatesBroker):
25
- assert coordinates_broker is not None
26
-
27
- def test_eq(self, coordinates_broker: CoordinatesBroker):
28
- assert coordinates_broker == coordinates_broker
29
-
30
- def test_ne(self, coordinates_broker: CoordinatesBroker):
31
- assert (coordinates_broker != coordinates_broker) == False
32
-
33
- def test_access_subsets(
34
- self, coordinates_broker: CoordinatesBroker, coordinates_subsets: list
35
- ):
36
- assert coordinates_broker.access_subsets() == coordinates_subsets
37
-
38
- def test_get_number_of_coordinates(self, coordinates_broker: CoordinatesBroker):
39
- assert coordinates_broker.get_number_of_coordinates() == 5
40
-
41
- def test_get_number_of_subsets(self, coordinates_broker: CoordinatesBroker):
42
- assert coordinates_broker.get_number_of_subsets() == 2
43
-
44
- def test_get_subsets(
45
- self, coordinates_broker: CoordinatesBroker, coordinates_subsets: list
46
- ):
47
- assert coordinates_broker.get_subsets() == coordinates_subsets
48
-
49
- def test_add_subset(self, coordinates_broker: CoordinatesBroker):
50
- new_subset = CoordinatesSubset("NewSubset", 4)
51
- number_of_coordinates = coordinates_broker.get_number_of_coordinates()
52
- assert coordinates_broker.add_subset(new_subset) == number_of_coordinates
53
- assert coordinates_broker.has_subset(new_subset)
54
-
55
- def test_has_subset(
56
- self, coordinates_broker: CoordinatesBroker, coordinates_subsets: list
57
- ):
58
- assert coordinates_broker.has_subset(coordinates_subsets[0])
59
-
60
- def test_extract_coordinate(
61
- self,
62
- coordinates_broker: CoordinatesBroker,
63
- coordinates: list[float],
64
- coordinates_subsets: list[CoordinatesSubset],
65
- ):
66
- assert (
67
- coordinates_broker.extract_coordinate(coordinates, coordinates_subsets[0])
68
- == [1.0, 2.0]
69
- ).all()
70
- assert (
71
- coordinates_broker.extract_coordinate(coordinates, coordinates_subsets[1])
72
- == [3.0, 4.0, 5.0]
73
- ).all()
74
-
75
- def test_extract_coordinates(
76
- self,
77
- coordinates_broker: CoordinatesBroker,
78
- coordinates: list[float],
79
- coordinates_subsets: list[CoordinatesSubset],
80
- ):
81
- assert (
82
- coordinates_broker.extract_coordinates(coordinates, coordinates_subsets)
83
- == [1.0, 2.0, 3.0, 4.0, 5.0]
84
- ).all()
@@ -1,43 +0,0 @@
1
- # Apache License 2.0
2
-
3
- import pytest
4
-
5
- from ostk.astrodynamics.trajectory.state import CoordinatesSubset
6
-
7
-
8
- @pytest.fixture
9
- def name() -> str:
10
- return "MySubset"
11
-
12
-
13
- @pytest.fixture
14
- def size() -> int:
15
- return 3
16
-
17
-
18
- @pytest.fixture
19
- def coordinates_subset(name: str, size: int) -> CoordinatesSubset:
20
- return CoordinatesSubset(name, size)
21
-
22
-
23
- class TestCoordinatesSubset:
24
- def test_constructor(self, coordinates_subset: CoordinatesSubset):
25
- assert coordinates_subset is not None
26
-
27
- def test_eq(self, coordinates_subset: CoordinatesSubset):
28
- assert coordinates_subset == coordinates_subset
29
-
30
- def test_ne(self, coordinates_subset: CoordinatesSubset):
31
- assert (coordinates_subset != coordinates_subset) == False
32
-
33
- def test_get_id(self, coordinates_subset: CoordinatesSubset):
34
- assert coordinates_subset.get_id() is not None
35
-
36
- def test_get_name(self, coordinates_subset: CoordinatesSubset, name: str):
37
- assert coordinates_subset.get_name() == name
38
-
39
- def test_get_size(self, coordinates_subset: CoordinatesSubset, size: int):
40
- assert coordinates_subset.get_size() == size
41
-
42
- def test_mass(self):
43
- assert CoordinatesSubset.mass() is not None