open-space-toolkit-astrodynamics 16.8.0__py39-none-manylinux2014_aarch64.whl → 16.10.0__py39-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.
- {open_space_toolkit_astrodynamics-16.8.0.dist-info → open_space_toolkit_astrodynamics-16.10.0.dist-info}/METADATA +1 -1
- {open_space_toolkit_astrodynamics-16.8.0.dist-info → open_space_toolkit_astrodynamics-16.10.0.dist-info}/RECORD +22 -17
- ostk/astrodynamics/OpenSpaceToolkitAstrodynamicsPy.cpython-39-aarch64-linux-gnu.so +0 -0
- ostk/astrodynamics/__init__.pyi +4 -4
- ostk/astrodynamics/conjunction/__init__.pyi +119 -1
- ostk/astrodynamics/conjunction/close_approach.pyi +85 -0
- ostk/astrodynamics/dynamics.pyi +1 -1
- ostk/astrodynamics/flight/__init__.pyi +29 -1
- ostk/astrodynamics/guidance_law.pyi +82 -7
- ostk/astrodynamics/libopen-space-toolkit-astrodynamics.so.16 +0 -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/test_close_approach.py +244 -0
- ostk/astrodynamics/test/dynamics/test_thruster.py +21 -6
- ostk/astrodynamics/test/flight/test_maneuver.py +37 -3
- ostk/astrodynamics/test/guidance_law/test_constant_thrust.py +87 -1
- ostk/astrodynamics/test/guidance_law/test_heterogeneous_guidance_law.py +164 -0
- ostk/astrodynamics/test/trajectory/test_segment.py +107 -2
- ostk/astrodynamics/trajectory/__init__.pyi +24 -0
- {open_space_toolkit_astrodynamics-16.8.0.dist-info → open_space_toolkit_astrodynamics-16.10.0.dist-info}/WHEEL +0 -0
- {open_space_toolkit_astrodynamics-16.8.0.dist-info → open_space_toolkit_astrodynamics-16.10.0.dist-info}/top_level.txt +0 -0
- {open_space_toolkit_astrodynamics-16.8.0.dist-info → open_space_toolkit_astrodynamics-16.10.0.dist-info}/zip-safe +0 -0
|
@@ -1,27 +1,28 @@
|
|
|
1
1
|
ostk/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
|
|
2
|
-
ostk/astrodynamics/OpenSpaceToolkitAstrodynamicsPy.cpython-39-aarch64-linux-gnu.so,sha256=
|
|
2
|
+
ostk/astrodynamics/OpenSpaceToolkitAstrodynamicsPy.cpython-39-aarch64-linux-gnu.so,sha256=itykLfK7NUfUwRudmhRpKM65LIzifVzyn3pDEaEacMU,2763144
|
|
3
3
|
ostk/astrodynamics/__init__.py,sha256=3gWyqFIbhAfcdeMhmfBPQPlPQTmaOzm-6flkJe745Zk,251
|
|
4
|
-
ostk/astrodynamics/__init__.pyi,sha256=
|
|
4
|
+
ostk/astrodynamics/__init__.pyi,sha256=kslygAgEQ1KVaAkyiyj3_c-DqtiP2bgXS02Cb2CpS20,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=HrZFyizkc6Hv_K38ZKZ80fX_bAxd6keA_NFWNQygvbs,1745
|
|
8
8
|
ostk/astrodynamics/dataframe.py,sha256=v-36rBHKdf7kQw1jdvJWrvkR-ZjW5DKRchtTEJWhdxk,25012
|
|
9
9
|
ostk/astrodynamics/display.py,sha256=D9PrX1G-XmXk2j3Jl7Na7q52PTc4WKWB1-oRFJPT6w0,8606
|
|
10
|
-
ostk/astrodynamics/dynamics.pyi,sha256=
|
|
10
|
+
ostk/astrodynamics/dynamics.pyi,sha256=12t5esJJ18YmCeD2-8Glcb4JPOs6vl2c6QeUaDCel9E,13308
|
|
11
11
|
ostk/astrodynamics/eclipse.pyi,sha256=Q8fzdukA7fyxbUM3wjEXAHukT-Ovl4FM00NbjsMPnUM,3211
|
|
12
12
|
ostk/astrodynamics/estimator.pyi,sha256=MnahWzp8aACxrNKWlYRsgQr5zpBxogNr-yPm7hJob5k,14000
|
|
13
13
|
ostk/astrodynamics/event_condition.pyi,sha256=2c_1Sq7tkYKeAA_aRWBi43KDQXXxu6EMSmUpEWz_Fa4,45814
|
|
14
|
-
ostk/astrodynamics/guidance_law.pyi,sha256=
|
|
15
|
-
ostk/astrodynamics/libopen-space-toolkit-astrodynamics.so.16,sha256=
|
|
14
|
+
ostk/astrodynamics/guidance_law.pyi,sha256=Xtqneu5PLpidOoSH4YIAY3D8rWZ0QH_ESqEdfbiTBVQ,16936
|
|
15
|
+
ostk/astrodynamics/libopen-space-toolkit-astrodynamics.so.16,sha256=1nMVpUhldGatpn-sRCHcYhF6fQ8P4hwU9DXAmH3jkvQ,4078240
|
|
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
|
|
19
|
-
ostk/astrodynamics/conjunction/__init__.pyi,sha256=
|
|
19
|
+
ostk/astrodynamics/conjunction/__init__.pyi,sha256=TEfTmgCRKr68B1GPJscDOgI130jQf7GLbtoKZPtx_SU,4918
|
|
20
|
+
ostk/astrodynamics/conjunction/close_approach.pyi,sha256=lDGzezf8ELdReQ0TGaqW36gpS9TwBN9QiCNrMi9X8v0,3690
|
|
20
21
|
ostk/astrodynamics/conjunction/message/__init__.pyi,sha256=5H__sg_QUx7ybf9jtVWvXzrUHeK3ECotfhddAdHjJUc,75
|
|
21
22
|
ostk/astrodynamics/conjunction/message/ccsds.pyi,sha256=1Peto19hRqlD7KHf1cyLP3CT4OAKzwtemqvO6_4FZ0g,28162
|
|
22
23
|
ostk/astrodynamics/data/__init__.pyi,sha256=4l_mfVbnU_L7wImwgTCe8fVI81gK_tUmd0z7BY9lLi8,81
|
|
23
24
|
ostk/astrodynamics/data/provider.pyi,sha256=O4Lg9FBq9itufgATnic5SMg90pn8vJJJMUdNcWP72NI,1492
|
|
24
|
-
ostk/astrodynamics/flight/__init__.pyi,sha256=
|
|
25
|
+
ostk/astrodynamics/flight/__init__.pyi,sha256=VL6OTS5uFz9xEVQ-enHz5FinFTS283nBAztEn4uGNJw,25865
|
|
25
26
|
ostk/astrodynamics/flight/system.pyi,sha256=WVxy6Oe4q3C81c0AOxSwAmnwUHcpXO7JCEvESjs2g4A,10508
|
|
26
27
|
ostk/astrodynamics/flight/profile/__init__.pyi,sha256=WBTG17V59UwD-X1r6TOrXT_rA3WjKY-2ML1cWfji_4g,3688
|
|
27
28
|
ostk/astrodynamics/flight/profile/model.pyi,sha256=wwnVaTjTytxPqKyNo1tpdZRedabQlIHgyxfT0nivO5M,7777
|
|
@@ -44,6 +45,9 @@ ostk/astrodynamics/test/test_viewer.py,sha256=6IxHjSrwnLkmLiTTzRcnwAdEeWdIF_b2Kj
|
|
|
44
45
|
ostk/astrodynamics/test/access/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
|
|
45
46
|
ostk/astrodynamics/test/access/test_generator.py,sha256=i7TnM80kF0Q_9KmyoqKt5n1ufg3ZjAIEMPVVds8ZDdI,10315
|
|
46
47
|
ostk/astrodynamics/test/access/test_visibility_criterion.py,sha256=VA6WDQTj3q-f2YGIIkrrNp8G23Nf_0g9nKmfZAgAlWQ,6568
|
|
48
|
+
ostk/astrodynamics/test/conjunction/test_close_approach.py,sha256=vuvVNj2xG8MhM-N5zsAtH7kFciM0V1KMWDd_vNvkCMg,6864
|
|
49
|
+
ostk/astrodynamics/test/conjunction/close_approach/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
50
|
+
ostk/astrodynamics/test/conjunction/close_approach/test_generator.py,sha256=NEDVdhL_Ll2iTo8dCBFuLdE1soFC0FUlx-tuuA8tGIg,6536
|
|
47
51
|
ostk/astrodynamics/test/conjunction/message/ccsds/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
|
|
48
52
|
ostk/astrodynamics/test/conjunction/message/ccsds/conftest.py,sha256=xyTd24828Ue2HgOWY8UhizIc5mzgRgoH2VSOfVfKCdw,14632
|
|
49
53
|
ostk/astrodynamics/test/conjunction/message/ccsds/test_cdm.py,sha256=ztpnOHI3ZiIV0QwijJ6Si_lIna8jLZF45r1KtPVK4ws,18514
|
|
@@ -56,7 +60,7 @@ ostk/astrodynamics/test/dynamics/test_dynamics.py,sha256=4VHL3Khbh8qTBKZw7m-4gSU
|
|
|
56
60
|
ostk/astrodynamics/test/dynamics/test_position_derivative.py,sha256=JRuq-oRrJfisbN75OnE-ldm6TeYcIc0qYaGVMflbn2g,1610
|
|
57
61
|
ostk/astrodynamics/test/dynamics/test_tabulated.py,sha256=qFHA7nmcvJtWucpCOYHAFmNRtImhTGlAZ0CHGEadeX8,4029
|
|
58
62
|
ostk/astrodynamics/test/dynamics/test_third_body_gravity.py,sha256=7xBOKbVio-zZ2-QQaje152cP38n_ALAaR5x6QIdBmXE,1879
|
|
59
|
-
ostk/astrodynamics/test/dynamics/test_thruster.py,sha256=
|
|
63
|
+
ostk/astrodynamics/test/dynamics/test_thruster.py,sha256=MJicjTLJCiULNgBk10ZVrZF5Bi3nRb3UZPWVcrpnxz8,4746
|
|
60
64
|
ostk/astrodynamics/test/dynamics/data/Tabulated_Earth_Gravity.csv,sha256=jJWOMJcQ83Vy1Wrb9PTh3ffOdoDF98kk6w5b-_E0uWg,47419
|
|
61
65
|
ostk/astrodynamics/test/dynamics/data/Tabulated_Earth_Gravity_Truth.csv,sha256=f4x-zmxZADxD_doAbACt24k36VSTp3rSIJiSzuSroKs,8377
|
|
62
66
|
ostk/astrodynamics/test/eclipse/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
|
|
@@ -71,7 +75,7 @@ ostk/astrodynamics/test/event_condition/test_instant_condition.py,sha256=Qr5dN6n
|
|
|
71
75
|
ostk/astrodynamics/test/event_condition/test_logical_condition.py,sha256=09h5TYWtwGt4NQW3k_tziiVs0Q2981rNII9wyKg7p2Q,3321
|
|
72
76
|
ostk/astrodynamics/test/event_condition/test_real_condition.py,sha256=tle6HVzMFMIIkfRY7CuaA0mPtw3riJBG_JQkc1L0dpk,1374
|
|
73
77
|
ostk/astrodynamics/test/flight/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
|
|
74
|
-
ostk/astrodynamics/test/flight/test_maneuver.py,sha256=
|
|
78
|
+
ostk/astrodynamics/test/flight/test_maneuver.py,sha256=7ZiMHrmGfSopjXm2Z3L1fXvDCJ646zVRcVyTk8f7rxY,6905
|
|
75
79
|
ostk/astrodynamics/test/flight/test_profile.py,sha256=U1l7pbFYrUjjxYBotQ3ujrvBxnBcyWgTrKwVHHClStc,8602
|
|
76
80
|
ostk/astrodynamics/test/flight/test_system.py,sha256=5kJCULHdpkwAC7i6xLV7vdJnGfOdrOuhi0G22p_L160,1224
|
|
77
81
|
ostk/astrodynamics/test/flight/profile/model/test_tabulated_profile.py,sha256=NZVa9dXzp4UDmohAlBaYeY594CPbqIv5j3VSEzlbYHk,3168
|
|
@@ -79,8 +83,9 @@ ostk/astrodynamics/test/flight/system/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5n
|
|
|
79
83
|
ostk/astrodynamics/test/flight/system/test_propulsion_system.py,sha256=SoxOt-fjHvs_86f6Xb3jAsHDOShJ6Puz7eO5wrqibaM,1835
|
|
80
84
|
ostk/astrodynamics/test/flight/system/test_satellite_system.py,sha256=dCFcl2RKiLxDKLI0sytPBXr3vHOFQIVNNCzpw5WzlAA,2437
|
|
81
85
|
ostk/astrodynamics/test/flight/system/test_satellite_system_builder.py,sha256=QCk70dPcptvdpWQOxtYR0-iGnlbtOIx2V6oO0UhYIQ0,2426
|
|
82
|
-
ostk/astrodynamics/test/guidance_law/test_constant_thrust.py,sha256=
|
|
86
|
+
ostk/astrodynamics/test/guidance_law/test_constant_thrust.py,sha256=y7VaKuJ8oCVEDeZL62oWepcmmYKG-9Za2Ebjn8lVR7Y,5381
|
|
83
87
|
ostk/astrodynamics/test/guidance_law/test_guidance_law.py,sha256=4ElWLS9ovnYBcj5HwJI3a6R9wrSLxyb_VMvxcCLDrKE,1560
|
|
88
|
+
ostk/astrodynamics/test/guidance_law/test_heterogeneous_guidance_law.py,sha256=qqIahgqFNhBjAe6RrztR0mR1XQ7ztXO-q7_pkpiKLWo,5076
|
|
84
89
|
ostk/astrodynamics/test/guidance_law/test_qlaw.py,sha256=kZaBZeU_J8Qk2nFnnpSuu-2NXT_13g3vLamG--eZfeU,3634
|
|
85
90
|
ostk/astrodynamics/test/solvers/__init__.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
|
|
86
91
|
ostk/astrodynamics/test/solvers/test_finite_difference_solver.py,sha256=0tcarIg2HTpcdzItWlL5Kd6q2nHcDBA8ZE0D3ugUN_s,5953
|
|
@@ -92,7 +97,7 @@ ostk/astrodynamics/test/trajectory/test_local_orbital_frame_factory.py,sha256=s1
|
|
|
92
97
|
ostk/astrodynamics/test/trajectory/test_model.py,sha256=epnVn2PwdQkUDZ1msqBRO5nEZIOUBIq-IfK3IlNPijE,21
|
|
93
98
|
ostk/astrodynamics/test/trajectory/test_orbit.py,sha256=EwqQejhcSqYhKPCAkjxyBLgEc82fOhrh1zrJ86RGO9Q,7011
|
|
94
99
|
ostk/astrodynamics/test/trajectory/test_propagator.py,sha256=ALjMvzndO9r6dVVXllk0iqu61tEoqu2j25MtzEitDIQ,14076
|
|
95
|
-
ostk/astrodynamics/test/trajectory/test_segment.py,sha256=
|
|
100
|
+
ostk/astrodynamics/test/trajectory/test_segment.py,sha256=u4AdttP27r2usLaaBthoSivofxKUyoQdH7dAeKEc9-E,16046
|
|
96
101
|
ostk/astrodynamics/test/trajectory/test_sequence.py,sha256=4piYpMZ9C_eCXxaOcdz2We67wZxhsNBnETgKwvq6dl0,15083
|
|
97
102
|
ostk/astrodynamics/test/trajectory/test_state.py,sha256=JO-SnUCRZ6sfVNwB5soT5c1f8c5DXuFN5lHZkiiTcYc,18119
|
|
98
103
|
ostk/astrodynamics/test/trajectory/test_state_builder.py,sha256=LpCCYdCaLu_D2npm9wgA2sMlcekrtbRqP-afe5IE5L4,4871
|
|
@@ -128,7 +133,7 @@ ostk/astrodynamics/test/trajectory/state/coordinate_subset/test_attitude_quatern
|
|
|
128
133
|
ostk/astrodynamics/test/trajectory/state/coordinate_subset/test_cartesian_acceleration.py,sha256=1p37_FYN85d9SrOqO3iCkNecovJJayhnFeZ4QCOw2ao,3528
|
|
129
134
|
ostk/astrodynamics/test/trajectory/state/coordinate_subset/test_cartesian_position.py,sha256=XvHdk1KjacTwtkgx2jUAc9I9N3nvjPDv03FAanpv8jQ,2702
|
|
130
135
|
ostk/astrodynamics/test/trajectory/state/coordinate_subset/test_cartesian_velocity.py,sha256=-kd5TZO5TICihbkqDTew2i_tDpggdpe3Yf23046FATM,3057
|
|
131
|
-
ostk/astrodynamics/trajectory/__init__.pyi,sha256
|
|
136
|
+
ostk/astrodynamics/trajectory/__init__.pyi,sha256=Rq7nDTkoqQiuLhagADDc6_0ZBMNcHnr_G4D0yXEBIsA,78618
|
|
132
137
|
ostk/astrodynamics/trajectory/model.pyi,sha256=SIneZx3pQ6XAo6iBccr4B1OsATbs1PEsCngtaTvja00,10473
|
|
133
138
|
ostk/astrodynamics/trajectory/orbit/__init__.pyi,sha256=wbuRK7Yp_NYBr3ta5-NpnJYMX4baUl7yIlUWhaRlR4o,12899
|
|
134
139
|
ostk/astrodynamics/trajectory/orbit/message/__init__.pyi,sha256=-GNBlYPrsjelhKxWorYQYhIWzFsibiIQNZvMXjhRpfM,77
|
|
@@ -139,8 +144,8 @@ ostk/astrodynamics/trajectory/orbit/model/kepler.pyi,sha256=KL-FwPbG4OUkPjhQb1Pa
|
|
|
139
144
|
ostk/astrodynamics/trajectory/orbit/model/sgp4.pyi,sha256=OhFzoPPQHlYy7m3LiZ8TXF89M4uBTfNk6tGsBEp0sjI,14235
|
|
140
145
|
ostk/astrodynamics/trajectory/state/__init__.pyi,sha256=bq__Fii35czVrTeNxc9eQVjXdqwbbQxUdNQWK3vLrMo,17649
|
|
141
146
|
ostk/astrodynamics/trajectory/state/coordinate_subset.pyi,sha256=kYMfMwEjCqO1NepMYFT4QS6kIPBkVL6sGCLeLbogcMw,10176
|
|
142
|
-
open_space_toolkit_astrodynamics-16.
|
|
143
|
-
open_space_toolkit_astrodynamics-16.
|
|
144
|
-
open_space_toolkit_astrodynamics-16.
|
|
145
|
-
open_space_toolkit_astrodynamics-16.
|
|
146
|
-
open_space_toolkit_astrodynamics-16.
|
|
147
|
+
open_space_toolkit_astrodynamics-16.10.0.dist-info/METADATA,sha256=VRCTKInuQXRzjAIDnrl4EOduGokQYU72xGWdlk--r1I,1914
|
|
148
|
+
open_space_toolkit_astrodynamics-16.10.0.dist-info/WHEEL,sha256=HKTDQRaBjeful1LuAej8fX2VXGhDWeCDzK_M-yn2ypk,110
|
|
149
|
+
open_space_toolkit_astrodynamics-16.10.0.dist-info/top_level.txt,sha256=zOR18699uDYnafgarhL8WU_LmTZY_5NVqutv-flp_x4,5
|
|
150
|
+
open_space_toolkit_astrodynamics-16.10.0.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
151
|
+
open_space_toolkit_astrodynamics-16.10.0.dist-info/RECORD,,
|
|
Binary file
|
ostk/astrodynamics/__init__.pyi
CHANGED
|
@@ -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.
|
|
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
|
|
@@ -1,3 +1,121 @@
|
|
|
1
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
|
|
2
8
|
from . import message
|
|
3
|
-
__all__ = ['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,85 @@
|
|
|
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. Defaults to Duration.seconds(15.0).
|
|
31
|
+
tolerance (Duration): The tolerance to use during the close approach search. Defaults to Duration.milliseconds(1.0).
|
|
32
|
+
"""
|
|
33
|
+
def compute_close_approaches(self, trajectory: ostk.astrodynamics.Trajectory, search_interval: ostk.physics.time.Interval) -> list[ostk.astrodynamics.conjunction.CloseApproach]:
|
|
34
|
+
"""
|
|
35
|
+
Compute close approaches between the reference trajectory and another object over a search interval.
|
|
36
|
+
|
|
37
|
+
Args:
|
|
38
|
+
trajectory (Trajectory): The trajectory of the other object (Object 2).
|
|
39
|
+
search_interval (Interval): The interval over which close approaches are searched.
|
|
40
|
+
|
|
41
|
+
Returns:
|
|
42
|
+
list[CloseApproach]: Array of close approaches over the search interval (with Object 1 being the reference trajectory).
|
|
43
|
+
"""
|
|
44
|
+
def get_reference_trajectory(self) -> ostk.astrodynamics.Trajectory:
|
|
45
|
+
"""
|
|
46
|
+
Get the reference trajectory.
|
|
47
|
+
|
|
48
|
+
Returns:
|
|
49
|
+
Trajectory: The reference trajectory.
|
|
50
|
+
"""
|
|
51
|
+
def get_step(self) -> ostk.physics.time.Duration:
|
|
52
|
+
"""
|
|
53
|
+
Get the step.
|
|
54
|
+
|
|
55
|
+
Returns:
|
|
56
|
+
Duration: The step.
|
|
57
|
+
"""
|
|
58
|
+
def get_tolerance(self) -> ostk.physics.time.Duration:
|
|
59
|
+
"""
|
|
60
|
+
Get the tolerance.
|
|
61
|
+
|
|
62
|
+
Returns:
|
|
63
|
+
Duration: The tolerance.
|
|
64
|
+
"""
|
|
65
|
+
def is_defined(self) -> bool:
|
|
66
|
+
"""
|
|
67
|
+
Check if the generator is defined.
|
|
68
|
+
|
|
69
|
+
Returns:
|
|
70
|
+
bool: True if generator is defined, False otherwise.
|
|
71
|
+
"""
|
|
72
|
+
def set_step(self, step: ostk.physics.time.Duration) -> None:
|
|
73
|
+
"""
|
|
74
|
+
Set the step.
|
|
75
|
+
|
|
76
|
+
Args:
|
|
77
|
+
step (Duration): The step.
|
|
78
|
+
"""
|
|
79
|
+
def set_tolerance(self, tolerance: ostk.physics.time.Duration) -> None:
|
|
80
|
+
"""
|
|
81
|
+
Set the tolerance.
|
|
82
|
+
|
|
83
|
+
Args:
|
|
84
|
+
tolerance (Duration): The tolerance.
|
|
85
|
+
"""
|
ostk/astrodynamics/dynamics.pyi
CHANGED
|
@@ -270,7 +270,7 @@ class Thruster(ostk.astrodynamics.Dynamics):
|
|
|
270
270
|
Args:
|
|
271
271
|
satellite_system (SatelliteSystem): The satellite system.
|
|
272
272
|
guidance_law (GuidanceLaw): The guidance law used to compute the acceleration vector.
|
|
273
|
-
name (str): The name of the thruster.
|
|
273
|
+
name (str, optional): The name of the thruster. Defaults to String.empty().
|
|
274
274
|
"""
|
|
275
275
|
def __repr__(self) -> str:
|
|
276
276
|
...
|
|
@@ -84,6 +84,16 @@ class Maneuver:
|
|
|
84
84
|
Returns:
|
|
85
85
|
float: The delta-v value (m/s).
|
|
86
86
|
"""
|
|
87
|
+
def calculate_mean_thrust_direction_and_maximum_angular_offset(self, local_orbital_frame_factory: ostk.astrodynamics.trajectory.LocalOrbitalFrameFactory) -> tuple[ostk.astrodynamics.trajectory.LocalOrbitalFrameDirection, ostk.physics.unit.Angle]:
|
|
88
|
+
"""
|
|
89
|
+
Calculate the mean thrust direction in the Local Orbital Frame and its maximum angular offset w.r.t. the maneuver's thrust acceleration directions.
|
|
90
|
+
|
|
91
|
+
Args:
|
|
92
|
+
local_orbital_frame_factory (LocalOrbitalFrameFactory): The local orbital frame factory.
|
|
93
|
+
|
|
94
|
+
Returns:
|
|
95
|
+
Tuple[LocalOrbitalFrameDirection, Angle]: The mean thrust direction and its maximum angular offset.
|
|
96
|
+
"""
|
|
87
97
|
def get_interval(self) -> ostk.physics.time.Interval:
|
|
88
98
|
"""
|
|
89
99
|
Get the interval of the maneuver.
|
|
@@ -105,6 +115,24 @@ class Maneuver:
|
|
|
105
115
|
Returns:
|
|
106
116
|
bool: True if the maneuver is defined, False otherwise. (Always returns true).
|
|
107
117
|
"""
|
|
118
|
+
def to_constant_local_orbital_frame_direction_maneuver(self, local_orbital_frame_factory: ostk.astrodynamics.trajectory.LocalOrbitalFrameFactory, maximum_allowed_angular_offset: ostk.physics.unit.Angle = ...) -> Maneuver:
|
|
119
|
+
"""
|
|
120
|
+
Create a maneuver with a constant thrust acceleration direction in the Local Orbital Frame.
|
|
121
|
+
|
|
122
|
+
The new Maneuver contains the same states as the original Maneuver, but the thrust acceleration direction is
|
|
123
|
+
constant in the Local Orbital Frame. Said direction is the mean direction of the thrust acceleration directions
|
|
124
|
+
in the Local Orbital Frame of the original Maneuver. The thrust acceleration magnitude profile is the same as the original.
|
|
125
|
+
|
|
126
|
+
If defined, a runtime error will be thrown if the maximum allowed angular offset between the original thrust acceleration direction
|
|
127
|
+
and the mean thrust direction is violated.
|
|
128
|
+
|
|
129
|
+
Args:
|
|
130
|
+
local_orbital_frame_factory (LocalOrbitalFrameFactory): The local orbital frame factory.
|
|
131
|
+
maximum_allowed_angular_offset (Angle, optional): The maximum allowed angular offset to consider (if any). Defaults to Undefined.
|
|
132
|
+
|
|
133
|
+
Returns:
|
|
134
|
+
Maneuver: The constant local orbital frame direction maneuver.
|
|
135
|
+
"""
|
|
108
136
|
def to_tabulated_dynamics(self, frame: ostk.physics.coordinate.Frame = ..., interpolation_type: ostk.mathematics.curve_fitting.Interpolator.Type = ...) -> ...:
|
|
109
137
|
"""
|
|
110
138
|
Convert the maneuver to tabulated dynamics.
|
|
@@ -200,7 +228,7 @@ class Profile:
|
|
|
200
228
|
Constructor.
|
|
201
229
|
|
|
202
230
|
Args:
|
|
203
|
-
orientation_profile (list[
|
|
231
|
+
orientation_profile (list[tuple[Instant, Vector3d]]): The orientation profile.
|
|
204
232
|
axis (Profile.Axis): The axis.
|
|
205
233
|
anti_direction (bool): True if the direction is flipped, False otherwise. Defaults to False.
|
|
206
234
|
"""
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
import numpy
|
|
3
3
|
import ostk.astrodynamics
|
|
4
|
+
import ostk.astrodynamics.flight
|
|
4
5
|
import ostk.astrodynamics.trajectory
|
|
5
6
|
import ostk.astrodynamics.trajectory.orbit.model.kepler
|
|
6
7
|
import ostk.core.type
|
|
@@ -8,26 +9,43 @@ import ostk.physics.coordinate
|
|
|
8
9
|
import ostk.physics.time
|
|
9
10
|
import ostk.physics.unit
|
|
10
11
|
import typing
|
|
11
|
-
__all__ = ['ConstantThrust', 'QLaw']
|
|
12
|
+
__all__ = ['ConstantThrust', 'HeterogeneousGuidanceLaw', 'QLaw']
|
|
12
13
|
class ConstantThrust(ostk.astrodynamics.GuidanceLaw):
|
|
13
14
|
"""
|
|
14
15
|
|
|
15
|
-
Constant Thrust, Constant Direction
|
|
16
|
+
Constant Thrust, Constant Direction guidance law.
|
|
16
17
|
|
|
17
18
|
|
|
18
19
|
"""
|
|
19
20
|
@staticmethod
|
|
21
|
+
def from_maneuver(maneuver: ostk.astrodynamics.flight.Maneuver, local_orbital_frame_factory: ostk.astrodynamics.trajectory.LocalOrbitalFrameFactory, maximum_allowed_angular_offset: ostk.physics.unit.Angle = ...) -> ConstantThrust:
|
|
22
|
+
"""
|
|
23
|
+
Create a constant thrust guidance law from a maneuver.
|
|
24
|
+
|
|
25
|
+
The local orbital frame maneuver's mean thrust direction is calculated and used to create a
|
|
26
|
+
constant thrust guidance law in said direction.
|
|
27
|
+
|
|
28
|
+
If defined, a runtime error will be thrown if the maximum allowed angular offset between the original thrust acceleration
|
|
29
|
+
direction and the mean thrust direction is violated.
|
|
30
|
+
|
|
31
|
+
Args:
|
|
32
|
+
maneuver (Maneuver): The maneuver.
|
|
33
|
+
local_orbital_frame_factory (LocalOrbitalFrameFactory): The local orbital frame factory.
|
|
34
|
+
maximum_allowed_angular_offset (Angle, optional): The maximum allowed angular offset to consider (if any). Defaults to Undefined.
|
|
35
|
+
|
|
36
|
+
Returns:
|
|
37
|
+
ConstantThrust: The constant thrust guidance law.
|
|
38
|
+
"""
|
|
39
|
+
@staticmethod
|
|
20
40
|
def intrack(velocity_direction: bool = True) -> ConstantThrust:
|
|
21
41
|
"""
|
|
22
|
-
Create a constant thrust in the in-track direction.
|
|
42
|
+
Create a constant thrust guidance law in the in-track direction.
|
|
23
43
|
|
|
24
44
|
Args:
|
|
25
|
-
|
|
26
|
-
velocity_direction (bool, optional): If True, the thrust is applied in the velocity direction. Otherwise, it is applied in the opposite direction.
|
|
27
|
-
frame (Frame, optional): The reference frame.
|
|
45
|
+
velocity_direction (bool, optional): If True, the thrust is applied in the velocity direction. Otherwise, it is applied in the opposite direction. Defaults to True.
|
|
28
46
|
|
|
29
47
|
Returns:
|
|
30
|
-
ConstantThrust: The constant thrust.
|
|
48
|
+
ConstantThrust: The constant thrust guidance law in the in-track direction.
|
|
31
49
|
"""
|
|
32
50
|
def __init__(self, thrust_direction: ostk.astrodynamics.trajectory.LocalOrbitalFrameDirection) -> None:
|
|
33
51
|
"""
|
|
@@ -61,6 +79,63 @@ class ConstantThrust(ostk.astrodynamics.GuidanceLaw):
|
|
|
61
79
|
Returns:
|
|
62
80
|
LocalOrbitalFrameDirection: The local thrust direction.
|
|
63
81
|
"""
|
|
82
|
+
class HeterogeneousGuidanceLaw(ostk.astrodynamics.GuidanceLaw):
|
|
83
|
+
"""
|
|
84
|
+
|
|
85
|
+
A guidance law that sequences multiple guidance laws over specific time intervals.
|
|
86
|
+
|
|
87
|
+
At each point in time, the applicable guidance law is selected and used to calculate
|
|
88
|
+
the thrust acceleration. Guidance laws don't need to be contiguous, and can be added
|
|
89
|
+
in any order. If the instant does not fall within any of the intervals, the thrust
|
|
90
|
+
acceleration is zero. The guidance law intervals must not intersect each other.
|
|
91
|
+
|
|
92
|
+
"""
|
|
93
|
+
def __init__(self, guidance_laws_with_intervals: list[tuple[ostk.astrodynamics.GuidanceLaw, ostk.physics.time.Interval]] = []) -> None:
|
|
94
|
+
"""
|
|
95
|
+
Constructor.
|
|
96
|
+
|
|
97
|
+
Args:
|
|
98
|
+
guidance_laws_with_intervals (list[tuple[GuidanceLaw, Interval]], optional): Array of tuples containing the guidance laws and their corresponding intervals. Defaults to empty array.
|
|
99
|
+
|
|
100
|
+
Raises:
|
|
101
|
+
RuntimeError: If any interval is undefined, if the guidance law is null or if the interval intersects with an existing interval.
|
|
102
|
+
"""
|
|
103
|
+
def __repr__(self) -> str:
|
|
104
|
+
...
|
|
105
|
+
def __str__(self) -> str:
|
|
106
|
+
...
|
|
107
|
+
def add_guidance_law(self, guidance_law: ostk.astrodynamics.GuidanceLaw, interval: ostk.physics.time.Interval) -> None:
|
|
108
|
+
"""
|
|
109
|
+
Add a guidance law with its corresponding interval.
|
|
110
|
+
|
|
111
|
+
Args:
|
|
112
|
+
guidance_law (GuidanceLaw): The guidance law to add.
|
|
113
|
+
interval (Interval): The interval during which the guidance law is active.
|
|
114
|
+
|
|
115
|
+
Raises:
|
|
116
|
+
RuntimeError: If the interval is undefined, if the guidance law is null or if the interval intersects with an existing interval.
|
|
117
|
+
"""
|
|
118
|
+
def calculate_thrust_acceleration_at(self, instant: ostk.physics.time.Instant, position_coordinates: numpy.ndarray[numpy.float64[3, 1]], velocity_coordinates: numpy.ndarray[numpy.float64[3, 1]], thrust_acceleration: ostk.core.type.Real, output_frame: ostk.physics.coordinate.Frame) -> numpy.ndarray[numpy.float64[3, 1]]:
|
|
119
|
+
"""
|
|
120
|
+
Calculate thrust acceleration at a given instant and state.
|
|
121
|
+
|
|
122
|
+
Args:
|
|
123
|
+
instant (Instant): The instant.
|
|
124
|
+
position_coordinates (numpy.ndarray): The position coordinates.
|
|
125
|
+
velocity_coordinates (numpy.ndarray): The velocity coordinates.
|
|
126
|
+
thrust_acceleration (float): The thrust acceleration magnitude.
|
|
127
|
+
output_frame (Frame): The frame in which the acceleration is expressed.
|
|
128
|
+
|
|
129
|
+
Returns:
|
|
130
|
+
numpy.ndarray: The acceleration vector at the provided coordinates.
|
|
131
|
+
"""
|
|
132
|
+
def get_guidance_laws_with_intervals(self) -> list[tuple[ostk.astrodynamics.GuidanceLaw, ostk.physics.time.Interval]]:
|
|
133
|
+
"""
|
|
134
|
+
Get the guidance laws with their corresponding intervals.
|
|
135
|
+
|
|
136
|
+
Returns:
|
|
137
|
+
list[tuple[GuidanceLaw, Interval]]: Array of tuples containing the guidance laws and their corresponding intervals.
|
|
138
|
+
"""
|
|
64
139
|
class QLaw(ostk.astrodynamics.GuidanceLaw):
|
|
65
140
|
"""
|
|
66
141
|
|
|
Binary file
|
|
File without changes
|