Common utilities for packages and scripts within the EarthObservationSimulator organization
Currently under active development.
eosimutils is a Python package providing a core set of utilities for space mission simulation. It is designed to support reference frame management, state and time handling, kinematic transformations, field-of-view modeling, and more. The package is modular, extensible, and leverages third-party libraries such as Spiceypy, NumPy, SciPy, Astropy, and Skyfield for scientific computation and astronomical calculations.
Requires: Unix-like operating system, python 3.13, pip
The package is installed with the pip install command, which automatically installs all dependencies.
pip install .
To install the development version, which includes the docs, tests, and code formatting tools, run:
pip install "[.dev]"
Unit tests for the project are run using:
make test
- Time Handling
Handling of time usingAbsoluteDateandAbsoluteDateArray, supporting conversions between (Spice) ephemeris time, Julian date, Gregorian date, and integration with Astropy and Skyfield.
eosimutils.time
- TimeFormat (Enum)
- TimeScale (Enum)
- AbsoluteDate
- AbsoluteDateArray
- State Vector Representation
Classes for representing and manipulating Cartesian positions, velocities, and full state vectors, including geodetic positions.
eosimutils.state
- Cartesian3DPosition
- Cartesian3DVelocity
- GeographicPosition
- CartesianState
- Cartesian3DPositionArray
- Trajectory and Timeseries
Efficient storage and manipulation of time series data (e.g., position, state as a function of time), with support for interpolation, resampling, and missing data handling.
eosimutils.timeseries
- Timeseries
- _group_contiguous (function)
eosimutils.trajectory
- StateSeries
- PositionSeries
- convert_frame (function)
- convert_frame_position (function)
- Orientation (Attitude)
Flexible orientation representations for modeling frame-to-frame transformations with consideration of rotating frames. Transforming positions and states between reference frames, including support for SPICE-based transformations.
eosimutils.orientation
- Orientation
- ConstantOrientation
- SpiceOrientation
- OrientationSeries
- Reference Frame Management
Define, register, and manage reference frames using the
ReferenceFrameclass and theFrameRegistry.
eosimutils.framegraph
- FrameGraph
eosimutils.standardframes
- get_lvlh
eosimutils.base
- ReferenceFrame
- Field-of-View Modeling
Classes for circular, rectangular, and polygonal field-of-view geometries, with a factory for easy instantiation.
eosimutils.fieldofview
- FieldOfViewType (enum)
- FieldOfViewFactory
- CircularFieldOfView
- RectangularFieldOfView
- PolygonFieldOfView
- SPICE Kernel Management
Utilities for downloading and loading SPICE kernels required for time and frame conversions. SPICE kernels are data files used by NASA's SPICE toolkit to provide accurate information about spacecraft trajectories, planetary positions, and other space mission data.
eosimutils.spicekernels
- download_latest_kernels (function)
- load_spice_kernels (function)
- Plotting and Visualization
Functions for plotting timeseries and trajectory data for analysis and presentation.
eosimutils.plotting
- plot_timeseries (function)
- Third-Party Utilities
Wrappers and helpers for using Astropy and other libraries for validation and cross-checking.
eosimutils.thirdpartyutils
- astropy_transform (function)
=============================
eosimutils.base
- EnumBase
- RotationsType
- ReferenceFrame