Abstract
Operating in space necessitates quantifying the positions, velocities, geometries, and other properties of spacecraft and planetary bodies through time. Scientists and engineers working with robotic planetary spacecraft missions use the Spacecraft, Planet, Instrument, Camera-matrix, Events (SPICE) Toolkit (Acton, Bachman, Semenov, & Wright, 2018) to help plan observations and to quantify the positions of planetary bodies and spacecraft through time. SPICE is developed at the Jet Propulsion Laboratory by NASA's Navigation and Ancillary Information Facility (NAIF). Scientists also use SPICE to analyze data returned by these missions and to plan hypothetical orbital trajectories for future missions (Acton et al., 2018). For example, SPICE can calculate future occultations of planets relative to a camera on a rover or spacecraft. The NAIF provides SPICE in Fortran 77, C, and they also provide Matlab and IDL wrappers; however, as of 2014, they did not offer a Python interface. The growth of Python and movement away from proprietary interpreted languages (Burrell et al., 2018) motivated the development of SpiceyPy so that planetary scientists and engineers can use SPICE within Python. Summary SpiceyPy is an open-source, MIT licensed Python package that provides a pythonic interface to nearly all of the C SPICE toolkit N66. SpiceyPy was developed in Python using the ctypes module of the CPython standard library to wrap the underlying C SPICE shared library. Developing SpiceyPy in Python enabled the SpiceyPy API to expose simplified and more pythonic interactions with the underlying C API for SPICE. SpiceyPy relies on the NumPy library for numeric arrays and tight integration with the SciPy stack. SpiceyPy is extensively tested using a combination of unit and integration tests, which run using continuous integration services. The tests also serve as code examples translated from the NAIF documentation. Continuous deployment updates documentation and deploys arti-facts of releases to PyPI and the conda-forge. Every SPICE function wrapper in SpiceyPy contains docstrings that provide short descriptions of the function duplicated from the SPICE documentation. Docstrings in SpiceyPy also contain links to the corresponding CSPICE documentation page hosted by the NAIF to provide additional details regarding the function. Annex et al., (2020). SpiceyPy: a Pythonic Wrapper for the SPICE Toolkit. Journal of Open Source Software, 5(46), 2050. https://doi.org/ 10.21105/joss.02050 1 SpiceyPy enables scientists to utilize the full functionality of SPICE within Python and the ecosystem of visualization and scientific packages available. SpiceyPy has been utilized in peer-reviewed research (Attree et al.
Cite
CITATION STYLE
Annex, A., Pearson, B., Seignovert, B., Carcich, B., Eichhorn, H., Mapel, J., … Murakami, S. (2020). SpiceyPy: a Pythonic Wrapper for the SPICE Toolkit. Journal of Open Source Software, 5(46), 2050. https://doi.org/10.21105/joss.02050
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.