open-space-toolkit-astrodynamics 13.0.2__py39-none-manylinux2014_x86_64.whl → 14.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 (54) hide show
  1. {open_space_toolkit_astrodynamics-13.0.2.dist-info → open_space_toolkit_astrodynamics-14.0.0.dist-info}/METADATA +6 -6
  2. {open_space_toolkit_astrodynamics-13.0.2.dist-info → open_space_toolkit_astrodynamics-14.0.0.dist-info}/RECORD +54 -22
  3. {open_space_toolkit_astrodynamics-13.0.2.dist-info → open_space_toolkit_astrodynamics-14.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.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 +65 -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/orbit/models/kepler/test_coe.py +21 -0
  36. ostk/astrodynamics/test/trajectory/state/coordinate_subset/test_cartesian_acceleration.py +136 -0
  37. ostk/astrodynamics/test/trajectory/state/test_coordinate_subset.py +9 -0
  38. ostk/astrodynamics/test/trajectory/test_local_orbital_frame_factory.py +21 -13
  39. ostk/astrodynamics/test/trajectory/test_orbit.py +9 -0
  40. ostk/astrodynamics/test/trajectory/test_propagator.py +21 -27
  41. ostk/astrodynamics/test/trajectory/test_segment.py +0 -1
  42. ostk/astrodynamics/trajectory/__init__.pyi +1796 -0
  43. ostk/astrodynamics/trajectory/orbit/__init__.pyi +361 -0
  44. ostk/astrodynamics/trajectory/orbit/message/__init__.pyi +3 -0
  45. ostk/astrodynamics/trajectory/orbit/message/spacex.pyi +273 -0
  46. ostk/astrodynamics/trajectory/orbit/model/__init__.pyi +517 -0
  47. ostk/astrodynamics/trajectory/orbit/model/brouwerLyddaneMean.pyi +127 -0
  48. ostk/astrodynamics/trajectory/orbit/model/kepler.pyi +581 -0
  49. ostk/astrodynamics/trajectory/orbit/model/sgp4.pyi +333 -0
  50. ostk/astrodynamics/trajectory/state/__init__.pyi +406 -0
  51. ostk/astrodynamics/trajectory/state/coordinate_subset.pyi +223 -0
  52. ostk/astrodynamics/viewer.py +32 -0
  53. {open_space_toolkit_astrodynamics-13.0.2.dist-info → open_space_toolkit_astrodynamics-14.0.0.dist-info}/top_level.txt +0 -0
  54. {open_space_toolkit_astrodynamics-13.0.2.dist-info → open_space_toolkit_astrodynamics-14.0.0.dist-info}/zip-safe +0 -0
@@ -0,0 +1,785 @@
1
+ from __future__ import annotations
2
+ import numpy
3
+ from ostk import astrodynamics as OpenSpaceToolkitAstrodynamicsPy
4
+ from ostk.astrodynamics.trajectory import State as PyState
5
+ from ostk import core as OpenSpaceToolkitCorePy
6
+ from ostk.core import container
7
+ from ostk.core import filesystem
8
+ from ostk.core import type
9
+ import ostk.core.type
10
+ from ostk import io as OpenSpaceToolkitIOPy
11
+ from ostk.io import URL
12
+ from ostk.io import ip
13
+ from ostk import mathematics as OpenSpaceToolkitMathematicsPy
14
+ from ostk.mathematics import curve_fitting
15
+ from ostk.mathematics import geometry
16
+ from ostk.mathematics import object
17
+ from ostk import physics as OpenSpaceToolkitPhysicsPy
18
+ import ostk.physics
19
+ from ostk.physics import Environment
20
+ from ostk.physics import Manager
21
+ from ostk.physics import Unit
22
+ from ostk.physics import coordinate
23
+ import ostk.physics.coordinate
24
+ import ostk.physics.coordinate.spherical
25
+ from ostk.physics import environment
26
+ import ostk.physics.environment.object
27
+ import ostk.physics.time
28
+ from ostk.physics import time
29
+ import ostk.physics.unit
30
+ from ostk.physics import unit
31
+ import typing
32
+ from . import access
33
+ from . import conjunction
34
+ from . import converters
35
+ from . import data
36
+ from . import dynamics
37
+ from . import event_condition
38
+ from . import flight
39
+ from . import guidance_law
40
+ from . import pytrajectory
41
+ from . import solver
42
+ from . import trajectory
43
+ __all__ = ['Access', 'Dynamics', 'Environment', 'EventCondition', 'GuidanceLaw', 'Manager', 'OpenSpaceToolkitAstrodynamicsPy', 'OpenSpaceToolkitCorePy', 'OpenSpaceToolkitIOPy', 'OpenSpaceToolkitMathematicsPy', 'OpenSpaceToolkitPhysicsPy', 'PyState', 'RootSolver', 'Trajectory', 'URL', 'Unit', 'access', 'conjunction', 'container', 'converters', 'coordinate', 'curve_fitting', 'data', 'dynamics', 'environment', 'event_condition', 'filesystem', 'flight', 'geometry', 'guidance_law', 'ip', 'object', 'pytrajectory', 'solver', 'time', 'trajectory', 'type', 'unit']
44
+ class Access:
45
+ """
46
+
47
+ Object-to-object visibility
48
+
49
+ This class encapsulates the concept of visibility access between two trajectories.
50
+
51
+
52
+ """
53
+ class Type:
54
+ """
55
+
56
+ Access type.
57
+
58
+
59
+ Members:
60
+
61
+ Undefined : Undefined
62
+
63
+ Complete : Complete
64
+
65
+ Partial : Partial
66
+ """
67
+ Complete: typing.ClassVar[Access.Type] # value = <Type.Complete: 1>
68
+ Partial: typing.ClassVar[Access.Type] # value = <Type.Partial: 2>
69
+ Undefined: typing.ClassVar[Access.Type] # value = <Type.Undefined: 0>
70
+ __members__: typing.ClassVar[dict[str, Access.Type]] # value = {'Undefined': <Type.Undefined: 0>, 'Complete': <Type.Complete: 1>, 'Partial': <Type.Partial: 2>}
71
+ @staticmethod
72
+ def _pybind11_conduit_v1_(*args, **kwargs):
73
+ ...
74
+ def __eq__(self, other: typing.Any) -> bool:
75
+ ...
76
+ def __getstate__(self) -> int:
77
+ ...
78
+ def __hash__(self) -> int:
79
+ ...
80
+ def __index__(self) -> int:
81
+ ...
82
+ def __init__(self, value: int) -> None:
83
+ ...
84
+ def __int__(self) -> int:
85
+ ...
86
+ def __ne__(self, other: typing.Any) -> bool:
87
+ ...
88
+ def __repr__(self) -> str:
89
+ ...
90
+ def __setstate__(self, state: int) -> None:
91
+ ...
92
+ def __str__(self) -> str:
93
+ ...
94
+ @property
95
+ def name(self) -> str:
96
+ ...
97
+ @property
98
+ def value(self) -> int:
99
+ ...
100
+ __hash__: typing.ClassVar[None] = None
101
+ @staticmethod
102
+ def _pybind11_conduit_v1_(*args, **kwargs):
103
+ ...
104
+ @staticmethod
105
+ def string_from_type(type: Access.Type) -> ostk.core.type.String:
106
+ """
107
+ Returns a string representation of the Access type.
108
+
109
+ Args:
110
+ type (Access.Type): The type of the access.
111
+
112
+ Returns:
113
+ str: A string representation of the type.
114
+ """
115
+ @staticmethod
116
+ def undefined() -> Access:
117
+ """
118
+ Creates an undefined Access object.
119
+
120
+ Returns:
121
+ Access: An undefined Access object.
122
+ """
123
+ def __eq__(self, arg0: Access) -> bool:
124
+ ...
125
+ def __init__(self, type: Access.Type, acquisition_of_signal: ostk.physics.time.Instant, time_of_closest_approach: ostk.physics.time.Instant, loss_of_signal: ostk.physics.time.Instant, max_elevation: ostk.physics.unit.Angle) -> None:
126
+ """
127
+ Constructs an Access object.
128
+
129
+ Args:
130
+ type (Access.Type): Type of the access (Complete, Partial, Undefined)
131
+ acquisition_of_signal (Instant): The instant when the signal is first acquired
132
+ time_of_closest_approach (Instant): The time of closest approach between objects
133
+ loss_of_signal (Instant): The instant when the signal is lost
134
+ max_elevation (Angle): The maximum elevation angle during the access
135
+ """
136
+ def __ne__(self, arg0: Access) -> bool:
137
+ ...
138
+ def __repr__(self) -> str:
139
+ ...
140
+ def __str__(self) -> str:
141
+ ...
142
+ def get_acquisition_of_signal(self) -> ostk.physics.time.Instant:
143
+ """
144
+ Get the acquisition of signal of the access.
145
+
146
+ Returns:
147
+ Instant: The acquisition of signal of the access.
148
+ """
149
+ def get_duration(self) -> ostk.physics.time.Duration:
150
+ """
151
+ Get the duration of the access.
152
+
153
+ Returns:
154
+ Duration: The duration of the access.
155
+ """
156
+ def get_interval(self) -> ostk.physics.time.Interval:
157
+ """
158
+ Get the interval of the access.
159
+
160
+ Returns:
161
+ Interval: The interval of the access.
162
+ """
163
+ def get_loss_of_signal(self) -> ostk.physics.time.Instant:
164
+ """
165
+ Get the loss of signal of the access.
166
+
167
+ Returns:
168
+ Instant: The loss of signal of the access.
169
+ """
170
+ def get_max_elevation(self) -> ostk.physics.unit.Angle:
171
+ """
172
+ Get the maximum elevation of the access.
173
+
174
+ Returns:
175
+ Angle: The maximum elevation of the access.
176
+ """
177
+ def get_time_of_closest_approach(self) -> ostk.physics.time.Instant:
178
+ """
179
+ Get the time of closest approach of the access.
180
+
181
+ Returns:
182
+ Instant: The time of closest approach of the access.
183
+ """
184
+ def get_type(self) -> Access.Type:
185
+ """
186
+ Get the type of the access.
187
+
188
+ Returns:
189
+ Access.Type: The type of the access.
190
+ """
191
+ def is_complete(self) -> bool:
192
+ """
193
+ Check if the access is complete.
194
+
195
+ Returns:
196
+ bool: True if complete, False otherwise.
197
+ """
198
+ def is_defined(self) -> bool:
199
+ """
200
+ Check if the Access object is defined.
201
+
202
+ Returns:
203
+ bool: True if defined, False otherwise.
204
+ """
205
+ class Dynamics:
206
+ """
207
+
208
+ Abstract interface class for dynamics.
209
+
210
+ Can inherit and provide the virtual methods:
211
+ - is_defined
212
+ - get_read_coordinate_subsets
213
+ - get_write_coordinate_subsets
214
+ - compute_contribution
215
+ to create a custom dynamics class.
216
+
217
+
218
+ """
219
+ @staticmethod
220
+ def _pybind11_conduit_v1_(*args, **kwargs):
221
+ ...
222
+ @staticmethod
223
+ def from_environment(environment: ostk.physics.Environment) -> list[Dynamics]:
224
+ """
225
+ Create a list of `Dynamics` objects from an environment.
226
+
227
+ Args:
228
+ environment (Environment): The environment to create the dynamics from.
229
+
230
+ Returns:
231
+ dynamics (list[Dynamics]): The list of `Dynamics` objects created from the environment.
232
+ """
233
+ def __init__(self, name: ostk.core.type.String) -> None:
234
+ """
235
+ Construct a new `Dynamics` object.
236
+
237
+ Args:
238
+ name (str): The name of the dynamics.
239
+
240
+ Returns:
241
+ dynamics (Dynamics): The new `Dynamics` object.
242
+ """
243
+ def __repr__(self) -> str:
244
+ ...
245
+ def __str__(self) -> str:
246
+ ...
247
+ 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]]:
248
+ """
249
+ Compute the contribution of the dynamics at a given instant.
250
+
251
+ Args:
252
+ instant (Instant): The instant at which to compute the contribution.
253
+ state_vector (numpy.ndarray): The state vector at the instant.
254
+ frame (Frame): The reference frame in which to compute the contribution.
255
+
256
+ Returns:
257
+ contribution (numpy.ndarray): The contribution of the dynamics at the instant.
258
+ """
259
+ def get_name(self) -> ostk.core.type.String:
260
+ """
261
+ Get the name of the dynamics.
262
+
263
+ Returns:
264
+ name (str): The name of the dynamics.
265
+ """
266
+ def get_read_coordinate_subsets(self) -> list[trajectory.state.CoordinateSubset]:
267
+ """
268
+ Get the coordinate subsets that the dynamics reads.
269
+
270
+ Returns:
271
+ read_coordinate_subsets (Array<CoordinateSubset>): The coordinate subsets that the dynamics reads.
272
+ """
273
+ def get_write_coordinate_subsets(self) -> list[trajectory.state.CoordinateSubset]:
274
+ """
275
+ Get the coordinate subsets that the dynamics writes.
276
+
277
+ Returns:
278
+ write_coordinate_subsets (Array<CoordinateSubset>): The coordinate subsets that the dynamics writes.
279
+ """
280
+ def is_defined(self) -> bool:
281
+ """
282
+ Check if the dynamics is defined.
283
+
284
+ Returns:
285
+ is_defined (bool): True if the dynamics is defined, False otherwise.
286
+ """
287
+ class EventCondition:
288
+ """
289
+
290
+ An Event Condition defines a criterion that can be evaluated based on a current/previous state vectors and times
291
+
292
+
293
+ """
294
+ class Target:
295
+ """
296
+
297
+ The Event Condition Target.
298
+
299
+
300
+ """
301
+ class Type:
302
+ """
303
+
304
+ Event Condition Target type.
305
+
306
+
307
+ Members:
308
+
309
+ Absolute : Absolute
310
+
311
+ Relative : Relative to the provided State.
312
+ """
313
+ Absolute: typing.ClassVar[EventCondition.Target.Type] # value = <Type.Absolute: 0>
314
+ Relative: typing.ClassVar[EventCondition.Target.Type] # value = <Type.Relative: 1>
315
+ __members__: typing.ClassVar[dict[str, EventCondition.Target.Type]] # value = {'Absolute': <Type.Absolute: 0>, 'Relative': <Type.Relative: 1>}
316
+ @staticmethod
317
+ def _pybind11_conduit_v1_(*args, **kwargs):
318
+ ...
319
+ def __eq__(self, other: typing.Any) -> bool:
320
+ ...
321
+ def __getstate__(self) -> int:
322
+ ...
323
+ def __hash__(self) -> int:
324
+ ...
325
+ def __index__(self) -> int:
326
+ ...
327
+ def __init__(self, value: int) -> None:
328
+ ...
329
+ def __int__(self) -> int:
330
+ ...
331
+ def __ne__(self, other: typing.Any) -> bool:
332
+ ...
333
+ def __repr__(self) -> str:
334
+ ...
335
+ def __setstate__(self, state: int) -> None:
336
+ ...
337
+ def __str__(self) -> str:
338
+ ...
339
+ @property
340
+ def name(self) -> str:
341
+ ...
342
+ @property
343
+ def value(self) -> int:
344
+ ...
345
+ __hash__: typing.ClassVar[None] = None
346
+ @staticmethod
347
+ def StringFromType(arg0: EventCondition.Target.Type) -> ostk.core.type.String:
348
+ """
349
+ Enum as a string
350
+
351
+ Args:
352
+ type (EventConditionTarget.Type): The type of the target.
353
+
354
+ Returns:
355
+ string (str): Name of the enum as a string.
356
+ """
357
+ @staticmethod
358
+ def _pybind11_conduit_v1_(*args, **kwargs):
359
+ ...
360
+ def __eq__(self, arg0: EventCondition.Target) -> bool:
361
+ ...
362
+ @typing.overload
363
+ def __init__(self, value: ostk.core.type.Real, type: EventCondition.Target.Type = ...) -> None:
364
+ """
365
+ Construct a new `EventConditionTarget` object.
366
+
367
+ Args:
368
+ value (float): The value of the target.
369
+ type (EventConditionTarget.Type): The type of the target. Defaults to EventConditionTarget.Type.Absolute.
370
+
371
+ Returns:
372
+ event_condition_target (EventConditionTarget): The new `EventConditionTarget` object.
373
+ """
374
+ @typing.overload
375
+ def __init__(self, value: ostk.physics.unit.Length, type: EventCondition.Target.Type = ...) -> None:
376
+ """
377
+ Construct a new `EventConditionTarget` object.
378
+
379
+ Args:
380
+ length (Length): The value of the target as a `Length`.
381
+ type (EventConditionTarget.Type): The type of the target. Defaults to EventConditionTarget.Type.Absolute.
382
+
383
+ Returns:
384
+ event_condition_target (EventConditionTarget): The new `EventConditionTarget` object.
385
+ """
386
+ @typing.overload
387
+ def __init__(self, value: ostk.physics.unit.Angle, type: EventCondition.Target.Type = ...) -> None:
388
+ """
389
+ Construct a new `EventConditionTarget` object.
390
+
391
+ Args:
392
+ angle (Angle): The value of the target as an `Angle`.
393
+ type (EventConditionTarget.Type): The type of the target. Defaults to EventConditionTarget.Type.Absolute.
394
+
395
+ Returns:
396
+ event_condition_target (EventConditionTarget): The new `EventConditionTarget` object.
397
+ """
398
+ def __ne__(self, arg0: EventCondition.Target) -> bool:
399
+ ...
400
+ @property
401
+ def type(self) -> EventCondition.Target.Type:
402
+ """
403
+ The type of the target.
404
+
405
+ :type: Type
406
+ """
407
+ @property
408
+ def value(self) -> ostk.core.type.Real:
409
+ """
410
+ The value of the target.
411
+
412
+ :type: float
413
+ """
414
+ @property
415
+ def value_offset(self) -> ostk.core.type.Real:
416
+ """
417
+ The value offset of the target. Used for Relative targets.
418
+
419
+ :type: float
420
+ """
421
+ @staticmethod
422
+ def _pybind11_conduit_v1_(*args, **kwargs):
423
+ ...
424
+ @typing.overload
425
+ def __init__(self, name: ostk.core.type.String, evaluator: typing.Callable[[trajectory.State], ostk.core.type.Real], target: EventCondition.Target) -> None:
426
+ """
427
+ Construct a new `EventCondition` object.
428
+
429
+ Args:
430
+ name (str): The name of the event condition.
431
+ evaluator (callable): The evaluator that accepts a `State` and returns a float value.
432
+ target (EventConditionTarget): The target of the event condition.
433
+
434
+ Returns:
435
+ event_condition (EventCondition): The new `EventCondition` object.
436
+ """
437
+ @typing.overload
438
+ def __init__(self, name: ostk.core.type.String, evaluator: typing.Callable[[trajectory.State], ostk.core.type.Real], target_value: ostk.core.type.Real) -> None:
439
+ """
440
+ Construct a new `EventCondition` object.
441
+
442
+ Args:
443
+ name (str): The name of the event condition.
444
+ evaluator (callable): The evaluator that accepts a `State` and returns a float value.
445
+ target_value (float): The target of the event condition.
446
+
447
+ Returns:
448
+ event_condition (EventCondition): The new `EventCondition` object.
449
+ """
450
+ def __repr__(self) -> str:
451
+ ...
452
+ def __str__(self) -> str:
453
+ ...
454
+ def get_evaluator(self) -> typing.Callable[[trajectory.State], ostk.core.type.Real]:
455
+ """
456
+ Get the evaluator of the event condition.
457
+
458
+ Returns:
459
+ evaluator (str): The evaluator of the event condition.
460
+ """
461
+ def get_name(self) -> ostk.core.type.String:
462
+ """
463
+ Get the name of the event condition.
464
+
465
+ Returns:
466
+ name (str): The name of the event condition.
467
+ """
468
+ def get_target(self) -> EventCondition.Target:
469
+ """
470
+ Get the target of the event condition.
471
+
472
+ Returns:
473
+ target (EventConditionTarget): The target of the event condition.
474
+ """
475
+ def is_satisfied(self, current_state: trajectory.State, previous_state: trajectory.State) -> bool:
476
+ """
477
+ Check if the event condition is satisfied.
478
+
479
+ Args:
480
+ current_state (State): The current state.
481
+ previous_state (State): The previous state.
482
+
483
+ Returns:
484
+ is_satisfied (bool): True if the event condition is satisfied, False otherwise.
485
+ """
486
+ def update_target(self, state: trajectory.State) -> None:
487
+ """
488
+ Update the target value if the event condition is relative.
489
+
490
+ Args:
491
+ state (State): The state to calculate the relative target from.
492
+ """
493
+ class GuidanceLaw:
494
+ """
495
+
496
+ Guidance law base class.
497
+
498
+ A guidance law is a mathematical model that computes the acceleration
499
+ based on specific guidance law logic.
500
+
501
+
502
+ """
503
+ @staticmethod
504
+ def _pybind11_conduit_v1_(*args, **kwargs):
505
+ ...
506
+ def __init__(self, name: ostk.core.type.String) -> None:
507
+ """
508
+ Constructor.
509
+
510
+ Args:
511
+ name (str): The name of the guidance law.
512
+ """
513
+ def calculate_thrust_acceleration_at(self, instant: ostk.physics.time.Instant, position_coordinates: numpy.ndarray[numpy.float64[3, 1]], velocity_coordinates: numpy.ndarray[numpy.float64[3, 1]], thrust_acceleration: ostk.core.type.Real, output_frame: ostk.physics.coordinate.Frame) -> numpy.ndarray[numpy.float64[3, 1]]:
514
+ """
515
+ Compute the acceleration.
516
+
517
+ Args:
518
+ instant (Instant): Instant of computation.
519
+ position_coordinates (np.array): Position coordinates.
520
+ velocity_coordinates (np.array): Velocity coordinates.
521
+ thrust_acceleration (float): Thrust acceleration magnitude.
522
+ output_frame (Frame): The frame the acceleration is expressed in.
523
+
524
+ Returns:
525
+ np.array: The acceleration.
526
+ """
527
+ def get_name(self) -> ostk.core.type.String:
528
+ """
529
+ Get the name of the guidance law.
530
+
531
+ Returns:
532
+ str: The name of the guidance law.
533
+ """
534
+ class RootSolver:
535
+ """
536
+
537
+ A root solver is an algorithm for finding a zero-crossing of a function.
538
+
539
+
540
+ """
541
+ class Solution:
542
+ """
543
+
544
+ A root solver solution.
545
+
546
+
547
+ """
548
+ @staticmethod
549
+ def _pybind11_conduit_v1_(*args, **kwargs):
550
+ ...
551
+ @property
552
+ def has_converged(self) -> bool:
553
+ """
554
+ Whether the root solver has converged.
555
+
556
+ Type:
557
+ bool
558
+ """
559
+ @has_converged.setter
560
+ def has_converged(self, arg0: bool) -> None:
561
+ ...
562
+ @property
563
+ def iteration_count(self) -> int:
564
+ """
565
+ The number of iterations required to find the root.
566
+
567
+ Type:
568
+ int
569
+ """
570
+ @iteration_count.setter
571
+ def iteration_count(self, arg0: int) -> None:
572
+ ...
573
+ @property
574
+ def root(self) -> ostk.core.type.Real:
575
+ """
576
+ The root of the function.
577
+
578
+ Type:
579
+ float
580
+ """
581
+ @root.setter
582
+ def root(self, arg0: ostk.core.type.Real) -> None:
583
+ ...
584
+ @staticmethod
585
+ def _pybind11_conduit_v1_(*args, **kwargs):
586
+ ...
587
+ @staticmethod
588
+ def default() -> RootSolver:
589
+ """
590
+ Return the default root solver.
591
+
592
+ Returns:
593
+ RootSolver: The default root solver.
594
+ """
595
+ def __init__(self, maximum_iteration_count: int, tolerance: ostk.core.type.Real) -> None:
596
+ """
597
+ Constructor.
598
+
599
+ Args:
600
+ int: The maximum number of iterations allowed.
601
+ float: The tolerance of the root solver.
602
+ """
603
+ def __repr__(self) -> str:
604
+ ...
605
+ def __str__(self) -> str:
606
+ ...
607
+ def bisection(self, function: typing.Callable[[float], float], lower_bound: ostk.core.type.Real, upper_bound: ostk.core.type.Real) -> RootSolver.Solution:
608
+ """
609
+ Solve the root of a function using the bisection method.
610
+
611
+ Args:
612
+ function (callable): The function to solve.
613
+ lower_bound (float): The lower bound of the root.
614
+ upper_bound (float): The upper bound of the root.
615
+
616
+ Returns:
617
+ RootSolverSolution: The solution to the root.
618
+ """
619
+ def bracket_and_solve(self, function: typing.Callable[[float], float], initial_guess: ostk.core.type.Real, is_rising: bool) -> RootSolver.Solution:
620
+ """
621
+ Bracket and solve the root of a function.
622
+
623
+ Args:
624
+ function (callable): The function to solve.
625
+ initial_guess (float): The initial guess for the root.
626
+ is_rising (bool): Whether the function is rising.
627
+
628
+ Returns:
629
+ RootSolverSolution: The solution to the root.
630
+ """
631
+ def get_maximum_iteration_count(self) -> int:
632
+ """
633
+ Get the maximum number of iterations allowed.
634
+
635
+ Returns:
636
+ int: The maximum number of iterations allowed.
637
+ """
638
+ def get_tolerance(self) -> ostk.core.type.Real:
639
+ """
640
+ Get the tolerance of the root solver.
641
+
642
+ Returns:
643
+ float: The tolerance of the root solver.
644
+ """
645
+ def solve(self, function: typing.Callable[[float], float], lower_bound: ostk.core.type.Real, upper_bound: ostk.core.type.Real) -> RootSolver.Solution:
646
+ """
647
+ Solve the root of a function.
648
+
649
+ Args:
650
+ function (callable): The function to solve.
651
+ lower_bound (float): The lower bound of the root.
652
+ upper_bound (float): The upper bound of the root.
653
+
654
+ Returns:
655
+ RootSolverSolution: The solution to the root.
656
+ """
657
+ class Trajectory:
658
+ """
659
+
660
+ Path followed by an object through space as a function of time.
661
+
662
+
663
+ """
664
+ __hash__: typing.ClassVar[None] = None
665
+ @staticmethod
666
+ def _pybind11_conduit_v1_(*args, **kwargs):
667
+ ...
668
+ @staticmethod
669
+ @typing.overload
670
+ def ground_strip(start_lla: ostk.physics.coordinate.spherical.LLA, end_lla: ostk.physics.coordinate.spherical.LLA, ground_speed: ostk.physics.unit.Derived, start_instant: ostk.physics.time.Instant, celestial_object: ostk.physics.environment.object.Celestial = ..., step_size: ostk.physics.time.Duration = ...) -> Trajectory:
671
+ """
672
+ Create a `Trajectory` object representing a ground strip.
673
+ Computes the duration as the geodetic distance / ground speed.
674
+ Instants are generated at a 1 second interval.
675
+
676
+ Args:
677
+ start_lla (LLA): The start LLA.
678
+ end_lla (LLA): The end LLA.
679
+ ground_speed (Derived): The ground speed.
680
+ start_instant (Instant): The start instant.
681
+ celestial_object (Celestial): The celestial object. Defaults to Earth.WGS84().
682
+ step_size (Duration): The step size. Defaults to 1 second.
683
+
684
+ Returns:
685
+ Trajectory: The `Trajectory` object representing the ground strip.
686
+ """
687
+ @staticmethod
688
+ @typing.overload
689
+ def ground_strip(start_lla: ostk.physics.coordinate.spherical.LLA, end_lla: ostk.physics.coordinate.spherical.LLA, instants: list[ostk.physics.time.Instant], celestial_object: ostk.physics.environment.object.Celestial = ...) -> Trajectory:
690
+ """
691
+ Create a `Trajectory` object representing a ground strip.
692
+ This method computes the duration as the geodetic distance / ground speed.
693
+
694
+ Args:
695
+ start_lla (LLA): The start LLA.
696
+ end_lla (LLA): The end LLA.
697
+ instants (list[Instant]): The instants.
698
+ celestial_object (Celestial): The celestial object. Defaults to Earth.WGS84().
699
+
700
+ Returns:
701
+ Trajectory: The `Trajectory` object representing the ground strip.
702
+ """
703
+ @staticmethod
704
+ def position(position: ostk.physics.coordinate.Position) -> Trajectory:
705
+ """
706
+ Create a `Trajectory` object representing a position.
707
+
708
+ Args:
709
+ position (Position): The position. Must be in the ITRF frame.
710
+
711
+ Returns:
712
+ Trajectory: The `Trajectory` object representing the position.
713
+ """
714
+ @staticmethod
715
+ def undefined() -> Trajectory:
716
+ """
717
+ Create an undefined `Trajectory` object.
718
+
719
+ Returns:
720
+ Trajectory: The undefined `Trajectory` object.
721
+ """
722
+ def __eq__(self, arg0: Trajectory) -> bool:
723
+ ...
724
+ @typing.overload
725
+ def __init__(self, model: ...) -> None:
726
+ """
727
+ Construct a `Trajectory` object from a model.
728
+
729
+ Args:
730
+ model (trajectory.Model): The model of the trajectory.
731
+
732
+ Returns:
733
+ Trajectory: The `Trajectory` object.
734
+ """
735
+ @typing.overload
736
+ def __init__(self, states: list[...]) -> None:
737
+ """
738
+ Construct a `Trajectory` object from an array of states.
739
+
740
+ Args:
741
+ states (list[State]): The states of the trajectory.
742
+
743
+ Returns:
744
+ Trajectory: The `Trajectory` object.
745
+ """
746
+ def __ne__(self, arg0: Trajectory) -> bool:
747
+ ...
748
+ def __repr__(self) -> str:
749
+ ...
750
+ def __str__(self) -> str:
751
+ ...
752
+ def access_model(self) -> ...:
753
+ """
754
+ Access the model of the trajectory.
755
+
756
+ Returns:
757
+ Model: The model of the trajectory.
758
+ """
759
+ def get_state_at(self, instant: ostk.physics.time.Instant) -> ...:
760
+ """
761
+ Get the state of the trajectory at a given instant.
762
+
763
+ Args:
764
+ instant (Instant): The instant.
765
+
766
+ Returns:
767
+ State: The state of the trajectory at the given instant.
768
+ """
769
+ def get_states_at(self, instants: list[ostk.physics.time.Instant]) -> list[...]:
770
+ """
771
+ Get the states of the trajectory at a given set of instants. It can be more performant than looping `calculate_state_at` for multiple instants.
772
+
773
+ Args:
774
+ instants (list[Instant]): The instants.
775
+
776
+ Returns:
777
+ list[State]: The states of the trajectory at the given instants.
778
+ """
779
+ def is_defined(self) -> bool:
780
+ """
781
+ Check if the trajectory is defined.
782
+
783
+ Returns:
784
+ bool: True if the trajectory is defined, False otherwise.
785
+ """