From c994357d8534e2948b84432bf0a6f446484cfcfb Mon Sep 17 00:00:00 2001 From: Andrew Annex Date: Thu, 23 Jan 2020 23:12:22 -0500 Subject: [PATCH] Joss paper (#337) * first commit of JOSS paper for review * all committers have accepted co-authorship except for @drjmcauliffe as of merge (still open) --- joss/codemeta.json | 114 ++++++++++++++++++++++++++++++++++++++ joss/paper.bib | 133 +++++++++++++++++++++++++++++++++++++++++++++ joss/paper.md | 120 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 367 insertions(+) create mode 100644 joss/codemeta.json create mode 100644 joss/paper.bib create mode 100644 joss/paper.md diff --git a/joss/codemeta.json b/joss/codemeta.json new file mode 100644 index 00000000..9e58f419 --- /dev/null +++ b/joss/codemeta.json @@ -0,0 +1,114 @@ +{ + "@context": "https://raw.githubusercontent.com/codemeta/codemeta/master/codemeta.jsonld", + "@type": "Code", + "author": [ + { + "@id": "https://orcid.org/0000-0002-0253-2313", + "@type": "Person", + "email": "annex@jhu.edu", + "name": "Andrew Annex", + "affiliation": "Johns Hopkins University, Baltimore, MD 21218, USA" + }, + { + "@id": "https://orcid.org/0000-0001-9211-6526", + "@type": "Person", + "email": "", + "name": "Brian Carcich", + "affiliation": "Latchmoor Services, LLC" + }, + { + "@id": "", + "@type": "Person", + "email": "", + "name": "Ben Pearson", + "affiliation": "General Public" + }, + { + "@id": "https://orcid.org/0000-0002-4088-1928", + "@type": "Person", + "email": "", + "name": "K.-Michael Aye", + "affiliation": "Laboratory for Atmospheric and Space Physics, University of Colorado, Boulder, CO 80303, USA" + }, + { + "@id": "", + "@type": "Person", + "email": "", + "name": "Jonathan McAuliffe", + "affiliation": "" + }, + { + "@id": "", + "@type": "Person", + "email": "", + "name": "Jorge Diaz del Rio", + "affiliation": "ODC Space" + }, + { + "@id": "https://orcid.org/0000-0001-9757-9706", + "@type": "Person", + "email": "", + "name": "Kristin L. Berry", + "affiliation": "USGS Astrogeology Science Center" + }, + { + "@id": "https://orcid.org/0000-0002-7736-2611", + "@type": "Person", + "email": "", + "name": "Marcel Stefko", + "affiliation": "ETH Zurich." + }, + { + "@id": "https://orcid.org/0000-0002-0455-9384", + "@type": "Person", + "email": "", + "name": "Miguel de Val-Borro", + "affiliation": "Planetary Science Institute" + }, + { + "@id": "https://orcid.org/0000-0002-7822-0471", + "@type": "Person", + "email": "", + "name": "Shankar Kulumani", + "affiliation": "Collins Aerospace" + }, + { + "@id": "https://orcid.org/0000-0002-7137-4849", + "@type": "Person", + "email": "", + "name": "Shin-ya Murakami", + "affiliation": "GFD Dennou Club" + }, + { + "@id": "https://orcid.org/0000-0003-0303-5199", + "@type": "Person", + "email": "", + "name": "Helge Eichhorn", + "affiliation": "Planetary Transportation Systems GmbH, Berlin, Germany" + }, + { + "@id": "https://orcid.org/0000-0001-6533-275X", + "@type": "Person", + "email": "", + "name": "Benoît Seignovert", + "affiliation": "Jet Propulsion Laboratory, California Institute of Technology, Pasadena, CA 91109, USA" + }, + { + "@id": "https://orcid.org/0000-0001-5756-0373", + "@type": "Person", + "email": "", + "name": "Jesse Mapel", + "affiliation": "USGS Astrogeology Science Center" + } + ], + "identifier": "https://doi.org/10.5281/zenodo.593914", + "codeRepository": "https://github.com/AndrewAnnex/SpiceyPy", + "datePublished": "2020-01-12", + "dateModified": "2020-01-12", + "dateCreated": "2020-01-12", + "description": "SpiceyPy: the pythonic wrapper for SPICE", + "keywords": "SPICE, ephemeris, NASA, NAIF, navigation, planetary science", + "license": "MIT", + "title": "SpiceyPy", + "version": "v3.0.1" +} diff --git a/joss/paper.bib b/joss/paper.bib new file mode 100644 index 00000000..4a1e9909 --- /dev/null +++ b/joss/paper.bib @@ -0,0 +1,133 @@ +@article{porter:2018, + abstract = {NASA's New Horizons spacecraft will conduct a close flyby of the cold classical Kuiper Belt Object (KBO) designated (486958) 2014 MU69 on January 1, 2019. At a heliocentric distance of 44 AU, "MU69" will be the most distant object ever visited by a spacecraft. To enable this flyby, we have developed an extremely high precision orbit fitting and uncertainty processing pipeline, making maximal use of the Hubble Space Telescope's Wide Field Camera 3 (WFC3) and pre-release versions of the ESA Gaia Data Release 2 (DR2) catalog. This pipeline also enabled successful predictions of a stellar occultation by MU69 in July 2017. We describe how we process the WFC3 images to match the Gaia DR2 catalog, extract positional uncertainties for this extremely faint target (typically 140 photons per WFC3 exposure), and translate those uncertainties into probability distribution functions for MU69 at any given time. We also describe how we use these uncertainties to guide New Horizons, plan stellar occultions of MU69, and derive MU69's orbital evolution and long-term stability.}, + archivePrefix = {arXiv}, + arxivId = {1805.02252}, + author = {Porter, Simon B. and Buie, Marc W. and Parker, Alex H. and Spencer, John R. and Benecchi, Susan and Tanga, Paolo and Verbiscer, Anne and Kavelaars, J. J. and Gwyn, Stephen D. J. and Young, Eliot F. and Weaver, H. A. and Olkin, Catherine B. and Parker, Joel W. and Stern, S. Alan}, + doi = {10.3847/1538-3881/aac2e1}, + eprint = {1805.02252}, + issn = {0004-6256}, + journal = {The Astronomical Journal}, + keywords = {2014 mu69,astrometry,astrometry,celestial mechanics,Kuiper Belt: general,Kuiper Belt objects: individual (2014 MU69),occultations,celestial mechanics,general,individual,kuiper belt,kuiper belt objects}, + number = {1}, + pages = {20}, + publisher = {IOP Publishing}, + title = {{High-precision Orbit Fitting and Uncertainty Analysis of (486958) 2014 MU69}}, + url = {http://dx.doi.org/10.3847/1538-3881/aac2e1}, + volume = {156}, + year = {2018} +} + +@article{acton:2018, + abstract = {The “SPICE” system1 has been widely used since the days of the Magellan mission to Venus as the method for scientists and engineers to access a variety of space mission geometry such as positions, velocities, directions, orientations, sizes and shapes, and field-of-view projections (Acton, 1996). While originally focused on supporting NASA's planetary missions, the use of SPICE has slowly grown to include most worldwide planetary missions, and it has also been finding application in heliophysics and other space science disciplines. This paper peeks under the covers to see what new capabilities are being developed or planned at SPICE headquarters to better support the future of space science. The SPICE system is implemented and maintained by NASA's Navigation and Ancillary Information Facility (NAIF) located at the Jet Propulsion Laboratory in Pasadena, California (http://naif.jpl.nasa.gov).}, + author = {Acton, Charles and Bachman, Nathaniel and Semenov, Boris and Wright, Edward}, + doi = {10.1016/j.pss.2017.02.013}, + issn = {00320633}, + journal = {Planetary and Space Science}, + number = {January 2017}, + pages = {9--12}, + publisher = {Elsevier Ltd}, + title = {{A look towards the future in the handling of space science mission geometry}}, + url = {https://doi.org/10.1016/j.pss.2017.02.013}, + volume = {150}, + year = {2018} +} + +@article{heliopy:2019, + title={HelioPy: Heliospheric and planetary physics library}, + author={Stansby, David and Rai, Yatharth and Broll, Jeffrey and Shaw, Siddhant and others}, + journal={Astrophysics Source Code Library}, + year={2019} +} + +@phdthesis{hackett:2019, + title={Applying artificial intelligence to space communications networks: Cognitive real-time link layer adaptations through rapid orbit planning}, + author={Hackett, Timothy Michael}, + year={2019}, + school={The Pennsylvania State University} +} + +@article{burrell:2018, + title={Snakes on a spaceship—An overview of Python in heliophysics}, + author={Burrell, Angeline G and Halford, A and Klenzing, J and Stoneback, RA and Morley, Steven K and Annex, AM and Laundal, KM and Kellerman, AC and Stansby, D and Ma, J}, + journal={Journal of Geophysical Research: Space Physics}, + volume={123}, + number={12}, + pages={10--384}, + year={2018}, + publisher={Wiley Online Library} +} + +@article{zangari:2018, + title={Return to the Kuiper Belt: launch opportunities from 2025 to 2040}, + author={Zangari, Amanda M and Finley, Tiffany J and Alan Stern, S and Tapley, Mark B}, + journal={Journal of Spacecraft and Rockets}, + volume={56}, + number={3}, + pages={919--930}, + year={2018}, + publisher={American Institute of Aeronautics and Astronautics} +} + +@article{behar:2016, + title={Mass loading at 67P/Churyumov-Gerasimenko: A case study}, + author={Behar, Etienne and Nilsson, Hans and Wieser, G Stenberg and Nemeth, Zoltan and Broiles, TW and Richter, Ingo}, + journal={Geophysical Research Letters}, + volume={43}, + number={4}, + pages={1411--1418}, + year={2016}, + publisher={Wiley Online Library} +} + +@phdthesis{albin:2019, + title={Machine learning and Monte Carlo based data analysis methods in cosmic dust research}, + author={Albin, Thomas}, + school={University of Stuttgart}, + year={2019} +} + +@article{attree:2019, + title={Constraining models of activity on comet 67P/Churyumov-Gerasimenko with Rosetta trajectory, rotation, and water production measurements}, + author={Attree, Nicholas and Jorda, Laurent and Groussin, Olivier and Mottola, Stefano and Thomas, Nicolas and Brouet, Yann and K{\"u}hrt, Ekkehard and Knapmeyer, Martin and Preusker, Frank and Scholten, Frank and others}, + journal={Astronomy and astrophysics}, + year={2019}, + publisher={EDP Sciences} +} + +@article{behar:2017, + title={The birth and growth of a solar wind cavity around a comet--Rosetta observations}, + author={Behar, Etienne and Nilsson, Hans and Alho, M and Goetz, Charlotte and Tsurutani, B}, + journal={Monthly Notices of the Royal Astronomical Society}, + volume={469}, + number={Suppl\_2}, + pages={S396--S403}, + year={2017}, + publisher={Oxford University Press} +} + +@inproceedings{wilson:2016, + title={Scheduling observations of celestial objects for Earth observing sensor calibration}, + author={Wilson, Truman and Xiong, Xiaoxiong}, + booktitle={Sensors, Systems, and Next-Generation Satellites XX}, + volume={10000}, + pages={1000011}, + year={2016}, + organization={International Society for Optics and Photonics} +} + +@inproceedings{costa:2018, + title={SPICE-based Python packages for Solar System Exploration geometry exploitation}, + author={Costa, Marc and Grass, Markus}, + booktitle={European Planetary Science Congress}, + volume={12}, + year={2018} +} + +@article{wilson_times:2017, + author = {Chris Wilson}, + title = {See How the Solar Eclipse Will Look From Anywhere in the U.S.}, + year = 2017, + month = {aug}, + journal = {Time Magazine}, + url = {https://time.com/4882923/total-solar-eclipse-map-places-view/}, +} \ No newline at end of file diff --git a/joss/paper.md b/joss/paper.md new file mode 100644 index 00000000..3e74326a --- /dev/null +++ b/joss/paper.md @@ -0,0 +1,120 @@ +--- +title: 'SpiceyPy: a Pythonic Wrapper for the SPICE Toolkit' +tags: + - Python + - SPICE + - ephemeris + - geometry + - navigation + - spacecraft + - planets +authors: + - name: Andrew M. Annex + orcid: 0000-0002-0253-2313 + affiliation: 1 + - name: Ben Pearson + affiliation: 2 + - name: Benoît Seignovert + orcid: 0000-0001-6533-275X + affiliation: 3 + - name: Brain T. Carcich + orcid: 0000-0001-9211-6526 + affiliation: 4 + - name: Helge Eichhorn + orcid: 0000-0003-0303-5199 + affiliation: 5 + - name: Jesse A. Mapel + orcid: 0000-0001-5756-0373 + affiliation: 6 + - name: Jorge Diaz del Rio + affiliation: 7 + - name: Kristin L. Berry + orcid: 0000-0001-9757-9706 + affiliation: 6 + - name: K.-Michael Aye + orcid: 0000-0002-4088-1928 + affiliation: 8 + - name: Marcel Stefko + orcid: 0000-0002-7736-2611 + affiliation: 9 + - name: Miguel de Val-Borro + orcid: 0000-0002-0455-9384 + affiliation: 10 + - name: Shankar Kulumani + orcid: 0000-0002-7822-0471 + affiliation: 11 + - name: Shin-ya Murakami + orcid: 0000-0002-7137-4849 + affiliation: 12 +affiliations: + - name: Johns Hopkins University, Baltimore, MD 21218, USA. + index: 1 + - name: General Public. + index: 2 + - name: Jet Propulsion Laboratory, California Institute of Technology, Pasadena, CA 91109, USA. + index: 3 + - name: Latchmoor Services, LLC. + index: 4 + - name: Planetary Transportation Systems GmbH, Berlin, Germany. + index: 5 + - name: USGS Astrogeology Science Center, Flagstaff, AZ 86001, USA. + index: 6 + - name: ODC Space. + index: 7 + - name: Laboratory for Atmospheric and Space Physics, University of Colorado, Boulder, CO 80303, USA. + index: 8 + - name: ETH Zurich. + index: 9 + - name: Planetary Science Institute. + index: 10 + - name: Collins Aerospace. + index: 11 + - name: GFD Dennou Club. + index: 12 + +date: 23 January 2020 +bibliography: paper.bib + +--- +# Statement of Need + +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: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:2018]. +For example, SPICE can calculate future occultations of planets relative to a camera in 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: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 artifacts 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. + +``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 [@behar:2016; @behar:2017; @porter:2018; @zangari:2018; @attree:2019;], masters + and doctoral theses [@hackett:2019; @albin:2019], spacecraft mission operations, as a dependency in other python libraries [@heliopy:2019 + ], and for a variety of other projects [@wilson:2016; @wilson_times:2017; @costa:2018]. + +# Acknowledgements +The authors would like to acknowledge members of the NAIF (Charles Acton, Ed Wright, Boris Semenov, Nat Bachman) for continued support for + SpiceyPy and for providing to users a *SpiceyPy translation* of their excellent "Hands-on" lessons. +The first author also thanks all of the contributors and users of SpiceyPy; they motivate further improvements to the project. +Co-authors other than the first author are ordered solely alphabetically by their first name. + +# References