open-space-toolkit-astrodynamics 13.1.0__py39-none-manylinux2014_x86_64.whl → 15.0.0__py39-none-manylinux2014_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. {open_space_toolkit_astrodynamics-13.1.0.dist-info → open_space_toolkit_astrodynamics-15.0.0.dist-info}/METADATA +4 -4
  2. {open_space_toolkit_astrodynamics-13.1.0.dist-info → open_space_toolkit_astrodynamics-15.0.0.dist-info}/RECORD +59 -28
  3. {open_space_toolkit_astrodynamics-13.1.0.dist-info → open_space_toolkit_astrodynamics-15.0.0.dist-info}/WHEEL +1 -1
  4. ostk/astrodynamics/OpenSpaceToolkitAstrodynamicsPy.cpython-39-x86_64-linux-gnu.so +0 -0
  5. ostk/astrodynamics/__init__.pyi +785 -0
  6. ostk/astrodynamics/access.pyi +588 -0
  7. ostk/astrodynamics/conjunction/__init__.pyi +3 -0
  8. ostk/astrodynamics/conjunction/message/__init__.pyi +3 -0
  9. ostk/astrodynamics/conjunction/message/ccsds.pyi +723 -0
  10. ostk/astrodynamics/converters.pyi +58 -0
  11. ostk/astrodynamics/data/__init__.pyi +3 -0
  12. ostk/astrodynamics/data/provider.pyi +22 -0
  13. ostk/astrodynamics/dynamics.pyi +329 -0
  14. ostk/astrodynamics/event_condition.pyi +580 -0
  15. ostk/astrodynamics/flight/__init__.pyi +547 -0
  16. ostk/astrodynamics/flight/profile/__init__.pyi +102 -0
  17. ostk/astrodynamics/flight/profile/model.pyi +176 -0
  18. ostk/astrodynamics/flight/system.pyi +277 -0
  19. ostk/astrodynamics/guidance_law.pyi +282 -0
  20. ostk/astrodynamics/{libopen-space-toolkit-astrodynamics.so.13 → libopen-space-toolkit-astrodynamics.so.15} +0 -0
  21. ostk/astrodynamics/pytrajectory/__init__.pyi +3 -0
  22. ostk/astrodynamics/pytrajectory/pystate.py +2 -4
  23. ostk/astrodynamics/pytrajectory/pystate.pyi +65 -0
  24. ostk/astrodynamics/solver.pyi +232 -0
  25. ostk/astrodynamics/test/access/test_generator.py +130 -59
  26. ostk/astrodynamics/test/access/test_visibility_criterion.py +198 -0
  27. ostk/astrodynamics/test/data/provider/test_off_nadir.py +58 -0
  28. ostk/astrodynamics/test/dynamics/test_dynamics.py +1 -1
  29. ostk/astrodynamics/test/flight/system/test_propulsion_system.py +2 -11
  30. ostk/astrodynamics/test/flight/system/test_satellite_system.py +6 -14
  31. ostk/astrodynamics/test/flight/test_maneuver.py +49 -64
  32. ostk/astrodynamics/test/flight/test_profile.py +4 -2
  33. ostk/astrodynamics/test/flight/test_system.py +5 -15
  34. ostk/astrodynamics/test/solvers/test_finite_difference_solver.py +31 -16
  35. ostk/astrodynamics/test/solvers/test_temporal_condition_solver.py +9 -1
  36. ostk/astrodynamics/test/test_display.py +11 -5
  37. ostk/astrodynamics/test/test_event_condition.py +4 -2
  38. ostk/astrodynamics/test/test_utilities.py +1 -1
  39. ostk/astrodynamics/test/test_viewer.py +70 -1
  40. ostk/astrodynamics/test/trajectory/state/coordinate_subset/test_cartesian_acceleration.py +136 -0
  41. ostk/astrodynamics/test/trajectory/state/test_coordinate_subset.py +9 -0
  42. ostk/astrodynamics/test/trajectory/state/test_numerical_solver.py +4 -2
  43. ostk/astrodynamics/test/trajectory/test_local_orbital_frame_factory.py +25 -15
  44. ostk/astrodynamics/test/trajectory/test_propagator.py +21 -27
  45. ostk/astrodynamics/test/trajectory/test_segment.py +0 -1
  46. ostk/astrodynamics/test/trajectory/test_state_builder.py +1 -0
  47. ostk/astrodynamics/trajectory/__init__.pyi +1802 -0
  48. ostk/astrodynamics/trajectory/orbit/__init__.pyi +361 -0
  49. ostk/astrodynamics/trajectory/orbit/message/__init__.pyi +3 -0
  50. ostk/astrodynamics/trajectory/orbit/message/spacex.pyi +273 -0
  51. ostk/astrodynamics/trajectory/orbit/model/__init__.pyi +517 -0
  52. ostk/astrodynamics/trajectory/orbit/model/brouwerLyddaneMean.pyi +127 -0
  53. ostk/astrodynamics/trajectory/orbit/model/kepler.pyi +581 -0
  54. ostk/astrodynamics/trajectory/orbit/model/sgp4.pyi +333 -0
  55. ostk/astrodynamics/trajectory/state/__init__.pyi +406 -0
  56. ostk/astrodynamics/trajectory/state/coordinate_subset.pyi +223 -0
  57. ostk/astrodynamics/viewer.py +32 -0
  58. {open_space_toolkit_astrodynamics-13.1.0.dist-info → open_space_toolkit_astrodynamics-15.0.0.dist-info}/top_level.txt +0 -0
  59. {open_space_toolkit_astrodynamics-13.1.0.dist-info → open_space_toolkit_astrodynamics-15.0.0.dist-info}/zip-safe +0 -0
@@ -0,0 +1,547 @@
1
+ from __future__ import annotations
2
+ import numpy
3
+ import ostk.astrodynamics
4
+ import ostk.astrodynamics.trajectory
5
+ import ostk.core.type
6
+ import ostk.mathematics.curve_fitting
7
+ import ostk.mathematics.geometry.d3.object
8
+ import ostk.mathematics.geometry.d3.transformation.rotation
9
+ import ostk.physics.coordinate
10
+ import ostk.physics.time
11
+ import ostk.physics.unit
12
+ import typing
13
+ from . import profile
14
+ from . import system
15
+ __all__ = ['Maneuver', 'Profile', 'System', 'profile', 'system']
16
+ class Maneuver:
17
+ """
18
+
19
+ Spacecraft Maneuver class.
20
+ Store an acceleration and mass flow rate profile of a spacecraft maneuver.
21
+
22
+ """
23
+ __hash__: typing.ClassVar[None] = None
24
+ @staticmethod
25
+ def _pybind11_conduit_v1_(*args, **kwargs):
26
+ ...
27
+ @staticmethod
28
+ def constant_mass_flow_rate_profile(states: list[ostk.astrodynamics.trajectory.State], mass_flow_rate: ostk.core.type.Real) -> Maneuver:
29
+ """
30
+ Create a maneuver from a constant mass flow rate profile.
31
+
32
+ Args:
33
+ instants (list[Instant]): An array of instants, must be sorted.
34
+ acceleration_profile (list[numpy.ndarray]): An acceleration profile of the maneuver, one numpy.ndarray per instant.
35
+ frame (Frame): A frame in which the acceleration profile is defined.
36
+ mass_flow_rate (float): The constant mass flow rate (negative number expected).
37
+
38
+ Returns:
39
+ Maneuver: The created maneuver.
40
+ """
41
+ def __eq__(self, arg0: Maneuver) -> bool:
42
+ ...
43
+ def __init__(self, states: list[ostk.astrodynamics.trajectory.State]) -> None:
44
+ """
45
+ Constructor.
46
+
47
+ Args:
48
+ states (list[State]): An list of states, must be sorted, must include the CartesianPosition, CartesianVelocity, CartesianAcceleration and MassFlowRate subsets.
49
+ """
50
+ def __ne__(self, arg0: Maneuver) -> bool:
51
+ ...
52
+ def __repr__(self) -> str:
53
+ ...
54
+ def __str__(self) -> str:
55
+ ...
56
+ def calculate_average_specific_impulse(self, initial_spacecraft_mass: ostk.physics.unit.Mass) -> ostk.core.type.Real:
57
+ """
58
+ Calculate the average specific impulse of the maneuver.
59
+
60
+ Args:
61
+ initial_spacecraft_mass (Mass): The initial mass of the spacecraft.
62
+
63
+ Returns:
64
+ float: The average specific impulse (s).
65
+ """
66
+ def calculate_average_thrust(self, initial_spacecraft_mass: ostk.physics.unit.Mass) -> ostk.core.type.Real:
67
+ """
68
+ Calculate the average thrust of the maneuver.
69
+
70
+ Args:
71
+ initial_spacecraft_mass (Mass): The initial mass of the spacecraft.
72
+
73
+ Returns:
74
+ float: The average thrust (N).
75
+ """
76
+ def calculate_delta_mass(self) -> ostk.physics.unit.Mass:
77
+ """
78
+ Calculate the delta mass of the maneuver.
79
+
80
+ Returns:
81
+ Mass: The delta mass (always positive) (kg).
82
+ """
83
+ def calculate_delta_v(self) -> ostk.core.type.Real:
84
+ """
85
+ Calculate the delta-v of the maneuver.
86
+
87
+ Returns:
88
+ float: The delta-v value (m/s).
89
+ """
90
+ def get_interval(self) -> ostk.physics.time.Interval:
91
+ """
92
+ Get the interval of the maneuver.
93
+
94
+ Returns:
95
+ Interval: The interval.
96
+ """
97
+ def get_states(self) -> list[ostk.astrodynamics.trajectory.State]:
98
+ """
99
+ Get the states.
100
+
101
+ Returns:
102
+ list[State]: The states.
103
+ """
104
+ def is_defined(self) -> bool:
105
+ """
106
+ Check if the maneuver is defined.
107
+
108
+ Returns:
109
+ bool: True if the maneuver is defined, False otherwise. (Always returns true).
110
+ """
111
+ def to_tabulated_dynamics(self, frame: ostk.physics.coordinate.Frame = ..., interpolation_type: ostk.mathematics.curve_fitting.Interpolator.Type = ...) -> ...:
112
+ """
113
+ Convert the maneuver to tabulated dynamics.
114
+
115
+ Args:
116
+ frame (Frame, optional): The frame in which the acceleration profile is defined. Defaults to the default acceleration frame.
117
+ interpolation_type (Interpolator.Type, optional): The interpolation type to use. Defaults to the default interpolation type.
118
+
119
+ Returns:
120
+ Tabulated: The tabulated dynamics.
121
+ """
122
+ class Profile:
123
+ """
124
+
125
+ Spacecraft Flight Profile.
126
+
127
+
128
+ """
129
+ class Axis:
130
+ """
131
+
132
+ The axis of the profile.
133
+
134
+
135
+ Members:
136
+
137
+ X : X axis
138
+
139
+ Y : Y axis
140
+
141
+ Z : Z axis
142
+ """
143
+ X: typing.ClassVar[Profile.Axis] # value = <Axis.X: 0>
144
+ Y: typing.ClassVar[Profile.Axis] # value = <Axis.Y: 1>
145
+ Z: typing.ClassVar[Profile.Axis] # value = <Axis.Z: 2>
146
+ __members__: typing.ClassVar[dict[str, Profile.Axis]] # value = {'X': <Axis.X: 0>, 'Y': <Axis.Y: 1>, 'Z': <Axis.Z: 2>}
147
+ @staticmethod
148
+ def _pybind11_conduit_v1_(*args, **kwargs):
149
+ ...
150
+ def __eq__(self, other: typing.Any) -> bool:
151
+ ...
152
+ def __getstate__(self) -> int:
153
+ ...
154
+ def __hash__(self) -> int:
155
+ ...
156
+ def __index__(self) -> int:
157
+ ...
158
+ def __init__(self, value: int) -> None:
159
+ ...
160
+ def __int__(self) -> int:
161
+ ...
162
+ def __ne__(self, other: typing.Any) -> bool:
163
+ ...
164
+ def __repr__(self) -> str:
165
+ ...
166
+ def __setstate__(self, state: int) -> None:
167
+ ...
168
+ def __str__(self) -> str:
169
+ ...
170
+ @property
171
+ def name(self) -> str:
172
+ ...
173
+ @property
174
+ def value(self) -> int:
175
+ ...
176
+ class CustomTarget(Profile.Target):
177
+ """
178
+
179
+ The custom target.
180
+
181
+
182
+ """
183
+ @staticmethod
184
+ def _pybind11_conduit_v1_(*args, **kwargs):
185
+ ...
186
+ def __init__(self, orientation_generator: typing.Callable[[ostk.astrodynamics.trajectory.State], numpy.ndarray[numpy.float64[3, 1]]], axis: Profile.Axis, anti_direction: bool = False) -> None:
187
+ """
188
+ Constructor.
189
+
190
+ Args:
191
+ orientation_generator (Callable[np.ndarray, State]]): The orientation generator, accepts a state and returns a size 3 array of directions.
192
+ axis (Profile.Axis): The axis.
193
+ anti_direction (bool): True if the direction is flipped, False otherwise. Defaults to False.
194
+ """
195
+ @property
196
+ def orientation_generator(self) -> typing.Callable[[ostk.astrodynamics.trajectory.State], numpy.ndarray[numpy.float64[3, 1]]]:
197
+ """
198
+ The orientation generator of the target
199
+ """
200
+ class OrientationProfileTarget(Profile.Target):
201
+ """
202
+
203
+ The alignment profile target.
204
+
205
+
206
+ """
207
+ @staticmethod
208
+ def _pybind11_conduit_v1_(*args, **kwargs):
209
+ ...
210
+ def __init__(self, orientation_profile: list[tuple[ostk.physics.time.Instant, numpy.ndarray[numpy.float64[3, 1]]]], axis: Profile.Axis, anti_direction: bool = False) -> None:
211
+ """
212
+ Constructor.
213
+
214
+ Args:
215
+ orientation_profile (list[Tuple[Instant, Vector3d]]): The orientation profile.
216
+ axis (Profile.Axis): The axis.
217
+ anti_direction (bool): True if the direction is flipped, False otherwise. Defaults to False.
218
+ """
219
+ @property
220
+ def orientation_profile(self) -> list[tuple[ostk.physics.time.Instant, numpy.ndarray[numpy.float64[3, 1]]]]:
221
+ """
222
+ The orientation profile of the target
223
+ """
224
+ class Target:
225
+ """
226
+
227
+ The target of the profile.
228
+
229
+
230
+ """
231
+ @staticmethod
232
+ def _pybind11_conduit_v1_(*args, **kwargs):
233
+ ...
234
+ def __init__(self, type: Profile.TargetType, axis: Profile.Axis, anti_direction: bool = False) -> None:
235
+ """
236
+ Constructor.
237
+
238
+ Args:
239
+ type (Profile.TargetType): The target type.
240
+ axis (Profile.Axis): The axis.
241
+ anti_direction (bool): True if the direction is flipped, False otherwise. Defaults to False.
242
+ """
243
+ @property
244
+ def anti_direction(self) -> bool:
245
+ """
246
+ True if the direction is flipped, False otherwise.
247
+ """
248
+ @property
249
+ def axis(self) -> Profile.Axis:
250
+ """
251
+ The axis of the target.
252
+ """
253
+ @property
254
+ def type(self) -> Profile.TargetType:
255
+ """
256
+ The type of the target.
257
+ """
258
+ class TargetType:
259
+ """
260
+
261
+ The target type of the profile.
262
+
263
+
264
+ Members:
265
+
266
+ GeocentricNadir : Geocentric nadir
267
+
268
+ GeodeticNadir : Geodetic nadir
269
+
270
+ Trajectory : Trajectory
271
+
272
+ Sun : Sun
273
+
274
+ Moon : Moon
275
+
276
+ VelocityECI : Velocity in ECI
277
+
278
+ VelocityECEF : Velocity in ECEF
279
+
280
+ OrbitalMomentum : Orbital momentum
281
+
282
+ OrientationProfile : Orientation profile
283
+ """
284
+ GeocentricNadir: typing.ClassVar[Profile.TargetType] # value = <TargetType.GeocentricNadir: 0>
285
+ GeodeticNadir: typing.ClassVar[Profile.TargetType] # value = <TargetType.GeodeticNadir: 1>
286
+ Moon: typing.ClassVar[Profile.TargetType] # value = <TargetType.Moon: 4>
287
+ OrbitalMomentum: typing.ClassVar[Profile.TargetType] # value = <TargetType.OrbitalMomentum: 7>
288
+ OrientationProfile: typing.ClassVar[Profile.TargetType] # value = <TargetType.OrientationProfile: 8>
289
+ Sun: typing.ClassVar[Profile.TargetType] # value = <TargetType.Sun: 3>
290
+ Trajectory: typing.ClassVar[Profile.TargetType] # value = <TargetType.Trajectory: 2>
291
+ VelocityECEF: typing.ClassVar[Profile.TargetType] # value = <TargetType.VelocityECEF: 6>
292
+ VelocityECI: typing.ClassVar[Profile.TargetType] # value = <TargetType.VelocityECI: 5>
293
+ __members__: typing.ClassVar[dict[str, Profile.TargetType]] # value = {'GeocentricNadir': <TargetType.GeocentricNadir: 0>, 'GeodeticNadir': <TargetType.GeodeticNadir: 1>, 'Trajectory': <TargetType.Trajectory: 2>, 'Sun': <TargetType.Sun: 3>, 'Moon': <TargetType.Moon: 4>, 'VelocityECI': <TargetType.VelocityECI: 5>, 'VelocityECEF': <TargetType.VelocityECEF: 6>, 'OrbitalMomentum': <TargetType.OrbitalMomentum: 7>, 'OrientationProfile': <TargetType.OrientationProfile: 8>}
294
+ @staticmethod
295
+ def _pybind11_conduit_v1_(*args, **kwargs):
296
+ ...
297
+ def __eq__(self, other: typing.Any) -> bool:
298
+ ...
299
+ def __getstate__(self) -> int:
300
+ ...
301
+ def __hash__(self) -> int:
302
+ ...
303
+ def __index__(self) -> int:
304
+ ...
305
+ def __init__(self, value: int) -> None:
306
+ ...
307
+ def __int__(self) -> int:
308
+ ...
309
+ def __ne__(self, other: typing.Any) -> bool:
310
+ ...
311
+ def __repr__(self) -> str:
312
+ ...
313
+ def __setstate__(self, state: int) -> None:
314
+ ...
315
+ def __str__(self) -> str:
316
+ ...
317
+ @property
318
+ def name(self) -> str:
319
+ ...
320
+ @property
321
+ def value(self) -> int:
322
+ ...
323
+ class TrajectoryTarget(Profile.Target):
324
+ """
325
+
326
+ The trajectory target.
327
+
328
+
329
+ """
330
+ @staticmethod
331
+ def _pybind11_conduit_v1_(*args, **kwargs):
332
+ ...
333
+ def __init__(self, trajectory: ostk.astrodynamics.Trajectory, axis: Profile.Axis, anti_direction: bool = False) -> None:
334
+ """
335
+ Constructor.
336
+
337
+ Args:
338
+ trajectory (Trajectory): The trajectory, required only if the target type is `Trajectory`.
339
+ axis (Profile.Axis): The axis.
340
+ anti_direction (bool): True if the direction is flipped, False otherwise. Defaults to False.
341
+ """
342
+ @property
343
+ def trajectory(self) -> ostk.astrodynamics.Trajectory:
344
+ """
345
+ The trajectory of the target. Required only if the target type is `Trajectory`.
346
+ """
347
+ @staticmethod
348
+ def _pybind11_conduit_v1_(*args, **kwargs):
349
+ ...
350
+ @staticmethod
351
+ def align_and_constrain(alignment_target: Profile.Target, clocking_target: Profile.Target, angular_offset: ostk.physics.unit.Angle = ...) -> typing.Callable[[ostk.astrodynamics.trajectory.State], ostk.mathematics.geometry.d3.transformation.rotation.Quaternion]:
352
+ """
353
+ Generate a function that provides a quaternion that aligns to the `alignment_target` and constrains to the `clocking_target` for a given state.
354
+
355
+ Args:
356
+ alignment_target (Profile.Target | Profile.TrajectoryTarget | Profile.OrientationProfileTarget | Profile.CustomTarget): The alignment target.
357
+ clocking_target (Profile.Target | Profile.TrajectoryTarget | Profile.OrientationProfileTarget | Profile.CustomTarget): The clocking target.
358
+ angular_offset (Angle): The angular offset. Defaults to `Angle.Zero()`.
359
+
360
+ Returns:
361
+ callable[Quaternion, State]: The custom orientation.
362
+ """
363
+ @staticmethod
364
+ @typing.overload
365
+ def custom_pointing(orbit: ostk.astrodynamics.trajectory.Orbit, orientation_generator: typing.Callable[[ostk.astrodynamics.trajectory.State], ostk.mathematics.geometry.d3.transformation.rotation.Quaternion]) -> Profile:
366
+ """
367
+ Create a custom pointing profile.
368
+
369
+ Args:
370
+ orbit (Orbit): The orbit.
371
+ orientation_generator (callable[Quaternion, State]): The orientation generator. Typically used in conjunction with `align_and_constrain`.
372
+
373
+ Returns:
374
+ Profile: The custom pointing profile.
375
+ """
376
+ @staticmethod
377
+ @typing.overload
378
+ def custom_pointing(orbit: ostk.astrodynamics.trajectory.Orbit, alignment_target: Profile.Target, clocking_target: Profile.Target, angular_offset: ostk.physics.unit.Angle = ...) -> Profile:
379
+ """
380
+ Create a custom pointing profile.
381
+
382
+ Args:
383
+ orbit (Orbit): The orbit.
384
+ alignment_target (Profile.Target): The alignment target.
385
+ clocking_target (Profile.Target): The clocking target.
386
+ angular_offset (Angle): The angular offset. Defaults to `Angle.Zero()`.
387
+
388
+ Returns:
389
+ Profile: The custom pointing profile.
390
+ """
391
+ @staticmethod
392
+ def inertial_pointing(trajectory: ostk.astrodynamics.Trajectory, quaternion: ostk.mathematics.geometry.d3.transformation.rotation.Quaternion) -> Profile:
393
+ """
394
+ Create an inertial pointing profile.
395
+
396
+ Args:
397
+ trajectory (Trajectory): The trajectory.
398
+ quaternion (Quaternion): The quaternion.
399
+
400
+ Returns:
401
+ Profile: The inertial pointing profile.
402
+ """
403
+ @staticmethod
404
+ def local_orbital_frame_pointing(orbit: ostk.astrodynamics.trajectory.Orbit, orbital_frame_type: ostk.astrodynamics.trajectory.Orbit.FrameType) -> Profile:
405
+ """
406
+ Create a profile aligned with the provided local orbital frame type.
407
+
408
+ Args:
409
+ orbit (Orbit): The orbit.
410
+ orbital_frame_type (OrbitalFrameType): The type of the orbital frame.
411
+
412
+ Returns:
413
+ Profile: The profile aligned with the local orbital frame.
414
+ """
415
+ @staticmethod
416
+ def undefined() -> Profile:
417
+ """
418
+ Create an undefined profile.
419
+
420
+ Returns:
421
+ Profile: The undefined profile.
422
+ """
423
+ def __init__(self, model: typing.Any) -> None:
424
+ """
425
+ Constructor.
426
+
427
+ Args:
428
+ model (Model): The profile model.
429
+ """
430
+ def __repr__(self) -> str:
431
+ ...
432
+ def __str__(self) -> str:
433
+ ...
434
+ def access_model(self) -> ...:
435
+ """
436
+ Access the profile model.
437
+
438
+ Returns:
439
+ Model: The profile model.
440
+ """
441
+ def get_axes_at(self, instant: ostk.physics.time.Instant) -> ostk.physics.coordinate.Axes:
442
+ """
443
+ Get the axes of the profile at a given instant.
444
+
445
+ Args:
446
+ instant (Instant): The instant.
447
+
448
+ Returns:
449
+ Frame: The axes of the profile at the given instant.
450
+ """
451
+ def get_body_frame(self, frame_name: ostk.core.type.String) -> ostk.physics.coordinate.Frame:
452
+ """
453
+ Get the body frame of the profile.
454
+
455
+ Args:
456
+ frame_name (str): The name of the frame.
457
+
458
+ Returns:
459
+ Frame: The body frame of the profile.
460
+ """
461
+ def get_state_at(self, instant: ostk.physics.time.Instant) -> ostk.astrodynamics.trajectory.State:
462
+ """
463
+ Get the state of the profile at a given instant.
464
+
465
+ Args:
466
+ instant (Instant): The instant.
467
+
468
+ Returns:
469
+ State: The state of the profile at the given instant.
470
+ """
471
+ def get_states_at(self, instants: list[ostk.physics.time.Instant]) -> list[ostk.astrodynamics.trajectory.State]:
472
+ """
473
+ Get the states of the profile at given instants.
474
+
475
+ Args:
476
+ instants (list): The instants.
477
+
478
+ Returns:
479
+ list: The states of the profile at the given instants.
480
+ """
481
+ def is_defined(self) -> bool:
482
+ """
483
+ Check if the profile is defined.
484
+
485
+ Returns:
486
+ bool: True if the profile is defined, False otherwise.
487
+ """
488
+ class System:
489
+ """
490
+
491
+ A flight system.
492
+
493
+ Provides the interface for flight systems.
494
+
495
+ .. warning:: This class is an abstract class and cannot be instantiated.
496
+
497
+
498
+ """
499
+ __hash__: typing.ClassVar[None] = None
500
+ @staticmethod
501
+ def _pybind11_conduit_v1_(*args, **kwargs):
502
+ ...
503
+ @staticmethod
504
+ def undefined() -> System:
505
+ """
506
+ Create an undefined system.
507
+
508
+ Returns:
509
+ System: The undefined system.
510
+ """
511
+ def __eq__(self, arg0: System) -> bool:
512
+ ...
513
+ def __init__(self, mass: ostk.physics.unit.Mass, geometry: ostk.mathematics.geometry.d3.object.Composite) -> None:
514
+ """
515
+ Constructor.
516
+
517
+ Args:
518
+ mass (Mass): The mass of the system.
519
+ geometry (Composite): The geometry of the system.
520
+ """
521
+ def __ne__(self, arg0: System) -> bool:
522
+ ...
523
+ def __repr__(self) -> str:
524
+ ...
525
+ def __str__(self) -> str:
526
+ ...
527
+ def get_geometry(self) -> ostk.mathematics.geometry.d3.object.Composite:
528
+ """
529
+ Get the geometry of the system.
530
+
531
+ Returns:
532
+ Composite: The geometry of the system.
533
+ """
534
+ def get_mass(self) -> ostk.physics.unit.Mass:
535
+ """
536
+ Get the mass of the system.
537
+
538
+ Returns:
539
+ Mass: The mass of the system.
540
+ """
541
+ def is_defined(self) -> bool:
542
+ """
543
+ Check if the system is defined.
544
+
545
+ Returns:
546
+ bool: True if the system is defined, False otherwise.
547
+ """
@@ -0,0 +1,102 @@
1
+ from __future__ import annotations
2
+ import ostk.astrodynamics.trajectory
3
+ import ostk.core.type
4
+ import ostk.physics.coordinate
5
+ import ostk.physics.time
6
+ import typing
7
+ from . import model
8
+ __all__ = ['Model', 'model']
9
+ class Model:
10
+ """
11
+
12
+ A flight profile model.
13
+
14
+
15
+ """
16
+ __hash__: typing.ClassVar[None] = None
17
+ @staticmethod
18
+ def _pybind11_conduit_v1_(*args, **kwargs):
19
+ ...
20
+ def __eq__(self, arg0: Model) -> bool:
21
+ ...
22
+ def __ne__(self, arg0: Model) -> bool:
23
+ ...
24
+ def __repr__(self) -> str:
25
+ ...
26
+ def __str__(self) -> str:
27
+ ...
28
+ def as_tabulated(self) -> ...:
29
+ """
30
+ Cast the model to a tabulated model.
31
+
32
+ Returns:
33
+ Tabulated: The tabulated model.
34
+ """
35
+ def as_transform(self) -> ...:
36
+ """
37
+ Cast the model to a transform model.
38
+
39
+ Returns:
40
+ Transform: The transform model.
41
+ """
42
+ def calculate_state_at(self, instant: ostk.physics.time.Instant) -> ostk.astrodynamics.trajectory.State:
43
+ """
44
+ Calculate the state of the model at a specific instant.
45
+
46
+ Args:
47
+ instant (Instant): The instant at which to calculate the state.
48
+
49
+ Returns:
50
+ State: The state of the model at the specified instant.
51
+ """
52
+ def calculate_states_at(self, instants: list[ostk.physics.time.Instant]) -> list[ostk.astrodynamics.trajectory.State]:
53
+ """
54
+ Calculate the states of the model at specific instants. It can be more performant than looping `calculate_state_at` for multiple instants.
55
+
56
+ Args:
57
+ instants (list[Instant]): The instants at which to calculate the states.
58
+
59
+ Returns:
60
+ list[State]: The states of the model at the specified instants.
61
+ """
62
+ def get_axes_at(self, instant: ostk.physics.time.Instant) -> ostk.physics.coordinate.Axes:
63
+ """
64
+ Get the axes of the model at a specific instant.
65
+
66
+ Args:
67
+ instant (Instant): The instant at which to get the axes.
68
+
69
+ Returns:
70
+ numpy.ndarray: The axes of the model at the specified instant.
71
+ """
72
+ def get_body_frame(self, frame_name: ostk.core.type.String) -> ostk.physics.coordinate.Frame:
73
+ """
74
+ Get the body frame of the model with the specified name.
75
+
76
+ Args:
77
+ frame_name (str): The name of the body frame.
78
+
79
+ Returns:
80
+ Frame: The body frame of the model with the specified name.
81
+ """
82
+ def is_defined(self) -> bool:
83
+ """
84
+ Check if the model is defined.
85
+
86
+ Returns:
87
+ bool: True if the model is defined, False otherwise.
88
+ """
89
+ def is_tabulated(self) -> bool:
90
+ """
91
+ Check if the model is a tabulated model.
92
+
93
+ Returns:
94
+ bool: True if the model is a tabulated model, False otherwise.
95
+ """
96
+ def is_transform(self) -> bool:
97
+ """
98
+ Check if the model is a transform model.
99
+
100
+ Returns:
101
+ bool: True if the model is a transform model, False otherwise.
102
+ """