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
(If using conda), create a conda environment:
conda create -n eosim-revised python=3.13
conda activate eosim-revised
conda install sphinx
pip install sphinx-rtd-theme
pip install pylint
pip install black
pip install coverage
pip install skyfield
pip install astropy
pip install scipy
make install
- Time Handling
Handling of time usingAbsoluteDate
andAbsoluteDateArray
, 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
ReferenceFrame
class 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