open-space-toolkit-astrodynamics 13.1.0__py310-none-manylinux2014_aarch64.whl → 14.0.0__py310-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-13.1.0.dist-info → open_space_toolkit_astrodynamics-14.0.0.dist-info}/METADATA +3 -3
- {open_space_toolkit_astrodynamics-13.1.0.dist-info → open_space_toolkit_astrodynamics-14.0.0.dist-info}/RECORD +52 -20
- {open_space_toolkit_astrodynamics-13.1.0.dist-info → open_space_toolkit_astrodynamics-14.0.0.dist-info}/WHEEL +1 -1
- ostk/astrodynamics/OpenSpaceToolkitAstrodynamicsPy.cpython-310-aarch64-linux-gnu.so +0 -0
- ostk/astrodynamics/__init__.pyi +785 -0
- ostk/astrodynamics/access.pyi +588 -0
- ostk/astrodynamics/conjunction/__init__.pyi +3 -0
- ostk/astrodynamics/conjunction/message/__init__.pyi +3 -0
- ostk/astrodynamics/conjunction/message/ccsds.pyi +723 -0
- ostk/astrodynamics/converters.pyi +58 -0
- ostk/astrodynamics/data/__init__.pyi +3 -0
- ostk/astrodynamics/data/provider.pyi +22 -0
- ostk/astrodynamics/dynamics.pyi +329 -0
- ostk/astrodynamics/event_condition.pyi +580 -0
- ostk/astrodynamics/flight/__init__.pyi +547 -0
- ostk/astrodynamics/flight/profile/__init__.pyi +102 -0
- ostk/astrodynamics/flight/profile/model.pyi +176 -0
- ostk/astrodynamics/flight/system.pyi +277 -0
- ostk/astrodynamics/guidance_law.pyi +282 -0
- ostk/astrodynamics/libopen-space-toolkit-astrodynamics.so.14 +0 -0
- ostk/astrodynamics/py.typed +0 -0
- ostk/astrodynamics/pytrajectory/__init__.pyi +3 -0
- ostk/astrodynamics/pytrajectory/pystate.py +2 -4
- ostk/astrodynamics/pytrajectory/pystate.pyi +65 -0
- ostk/astrodynamics/solver.pyi +232 -0
- ostk/astrodynamics/test/access/test_generator.py +130 -59
- ostk/astrodynamics/test/access/test_visibility_criterion.py +198 -0
- ostk/astrodynamics/test/data/provider/test_off_nadir.py +58 -0
- ostk/astrodynamics/test/flight/test_maneuver.py +49 -64
- ostk/astrodynamics/test/flight/test_profile.py +4 -2
- ostk/astrodynamics/test/solvers/test_finite_difference_solver.py +24 -11
- ostk/astrodynamics/test/solvers/test_temporal_condition_solver.py +9 -1
- ostk/astrodynamics/test/test_display.py +11 -5
- ostk/astrodynamics/test/test_viewer.py +70 -1
- ostk/astrodynamics/test/trajectory/state/coordinate_subset/test_cartesian_acceleration.py +136 -0
- ostk/astrodynamics/test/trajectory/state/test_coordinate_subset.py +9 -0
- ostk/astrodynamics/test/trajectory/test_local_orbital_frame_factory.py +21 -13
- ostk/astrodynamics/test/trajectory/test_propagator.py +21 -27
- ostk/astrodynamics/test/trajectory/test_segment.py +0 -1
- ostk/astrodynamics/trajectory/__init__.pyi +1796 -0
- ostk/astrodynamics/trajectory/orbit/__init__.pyi +361 -0
- ostk/astrodynamics/trajectory/orbit/message/__init__.pyi +3 -0
- ostk/astrodynamics/trajectory/orbit/message/spacex.pyi +273 -0
- ostk/astrodynamics/trajectory/orbit/model/__init__.pyi +517 -0
- ostk/astrodynamics/trajectory/orbit/model/brouwerLyddaneMean.pyi +127 -0
- ostk/astrodynamics/trajectory/orbit/model/kepler.pyi +581 -0
- ostk/astrodynamics/trajectory/orbit/model/sgp4.pyi +333 -0
- ostk/astrodynamics/trajectory/state/__init__.pyi +406 -0
- ostk/astrodynamics/trajectory/state/coordinate_subset.pyi +223 -0
- ostk/astrodynamics/viewer.py +32 -0
- ostk/astrodynamics/libopen-space-toolkit-astrodynamics.so.13 +0 -0
- {open_space_toolkit_astrodynamics-13.1.0.dist-info → open_space_toolkit_astrodynamics-14.0.0.dist-info}/top_level.txt +0 -0
- {open_space_toolkit_astrodynamics-13.1.0.dist-info → open_space_toolkit_astrodynamics-14.0.0.dist-info}/zip-safe +0 -0
@@ -0,0 +1,58 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
from datetime import datetime
|
3
|
+
from datetime import timezone
|
4
|
+
from ostk.physics.time import Instant
|
5
|
+
from ostk.physics.time import Interval
|
6
|
+
from ostk.physics.time import Scale
|
7
|
+
import re as re
|
8
|
+
import typing
|
9
|
+
__all__ = ['Instant', 'Interval', 'Scale', 'coerce_to_datetime', 'coerce_to_instant', 'coerce_to_interval', 'coerce_to_iso', 'datetime', 're', 'timezone']
|
10
|
+
def coerce_to_datetime(value: Instant | datetime | str) -> datetime:
|
11
|
+
"""
|
12
|
+
|
13
|
+
Return datetime from value.
|
14
|
+
|
15
|
+
Args:
|
16
|
+
value (Instant | datetime | str): A value to coerce.
|
17
|
+
|
18
|
+
Returns:
|
19
|
+
datetime: The coerced datetime.
|
20
|
+
|
21
|
+
"""
|
22
|
+
def coerce_to_instant(value: Instant | datetime | str) -> Instant:
|
23
|
+
"""
|
24
|
+
|
25
|
+
Return Instant from value.
|
26
|
+
|
27
|
+
Args:
|
28
|
+
value (Instant | datetime | str): A value to coerce.
|
29
|
+
|
30
|
+
Returns:
|
31
|
+
Instant: The coerced Instant.
|
32
|
+
|
33
|
+
"""
|
34
|
+
def coerce_to_interval(value: Interval | tuple[Instant, Instant] | tuple[datetime, datetime] | tuple[str, str] | str) -> Interval:
|
35
|
+
"""
|
36
|
+
|
37
|
+
Return Interval from value.
|
38
|
+
|
39
|
+
Args:
|
40
|
+
value (Interval | tuple[Instant, Instant] | tuple[datetime, datetime] | tuple[str, str]): A value to coerce.
|
41
|
+
|
42
|
+
Returns:
|
43
|
+
Interval: The coerced Interval.
|
44
|
+
|
45
|
+
"""
|
46
|
+
def coerce_to_iso(value: Instant | datetime | str, timespec: str = 'microseconds') -> str:
|
47
|
+
"""
|
48
|
+
|
49
|
+
Return an ISO string from value.
|
50
|
+
|
51
|
+
Args:
|
52
|
+
value (Instant | datetime | str): A value to coerce.
|
53
|
+
timespec (str): A time resolution. Defaults to "microseconds".
|
54
|
+
|
55
|
+
Returns:
|
56
|
+
str: The coerced ISO string.
|
57
|
+
|
58
|
+
"""
|
@@ -0,0 +1,22 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
import ostk.astrodynamics.trajectory
|
3
|
+
import ostk.physics.coordinate
|
4
|
+
import ostk.physics.unit
|
5
|
+
__all__ = ['compute_off_nadir_angles']
|
6
|
+
def compute_off_nadir_angles(state: ostk.astrodynamics.trajectory.State, target_position: ostk.physics.coordinate.Position) -> tuple[ostk.physics.unit.Angle, ostk.physics.unit.Angle, ostk.physics.unit.Angle]:
|
7
|
+
"""
|
8
|
+
Compute the along-track, cross-track and total off-nadir angle between the satellite and the target.
|
9
|
+
|
10
|
+
- The along-track angle is the angle between the nadir vector [Z] and the projection of the satellite->target vector
|
11
|
+
onto the plane defined by the satellite local horizontal (velocity vector in circular orbits) [X] and the nadir vector [Z].
|
12
|
+
- The cross-track angle is the angle between the nadir vector [Z] and the projection of the satellite->target vector
|
13
|
+
onto the plane defined by the negative orbital momentum vector [Y] and the nadir vector [Z].
|
14
|
+
- The total off-nadir angle is the angle between the nadir vector [Z] and the satellite->target vector.
|
15
|
+
|
16
|
+
Args:
|
17
|
+
state (State): The state of the satellite.
|
18
|
+
target_position (Position): The position of the target.
|
19
|
+
|
20
|
+
Returns:
|
21
|
+
tuple[Angle, Angle, Angle]: The along-track, cross-track and total off-nadir angle between the satellite and the target.
|
22
|
+
"""
|
@@ -0,0 +1,329 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
import numpy
|
3
|
+
import ostk.astrodynamics
|
4
|
+
import ostk.astrodynamics.flight.system
|
5
|
+
import ostk.astrodynamics.trajectory.state
|
6
|
+
import ostk.core.type
|
7
|
+
import ostk.mathematics.curve_fitting
|
8
|
+
import ostk.physics.coordinate
|
9
|
+
import ostk.physics.environment.object
|
10
|
+
import ostk.physics.time
|
11
|
+
__all__ = ['AtmosphericDrag', 'CentralBodyGravity', 'PositionDerivative', 'Tabulated', 'ThirdBodyGravity', 'Thruster']
|
12
|
+
class AtmosphericDrag(ostk.astrodynamics.Dynamics):
|
13
|
+
"""
|
14
|
+
|
15
|
+
The atmospheric drag dynamics.
|
16
|
+
|
17
|
+
|
18
|
+
"""
|
19
|
+
@staticmethod
|
20
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
21
|
+
...
|
22
|
+
def __init__(self, celestial: ostk.physics.environment.object.Celestial) -> None:
|
23
|
+
"""
|
24
|
+
Constructor.
|
25
|
+
|
26
|
+
Args:
|
27
|
+
celestial (Celestial): The celestial body.
|
28
|
+
"""
|
29
|
+
def __repr__(self) -> str:
|
30
|
+
...
|
31
|
+
def __str__(self) -> str:
|
32
|
+
...
|
33
|
+
def compute_contribution(self, instant: ostk.physics.time.Instant, x: numpy.ndarray[numpy.float64[m, 1]], frame: ostk.physics.coordinate.Frame) -> numpy.ndarray[numpy.float64[m, 1]]:
|
34
|
+
"""
|
35
|
+
Compute the contribution of the atmospheric drag to the state vector.
|
36
|
+
|
37
|
+
Args:
|
38
|
+
instant (Instant): The instant of the state vector.
|
39
|
+
x (numpy.ndarray): The state vector.
|
40
|
+
frame (Frame): The reference frame.
|
41
|
+
|
42
|
+
Returns:
|
43
|
+
numpy.ndarray: The contribution of the atmospheric drag to the state vector.
|
44
|
+
"""
|
45
|
+
def get_celestial(self) -> ostk.physics.environment.object.Celestial:
|
46
|
+
"""
|
47
|
+
Get the celestial body.
|
48
|
+
|
49
|
+
Returns:
|
50
|
+
Celestial: The celestial body.
|
51
|
+
"""
|
52
|
+
def is_defined(self) -> bool:
|
53
|
+
"""
|
54
|
+
Check if the atmospheric drag is defined.
|
55
|
+
|
56
|
+
Returns:
|
57
|
+
bool: True if the atmospheric drag is defined, False otherwise.
|
58
|
+
"""
|
59
|
+
class CentralBodyGravity(ostk.astrodynamics.Dynamics):
|
60
|
+
"""
|
61
|
+
|
62
|
+
The central-body gravity model.
|
63
|
+
|
64
|
+
|
65
|
+
"""
|
66
|
+
@staticmethod
|
67
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
68
|
+
...
|
69
|
+
def __init__(self, celestial: ostk.physics.environment.object.Celestial) -> None:
|
70
|
+
"""
|
71
|
+
Constructor.
|
72
|
+
|
73
|
+
Args:
|
74
|
+
celestial (Celestial): The central body.
|
75
|
+
"""
|
76
|
+
def __repr__(self) -> str:
|
77
|
+
...
|
78
|
+
def __str__(self) -> str:
|
79
|
+
...
|
80
|
+
def compute_contribution(self, instant: ostk.physics.time.Instant, x: numpy.ndarray[numpy.float64[m, 1]], frame: ostk.physics.coordinate.Frame) -> numpy.ndarray[numpy.float64[m, 1]]:
|
81
|
+
"""
|
82
|
+
Compute the contribution of the central-body gravity to the state vector.
|
83
|
+
|
84
|
+
Args:
|
85
|
+
instant (Instant): The instant of the state vector.
|
86
|
+
x (numpy.ndarray): The state vector.
|
87
|
+
frame (Frame): The reference frame.
|
88
|
+
|
89
|
+
Returns:
|
90
|
+
numpy.ndarray: The contribution of the central-body gravity to the state vector.
|
91
|
+
"""
|
92
|
+
def get_celestial(self) -> ostk.physics.environment.object.Celestial:
|
93
|
+
"""
|
94
|
+
Get the central body.
|
95
|
+
|
96
|
+
Returns:
|
97
|
+
Celestial: The central body.
|
98
|
+
"""
|
99
|
+
def is_defined(self) -> bool:
|
100
|
+
"""
|
101
|
+
Check if the central-body gravity is defined.
|
102
|
+
|
103
|
+
Returns:
|
104
|
+
bool: True if the central-body gravity is defined, False otherwise.
|
105
|
+
"""
|
106
|
+
class PositionDerivative(ostk.astrodynamics.Dynamics):
|
107
|
+
"""
|
108
|
+
|
109
|
+
The position derivative model.
|
110
|
+
|
111
|
+
|
112
|
+
"""
|
113
|
+
@staticmethod
|
114
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
115
|
+
...
|
116
|
+
def __init__(self) -> None:
|
117
|
+
"""
|
118
|
+
Constructor.
|
119
|
+
"""
|
120
|
+
def __repr__(self) -> str:
|
121
|
+
...
|
122
|
+
def __str__(self) -> str:
|
123
|
+
...
|
124
|
+
def compute_contribution(self, instant: ostk.physics.time.Instant, x: numpy.ndarray[numpy.float64[m, 1]], frame: ostk.physics.coordinate.Frame) -> numpy.ndarray[numpy.float64[m, 1]]:
|
125
|
+
"""
|
126
|
+
Compute the contribution of the position derivative to the state vector.
|
127
|
+
|
128
|
+
Args:
|
129
|
+
instant (Instant): The instant of the state vector.
|
130
|
+
x (numpy.ndarray): The state vector.
|
131
|
+
frame (Frame): The reference frame.
|
132
|
+
|
133
|
+
Returns:
|
134
|
+
numpy.ndarray: The contribution of the position derivative to the state vector.
|
135
|
+
"""
|
136
|
+
def is_defined(self) -> bool:
|
137
|
+
"""
|
138
|
+
Check if the position derivative is defined.
|
139
|
+
|
140
|
+
Returns:
|
141
|
+
bool: True if the position derivative is defined, False otherwise.
|
142
|
+
"""
|
143
|
+
class Tabulated(ostk.astrodynamics.Dynamics):
|
144
|
+
"""
|
145
|
+
|
146
|
+
The tabulated dynamics.
|
147
|
+
|
148
|
+
|
149
|
+
"""
|
150
|
+
@staticmethod
|
151
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
152
|
+
...
|
153
|
+
def __init__(self, instants: list[ostk.physics.time.Instant], contribution_profile: numpy.ndarray[numpy.float64[m, n]], coordinate_subsets: list[ostk.astrodynamics.trajectory.state.CoordinateSubset], frame: ostk.physics.coordinate.Frame, interpolation_type: ostk.mathematics.curve_fitting.Interpolator.Type = ...) -> None:
|
154
|
+
"""
|
155
|
+
Constructor.
|
156
|
+
|
157
|
+
Args:
|
158
|
+
instants (list[Instant]): An array of instants.
|
159
|
+
contribution_profile (numpy.ndarray): A contribution profile.
|
160
|
+
coordinate_subsets (list[CoordinateSubset]): An array of coordinate subsets related to the contribution profile.
|
161
|
+
frame (Frame): A frame.
|
162
|
+
interpolation_type (Interpolator.Type, optional): The interpolation type. Defaults to Barycentric Rational.
|
163
|
+
"""
|
164
|
+
def __repr__(self) -> str:
|
165
|
+
...
|
166
|
+
def __str__(self) -> str:
|
167
|
+
...
|
168
|
+
def access_contribution_profile(self) -> numpy.ndarray[numpy.float64[m, n]]:
|
169
|
+
"""
|
170
|
+
Access the contribution profile.
|
171
|
+
|
172
|
+
Returns:
|
173
|
+
np.ndarray: The contribution profile.
|
174
|
+
"""
|
175
|
+
def access_frame(self) -> ostk.physics.coordinate.Frame:
|
176
|
+
"""
|
177
|
+
Access the reference frame.
|
178
|
+
|
179
|
+
Returns:
|
180
|
+
Frame: The reference frame.
|
181
|
+
"""
|
182
|
+
def access_instants(self) -> list[ostk.physics.time.Instant]:
|
183
|
+
"""
|
184
|
+
Access the contribution instants.
|
185
|
+
|
186
|
+
Returns:
|
187
|
+
list[Instant]: The contribution instants.
|
188
|
+
"""
|
189
|
+
def compute_contribution(self, instant: ostk.physics.time.Instant, x: numpy.ndarray[numpy.float64[m, 1]], frame: ostk.physics.coordinate.Frame) -> numpy.ndarray[numpy.float64[m, 1]]:
|
190
|
+
"""
|
191
|
+
Compute the contribution from the contribution profile to the state vector.
|
192
|
+
|
193
|
+
Args:
|
194
|
+
instant (Instant): The instant of the state vector.
|
195
|
+
x (numpy.ndarray): The state vector.
|
196
|
+
frame (Frame): The reference frame.
|
197
|
+
|
198
|
+
Returns:
|
199
|
+
numpy.ndarray: The contribution from the contribution profile to the state vector.
|
200
|
+
"""
|
201
|
+
def get_contribution_profile_from_coordinate_subsets(self, coordinate_subsets: list[ostk.astrodynamics.trajectory.state.CoordinateSubset]) -> numpy.ndarray[numpy.float64[m, n]]:
|
202
|
+
"""
|
203
|
+
Get the contribution profile corresponding to a subset of coordinates.
|
204
|
+
|
205
|
+
Args:
|
206
|
+
coordinate_subsets (list[CoordinateSubset]): The coordinate subsets.
|
207
|
+
|
208
|
+
Returns:
|
209
|
+
numpy.ndarray: The contribution profile.
|
210
|
+
"""
|
211
|
+
def get_interpolation_type(self) -> ostk.mathematics.curve_fitting.Interpolator.Type:
|
212
|
+
"""
|
213
|
+
Get the interpolation type used for each row of the contribution profile (they are all the same).
|
214
|
+
|
215
|
+
Returns:
|
216
|
+
Interpolator.Type: The interpolation type.
|
217
|
+
"""
|
218
|
+
def is_defined(self) -> bool:
|
219
|
+
"""
|
220
|
+
Check if the tabulated dynamics is defined.
|
221
|
+
|
222
|
+
Returns:
|
223
|
+
bool: True if the tabulated dynamics is defined, False otherwise.
|
224
|
+
"""
|
225
|
+
class ThirdBodyGravity(ostk.astrodynamics.Dynamics):
|
226
|
+
"""
|
227
|
+
|
228
|
+
The third body gravity model.
|
229
|
+
|
230
|
+
|
231
|
+
"""
|
232
|
+
@staticmethod
|
233
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
234
|
+
...
|
235
|
+
def __init__(self, celestial: ostk.physics.environment.object.Celestial) -> None:
|
236
|
+
"""
|
237
|
+
Constructor.
|
238
|
+
|
239
|
+
Args:
|
240
|
+
celestial (Celestial): The celestial body.
|
241
|
+
"""
|
242
|
+
def __repr__(self) -> str:
|
243
|
+
...
|
244
|
+
def __str__(self) -> str:
|
245
|
+
...
|
246
|
+
def compute_contribution(self, instant: ostk.physics.time.Instant, x: numpy.ndarray[numpy.float64[m, 1]], frame: ostk.physics.coordinate.Frame) -> numpy.ndarray[numpy.float64[m, 1]]:
|
247
|
+
"""
|
248
|
+
Compute the contribution of the third-body gravity to the state vector.
|
249
|
+
|
250
|
+
Args:
|
251
|
+
instant (Instant): The instant of the state vector.
|
252
|
+
x (numpy.ndarray): The state vector.
|
253
|
+
frame (Frame): The reference frame.
|
254
|
+
|
255
|
+
Returns:
|
256
|
+
numpy.ndarray: The contribution of the third-body gravity to the state vector.
|
257
|
+
"""
|
258
|
+
def get_celestial(self) -> ostk.physics.environment.object.Celestial:
|
259
|
+
"""
|
260
|
+
Get the celestial body.
|
261
|
+
|
262
|
+
Returns:
|
263
|
+
Celestial: The celestial body.
|
264
|
+
"""
|
265
|
+
def is_defined(self) -> bool:
|
266
|
+
"""
|
267
|
+
Check if the third-body gravity is defined.
|
268
|
+
|
269
|
+
Returns:
|
270
|
+
bool: True if the third-body gravity is defined, False otherwise.
|
271
|
+
"""
|
272
|
+
class Thruster(ostk.astrodynamics.Dynamics):
|
273
|
+
"""
|
274
|
+
|
275
|
+
Abstract Thruster Class.
|
276
|
+
|
277
|
+
Base class to derive other thruster classes from. Cannot be instantiated.
|
278
|
+
|
279
|
+
|
280
|
+
"""
|
281
|
+
@staticmethod
|
282
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
283
|
+
...
|
284
|
+
def __init__(self, satellite_system: ostk.astrodynamics.flight.system.SatelliteSystem, guidance_law: ..., name: ostk.core.type.String = ...) -> None:
|
285
|
+
"""
|
286
|
+
Constructor.
|
287
|
+
|
288
|
+
Args:
|
289
|
+
satellite_system (SatelliteSystem): The satellite system.
|
290
|
+
guidance_law (GuidanceLaw): The guidance law used to compute the acceleration vector.
|
291
|
+
name (str): The name of the thruster.
|
292
|
+
"""
|
293
|
+
def __repr__(self) -> str:
|
294
|
+
...
|
295
|
+
def __str__(self) -> str:
|
296
|
+
...
|
297
|
+
def compute_contribution(self, instant: ostk.physics.time.Instant, state_vector: numpy.ndarray[numpy.float64[m, 1]], frame: ostk.physics.coordinate.Frame) -> numpy.ndarray[numpy.float64[m, 1]]:
|
298
|
+
"""
|
299
|
+
Compute the contribution of the thruster to the state vector.
|
300
|
+
|
301
|
+
Args:
|
302
|
+
instant (Instant): The instant of the state vector.
|
303
|
+
state_vector (numpy.ndarray): The state vector.
|
304
|
+
frame (Frame): The reference frame.
|
305
|
+
|
306
|
+
Returns:
|
307
|
+
numpy.ndarray: The contribution of the thruster to the state vector.
|
308
|
+
"""
|
309
|
+
def get_guidance_law(self) -> ...:
|
310
|
+
"""
|
311
|
+
Get the guidance law of the thruster.
|
312
|
+
|
313
|
+
Returns:
|
314
|
+
GuidanceLaw: The guidance law.
|
315
|
+
"""
|
316
|
+
def get_satellite_system(self) -> ostk.astrodynamics.flight.system.SatelliteSystem:
|
317
|
+
"""
|
318
|
+
Get the satellite system of the thruster.
|
319
|
+
|
320
|
+
Returns:
|
321
|
+
SatelliteSystem: The satellite system.
|
322
|
+
"""
|
323
|
+
def is_defined(self) -> bool:
|
324
|
+
"""
|
325
|
+
Check if the thruster is defined.
|
326
|
+
|
327
|
+
Returns:
|
328
|
+
bool: True if the thruster is defined, False otherwise.
|
329
|
+
"""
|