Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
1 of 3 committers (33.3%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.6%) to scientific vocabulary
Keywords
Repository
Python tools for working with Orbit Ephemeris Messages (OEMs)
Basic Info
Statistics
- Stars: 23
- Watchers: 1
- Forks: 5
- Open Issues: 4
- Releases: 16
Topics
Metadata Files
README.md
Python Orbit Ephemeris Message tools
Python tools for working with Orbit Ephemeris Messages (OEMs).
Development Status
Installation
The oem package is available through pip.
pip install oem
Documentation
See the full documentation here
Basic Usage
The OrbitEphemerisMessage class is the primary interface for OEM Files.
```python
from oem import OrbitEphemerisMessage
ephemeris = OrbitEphemerisMessage.open("input_file.oem")
Each OEM is made up of one or more segments of state and optional covariance data. The `OrbitEphemerisMessage` class provides iterables for both.
python
for segment in ephemeris:
for state in segment:
print(state.epoch, state.position, state.velocity, state.acceleration)
for covariance in segment.covariances:
print(covariance.epoch, covariance.matrix)
``` All vectors and matrices are numpy arrays.
It is also possible to retrieve a complete list of states and covariances through the .states and .covariances properties. These attributes streamline interaction with single-segment ephemerides.
python
for state in ephemeris.states:
print(state.epoch, state.position, state.velocity)
for covariance in ephemeris.covariances:
print(covariance.epoch, covariance.matrix)
To sample a state at an arbitrary epoch, simply call the ephemeris with an astropy Time object
python
epoch = Time("2020-01-01T00:00:00", scale="utc")
sampled_state = ephemeris(epoch)
Note that this type of sampling is only supported if the time system of the target ephemeris is supported by astropy Time objects. The .steps method of both OrbitEphemerisMessage and EphemerisSegment objects enables iterable, equal-time sampling of ephemeris data. The following example samples an OEM at a 60-second interval.
python
for state in oem.steps(60)
pass
The above example works for both single- and multi-segment OEMs, however the step sizes may vary at the boundary of the segments. To get consistent step sizes with multiple segments, use the segment interface directly.
python
for segment in oem:
for state in segment.steps(60):
pass
The OrbitEphemerisMessage facilitates writing of OEMs. To save an already-open OEM, use .save_as:
python
ephemeris.save_as("output.oem", file_format="xml")
To convert an ephemeris from one type to another, use the .convert class method.
python
OrbitEphemerisMessage.convert("input_file.oem", "output_file.oem", "kvn")
Reference Standards
This implementation follows the CCSDS recommended standards for Orbit Data Messages.
[1] Orbit Data Messages, CCSDS 502.0-B-3, 2023. Available: https://ccsds.org/wp-content/uploads/gravity_forms/5-448e85c647331d9cbaf66c096458bdd5/2025/01//502x0b3e1.pdf
[2] XML Specification for Navigation Data Messages, CCSDS 505.0-B-3, 2023. Available: https://ccsds.org/wp-content/uploads/gravity_forms/5-448e85c647331d9cbaf66c096458bdd5/2025/01//505x0b3e2.pdf
Owner
- Name: Brad Sease
- Login: bradsease
- Kind: user
- Location: Washington, DC
- Website: https://www.bradsease.com
- Repositories: 1
- Profile: https://github.com/bradsease
GitHub Events
Total
- Create event: 5
- Release event: 3
- Issues event: 9
- Watch event: 8
- Delete event: 1
- Issue comment event: 6
- Push event: 10
- Pull request event: 2
Last Year
- Create event: 5
- Release event: 3
- Issues event: 9
- Watch event: 8
- Delete event: 1
- Issue comment event: 6
- Push event: 10
- Pull request event: 2
Committers
Last synced: over 2 years ago
Top Committers
| Name | Commits | |
|---|---|---|
| Brad Sease | b****e@g****m | 61 |
| Brad Sease | b****e@v****u | 5 |
| Tommaso | T****o@m****m | 1 |
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 33
- Total pull requests: 59
- Average time to close issues: 6 months
- Average time to close pull requests: 15 days
- Total issue authors: 10
- Total pull request authors: 4
- Average comments per issue: 0.67
- Average comments per pull request: 0.29
- Merged pull requests: 57
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 6
- Pull requests: 2
- Average time to close issues: 27 days
- Average time to close pull requests: 5 minutes
- Issue authors: 5
- Pull request authors: 1
- Average comments per issue: 1.0
- Average comments per pull request: 2.0
- Merged pull requests: 2
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- bradsease (22)
- ChristopherRabotin (2)
- kyle-cochran (2)
- josephgruber (1)
- rmnhg (1)
- khoohuibo (1)
- greyskyy (1)
- marcozambi (1)
- noc0lour (1)
- frankweischede (1)
Pull Request Authors
- bradsease (56)
- TommasoPino (2)
- kyle-cochran (2)
- josephgruber (2)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 25,086 last-month
- Total dependent packages: 1
- Total dependent repositories: 1
- Total versions: 16
- Total maintainers: 1
pypi.org: oem
Python Orbit Ephemeris Message (OEM) tools
- Documentation: https://oem.readthedocs.io/
- License: MIT
-
Latest release: 0.4.5
published 9 months ago
Rankings
Maintainers (1)
Dependencies
- astropy >=5.0.8
- defusedxml >=0.6.0
- lxml >=4.5.0
- numpy >=1.20
- actions/checkout v2 composite
- github/codeql-action/analyze v1 composite
- github/codeql-action/autobuild v1 composite
- github/codeql-action/init v1 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite