open-space-toolkit-astrodynamics 16.7.3__py313-none-manylinux2014_aarch64.whl → 16.8.0__py313-none-manylinux2014_aarch64.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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: open-space-toolkit-astrodynamics
3
- Version: 16.7.3
3
+ Version: 16.8.0
4
4
  Summary: Orbit, attitude, access.
5
5
  Author: Open Space Collective
6
6
  Author-email: contact@open-space-collective.org
@@ -1,7 +1,7 @@
1
1
  ostk/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
2
- ostk/astrodynamics/OpenSpaceToolkitAstrodynamicsPy.cpython-313-aarch64-linux-gnu.so,sha256=GGVjRXK0bOhtTlwtaDwz0kuJZ9Hkw7U2sJCWR-jzqCo,2652528
2
+ ostk/astrodynamics/OpenSpaceToolkitAstrodynamicsPy.cpython-313-aarch64-linux-gnu.so,sha256=UloSW5i0-b6rlxGKjo8_9ONH3NhjTxi9sXzDLk2JXhA,2664832
3
3
  ostk/astrodynamics/__init__.py,sha256=3gWyqFIbhAfcdeMhmfBPQPlPQTmaOzm-6flkJe745Zk,251
4
- ostk/astrodynamics/__init__.pyi,sha256=9gXFGsDnV2gM50RtM6qoswb8QqGQ4XZgdBUzTBXVsyw,32224
4
+ ostk/astrodynamics/__init__.pyi,sha256=l39uJ41QUoFdQXjRXzara_EPHNnf_9Q086T1-Jv-9X4,32224
5
5
  ostk/astrodynamics/access.pyi,sha256=pp2t81kKH4sP4BcGb8nAZHmpwhISjFODMpbZ4ucLFAw,25157
6
6
  ostk/astrodynamics/converters.py,sha256=luPh30qMp9bzEkN7hUccmxlLf7zRp_AzqmBe8IUjPhU,3314
7
7
  ostk/astrodynamics/converters.pyi,sha256=tTUT0xGbiUkKxUj79Hq5EEtxV3b2uR6Wsnj_vwyj-mk,1625
@@ -12,7 +12,7 @@ ostk/astrodynamics/eclipse.pyi,sha256=Q8fzdukA7fyxbUM3wjEXAHukT-Ovl4FM00NbjsMPnU
12
12
  ostk/astrodynamics/estimator.pyi,sha256=MnahWzp8aACxrNKWlYRsgQr5zpBxogNr-yPm7hJob5k,14000
13
13
  ostk/astrodynamics/event_condition.pyi,sha256=2c_1Sq7tkYKeAA_aRWBi43KDQXXxu6EMSmUpEWz_Fa4,45814
14
14
  ostk/astrodynamics/guidance_law.pyi,sha256=rVmbpV2Y5FsIXejaInxINS67nVHmTIxVEkhaDIn17SA,12171
15
- ostk/astrodynamics/libopen-space-toolkit-astrodynamics.so.16,sha256=Zze82cXGw3Swqp6df59teXjaNrJuCje3D138Rk4b1jE,4027840
15
+ ostk/astrodynamics/libopen-space-toolkit-astrodynamics.so.16,sha256=r2QRZUN_s_w90Bu6E5_BWFfIdnfdGlU6w3TEnue8xSU,4027856
16
16
  ostk/astrodynamics/solver.pyi,sha256=dRdR9RLqwSaBBX_ZRmpeBv06WvM_BFNo3WUdNzorYTY,17805
17
17
  ostk/astrodynamics/utilities.py,sha256=y8mr3M46J5z-GhS1oIEnuEJA6otwcyJ9YDhvn_5JxHM,6976
18
18
  ostk/astrodynamics/viewer.py,sha256=SlKyOWKjaF3V9HFB3I7ZgHy7n_GLeHTWM9q2wXkpxe8,27077
@@ -21,7 +21,7 @@ ostk/astrodynamics/conjunction/message/__init__.pyi,sha256=5H__sg_QUx7ybf9jtVWvX
21
21
  ostk/astrodynamics/conjunction/message/ccsds.pyi,sha256=1Peto19hRqlD7KHf1cyLP3CT4OAKzwtemqvO6_4FZ0g,28162
22
22
  ostk/astrodynamics/data/__init__.pyi,sha256=4l_mfVbnU_L7wImwgTCe8fVI81gK_tUmd0z7BY9lLi8,81
23
23
  ostk/astrodynamics/data/provider.pyi,sha256=O4Lg9FBq9itufgATnic5SMg90pn8vJJJMUdNcWP72NI,1492
24
- ostk/astrodynamics/flight/__init__.pyi,sha256=f7hDDcisAtBE86w5s0d0M2N_m3Rjlh2pWGWFTdnoaGw,23058
24
+ ostk/astrodynamics/flight/__init__.pyi,sha256=OnR2OxLLvmVSp18nLzM7R_QHoJvoikIaz2qiIZgH0bA,23606
25
25
  ostk/astrodynamics/flight/system.pyi,sha256=WVxy6Oe4q3C81c0AOxSwAmnwUHcpXO7JCEvESjs2g4A,10508
26
26
  ostk/astrodynamics/flight/profile/__init__.pyi,sha256=WBTG17V59UwD-X1r6TOrXT_rA3WjKY-2ML1cWfji_4g,3688
27
27
  ostk/astrodynamics/flight/profile/model.pyi,sha256=wwnVaTjTytxPqKyNo1tpdZRedabQlIHgyxfT0nivO5M,7777
@@ -72,7 +72,7 @@ ostk/astrodynamics/test/event_condition/test_logical_condition.py,sha256=09h5TYW
72
72
  ostk/astrodynamics/test/event_condition/test_real_condition.py,sha256=tle6HVzMFMIIkfRY7CuaA0mPtw3riJBG_JQkc1L0dpk,1374
73
73
  ostk/astrodynamics/test/flight/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
74
74
  ostk/astrodynamics/test/flight/test_maneuver.py,sha256=HonAvD9qtax72lizoDLR6ELI-poC3LWk_umg-WYygYA,5388
75
- ostk/astrodynamics/test/flight/test_profile.py,sha256=lfTGy9l2rAhHsmLZCdE-kzy-s_-EgXIZwfGs_7f8UPo,8205
75
+ ostk/astrodynamics/test/flight/test_profile.py,sha256=U1l7pbFYrUjjxYBotQ3ujrvBxnBcyWgTrKwVHHClStc,8602
76
76
  ostk/astrodynamics/test/flight/test_system.py,sha256=5kJCULHdpkwAC7i6xLV7vdJnGfOdrOuhi0G22p_L160,1224
77
77
  ostk/astrodynamics/test/flight/profile/model/test_tabulated_profile.py,sha256=NZVa9dXzp4UDmohAlBaYeY594CPbqIv5j3VSEzlbYHk,3168
78
78
  ostk/astrodynamics/test/flight/system/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
@@ -80,6 +80,7 @@ ostk/astrodynamics/test/flight/system/test_propulsion_system.py,sha256=SoxOt-fjH
80
80
  ostk/astrodynamics/test/flight/system/test_satellite_system.py,sha256=dCFcl2RKiLxDKLI0sytPBXr3vHOFQIVNNCzpw5WzlAA,2437
81
81
  ostk/astrodynamics/test/flight/system/test_satellite_system_builder.py,sha256=QCk70dPcptvdpWQOxtYR0-iGnlbtOIx2V6oO0UhYIQ0,2426
82
82
  ostk/astrodynamics/test/guidance_law/test_constant_thrust.py,sha256=YpMkMvat4YnE1Fyy5vZ1Sf3VvbvDaC_UvbIKNNCG_B4,2635
83
+ ostk/astrodynamics/test/guidance_law/test_guidance_law.py,sha256=4ElWLS9ovnYBcj5HwJI3a6R9wrSLxyb_VMvxcCLDrKE,1560
83
84
  ostk/astrodynamics/test/guidance_law/test_qlaw.py,sha256=kZaBZeU_J8Qk2nFnnpSuu-2NXT_13g3vLamG--eZfeU,3634
84
85
  ostk/astrodynamics/test/solvers/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
85
86
  ostk/astrodynamics/test/solvers/test_finite_difference_solver.py,sha256=0tcarIg2HTpcdzItWlL5Kd6q2nHcDBA8ZE0D3ugUN_s,5953
@@ -138,8 +139,8 @@ ostk/astrodynamics/trajectory/orbit/model/kepler.pyi,sha256=KL-FwPbG4OUkPjhQb1Pa
138
139
  ostk/astrodynamics/trajectory/orbit/model/sgp4.pyi,sha256=OhFzoPPQHlYy7m3LiZ8TXF89M4uBTfNk6tGsBEp0sjI,14235
139
140
  ostk/astrodynamics/trajectory/state/__init__.pyi,sha256=bq__Fii35czVrTeNxc9eQVjXdqwbbQxUdNQWK3vLrMo,17649
140
141
  ostk/astrodynamics/trajectory/state/coordinate_subset.pyi,sha256=kYMfMwEjCqO1NepMYFT4QS6kIPBkVL6sGCLeLbogcMw,10176
141
- open_space_toolkit_astrodynamics-16.7.3.dist-info/METADATA,sha256=H13jmIAfCL_DeIh7ndH-8RXPpwKaXmWkhBkMGDbgNlE,1913
142
- open_space_toolkit_astrodynamics-16.7.3.dist-info/WHEEL,sha256=SoYeZtqoiLCL_G4rzH07IDMwRvSqG334rWZuI48h-Rk,111
143
- open_space_toolkit_astrodynamics-16.7.3.dist-info/top_level.txt,sha256=zOR18699uDYnafgarhL8WU_LmTZY_5NVqutv-flp_x4,5
144
- open_space_toolkit_astrodynamics-16.7.3.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
145
- open_space_toolkit_astrodynamics-16.7.3.dist-info/RECORD,,
142
+ open_space_toolkit_astrodynamics-16.8.0.dist-info/METADATA,sha256=EfkYJE8PmXGgbf8PpG_rAkZgnWlv8XFvMDYSXiMxVV8,1913
143
+ open_space_toolkit_astrodynamics-16.8.0.dist-info/WHEEL,sha256=SoYeZtqoiLCL_G4rzH07IDMwRvSqG334rWZuI48h-Rk,111
144
+ open_space_toolkit_astrodynamics-16.8.0.dist-info/top_level.txt,sha256=zOR18699uDYnafgarhL8WU_LmTZY_5NVqutv-flp_x4,5
145
+ open_space_toolkit_astrodynamics-16.8.0.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
146
+ open_space_toolkit_astrodynamics-16.8.0.dist-info/RECORD,,
@@ -5,8 +5,8 @@ from ostk.astrodynamics.trajectory import State as PyState
5
5
  from ostk import core as OpenSpaceToolkitCorePy
6
6
  from ostk.core import container
7
7
  from ostk.core import filesystem
8
- import ostk.core.type
9
8
  from ostk.core import type
9
+ import ostk.core.type
10
10
  from ostk import io as OpenSpaceToolkitIOPy
11
11
  from ostk.io import URL
12
12
  from ostk.io import ip
@@ -14,20 +14,20 @@ from ostk import mathematics as OpenSpaceToolkitMathematicsPy
14
14
  from ostk.mathematics import curve_fitting
15
15
  from ostk.mathematics import geometry
16
16
  from ostk.mathematics import object
17
- import ostk.physics
18
17
  from ostk import physics as OpenSpaceToolkitPhysicsPy
18
+ import ostk.physics
19
19
  from ostk.physics import Environment
20
20
  from ostk.physics import Manager
21
21
  from ostk.physics import Unit
22
- from ostk.physics import coordinate
23
22
  import ostk.physics.coordinate
23
+ from ostk.physics import coordinate
24
24
  import ostk.physics.coordinate.spherical
25
25
  from ostk.physics import environment
26
26
  import ostk.physics.environment.object
27
- import ostk.physics.time
28
27
  from ostk.physics import time
29
- import ostk.physics.unit
28
+ import ostk.physics.time
30
29
  from ostk.physics import unit
30
+ import ostk.physics.unit
31
31
  import typing
32
32
  from . import access
33
33
  from . import conjunction
@@ -439,6 +439,17 @@ class Profile:
439
439
  Returns:
440
440
  Model: The profile model.
441
441
  """
442
+ def construct_body_frame(self, frame_name: ostk.core.type.String, overwrite: bool = False) -> ostk.physics.coordinate.Frame:
443
+ """
444
+ Construct the body frame of the profile.
445
+
446
+ Args:
447
+ frame_name (str): The name of the frame.
448
+ overwrite (bool): If True, destruct existing frame with same name. Defaults to False.
449
+
450
+ Returns:
451
+ Frame: The body frame of the profile.
452
+ """
442
453
  def get_axes_at(self, instant: ostk.physics.time.Instant) -> ostk.physics.coordinate.Axes:
443
454
  """
444
455
  Get the axes of the profile at a given instant.
@@ -180,6 +180,18 @@ class TestProfile:
180
180
  assert frame is not None
181
181
  assert isinstance(frame, Frame)
182
182
 
183
+ def test_construct_body_frame(self, profile: Profile):
184
+ frame_name: str = "test_construct_body_frame"
185
+
186
+ if Frame.exists(frame_name):
187
+ Frame.destruct(frame_name)
188
+
189
+ frame: Frame = profile.construct_body_frame(frame_name)
190
+ assert frame is not None
191
+
192
+ frame_2: Frame = profile.construct_body_frame(frame_name, True)
193
+ assert frame_2 is not None
194
+
183
195
  def test_undefined(self):
184
196
  profile: Profile = Profile.undefined()
185
197
 
@@ -0,0 +1,60 @@
1
+ # Apache License 2.0
2
+
3
+ import numpy as np
4
+
5
+ import pytest
6
+
7
+ from ostk.physics.time import Instant
8
+ from ostk.physics.coordinate import Frame
9
+ from ostk.astrodynamics import GuidanceLaw
10
+
11
+
12
+ @pytest.fixture
13
+ def guidance_law() -> GuidanceLaw:
14
+ class MyGuidanceLaw(GuidanceLaw):
15
+
16
+ def __init__(
17
+ self,
18
+ name: str,
19
+ ):
20
+ super().__init__(name)
21
+
22
+ def calculate_thrust_acceleration_at(
23
+ self,
24
+ instant: Instant,
25
+ position_coordinates: np.array,
26
+ velocity_coordinates: np.array,
27
+ thrust_acceleration: float,
28
+ output_frame: Frame,
29
+ ) -> np.array:
30
+ return np.array([0.0, 0.0, 0.0])
31
+
32
+ return MyGuidanceLaw("My Guidance Law")
33
+
34
+
35
+ class TestGuidanceLaw:
36
+ def test_subclass(
37
+ self,
38
+ guidance_law: GuidanceLaw,
39
+ ):
40
+ assert isinstance(guidance_law, GuidanceLaw)
41
+
42
+ def test_get_name(
43
+ self,
44
+ guidance_law: GuidanceLaw,
45
+ ):
46
+ assert guidance_law.get_name() == "My Guidance Law"
47
+
48
+ def test_calculate_thrust_acceleration_at(
49
+ self,
50
+ guidance_law: GuidanceLaw,
51
+ ):
52
+ thrust_acceleration: np.array = guidance_law.calculate_thrust_acceleration_at(
53
+ instant=Instant.J2000(),
54
+ position_coordinates=np.array([0.0, 0.0, 0.0]),
55
+ velocity_coordinates=np.array([0.0, 0.0, 0.0]),
56
+ thrust_acceleration=1.0,
57
+ output_frame=Frame.GCRF(),
58
+ )
59
+
60
+ assert np.array_equal(thrust_acceleration, np.array([0.0, 0.0, 0.0]))