Open-space-toolkit-astrodynamics

Latest version: v15.0.0

Safety actively analyzes 701868 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 26

15.0.0

⚠️ This release fixes the stubs issues introduced in the previous release, the py.typed file has been removed, it will be re-introduced in a future release once the stubs have been comprehensively be tested against.

What's Changed
* style: reapply clang-format by alex-liang3 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/505
* chore: add convenience method for total size of state builder by apaletta3 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/504
* docs: update index.rst to include data and provider by vishwa2710 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/503
* fix!: stubs breaking mypy by alex-liang3 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/506 ⚠️ This contains a breaking change to CDM construction ⚠️
* build: loosen boost req to 1.82, bump physics to 12 by alex-liang3 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/507


**Full Changelog**: https://github.com/open-space-collective/open-space-toolkit-astrodynamics/compare/14.0.0...15.0.0

14.0.0

⚠️ This release includes type stubs in the Python bindings, which may contain syntax errors that cause mypy to crash.
While we work to resolve these issues, it's recommended to add `no_site_packages = True` to your mypy config to suppress these errors.

What's Changed

* build: bump nlopt dep to from 2.5.0 to 2.9.1 by apaletta3 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/496
* build: prepare for test matrix by alex-liang3 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/490
* build: update all gh action extensions to latest versions by apaletta3 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/489

* chore: fix dockerfile and setuptools warnings, bump ostk-core and boost by alex-liang3 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/499
* chore: package stubs in whl by alex-liang3 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/486

* docs: clean-up Local Orbital Frame comments by phc1990 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/487

* feat: add label to viewer by vishwa2710 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/483
* feat: off nadir angle computations by vishwa2710 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/492

* feat!: add correct computeJacobian method by vishwa2710 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/485
* feat!: include states with Maneuver by vishwa2710 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/432
* feat!: vectorize access generation by vishwa2710 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/461

* fix: use absolute path of package by alex-liang3 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/498

* refactor!: FiniteDifferenceSolver interface for computeStateTransitionMatrix by apaletta3 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/497
* refactor!: rename nadir_pointing profile to local_orbital_frame by vishwa2710 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/484
* refactor!: use state instead of instantposvel by vishwa2710 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/493

* test: reorder test fixture for clarity by apaletta3 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/494

Migration Guide

Finite Difference Solver
python
Before
output: np.ndarray = finite_difference_solver.compute_jacobian(
state=state,
instants=instants,
generate_states_coordinates=generate_states_coordinates,
coordinate_dimension=2,
)

Now
output: list[np.ndarray] = finite_difference_solver.compute_state_transition_matrix(
state=state,
instants=instants,
generate_states_coordinates=generate_states_coordinates,
)
assert len(output) = len(instants)

- `compute_jacobian` renamed to `compute_state_transition_matrix`
- Removed `coordinate_dimension` parameter - now derived from `generate_states_coordinates`
- `compute_state_transition_matrix` now returns a list of state transition matrices with proper ordering, before it would return a single np.ndarray that had N columns for the first dimension, N columns for the second dimension etc. which was confusing to parse

Profile
python
Before
Profile.nadir_pointing(orbit=orbit, orbital_frame_type=Orbit.FrameType.VVLH)

Now
Profile.local_orbital_frame_pointing(orbit=orbit, orbital_frame_type=Orbit.FrameType.VVLH)

- `nadir_pointing` renamed to `local_orbital_frame_pointing` to reflect broader functionality

Local Orbital Frame Factory
python
Before
local_orbital_frame_factory.generate_frame(
instant=instant,
position_vector=position_vector,
velocity_vector=velocity_vector
)

Now
local_orbital_frame_factory.generate_frame(state=state)

- Consolidated parameters into single `state` object

Generator
python
Before
generator = Generator.aer_mask(
azimuth_elevation_mask=azimuth_elevation_mask,
range_range=range_range,
environment=environment
)

from_trajectory = ...
to_trajectory = ...
accesses = generator.compute_accesses(
interval=interval,
from_trajectory=from_trajectory,
to_trajectory=to_trajectory,
)

Now
from ostk.astrodynamics.access import Generator, VisibilityCriterion, AccessTarget

generator = Generator(environment=environment)

visibility_criterion = VisibilityCriterion.from_aer_mask(
azimuth_elevation_mask=azimuth_elevation_mask,
range_interval=range_interval,
)

access_target = AccessTarget.from_lla(
lla=LLA.vector(50.0, 30.0, 0.0),
visibility_criterion=visibility_criterion,
celestial=environment.access_celestial_object_with_name("Earth")
)

accesses = generator.compute_accesses(
interval=interval,
access_target=access_target,
to_trajectory=...
)

- Simplified generator creation
- Constraints were previously defined at the Generator level, they are now defined at an AccessTarget level, allowing us to compute accesses with multiple access targets for a single satellite in a more efficient way
- Please refer to the [access computation notebook](https://github.com/open-space-collective/open-space-toolkit/blob/main/notebooks/Astrodynamics/Flight%20Dynamics/Access%20Computation.ipynb) for in-depth examples

Maneuver
python
Before
maneuver = Maneuver(instants, Frame.GCRF(), acceleration_profile, mass_flow_rate_profile)

acceleration_profile = maneuver.get_acceleration_profile()
instants = maneuver.get_instants()
mass_flow_rate_profile = maneuver.get_mass_flow_rate_profile()

Now
coordinate_subsets = [
CartesianPosition.default(),
CartesianVelocity.default(),
CartesianAcceleration.thrust_acceleration(),
CoordinateSubset.mass_flow_rate(),
]

state_builder = StateBuilder(
frame=Frame.GCRF(),
coordinate_subsets=coordinate_subsets,
)

states = [state_builder.build(Instant.J2000(), coordinates), ...]
maneuver = Maneuver(states)

states = maneuver.get_states()
acceleration_profile = list(map(lambda state: state.extract_coordinate(CartesianAcceleration.thrust_acceleration()), states))
mass_flow_rate_profile = list(map(lambda state: state.extract_coordinate(CoordinateSubset.mass_flow_rate()), states))
instants = list(map(lambda state: state.get_instant(), states))

- Consolidated acceleration, and mass flow rate profiles into a State object, including the position and velocity so that we can conveniently convert to local orbital frame definitions
- New `CartesianAcceleration` subset to describe accelerations

New Features
- Added label annotation support in viewer:
python
viewer.add_label(
position=Position.meters([6671000.0, 0.0, 0.0], Frame.ITRF()),
text="Hello, World!",
size=1.0,
color="red",
)


- Added off-nadir angle computation:
python
from ostk.astrodynamics.data.provider import compute_off_nadir_angles

along_track, cross_track, off_nadir = compute_off_nadir_angles(
state=state,
target_position=target_position,
)


- Cartesian Acceleration subset
python
from ostk.astrodynamics.trajectory.state.coordinate_subsets import CartesianAcceleration

cartesian_acceleration = CartesianAcceleration.default()
thrust_acceleration = CartesianAcceleration.thrust_acceleration()


**Full Changelog**: https://github.com/open-space-collective/open-space-toolkit-astrodynamics/compare/13.1.0...14.0.0

13.1.0

What's Changed
* fix: startup script for jupyter by vishwa2710 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/471
* feat: frozen orbit conditions by alex-liang3 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/473
* docs: clarify altitude definition in Orbit constructors by alex-liang3 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/475
* build: add python3.13 support by vishwa2710 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/481

New Contributors
* alex-liang3 made their first contribution in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/473

**Full Changelog**: https://github.com/open-space-collective/open-space-toolkit-astrodynamics/compare/13.0.2...13.1.0

13.0.2

What's Changed
* chore: add startup script for jupyter image by vishwa2710 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/470


**Full Changelog**: https://github.com/open-space-collective/open-space-toolkit-astrodynamics/compare/13.0.1...13.0.2

13.0.1

What's Changed
* chore: allow build without Boost Stacktrace by tapiab in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/466
* refactor: remove extra quaternion conversion methods by vishwa2710 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/469


**Full Changelog**: https://github.com/open-space-collective/open-space-toolkit-astrodynamics/compare/13.0.0...13.0.1

13.0.0

What's Changed
* build!: update physics to 11.1 by phc1990 in https://github.com/open-space-collective/open-space-toolkit-astrodynamics/pull/468


**Full Changelog**: https://github.com/open-space-collective/open-space-toolkit-astrodynamics/compare/12.3.1...13.0.0

Page 1 of 26

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.