open-space-toolkit-astrodynamics 13.1.0__py313-none-manylinux2014_x86_64.whl → 14.0.0__py313-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 (52) hide show
  1. {open_space_toolkit_astrodynamics-13.1.0.dist-info → open_space_toolkit_astrodynamics-14.0.0.dist-info}/METADATA +3 -3
  2. {open_space_toolkit_astrodynamics-13.1.0.dist-info → open_space_toolkit_astrodynamics-14.0.0.dist-info}/RECORD +52 -20
  3. {open_space_toolkit_astrodynamics-13.1.0.dist-info → open_space_toolkit_astrodynamics-14.0.0.dist-info}/WHEEL +1 -1
  4. ostk/astrodynamics/OpenSpaceToolkitAstrodynamicsPy.cpython-313-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 +54 -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.14} +0 -0
  21. ostk/astrodynamics/py.typed +0 -0
  22. ostk/astrodynamics/pytrajectory/__init__.pyi +3 -0
  23. ostk/astrodynamics/pytrajectory/pystate.py +2 -4
  24. ostk/astrodynamics/pytrajectory/pystate.pyi +63 -0
  25. ostk/astrodynamics/solver.pyi +232 -0
  26. ostk/astrodynamics/test/access/test_generator.py +130 -59
  27. ostk/astrodynamics/test/access/test_visibility_criterion.py +198 -0
  28. ostk/astrodynamics/test/data/provider/test_off_nadir.py +58 -0
  29. ostk/astrodynamics/test/flight/test_maneuver.py +49 -64
  30. ostk/astrodynamics/test/flight/test_profile.py +4 -2
  31. ostk/astrodynamics/test/solvers/test_finite_difference_solver.py +24 -11
  32. ostk/astrodynamics/test/solvers/test_temporal_condition_solver.py +9 -1
  33. ostk/astrodynamics/test/test_display.py +11 -5
  34. ostk/astrodynamics/test/test_viewer.py +70 -1
  35. ostk/astrodynamics/test/trajectory/state/coordinate_subset/test_cartesian_acceleration.py +136 -0
  36. ostk/astrodynamics/test/trajectory/state/test_coordinate_subset.py +9 -0
  37. ostk/astrodynamics/test/trajectory/test_local_orbital_frame_factory.py +21 -13
  38. ostk/astrodynamics/test/trajectory/test_propagator.py +21 -27
  39. ostk/astrodynamics/test/trajectory/test_segment.py +0 -1
  40. ostk/astrodynamics/trajectory/__init__.pyi +1794 -0
  41. ostk/astrodynamics/trajectory/orbit/__init__.pyi +361 -0
  42. ostk/astrodynamics/trajectory/orbit/message/__init__.pyi +3 -0
  43. ostk/astrodynamics/trajectory/orbit/message/spacex.pyi +273 -0
  44. ostk/astrodynamics/trajectory/orbit/model/__init__.pyi +517 -0
  45. ostk/astrodynamics/trajectory/orbit/model/brouwerLyddaneMean.pyi +127 -0
  46. ostk/astrodynamics/trajectory/orbit/model/kepler.pyi +581 -0
  47. ostk/astrodynamics/trajectory/orbit/model/sgp4.pyi +333 -0
  48. ostk/astrodynamics/trajectory/state/__init__.pyi +406 -0
  49. ostk/astrodynamics/trajectory/state/coordinate_subset.pyi +223 -0
  50. ostk/astrodynamics/viewer.py +32 -0
  51. {open_space_toolkit_astrodynamics-13.1.0.dist-info → open_space_toolkit_astrodynamics-14.0.0.dist-info}/top_level.txt +0 -0
  52. {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,1794 @@
1
+ from __future__ import annotations
2
+ import numpy
3
+ import ostk.astrodynamics
4
+ import ostk.core.type
5
+ import ostk.mathematics.curve_fitting
6
+ import ostk.mathematics.geometry.d3.transformation.rotation
7
+ import ostk.physics
8
+ import ostk.physics.coordinate
9
+ import ostk.physics.environment.object
10
+ import ostk.physics.time
11
+ import ostk.physics.unit
12
+ import typing
13
+ from . import orbit
14
+ from . import state
15
+ __all__ = ['LocalOrbitalFrameDirection', 'LocalOrbitalFrameFactory', 'LocalOrbitalFrameTransformProvider', 'Model', 'Orbit', 'Propagator', 'Segment', 'Sequence', 'State', 'StateBuilder', 'orbit', 'state']
16
+ class LocalOrbitalFrameDirection:
17
+ """
18
+
19
+ A local orbital frame direction.
20
+
21
+
22
+ """
23
+ __hash__: typing.ClassVar[None] = None
24
+ @staticmethod
25
+ def _pybind11_conduit_v1_(*args, **kwargs):
26
+ ...
27
+ @staticmethod
28
+ def undefined() -> LocalOrbitalFrameDirection:
29
+ """
30
+ Get an undefined local orbital frame direction.
31
+
32
+ Returns:
33
+ LocalOrbitalFrameDirection: The undefined local orbital frame direction.
34
+ """
35
+ def __eq__(self, arg0: LocalOrbitalFrameDirection) -> bool:
36
+ ...
37
+ def __init__(self, vector: numpy.ndarray[numpy.float64[3, 1]], local_orbital_frame_factory: LocalOrbitalFrameFactory) -> None:
38
+ """
39
+ Construct a new `LocalOrbitalFrameDirection` object.
40
+
41
+ Args:
42
+ vector (numpy.ndarray): The vector expressed in the local orbital frame.
43
+ local_orbital_frame_factory (LocalOrbitalFrameFactory): The local orbital frame factory that defines the frame.
44
+
45
+ Returns:
46
+ LocalOrbitalFrameDirection: The new `LocalOrbitalFrameDirection` object.
47
+ """
48
+ def __ne__(self, arg0: LocalOrbitalFrameDirection) -> bool:
49
+ ...
50
+ def get_local_orbital_frame_factory(self) -> LocalOrbitalFrameFactory:
51
+ """
52
+ Get the local orbital frame factory that defines the frame.
53
+
54
+ Returns:
55
+ LocalOrbitalFrameFactory: The local orbital frame factory that defines the frame.
56
+ """
57
+ def get_value(self) -> numpy.ndarray[numpy.float64[3, 1]]:
58
+ """
59
+ Get the vector expressed in the local orbital frame.
60
+
61
+ Returns:
62
+ Vector3d: The vector expressed in the local orbital frame.
63
+ """
64
+ def is_defined(self) -> bool:
65
+ """
66
+ Check if the local orbital frame direction is defined.
67
+
68
+ Returns:
69
+ bool: True if the local orbital frame direction is defined, False otherwise.
70
+ """
71
+ class LocalOrbitalFrameFactory:
72
+ """
73
+
74
+ The local orbital frame factory.
75
+
76
+
77
+ """
78
+ @staticmethod
79
+ def LVLH(parent_frame: ostk.physics.coordinate.Frame) -> LocalOrbitalFrameFactory:
80
+ """
81
+ Get a Local Vertical Local Horizontal (LVLH) local orbital frame factory.
82
+
83
+ Args:
84
+ parent_frame (Frame): The parent frame.
85
+
86
+ Returns:
87
+ LocalOrbitalFrameFactory: The LVLH local orbital frame factory.
88
+ """
89
+ @staticmethod
90
+ def NED(parent_frame: ostk.physics.coordinate.Frame) -> LocalOrbitalFrameFactory:
91
+ """
92
+ Get a North-East-Down (NED) local orbital frame factory.
93
+
94
+ Args:
95
+ parent_frame (Frame): The parent frame.
96
+
97
+ Returns:
98
+ LocalOrbitalFrameFactory: The NED local orbital frame factory.
99
+ """
100
+ @staticmethod
101
+ def QSW(parent_frame: ostk.physics.coordinate.Frame) -> LocalOrbitalFrameFactory:
102
+ """
103
+ Get a Quasi-Satellite World (QSW) local orbital frame factory.
104
+
105
+ Args:
106
+ parent_frame (Frame): The parent frame.
107
+
108
+ Returns:
109
+ LocalOrbitalFrameFactory: The QSW local orbital frame factory.
110
+ """
111
+ @staticmethod
112
+ def TNW(parent_frame: ostk.physics.coordinate.Frame) -> LocalOrbitalFrameFactory:
113
+ """
114
+ Get a Tangent-Normal-Wideband (TNW) local orbital frame factory.
115
+
116
+ Args:
117
+ parent_frame (Frame): The parent frame.
118
+
119
+ Returns:
120
+ LocalOrbitalFrameFactory: The TNW local orbital frame factory.
121
+ """
122
+ @staticmethod
123
+ def VNC(parent_frame: ostk.physics.coordinate.Frame) -> LocalOrbitalFrameFactory:
124
+ """
125
+ Get a Velocity-Normal-Co-normal (VNC) local orbital frame factory.
126
+
127
+ Args:
128
+ parent_frame (Frame): The parent frame.
129
+
130
+ Returns:
131
+ LocalOrbitalFrameFactory: The VNC local orbital frame factory.
132
+ """
133
+ @staticmethod
134
+ def VVLH(parent_frame: ostk.physics.coordinate.Frame) -> LocalOrbitalFrameFactory:
135
+ """
136
+ Get a Velocity Local Vertical Local Horizontal (VVLH) local orbital frame factory.
137
+
138
+ Args:
139
+ parent_frame (Frame): The parent frame.
140
+
141
+ Returns:
142
+ LocalOrbitalFrameFactory: The VVLH local orbital frame factory.
143
+ """
144
+ @staticmethod
145
+ def _pybind11_conduit_v1_(*args, **kwargs):
146
+ ...
147
+ @staticmethod
148
+ @typing.overload
149
+ def construct(type: LocalOrbitalFrameTransformProvider.Type, parent_frame: ostk.physics.coordinate.Frame) -> LocalOrbitalFrameFactory:
150
+ """
151
+ Construct a local orbital frame factory for the provided type.
152
+
153
+ Args:
154
+ type (LocalOrbitalFrameTransformProvider.Type): The type of local orbital frame transform provider.
155
+ parent_frame (Frame): The parent frame.
156
+
157
+ Returns:
158
+ LocalOrbitalFrameFactory: The local orbital frame factory.
159
+ """
160
+ @staticmethod
161
+ @typing.overload
162
+ def construct(transform_generator: typing.Callable[[...], ostk.physics.coordinate.Transform], parent_frame: ostk.physics.coordinate.Frame) -> LocalOrbitalFrameFactory:
163
+ """
164
+ Construct a local orbital frame factory for a custom type, using the provided transform generator.
165
+
166
+ Args:
167
+ transform_generator (callable[[State], Transform]): The transform generator.
168
+ parent_frame (Frame): The parent frame.
169
+
170
+ Returns:
171
+ LocalOrbitalFrameFactory: The local orbital frame factory.
172
+ """
173
+ @staticmethod
174
+ def undefined() -> LocalOrbitalFrameFactory:
175
+ """
176
+ Get an undefined local orbital frame factory.
177
+
178
+ Returns:
179
+ LocalOrbitalFrameFactory: The undefined local orbital frame factory.
180
+ """
181
+ def access_parent_frame(self) -> ostk.physics.coordinate.Frame:
182
+ """
183
+ Get the parent frame.
184
+
185
+ Returns:
186
+ Frame: The parent frame.
187
+ """
188
+ def generate_frame(self, state: ...) -> ostk.physics.coordinate.Frame:
189
+ """
190
+ Generate a local orbital frame.
191
+
192
+ Args:
193
+ state (State): The state.
194
+
195
+ Returns:
196
+ Frame: The local orbital frame.
197
+ """
198
+ def is_defined(self) -> bool:
199
+ """
200
+ Check if the local orbital frame factory is defined.
201
+
202
+ Returns:
203
+ Frame: True if the local orbital frame factory is defined, False otherwise.
204
+ """
205
+ class LocalOrbitalFrameTransformProvider:
206
+ """
207
+
208
+ Local orbital frame transform provider, frame provider.
209
+ Generates a specific transform based on a State (instant, position, velocity) and a LOF type.
210
+
211
+
212
+ """
213
+ class Type:
214
+ """
215
+
216
+ The local orbital frame type.
217
+
218
+
219
+ Members:
220
+
221
+ Undefined : Undefined
222
+
223
+ NED : North-East-Down
224
+
225
+ LVLH : Local Vertical-Local Horizontal
226
+
227
+ LVLHGD : Local Vertical-Local Horizontal Geodetic
228
+
229
+ VVLH : Vertical-Local Horizontal
230
+
231
+ QSW : Quasi-Satellite West
232
+
233
+ TNW : Tangent-Normal-Wideband
234
+
235
+ VNC : Velocity-Normal-Conormal
236
+ """
237
+ LVLH: typing.ClassVar[LocalOrbitalFrameTransformProvider.Type] # value = <Type.LVLH: 2>
238
+ LVLHGD: typing.ClassVar[LocalOrbitalFrameTransformProvider.Type] # value = <Type.LVLHGD: 4>
239
+ NED: typing.ClassVar[LocalOrbitalFrameTransformProvider.Type] # value = <Type.NED: 1>
240
+ QSW: typing.ClassVar[LocalOrbitalFrameTransformProvider.Type] # value = <Type.QSW: 5>
241
+ TNW: typing.ClassVar[LocalOrbitalFrameTransformProvider.Type] # value = <Type.TNW: 6>
242
+ Undefined: typing.ClassVar[LocalOrbitalFrameTransformProvider.Type] # value = <Type.Undefined: 0>
243
+ VNC: typing.ClassVar[LocalOrbitalFrameTransformProvider.Type] # value = <Type.VNC: 7>
244
+ VVLH: typing.ClassVar[LocalOrbitalFrameTransformProvider.Type] # value = <Type.VVLH: 3>
245
+ __members__: typing.ClassVar[dict[str, LocalOrbitalFrameTransformProvider.Type]] # value = {'Undefined': <Type.Undefined: 0>, 'NED': <Type.NED: 1>, 'LVLH': <Type.LVLH: 2>, 'LVLHGD': <Type.LVLHGD: 4>, 'VVLH': <Type.VVLH: 3>, 'QSW': <Type.QSW: 5>, 'TNW': <Type.TNW: 6>, 'VNC': <Type.VNC: 7>}
246
+ @staticmethod
247
+ def _pybind11_conduit_v1_(*args, **kwargs):
248
+ ...
249
+ def __eq__(self, other: typing.Any) -> bool:
250
+ ...
251
+ def __getstate__(self) -> int:
252
+ ...
253
+ def __hash__(self) -> int:
254
+ ...
255
+ def __index__(self) -> int:
256
+ ...
257
+ def __init__(self, value: int) -> None:
258
+ ...
259
+ def __int__(self) -> int:
260
+ ...
261
+ def __ne__(self, other: typing.Any) -> bool:
262
+ ...
263
+ def __repr__(self) -> str:
264
+ ...
265
+ def __setstate__(self, state: int) -> None:
266
+ ...
267
+ def __str__(self) -> str:
268
+ ...
269
+ @property
270
+ def name(self) -> str:
271
+ ...
272
+ @property
273
+ def value(self) -> int:
274
+ ...
275
+ @staticmethod
276
+ def _pybind11_conduit_v1_(*args, **kwargs):
277
+ ...
278
+ @staticmethod
279
+ def construct(type: LocalOrbitalFrameTransformProvider.Type, state: ...) -> LocalOrbitalFrameTransformProvider:
280
+ """
281
+ Constructs a local orbital frame transform provider for the provided type.
282
+
283
+ Args:
284
+ type (LocalOrbitalFrameTransformProvider.Type): The local orbital frame provider type.
285
+ state (State): The state.
286
+
287
+ Returns:
288
+ LocalOrbitalFrameTransformProvider: The provider.
289
+ """
290
+ @staticmethod
291
+ def get_transform_generator(type: LocalOrbitalFrameTransformProvider.Type) -> typing.Callable[[...], ostk.physics.coordinate.Transform]:
292
+ """
293
+ Returns the transform generator function for a given type.
294
+
295
+ Args:
296
+ type (LocalOrbitalFrameTransformProvider.Type): The local orbital frame provider type.
297
+
298
+ Returns:
299
+ callable[[State], Transform]: The transform generator function.
300
+ """
301
+ def __init__(self, transform: ostk.physics.coordinate.Transform) -> None:
302
+ """
303
+ Constructs a local orbital frame transform provider.
304
+
305
+ Args:
306
+ transform (Transform): The transform.
307
+
308
+ Returns:
309
+ LocalOrbitalFrameTransformProvider: The provider.
310
+ """
311
+ def get_transform_at(self, instant: ostk.physics.time.Instant) -> ostk.physics.coordinate.Transform:
312
+ """
313
+ Returns the transform at a given instant.
314
+
315
+ Args:
316
+ instant (Instant): The instant.
317
+
318
+ Returns:
319
+ Transform: The transform at the given instant.
320
+ """
321
+ def is_defined(self) -> bool:
322
+ """
323
+ Returns true if the provider is defined.
324
+
325
+ Returns:
326
+ bool: True if the provider is defined.
327
+ """
328
+ class Model:
329
+ """
330
+
331
+ Orbital model.
332
+
333
+
334
+ """
335
+ __hash__: typing.ClassVar[None] = None
336
+ @staticmethod
337
+ def _pybind11_conduit_v1_(*args, **kwargs):
338
+ ...
339
+ def __eq__(self, arg0: Model) -> bool:
340
+ ...
341
+ def __ne__(self, arg0: Model) -> bool:
342
+ ...
343
+ def __repr__(self) -> str:
344
+ ...
345
+ def __str__(self) -> str:
346
+ ...
347
+ def calculate_state_at(self, instant: ostk.physics.time.Instant) -> State:
348
+ """
349
+ Calculate the state at a given instant.
350
+
351
+ Args:
352
+ instant (Instant): The instant.
353
+
354
+ Returns:
355
+ State: The state at the given instant.
356
+ """
357
+ def calculate_states_at(self, instants: list[ostk.physics.time.Instant]) -> list[State]:
358
+ """
359
+ Calculate the states at given instants. It can be more performant than looping `calculate_state_at` for multiple instants.
360
+
361
+ @param instants The instants.
362
+
363
+ Returns:
364
+ Array<State>: The states at the given instants.
365
+ """
366
+ def is_defined(self) -> bool:
367
+ """
368
+ Check if the model is defined.
369
+
370
+ Returns:
371
+ bool: True if the model is defined, False otherwise.
372
+ """
373
+ class Orbit(ostk.astrodynamics.Trajectory):
374
+ """
375
+
376
+ Gravitationally curved trajectory of an object.
377
+
378
+
379
+ """
380
+ class FrameType:
381
+ """
382
+
383
+ The local orbital frame type.
384
+
385
+
386
+ Members:
387
+
388
+ Undefined : Undefined
389
+
390
+ NED : North-East-Down
391
+
392
+ LVLH : Local Vertical-Local Horizontal
393
+
394
+ LVLHGD : Local Vertical-Local Horizontal GeoDetic
395
+
396
+ LVLHGDGT : Local Vertical-Local Horizontal GeoDetic Ground Track
397
+
398
+ VVLH : Vertical-Local Horizontal
399
+
400
+ QSW : Quasi-Satellite West
401
+
402
+ TNW : Tangent-Normal-Wideband
403
+
404
+ VNC : Velocity-Normal-Conormal
405
+ """
406
+ LVLH: typing.ClassVar[Orbit.FrameType] # value = <FrameType.LVLH: 2>
407
+ LVLHGD: typing.ClassVar[Orbit.FrameType] # value = <FrameType.LVLHGD: 4>
408
+ LVLHGDGT: typing.ClassVar[Orbit.FrameType] # value = <FrameType.LVLHGDGT: 5>
409
+ NED: typing.ClassVar[Orbit.FrameType] # value = <FrameType.NED: 1>
410
+ QSW: typing.ClassVar[Orbit.FrameType] # value = <FrameType.QSW: 6>
411
+ TNW: typing.ClassVar[Orbit.FrameType] # value = <FrameType.TNW: 7>
412
+ Undefined: typing.ClassVar[Orbit.FrameType] # value = <FrameType.Undefined: 0>
413
+ VNC: typing.ClassVar[Orbit.FrameType] # value = <FrameType.VNC: 8>
414
+ VVLH: typing.ClassVar[Orbit.FrameType] # value = <FrameType.VVLH: 3>
415
+ __members__: typing.ClassVar[dict[str, Orbit.FrameType]] # value = {'Undefined': <FrameType.Undefined: 0>, 'NED': <FrameType.NED: 1>, 'LVLH': <FrameType.LVLH: 2>, 'LVLHGD': <FrameType.LVLHGD: 4>, 'LVLHGDGT': <FrameType.LVLHGDGT: 5>, 'VVLH': <FrameType.VVLH: 3>, 'QSW': <FrameType.QSW: 6>, 'TNW': <FrameType.TNW: 7>, 'VNC': <FrameType.VNC: 8>}
416
+ @staticmethod
417
+ def _pybind11_conduit_v1_(*args, **kwargs):
418
+ ...
419
+ def __eq__(self, other: typing.Any) -> bool:
420
+ ...
421
+ def __getstate__(self) -> int:
422
+ ...
423
+ def __hash__(self) -> int:
424
+ ...
425
+ def __index__(self) -> int:
426
+ ...
427
+ def __init__(self, value: int) -> None:
428
+ ...
429
+ def __int__(self) -> int:
430
+ ...
431
+ def __ne__(self, other: typing.Any) -> bool:
432
+ ...
433
+ def __repr__(self) -> str:
434
+ ...
435
+ def __setstate__(self, state: int) -> None:
436
+ ...
437
+ def __str__(self) -> str:
438
+ ...
439
+ @property
440
+ def name(self) -> str:
441
+ ...
442
+ @property
443
+ def value(self) -> int:
444
+ ...
445
+ __hash__: typing.ClassVar[None] = None
446
+ @staticmethod
447
+ def _pybind11_conduit_v1_(*args, **kwargs):
448
+ ...
449
+ @staticmethod
450
+ def circular(epoch: ostk.physics.time.Instant, altitude: ostk.physics.unit.Length, inclination: ostk.physics.unit.Angle, celestial_object: ostk.physics.environment.object.Celestial) -> Orbit:
451
+ """
452
+ Create a circular `Orbit` object.
453
+
454
+ Args:
455
+ epoch (Instant): The epoch.
456
+ altitude (Length): The altitude (wrt. equatorial radius).
457
+ inclination (Angle): The inclination.
458
+ celestial_object (Celestial): The celestial object.
459
+
460
+ Returns:
461
+ Orbit: The circular `Orbit` object.
462
+ """
463
+ @staticmethod
464
+ def circular_equatorial(epoch: ostk.physics.time.Instant, altitude: ostk.physics.unit.Length, celestial_object: ostk.physics.environment.object.Celestial) -> Orbit:
465
+ """
466
+ Create a circular equatorial `Orbit` object.
467
+
468
+ Args:
469
+ epoch (Instant): The epoch.
470
+ altitude (Length): The altitude (wrt. equatorial radius).
471
+ celestial_object (Celestial): The celestial object.
472
+
473
+ Returns:
474
+ Orbit: The circular equatorial `Orbit` object.
475
+ """
476
+ @staticmethod
477
+ def compute_passes(states: list[State], initial_revolution_number: ostk.core.type.Integer) -> list[tuple[int, ...]]:
478
+ """
479
+ Compute passes from a set of states.
480
+
481
+ Args:
482
+ states (Array<State>): The states.
483
+ initial_revolution_number (Integer): The initial revolution number.
484
+
485
+ Returns:
486
+ list[tuple[int, Pass]]: List of index-pass pairs.
487
+ """
488
+ @staticmethod
489
+ def compute_passes_with_model(model: ..., start_instant: ostk.physics.time.Instant, end_instant: ostk.physics.time.Instant, initial_revolution_number: ostk.core.type.Integer) -> list[...]:
490
+ """
491
+ Compute passes with the given model for the provided interval.
492
+
493
+ Args:
494
+ model (orbit.Model): The model.
495
+ start_instant (Instant): The start instant.
496
+ end_instant (Instant): The end instant.
497
+ initial_revolution_number (int): The initial revolution number.
498
+
499
+ Returns:
500
+ list[Pass]: List of passes.
501
+ """
502
+ @staticmethod
503
+ def equatorial(epoch: ostk.physics.time.Instant, apoapsis_altitude: ostk.physics.unit.Length, periapsis_altitude: ostk.physics.unit.Length, celestial_object: ostk.physics.environment.object.Celestial) -> Orbit:
504
+ """
505
+ Create an equatorial `Orbit` object.
506
+
507
+ Args:
508
+ epoch (Instant): The epoch.
509
+ apoapsis_altitude (Length): The apoapsis altitude (wrt. equatorial radius).
510
+ periapsis_altitude (Length): The periapsis altitude (wrt. equatorial radius).
511
+ celestial_object (Celestial): The celestial object.
512
+
513
+ Returns:
514
+ Orbit: The equatorial `Orbit` object.
515
+ """
516
+ @staticmethod
517
+ def frozen(epoch: ostk.physics.time.Instant, altitude: ostk.physics.unit.Length, celestial_object: ostk.physics.environment.object.Celestial, eccentricity: ostk.core.type.Real = ..., inclination: ostk.physics.unit.Angle = ..., raan: ostk.physics.unit.Angle = ..., aop: ostk.physics.unit.Angle = ..., true_anomaly: ostk.physics.unit.Angle = ...) -> Orbit:
518
+ """
519
+ Create a frozen `Orbit` object.
520
+
521
+ The critical angles for inclination are 63.4349 degrees and 116.5651 degrees.
522
+ The critical angles for AoP are 90.0 degrees and 270.0 degrees.
523
+
524
+ At a minimum, an epoch, altitude, and celestial body with a defined J2 and J3 must be provided.
525
+ In this case, the inclination and AoP are set to critical angles, and the eccentricity is derived
526
+ from inclination. RAAN and true anomaly default to zero degrees.
527
+
528
+ Additionally, the following combinations of inputs are supported:
529
+ - AoP (inclination set to critical value, eccentricity derived)
530
+ - AoP and eccentricity (inclination derived)
531
+ - AoP and inclination, but at least one of them must be a critical value (eccentricity derived)
532
+ - Inclination (AoP set to critical value, eccentricity derived)
533
+ - Eccentricity (AoP set to critical value, inclination derived)
534
+
535
+ Note that inclination and eccentricity cannot both be provided.
536
+
537
+ RAAN and True Anomaly may be provided alongside any of these arguments, and will be passed through
538
+ to the resulting Orbit as they do not impact the frozen orbit condition.
539
+
540
+ Args:
541
+ epoch (Instant): The epoch.
542
+ altitude (Length): The altitude (wrt. equatorial radius).
543
+ celestial_object (Celestial): The celestial object.
544
+ eccentricity (float): The eccentricity.
545
+ inclination (Angle): The inclination.
546
+ raan (Angle): The right ascension of the ascending node.
547
+ aop (Angle): The argument of periapsis.
548
+ true_anomaly (Angle): The true anomaly.
549
+
550
+ Returns:
551
+ Orbit: The frozen `Orbit` object.
552
+ """
553
+ @staticmethod
554
+ def geo_synchronous(epoch: ostk.physics.time.Instant, inclination: ostk.physics.unit.Angle, longitude: ostk.physics.unit.Angle, celestial_object: ostk.physics.environment.object.Celestial) -> Orbit:
555
+ """
556
+ Create a geosynchronous `Orbit` object.
557
+
558
+ Args:
559
+ epoch (Instant): The epoch.
560
+ inclination (Angle): The inclination.
561
+ longitude (double): The longitude.
562
+ celestial_object (Celestial): The celestial object.
563
+
564
+ Returns:
565
+ Orbit: The geosynchronous `Orbit` object.
566
+ """
567
+ @staticmethod
568
+ def sun_synchronous(epoch: ostk.physics.time.Instant, altitude: ostk.physics.unit.Length, local_time_at_descending_node: ostk.physics.time.Time, celestial_object: ostk.physics.environment.object.Celestial, argument_of_latitude: ostk.physics.unit.Angle = ...) -> Orbit:
569
+ """
570
+ Create a sun-synchronous `Orbit` object.
571
+
572
+ Args:
573
+ epoch (Instant): The epoch.
574
+ altitude (Length): The altitude (wrt. equatorial radius).
575
+ local_time_at_descending_node (Time): The local time at descending node.
576
+ celestial_object (Celestial): The celestial object.
577
+ argument_of_latitude (Angle): The argument of latitude.
578
+
579
+ Returns:
580
+ Orbit: The sun-synchronous `Orbit` object.
581
+ """
582
+ @staticmethod
583
+ def undefined() -> Orbit:
584
+ """
585
+ Get an undefined `Orbit` object.
586
+
587
+ Returns:
588
+ Orbit: The undefined `Orbit` object.
589
+ """
590
+ def __eq__(self, arg0: Orbit) -> bool:
591
+ ...
592
+ @typing.overload
593
+ def __init__(self, model: ..., celestial_object: ostk.physics.environment.object.Celestial) -> None:
594
+ """
595
+ Constructs an `Orbit` object.
596
+
597
+ Args:
598
+ model (orbit.Model): The orbit model.
599
+ celestial_object (Celestial): The celestial object.
600
+ """
601
+ @typing.overload
602
+ def __init__(self, states: list[State], initial_revolution_number: ostk.core.type.Integer, celestial_object: ostk.physics.environment.object.Celestial) -> None:
603
+ """
604
+ Constructs an `Orbit` object.
605
+
606
+ Args:
607
+ states (Array<State>): The states.
608
+ initial_revolution_number (Integer): The initial revolution number.
609
+ celestial_object (Celestial): The celestial object.
610
+ """
611
+ def __ne__(self, arg0: Orbit) -> bool:
612
+ ...
613
+ def __repr__(self) -> str:
614
+ ...
615
+ def __str__(self) -> str:
616
+ ...
617
+ def access_kepler_model(self) -> ...:
618
+ """
619
+ Access the Kepler orbit model.
620
+
621
+ Returns:
622
+ Kepler: The Kepler orbit model.
623
+ """
624
+ def access_model(self) -> ...:
625
+ """
626
+ Access the orbit model.
627
+
628
+ Returns:
629
+ orbit.Model: The orbit model.
630
+ """
631
+ def access_propagated_model(self) -> ...:
632
+ """
633
+ Access the propagated orbit model.
634
+
635
+ Returns:
636
+ Propagated: The propagated orbit model.
637
+ """
638
+ def access_sgp4_model(self) -> ...:
639
+ """
640
+ Access the SGP4 orbit model.
641
+
642
+ Returns:
643
+ SGP4: The SGP4 orbit model.
644
+ """
645
+ def access_tabulated_model(self) -> ...:
646
+ """
647
+ Access the tabulated orbit model.
648
+
649
+ Returns:
650
+ Tabulated: The tabulated orbit model.
651
+ """
652
+ def get_orbital_frame(self, frame_type: Orbit.FrameType) -> ostk.physics.coordinate.Frame:
653
+ """
654
+ Get the orbital frame.
655
+
656
+ Args:
657
+ frame_type (Orbit::FrameType): The frame type.
658
+
659
+ Returns:
660
+ Frame: The orbital frame.
661
+ """
662
+ def get_pass_at(self, instant: ostk.physics.time.Instant) -> ...:
663
+ """
664
+ Get the pass at a given instant.
665
+
666
+ Args:
667
+ instant (Instant): The instant.
668
+
669
+ Returns:
670
+ ostk::astrodynamics::trajectory::orbit::Pass: The pass.
671
+ """
672
+ def get_pass_with_revolution_number(self, revolution_number: ostk.core.type.Integer, step_duration: ostk.physics.time.Duration = ...) -> ...:
673
+ """
674
+ Get the pass with a given revolution number.
675
+
676
+ Args:
677
+ revolution_number (int): The revolution number.
678
+ step_duration (Duration): The initial step duration used for the pass computation algorithm.
679
+
680
+ Returns:
681
+ Pass: The pass.
682
+ """
683
+ def get_passes_within_interval(self, interval: ostk.physics.time.Interval) -> list[...]:
684
+ """
685
+ Get the passes within a given interval.
686
+
687
+ Args:
688
+ interval (Interval): The interval.
689
+
690
+ Returns:
691
+ list[Pass]: The passes.
692
+ """
693
+ def get_revolution_number_at(self, instant: ostk.physics.time.Instant) -> ostk.core.type.Integer:
694
+ """
695
+ Get the revolution number at a given instant.
696
+
697
+ Args:
698
+ instant (Instant): The instant.
699
+
700
+ Returns:
701
+ int: The revolution number.
702
+ """
703
+ def is_defined(self) -> bool:
704
+ """
705
+ Check if the `Orbit` object is defined.
706
+
707
+ Returns:
708
+ bool: True if the `Orbit` object is defined, False otherwise.
709
+ """
710
+ class Propagator:
711
+ """
712
+
713
+ A `Propagator` that propagates the provided `State` using it's `NumericalSolver` under the set `Dynamics`.
714
+
715
+
716
+ """
717
+ __hash__: typing.ClassVar[None] = None
718
+ @staticmethod
719
+ def _pybind11_conduit_v1_(*args, **kwargs):
720
+ ...
721
+ @staticmethod
722
+ @typing.overload
723
+ def default() -> Propagator:
724
+ """
725
+ Get the default propagator.
726
+
727
+ Returns:
728
+ Propagator: The default propagator.
729
+ """
730
+ @staticmethod
731
+ @typing.overload
732
+ def default(environment: ostk.physics.Environment) -> Propagator:
733
+ """
734
+ Get the default propagator for a given environment.
735
+
736
+ Args:
737
+ environment (Environment) The environment.
738
+
739
+ Returns:
740
+ Propagator: The default propagator for the given environment.
741
+ """
742
+ @staticmethod
743
+ def from_environment(numerical_solver: state.NumericalSolver, environment: ostk.physics.Environment) -> Propagator:
744
+ """
745
+ Create a propagator from an environment.
746
+
747
+ Args:
748
+ numerical_solver (NumericalSolver) The numerical solver.
749
+ environment (Environment) The environment.
750
+
751
+ Returns:
752
+ Propagator: The propagator.
753
+ """
754
+ def __eq__(self, arg0: Propagator) -> bool:
755
+ ...
756
+ @typing.overload
757
+ def __init__(self, numerical_solver: state.NumericalSolver, dynamics: list[...] = []) -> None:
758
+ """
759
+ Construct a new `Propagator` object.
760
+
761
+ Args:
762
+ numerical_solver (NumericalSolver) The numerical solver.
763
+ dynamics (list[Dynamics], optional) The dynamics.
764
+
765
+ Returns:
766
+ Propagator: The new `Propagator` object.
767
+ """
768
+ @typing.overload
769
+ def __init__(self, numerical_solver: state.NumericalSolver, dynamics: list[...], maneuvers: list[...], interpolation_type: ostk.mathematics.curve_fitting.Interpolator.Type = ...) -> None:
770
+ """
771
+ Construct a new `Propagator` object with maneuvers.
772
+
773
+ Args:
774
+ numerical_solver (NumericalSolver) The numerical solver.
775
+ dynamics (list[Dynamics]) The dynamics.
776
+ maneuvers (list[Maneuver]) The maneuvers.
777
+ interpolation_type (Interpolator.Type, optional) The interpolation type. Defaults to Barycentric Rational.
778
+
779
+ Returns:
780
+ Propagator: The new `Propagator` object.
781
+ """
782
+ def __ne__(self, arg0: Propagator) -> bool:
783
+ ...
784
+ def __repr__(self) -> str:
785
+ ...
786
+ def __str__(self) -> str:
787
+ ...
788
+ def access_numerical_solver(self) -> state.NumericalSolver:
789
+ """
790
+ Access the numerical solver.
791
+
792
+ Returns:
793
+ NumericalSolver&: The numerical solver.
794
+ """
795
+ def add_dynamics(self, dynamics: ...) -> None:
796
+ """
797
+ Add dynamics.
798
+
799
+ Args:
800
+ dynamics (Dynamics) The dynamics.
801
+ """
802
+ def add_maneuver(self, maneuver: ..., interpolation_type: ostk.mathematics.curve_fitting.Interpolator.Type = ...) -> None:
803
+ """
804
+ Add a maneuver.
805
+
806
+ Args:
807
+ maneuver (Maneuver) The maneuver.
808
+ interpolation_type (Interpolator.Type, optional) The interpolation type. Defaults to Barycentric Rational.
809
+ """
810
+ def calculate_state_at(self, state: State, instant: ostk.physics.time.Instant) -> State:
811
+ """
812
+ Calculate the state at a given instant.
813
+
814
+ Args:
815
+ state (State) The state.
816
+ instant (Instant) The instant.
817
+
818
+ Returns:
819
+ State: The state at the given instant.
820
+ """
821
+ def calculate_state_to_condition(self, state: State, instant: ostk.physics.time.Instant, event_condition: ...) -> state.NumericalSolver.ConditionSolution:
822
+ """
823
+ Calculate the state up to a given event condition.
824
+
825
+ Args:
826
+ state (State) The state.
827
+ instant (Instant) The instant.
828
+ event_condition (EventCondition) The event condition.
829
+
830
+ Returns:
831
+ State: The state up to the given event condition.
832
+ """
833
+ def calculate_states_at(self, state: State, instants: list[ostk.physics.time.Instant]) -> list[State]:
834
+ """
835
+ Calculate the states at given instants. It is more performant than looping `calculate_state_at` for multiple instants.
836
+
837
+ Args:
838
+ state (State) The state.
839
+ instants (list[Instant]) The instants.
840
+
841
+ Returns:
842
+ list[State]: The states at the given instants.
843
+ """
844
+ def clear_dynamics(self) -> None:
845
+ """
846
+ Clear the dynamics.
847
+ """
848
+ def get_dynamics(self) -> list[...]:
849
+ """
850
+ Get the dynamics.
851
+
852
+ Returns:
853
+ list[Dynamics]: The dynamics.
854
+ """
855
+ def get_number_of_coordinates(self) -> int:
856
+ """
857
+ Get the number of coordinates.
858
+
859
+ Returns:
860
+ int: The number of coordinates.
861
+ """
862
+ def is_defined(self) -> bool:
863
+ """
864
+ Check if the propagator is defined.
865
+
866
+ Returns:
867
+ bool: True if the propagator is defined, False otherwise.
868
+ """
869
+ def set_dynamics(self, dynamics: list[...]) -> None:
870
+ """
871
+ Set the dynamics.
872
+
873
+ Args:
874
+ dynamics (list[Dynamics]) The dynamics.
875
+ """
876
+ class Segment:
877
+ """
878
+
879
+ A `Segment` that can be solved provided an initial `State` and termination `Event Condition`.
880
+
881
+
882
+ """
883
+ class Solution:
884
+ """
885
+
886
+ The Solution object returned when a `Segment` is solved.
887
+
888
+
889
+ """
890
+ @staticmethod
891
+ def _pybind11_conduit_v1_(*args, **kwargs):
892
+ ...
893
+ def __init__(self, name: ostk.core.type.String, dynamics: list[...], states: list[State], condition_is_satisfied: bool, segment_type: ...) -> None:
894
+ """
895
+ Construct a Segment Solution.
896
+
897
+ Args:
898
+ name (str): The name of the segment.
899
+ dynamics (list[Dynamics]): The dynamics.
900
+ states (list[State]): The states.
901
+ condition_is_satisfied (bool): Whether the event condition is satisfied.
902
+ segment_type (Type): The type of the segment.
903
+ """
904
+ def __repr__(self) -> str:
905
+ ...
906
+ def __str__(self) -> str:
907
+ ...
908
+ def access_end_instant(self) -> ostk.physics.time.Instant:
909
+ """
910
+ Get the instant at which the segment ends.
911
+
912
+ Returns:
913
+ Instant: The instant at which the segment ends.
914
+ """
915
+ def access_start_instant(self) -> ostk.physics.time.Instant:
916
+ """
917
+ Get the instant at which the segment starts.
918
+
919
+ Returns:
920
+ Instant: The instant at which the segment starts.
921
+ """
922
+ def calculate_states_at(self, instants: list[ostk.physics.time.Instant], numerical_solver: state.NumericalSolver) -> list[State]:
923
+ """
924
+ Calculate the states in this segment's solution at the given instants.
925
+
926
+ Args:
927
+ instants (list[Instant]): The instants at which the states will be calculated.
928
+ numerical_solver (NumericalSolver): The numerical solver used to calculate the states.
929
+
930
+ Returns:
931
+ list[State]: The states at the provided instants.
932
+ """
933
+ def compute_delta_mass(self) -> ostk.physics.unit.Mass:
934
+ """
935
+ Compute the delta mass.
936
+
937
+ Returns:
938
+ Mass: The delta mass.
939
+ """
940
+ def compute_delta_v(self, specific_impulse: ostk.core.type.Real) -> ostk.core.type.Real:
941
+ """
942
+ Compute the delta V.
943
+
944
+ Args:
945
+ specific_impulse (float): The specific impulse.
946
+
947
+ Returns:
948
+ float: The delta V (m/s).
949
+ """
950
+ def extract_maneuvers(self, frame: ostk.physics.coordinate.Frame) -> list[...]:
951
+ """
952
+ Extract maneuvers from the (maneuvering) segment.
953
+
954
+ Returns:
955
+ list[Maneuver]: The list of maneuvers.
956
+ """
957
+ def get_all_dynamics_contributions(self, frame: ostk.physics.coordinate.Frame) -> dict[..., numpy.ndarray[numpy.float64[m, n]]]:
958
+ """
959
+ Compute the contributions of all segment's dynamics in the provided frame for all states assocated with the segment.
960
+
961
+ Args:
962
+ frame (Frame): The frame.
963
+
964
+ Returns:
965
+ dict[Dynamics, np.ndarray]: The list of matrices with individual dynamics contributions.
966
+ """
967
+ def get_dynamics_acceleration_contribution(self, dynamics: ..., frame: ostk.physics.coordinate.Frame) -> numpy.ndarray[numpy.float64[m, n]]:
968
+ """
969
+ Compute the contribution of the provided dynamics to the acceleration in the provided frame for all states associated with the segment.
970
+
971
+ Args:
972
+ dynamics (Dynamics): The dynamics.
973
+ frame (Frame): The frame.
974
+
975
+ Returns:
976
+ np.ndarray: The matrix of dynamics contributions to acceleration.
977
+ """
978
+ def get_dynamics_contribution(self, dynamics: ..., frame: ostk.physics.coordinate.Frame, coordinate_subsets: list[state.CoordinateSubset] = []) -> numpy.ndarray[numpy.float64[m, n]]:
979
+ """
980
+ Compute the contribution of the provided dynamics in the provided frame for all states associated with the segment.
981
+
982
+ Args:
983
+ dynamics (Dynamics): The dynamics.
984
+ frame (Frame): The frame.
985
+ coordinate_subsets (list[CoordinateSubset], optional): A subset of the dynamics writing coordinate subsets to consider.
986
+
987
+ Returns:
988
+ MatrixXd: The matrix of dynamics contributions for the selected coordinate subsets of the dynamics.
989
+ """
990
+ def get_final_mass(self) -> ostk.physics.unit.Mass:
991
+ """
992
+ Get the final mass.
993
+
994
+ Returns:
995
+ Mass: The final mass.
996
+ """
997
+ def get_initial_mass(self) -> ostk.physics.unit.Mass:
998
+ """
999
+ Get the initial mass.
1000
+
1001
+ Returns:
1002
+ Mass: The initial mass.
1003
+ """
1004
+ def get_interval(self) -> ostk.physics.time.Interval:
1005
+ """
1006
+ Get the time interval of the solution.
1007
+
1008
+ Returns:
1009
+ Interval: The interval.
1010
+ """
1011
+ def get_propagation_duration(self) -> ostk.physics.time.Duration:
1012
+ """
1013
+ Get the propagation duration.
1014
+
1015
+ Returns:
1016
+ Duration: The propagation duration.
1017
+ """
1018
+ @property
1019
+ def condition_is_satisfied(self) -> bool:
1020
+ """
1021
+ Whether the event condition is satisfied.
1022
+
1023
+ :type: bool
1024
+ """
1025
+ @property
1026
+ def dynamics(self) -> list[...]:
1027
+ """
1028
+ The dynamics.
1029
+
1030
+ :type: Dynamics
1031
+ """
1032
+ @property
1033
+ def name(self) -> ostk.core.type.String:
1034
+ """
1035
+ The name of the segment.
1036
+
1037
+ :type: str
1038
+ """
1039
+ @property
1040
+ def segment_type(self) -> ...:
1041
+ """
1042
+ The type of the segment.
1043
+
1044
+ :type: Type
1045
+ """
1046
+ @property
1047
+ def states(self) -> list[State]:
1048
+ """
1049
+ The states.
1050
+
1051
+ :type: list[State]
1052
+ """
1053
+ class Type:
1054
+ """
1055
+
1056
+ Segment type.
1057
+
1058
+
1059
+ Members:
1060
+
1061
+ Coast : Coast
1062
+
1063
+ Maneuver : Maneuver
1064
+ """
1065
+ Coast: typing.ClassVar[Segment.Type] # value = <Type.Coast: 0>
1066
+ Maneuver: typing.ClassVar[Segment.Type] # value = <Type.Maneuver: 1>
1067
+ __members__: typing.ClassVar[dict[str, Segment.Type]] # value = {'Coast': <Type.Coast: 0>, 'Maneuver': <Type.Maneuver: 1>}
1068
+ @staticmethod
1069
+ def _pybind11_conduit_v1_(*args, **kwargs):
1070
+ ...
1071
+ def __eq__(self, other: typing.Any) -> bool:
1072
+ ...
1073
+ def __getstate__(self) -> int:
1074
+ ...
1075
+ def __hash__(self) -> int:
1076
+ ...
1077
+ def __index__(self) -> int:
1078
+ ...
1079
+ def __init__(self, value: int) -> None:
1080
+ ...
1081
+ def __int__(self) -> int:
1082
+ ...
1083
+ def __ne__(self, other: typing.Any) -> bool:
1084
+ ...
1085
+ def __repr__(self) -> str:
1086
+ ...
1087
+ def __setstate__(self, state: int) -> None:
1088
+ ...
1089
+ def __str__(self) -> str:
1090
+ ...
1091
+ @property
1092
+ def name(self) -> str:
1093
+ ...
1094
+ @property
1095
+ def value(self) -> int:
1096
+ ...
1097
+ @staticmethod
1098
+ def _pybind11_conduit_v1_(*args, **kwargs):
1099
+ ...
1100
+ @staticmethod
1101
+ def coast(name: ostk.core.type.String, event_condition: ..., dynamics: list[...], numerical_solver: state.NumericalSolver) -> Segment:
1102
+ """
1103
+ Create a coast segment.
1104
+
1105
+ Args:
1106
+ name (str): The name of the segment.
1107
+ event_condition (EventCondition): The event condition.
1108
+ dynamics (Dynamics): The dynamics.
1109
+ numerical_solver (NumericalSolver): The numerical solver.
1110
+
1111
+ Returns:
1112
+ Segment: The coast segment.
1113
+ """
1114
+ @staticmethod
1115
+ def maneuver(name: ostk.core.type.String, event_condition: ..., thruster_dynamics: ..., dynamics: list[...], numerical_solver: state.NumericalSolver) -> Segment:
1116
+ """
1117
+ Create a maneuver segment.
1118
+
1119
+ Args:
1120
+ name (str): The name of the segment.
1121
+ event_condition (EventCondition): The event condition.
1122
+ thruster_dynamics (ThrusterDynamics): The thruster dynamics.
1123
+ dynamics (Dynamics): The dynamics.
1124
+ numerical_solver (NumericalSolver): The numerical solver.
1125
+
1126
+ Returns:
1127
+ Segment: The maneuver segment.
1128
+ """
1129
+ def __repr__(self) -> str:
1130
+ ...
1131
+ def __str__(self) -> str:
1132
+ ...
1133
+ def get_dynamics(self) -> list[...]:
1134
+ """
1135
+ Get the dynamics.
1136
+
1137
+ Returns:
1138
+ Dynamics: The dynamics.
1139
+ """
1140
+ def get_event_condition(self) -> ...:
1141
+ """
1142
+ Get the event condition.
1143
+
1144
+ Returns:
1145
+ EventCondition: The event condition.
1146
+ """
1147
+ def get_name(self) -> ostk.core.type.String:
1148
+ """
1149
+ Get the name of the segment.
1150
+
1151
+ Returns:
1152
+ str: The name of the segment.
1153
+ """
1154
+ def get_numerical_solver(self) -> state.NumericalSolver:
1155
+ """
1156
+ Get the numerical solver.
1157
+
1158
+ Returns:
1159
+ NumericalSolver: The numerical solver.
1160
+ """
1161
+ def get_type(self) -> Segment.Type:
1162
+ """
1163
+ Get the type of the segment.
1164
+
1165
+ Returns:
1166
+ Type: The type of the segment.
1167
+ """
1168
+ def solve(self, state: State, maximum_propagation_duration: ostk.physics.time.Duration = ...) -> Segment.Solution:
1169
+ """
1170
+ Solve the segment.
1171
+
1172
+ Args:
1173
+ state (State): The state.
1174
+ maximum_propagation_duration (Duration, optional): The maximum propagation duration.
1175
+
1176
+ Returns:
1177
+ SegmentSolution: The segment solution.
1178
+ """
1179
+ class Sequence:
1180
+ """
1181
+
1182
+ A mission `Sequence`. Consists of a list of `Segment` objects and various configuration parameters.
1183
+
1184
+
1185
+ """
1186
+ class Solution:
1187
+ """
1188
+
1189
+ The Solution object that is returned when a `Sequence` is solved.
1190
+
1191
+
1192
+ """
1193
+ @staticmethod
1194
+ def _pybind11_conduit_v1_(*args, **kwargs):
1195
+ ...
1196
+ def __init__(self, segment_solutions: list[Segment.Solution], execution_is_complete: bool) -> None:
1197
+ """
1198
+ Construct a new `Sequence.Solution` object.
1199
+
1200
+ Args:
1201
+ segment_solutions (list[Segment.Solution]): The segment solutions.
1202
+ execution_is_complete (bool): Whether the execution is complete.
1203
+
1204
+ Returns:
1205
+ Sequence: The new `Sequence.Solution` object.
1206
+ """
1207
+ def __repr__(self) -> str:
1208
+ ...
1209
+ def __str__(self) -> str:
1210
+ ...
1211
+ def access_end_instant(self) -> ostk.physics.time.Instant:
1212
+ """
1213
+ Get the instant at which the access ends.
1214
+
1215
+ Returns:
1216
+ Instant: The instant at which the access ends.
1217
+ """
1218
+ def access_start_instant(self) -> ostk.physics.time.Instant:
1219
+ """
1220
+ Get the instant at which the access starts.
1221
+
1222
+ Returns:
1223
+ Instant: The instant at which the access starts.
1224
+ """
1225
+ def calculate_states_at(self, instants: list[ostk.physics.time.Instant], numerical_solver: state.NumericalSolver) -> list[State]:
1226
+ """
1227
+ Calculate states in this sequence's solution at provided instants.
1228
+
1229
+ Args:
1230
+ instants (list[Instant]): The instants at which the states will be calculated.
1231
+ numerical_solver (NumericalSolver): The numerical solver used to calculate the states.
1232
+
1233
+ Returns:
1234
+ list[State]: The states at the provided instants.
1235
+ """
1236
+ def compute_delta_mass(self) -> ostk.physics.unit.Mass:
1237
+ """
1238
+ Compute the delta mass.
1239
+
1240
+ Returns:
1241
+ float: The delta mass.
1242
+ """
1243
+ def compute_delta_v(self, specific_impulse: ostk.core.type.Real) -> ostk.core.type.Real:
1244
+ """
1245
+ Compute the delta V.
1246
+
1247
+ Args:
1248
+ specific_impulse (float): The specific impulse.
1249
+
1250
+ Returns:
1251
+ float: The delta V (m/s).
1252
+ """
1253
+ def get_final_mass(self) -> ostk.physics.unit.Mass:
1254
+ """
1255
+ Get the final mass.
1256
+
1257
+ Returns:
1258
+ float: The final mass.
1259
+ """
1260
+ def get_initial_mass(self) -> ostk.physics.unit.Mass:
1261
+ """
1262
+ Get the initial mass.
1263
+
1264
+ Returns:
1265
+ float: The initial mass.
1266
+ """
1267
+ def get_interval(self) -> ostk.physics.time.Interval:
1268
+ """
1269
+ Get the interval.
1270
+
1271
+ Returns:
1272
+ Interval: The interval.
1273
+ """
1274
+ def get_propagation_duration(self) -> ostk.physics.time.Duration:
1275
+ """
1276
+ Get the propagation duration.
1277
+
1278
+ Returns:
1279
+ Duration: The propagation duration.
1280
+ """
1281
+ def get_states(self) -> list[State]:
1282
+ """
1283
+ Get the states.
1284
+
1285
+ Returns:
1286
+ list[State]: The states.
1287
+ """
1288
+ @property
1289
+ def execution_is_complete(self) -> bool:
1290
+ """
1291
+ Whether the execution is complete.
1292
+
1293
+ :type: bool
1294
+ """
1295
+ @property
1296
+ def segment_solutions(self) -> list[Segment.Solution]:
1297
+ """
1298
+ The solutions for each segment.
1299
+
1300
+ :type: list[SegmentSolution]
1301
+ """
1302
+ @staticmethod
1303
+ def _pybind11_conduit_v1_(*args, **kwargs):
1304
+ ...
1305
+ def __init__(self: typing.Sequence, segments: list[Segment] = [], numerical_solver: state.NumericalSolver = ..., dynamics: list[...] = [], maximum_propagation_duration: ostk.physics.time.Duration = ..., verbosity: int = 1) -> None:
1306
+ """
1307
+ Construct a new `Sequence` object.
1308
+
1309
+ Args:
1310
+ segments (list[Segment], optional): The segments.
1311
+ numerical_solver (NumericalSolver, optional): The numerical solver.
1312
+ dynamics (list[Dynamics], optional): The dynamics.
1313
+ maximum_propagation_duration (Duration, optional): The maximum propagation duration.
1314
+ verbosity (int, optional): The verbosity level.
1315
+
1316
+ Returns:
1317
+ Sequence: The new `Sequence` object.
1318
+ """
1319
+ def __repr__(self: typing.Sequence) -> str:
1320
+ ...
1321
+ def __str__(self: typing.Sequence) -> str:
1322
+ ...
1323
+ def add_coast_segment(self: typing.Sequence, event_condition: ...) -> None:
1324
+ """
1325
+ Add a coast segment.
1326
+
1327
+ Args:
1328
+ event_condition (EventCondition): The event condition.
1329
+ """
1330
+ def add_maneuver_segment(self: typing.Sequence, event_condition: ..., thruster_dynamics: ...) -> None:
1331
+ """
1332
+ Add a maneuver segment.
1333
+
1334
+ Args:
1335
+ event_condition (EventCondition): The event condition.
1336
+ thruster_dynamics (Thruster): The thruster dynamics.
1337
+ """
1338
+ def add_segment(self: typing.Sequence, segment: Segment) -> None:
1339
+ """
1340
+ Add a segment.
1341
+
1342
+ Args:
1343
+ segment (Segment): The segment.
1344
+ """
1345
+ def add_segments(self: typing.Sequence, segments: list[Segment]) -> None:
1346
+ """
1347
+ Add segments.
1348
+
1349
+ Args:
1350
+ segments (list[Segment]): The segments.
1351
+ """
1352
+ def get_dynamics(self: typing.Sequence) -> list[...]:
1353
+ """
1354
+ Get the dynamics.
1355
+
1356
+ Returns:
1357
+ list[Dynamics]: The dynamics.
1358
+ """
1359
+ def get_maximum_propagation_duration(self: typing.Sequence) -> ostk.physics.time.Duration:
1360
+ """
1361
+ Get the maximum propagation duration.
1362
+
1363
+ Returns:
1364
+ Duration: The maximum propagation duration.
1365
+ """
1366
+ def get_numerical_solver(self: typing.Sequence) -> state.NumericalSolver:
1367
+ """
1368
+ Get the numerical solver.
1369
+
1370
+ Returns:
1371
+ NumericalSolver: The numerical solver.
1372
+ """
1373
+ def get_segments(self: typing.Sequence) -> list[Segment]:
1374
+ """
1375
+ Get the segments.
1376
+
1377
+ Returns:
1378
+ list[Segment]: The segments.
1379
+ """
1380
+ def solve(self: typing.Sequence, state: State, repetition_count: int = 1) -> Sequence.Solution:
1381
+ """
1382
+ Solve the sequence.
1383
+
1384
+ Args:
1385
+ state (State): The state.
1386
+ repetition_count (int, optional): The repetition count. Defaults to 1.
1387
+
1388
+ Returns:
1389
+ SequenceSolution: The sequence solution.
1390
+ """
1391
+ def solve_to_condition(self: typing.Sequence, state: State, event_condition: ..., maximum_propagation_duration_limit: ostk.physics.time.Duration = ...) -> Sequence.Solution:
1392
+ """
1393
+ Solve the sequence until the event condition is met.
1394
+
1395
+ In the case that the event condition is not met due to maximum propagation duration limit,
1396
+ it will return the `SequenceSolution` with `executionIsComplete` set to `False`.
1397
+
1398
+ Args:
1399
+ state (State): The state.
1400
+ event_condition (EventCondition): The event condition.
1401
+ maximum_propagation_duration_limit (Duration, optional): The maximum propagation duration limit for the sequence. Defaults to 30 days.
1402
+
1403
+ Returns:
1404
+ SequenceSolution: The sequence solution.
1405
+ """
1406
+ class State:
1407
+ """
1408
+
1409
+ This class represents the physical state of an object.
1410
+
1411
+
1412
+ """
1413
+ __hash__: typing.ClassVar[None] = None
1414
+ @staticmethod
1415
+ def _pybind11_conduit_v1_(*args, **kwargs):
1416
+ ...
1417
+ @staticmethod
1418
+ def from_dict(data: dict) -> State:
1419
+ """
1420
+
1421
+ Create a State from a dictionary.
1422
+
1423
+ Note: Implicit assumption that ECEF = ITRF, and ECI = GCRF.
1424
+
1425
+ The dictionary must contain the following:
1426
+ - 'timestamp': The timestamp of the state.
1427
+ - 'r_ITRF_x'/'rx'/'rx_eci'/'rx_ecef': The x-coordinate of the position.
1428
+ - 'r_ITRF_y'/'ry'/'ry_eci'/'ry_ecef': The y-coordinate of the position.
1429
+ - 'r_ITRF_z'/'rz'/'rz_eci'/'rz_ecef': The z-coordinate of the position.
1430
+ - 'v_ITRF_x'/'vx'/'vx_eci'/'vx_ecef': The x-coordinate of the velocity.
1431
+ - 'v_ITRF_y'/'vy'/'vy_eci'/'vy_ecef': The y-coordinate of the velocity.
1432
+ - 'v_ITRF_z'/'vz'/'vz_eci'/'vz_ecef': The z-coordinate of the velocity.
1433
+ - 'frame': The frame of the state. Required if 'rx', 'ry', 'rz', 'vx', 'vy', 'vz' are provided.
1434
+ - 'q_B_ECI_x': The x-coordinate of the quaternion. Optional.
1435
+ - 'q_B_ECI_y': The y-coordinate of the quaternion. Optional.
1436
+ - 'q_B_ECI_z': The z-coordinate of the quaternion. Optional.
1437
+ - 'q_B_ECI_s': The s-coordinate of the quaternion. Optional.
1438
+ - 'w_B_ECI_in_B_x': The x-coordinate of the angular velocity. Optional.
1439
+ - 'w_B_ECI_in_B_y': The y-coordinate of the angular velocity. Optional.
1440
+ - 'w_B_ECI_in_B_z': The z-coordinate of the angular velocity. Optional.
1441
+ - 'drag_coefficient'/'cd': The drag coefficient. Optional.
1442
+ - 'cross_sectional_area'/'surface_area': The cross-sectional area. Optional.
1443
+ - 'mass': The mass. Optional.
1444
+
1445
+ Args:
1446
+ data (dict): The dictionary.
1447
+
1448
+ Returns:
1449
+ State: The State.
1450
+ """
1451
+ @staticmethod
1452
+ def template(frame: ostk.physics.coordinate.Frame, coordinate_subsets: list) -> type:
1453
+ """
1454
+
1455
+ Emit a custom class type for States. This is meta-programming syntactic sugar on top of the StateBuilder class.
1456
+
1457
+ StateType = State.template(frame, coordinate_subsets)
1458
+ state = StateType(instant, coordinates)
1459
+
1460
+ is equivalent to
1461
+
1462
+ state_builder = StateBuilder(frame, coordinate_subsets)
1463
+ state = state_builder.build(instant, coordinates)
1464
+ """
1465
+ @staticmethod
1466
+ def undefined() -> State:
1467
+ """
1468
+ Get an undefined state.
1469
+
1470
+ Returns:
1471
+ State: An undefined state.
1472
+ """
1473
+ def __add__(self, arg0: State) -> State:
1474
+ ...
1475
+ def __eq__(self, arg0: State) -> bool:
1476
+ ...
1477
+ @typing.overload
1478
+ def __init__(self, instant: ostk.physics.time.Instant, position: ostk.physics.coordinate.Position, velocity: ostk.physics.coordinate.Velocity) -> None:
1479
+ """
1480
+ Utility constructor for Position/Velocity only.
1481
+
1482
+ Args:
1483
+ instant (Instant): An instant
1484
+ position (Position): The cartesian position at the instant
1485
+ velocity (Velocity): The cartesian velocity at the instant
1486
+ """
1487
+ @typing.overload
1488
+ def __init__(self, instant: ostk.physics.time.Instant, position: ostk.physics.coordinate.Position, velocity: ostk.physics.coordinate.Velocity, attitude: ostk.mathematics.geometry.d3.transformation.rotation.Quaternion, angular_velocity: numpy.ndarray[numpy.float64[3, 1]], attitude_frame: ostk.physics.coordinate.Frame) -> None:
1489
+ """
1490
+ Utility constructor for Position/Velocity/Attitude/Angular velocity.
1491
+
1492
+ Args:
1493
+ instant (Instant): An instant
1494
+ position (Position): The cartesian position at the instant
1495
+ velocity (Velocity): The cartesian velocity at the instant
1496
+ attitude (Quaternion): The attitude at the instant, representing the rotation required to go from the attitude reference frame to the satellite body frame
1497
+ angular_velocity (numpy.ndarray): The angular velocity at the instant, representing the angular velocity of the satellite body frame with respect ot teh attitude frame, expressed in body frame
1498
+ attitude_frame (Frame): The attitude reference frame
1499
+ """
1500
+ @typing.overload
1501
+ def __init__(self, instant: ostk.physics.time.Instant, coordinates: numpy.ndarray[numpy.float64[m, 1]], frame: ostk.physics.coordinate.Frame, coordinate_broker: ...) -> None:
1502
+ """
1503
+ Constructor with a pre-defined Coordinates Broker.
1504
+
1505
+ Args:
1506
+ instant (Instant): An instant
1507
+ coordinates (numpy.ndarray): The coordinates at the instant in International System of Units
1508
+ frame (Frame): The reference frame in which the coordinates are referenced to and resolved in
1509
+ coordinate_broker (CoordinateBroker): The coordinate broker associated to the coordinates
1510
+ """
1511
+ @typing.overload
1512
+ def __init__(self, instant: ostk.physics.time.Instant, coordinates: numpy.ndarray[numpy.float64[m, 1]], frame: ostk.physics.coordinate.Frame, coordinate_subsets: list[...]) -> None:
1513
+ """
1514
+ Constructor with coordinate subsets.
1515
+
1516
+ Args:
1517
+ instant (Instant): An instant
1518
+ coordinates (numpy.ndarray): The coordinates at the instant in International System of Units
1519
+ frame (Frame): The reference frame in which the coordinates are referenced to and resolved in
1520
+ coordinate_subsets (CoordinateBroker): The coordinate subsets associated to the coordinates
1521
+ """
1522
+ @typing.overload
1523
+ def __init__(self, state: State) -> None:
1524
+ ...
1525
+ def __ne__(self, arg0: State) -> bool:
1526
+ ...
1527
+ def __repr__(self) -> str:
1528
+ ...
1529
+ def __str__(self) -> str:
1530
+ ...
1531
+ def __sub__(self, arg0: State) -> State:
1532
+ ...
1533
+ def extract_coordinate(self, coordinate_subset: ...) -> numpy.ndarray[numpy.float64[m, 1]]:
1534
+ """
1535
+ Extract the coordinates associated to a subset of the state.
1536
+
1537
+ Args:
1538
+ coordinate_subset (CoordinateSubset): The coordinate subset to extract.
1539
+
1540
+ Returns:
1541
+ np.array: The coordinates associated to the subset.
1542
+ """
1543
+ def extract_coordinates(self, coordinate_subsets: list[...]) -> numpy.ndarray[numpy.float64[m, 1]]:
1544
+ """
1545
+ Extract the coordinates associated to a set of subsets of the state.
1546
+
1547
+ Args:
1548
+ coordinate_subsets (list[CoordinateSubset]): The coordinate subsets to extract.
1549
+
1550
+ Returns:
1551
+ np.array: The coordinates associated to the subsets.
1552
+ """
1553
+ def get_angular_velocity(self) -> numpy.ndarray[numpy.float64[3, 1]]:
1554
+ """
1555
+ Get the angular velocity of the state.
1556
+
1557
+ Returns:
1558
+ np.array: The angular velocity of the state.
1559
+ """
1560
+ def get_attitude(self) -> ostk.mathematics.geometry.d3.transformation.rotation.Quaternion:
1561
+ """
1562
+ Get the attitude of the state.
1563
+
1564
+ Returns:
1565
+ Quaternion: The attitude of the state.
1566
+ """
1567
+ def get_coordinate_subsets(self) -> list[...]:
1568
+ """
1569
+ Get the coordinate subsets associated to the state.
1570
+
1571
+ Returns:
1572
+ list[CoordinateSubset]: The coordinate subsets associated to the state.
1573
+ """
1574
+ def get_coordinates(self) -> numpy.ndarray[numpy.float64[m, 1]]:
1575
+ """
1576
+ Get the coordinates of the state.
1577
+
1578
+ Returns:
1579
+ np.array: The coordinates of the state.
1580
+ """
1581
+ def get_frame(self) -> ostk.physics.coordinate.Frame:
1582
+ """
1583
+ Get the reference frame of the state.
1584
+
1585
+ Returns:
1586
+ Frame: The reference frame of the state.
1587
+ """
1588
+ def get_instant(self) -> ostk.physics.time.Instant:
1589
+ """
1590
+ Get the instant of the state.
1591
+
1592
+ Returns:
1593
+ Instant: The instant of the state.
1594
+ """
1595
+ def get_position(self) -> ostk.physics.coordinate.Position:
1596
+ """
1597
+ Get the position of the state.
1598
+
1599
+ Returns:
1600
+ Position: The position of the state.
1601
+ """
1602
+ def get_size(self) -> int:
1603
+ """
1604
+ Get the size of the state.
1605
+
1606
+ Returns:
1607
+ int: The size of the state.
1608
+ """
1609
+ def get_velocity(self) -> ostk.physics.coordinate.Velocity:
1610
+ """
1611
+ Get the velocity of the state.
1612
+
1613
+ Returns:
1614
+ Velocity: The velocity of the state.
1615
+ """
1616
+ def has_subset(self, subset: ...) -> bool:
1617
+ """
1618
+ Check if the state has a given subset.
1619
+
1620
+ Args:
1621
+ subset (CoordinateSubset): The subset to check.
1622
+
1623
+ Returns:
1624
+ bool: True if the state has the subset, False otherwise.
1625
+ """
1626
+ def in_frame(self, frame: ostk.physics.coordinate.Frame) -> State:
1627
+ """
1628
+ Transform the state to the provided reference frame.
1629
+
1630
+ Args:
1631
+ frame (Frame): The reference frame to transform to.
1632
+
1633
+ Returns:
1634
+ State: The transformed state.
1635
+ """
1636
+ def is_defined(self) -> bool:
1637
+ """
1638
+ Check if the state is defined.
1639
+
1640
+ Returns:
1641
+ bool: True if the state is defined, False otherwise.
1642
+ """
1643
+ class StateBuilder:
1644
+ """
1645
+
1646
+ This class makes it convenient to build a `State` object.
1647
+
1648
+
1649
+ """
1650
+ __hash__: typing.ClassVar[None] = None
1651
+ @staticmethod
1652
+ def _pybind11_conduit_v1_(*args, **kwargs):
1653
+ ...
1654
+ @staticmethod
1655
+ def undefined() -> StateBuilder:
1656
+ """
1657
+ Get an undefined `StateBuilder`.
1658
+
1659
+ Returns:
1660
+ StateBuilder: The undefined `StateBuilder`.
1661
+ """
1662
+ def __add__(self, arg0: state.CoordinateSubset) -> StateBuilder:
1663
+ """
1664
+ Add a coordinate subset to the `StateBuilder`.
1665
+
1666
+ Arguments:
1667
+ coordinate_subsets (CoordinateSubset): The coordinate subset to add.
1668
+
1669
+ Returns:
1670
+ StateBuilder: The `StateBuilder` with the added coordinate subset.
1671
+ """
1672
+ def __eq__(self, arg0: StateBuilder) -> bool:
1673
+ """
1674
+ Check if two `StateBuilder` objects are equal.
1675
+
1676
+ Returns:
1677
+ bool: True if the two `StateBuilder` objects are equal, False otherwise.
1678
+ """
1679
+ @typing.overload
1680
+ def __init__(self, frame: ostk.physics.coordinate.Frame, coordinate_subsets: list[state.CoordinateSubset]) -> None:
1681
+ """
1682
+ Construct a new `StateBuilder` object.
1683
+
1684
+ Arguments:
1685
+ frame (Frame): The reference frame.
1686
+ coordinate_subsets list[CoordinateSubset]: The coordinate subsets.
1687
+
1688
+ Returns:
1689
+ StateBuilder
1690
+ """
1691
+ @typing.overload
1692
+ def __init__(self, frame: ostk.physics.coordinate.Frame, coordinate_broker: state.CoordinateBroker) -> None:
1693
+ """
1694
+ Construct a new `StateBuilder` object.
1695
+
1696
+ Arguments:
1697
+ frame (Frame): The reference frame.
1698
+ coordinate_broker (CoordinateBroker): The coordinate broker.
1699
+
1700
+ Returns:
1701
+ StateBuilder: The new `StateBuilder` object.
1702
+ """
1703
+ @typing.overload
1704
+ def __init__(self, state: State) -> None:
1705
+ """
1706
+ Construct a new `StateBuilder` object.
1707
+
1708
+ Arguments:
1709
+ state (State): The state.
1710
+
1711
+ Returns:
1712
+ StateBuilder: The new `StateBuilder` object.
1713
+ """
1714
+ def __ne__(self, arg0: StateBuilder) -> bool:
1715
+ """
1716
+ Check if two `StateBuilder` objects are not equal.
1717
+
1718
+ Returns:
1719
+ bool: True if the two `StateBuilder` objects are not equal, False otherwise.
1720
+ """
1721
+ def __repr__(self) -> str:
1722
+ ...
1723
+ def __str__(self) -> str:
1724
+ ...
1725
+ def __sub__(self, arg0: state.CoordinateSubset) -> StateBuilder:
1726
+ """
1727
+ Remove a coordinate subset from the `StateBuilder`.
1728
+
1729
+ Arguments:
1730
+ coordinate_subset (CoordinateSubset): The coordinate subset to remove.
1731
+
1732
+ Returns:
1733
+ StateBuilder: The `StateBuilder` with the removed coordinate subset.
1734
+ """
1735
+ def access_coordinate_broker(self) -> state.CoordinateBroker:
1736
+ """
1737
+ Access the coordinate broker of the `StateBuilder`.
1738
+
1739
+ Returns:
1740
+ CoordinateBroker: The coordinate broker of the `StateBuilder`.
1741
+ """
1742
+ def build(self, instant: ostk.physics.time.Instant, coordinates: numpy.ndarray[numpy.float64[m, 1]]) -> State:
1743
+ """
1744
+ Build a `State` object from the `StateBuilder`.
1745
+
1746
+ Arguments:
1747
+ instant (Instant): The instant of the state.
1748
+ coordinates (VectorXd): The coordinates of the state.
1749
+
1750
+ Returns:
1751
+ State: The `State` object built from the `StateBuilder`.
1752
+ """
1753
+ def expand(self, state: State, default_state: State) -> State:
1754
+ """
1755
+ Expand a `State` object to the `StateBuilder`.
1756
+
1757
+ Arguments:
1758
+ state (State): The `State` object to expand.
1759
+ default_state (State): The default `State` object.
1760
+
1761
+ Returns:
1762
+ StateBuilder: The `StateBuilder` object expanded from the `State`.
1763
+ """
1764
+ def get_coordinate_subsets(self) -> list[state.CoordinateSubset]:
1765
+ """
1766
+ Get the coordinate subsets of the `StateBuilder`.
1767
+
1768
+ Returns:
1769
+ Array<Shared<const CoordinateSubset>>: The coordinate subsets of the `StateBuilder`.
1770
+ """
1771
+ def get_frame(self) -> ostk.physics.coordinate.Frame:
1772
+ """
1773
+ Get the reference frame of the `StateBuilder`.
1774
+
1775
+ Returns:
1776
+ Frame: The reference frame of the `StateBuilder`.
1777
+ """
1778
+ def is_defined(self) -> bool:
1779
+ """
1780
+ Check if the `StateBuilder` is defined.
1781
+
1782
+ Returns:
1783
+ bool: True if the `StateBuilder` is defined, False otherwise.
1784
+ """
1785
+ def reduce(self, state: State) -> State:
1786
+ """
1787
+ Reduce a `State` object to the `StateBuilder`.
1788
+
1789
+ Arguments:
1790
+ state (State): The `State` object to reduce.
1791
+
1792
+ Returns:
1793
+ StateBuilder: The `StateBuilder` object reduced from the `State`.
1794
+ """