Introduction¶
Kamodo is an official NASA open-source project written in python that is built upon the functionalization of datasets. It is a CCMC developed and maintained software tool for access, interpolation, and visualization of space weather models and data. Kamodo allows model developers to represent simulation results as mathematical functions which may be manipulated directly by end users. Kamodo handles unit conversion transparently and supports interactive science discovery through jupyter notebooks with minimal coding. All Kamodo tools are accessible through python, and all source code is publicly available on the Kamodo NASA GitHub repositories.
Kamodo does not generate model outputs. Users need to acquire the desired model outputs before they can be functionalized by Kamodo.
Vision statement¶
Once a dataset is functionalized in Kamodo, several important capabilities are then available to the user, including data analysis via function composition, automatic unit conversions, and publication quality graphics all using intuitive and simplistic syntax. By applying these capabilities to heliophysics model outputs, we aim to:
- Drastically simplify the currently complex data utilization process for model outputs,
- Provide interactive access to functionalized model outputs for users ranging in programming skill from beginners – via code-free interfaces and video tutorials – to advanced users – via thorough documentation, Jupyter notebook examples and sample workflows,
- Layer multiple functionalities on top of the functionalized model outputs, all with model-agnostic and uniform syntax, including but not limited to:
- Flythrough tools,
- Vector field tracing (including magnetic field mapping),
- Coordinate conversions,
- Domain-specific interactive plots of publication quality,
- Modular driver swapping,
- Satellite constellation mission planning tools,
- Simulated imagery, and
- A line of sight calculation tool,
- Greatly reduce the programming skill currently required outside of Kamodo to perform model validation studies and model-data comparisons,
- Enable model output utilization both on the cloud and on personal laptops in a variety of methods (e.g. through HAPI and interactive calls from the command line),
- Streamline the CCMC user workflow by becoming interoperable with other CCMC services (e.g. CAMEL and the various scoreboards),
- And become the next generation interface for CCMC users to interact with and analyze model outputs (e.g. through ROR and IR),
...all while keeping the developed software open-source and freely available. The Kamodo team also supports the heliophysics community by pursuing interoperability with commonly-used python packages, collaborating with community members to add model outputs and new functionalities, and remaining involved with community events (e.g. conferences, challenges, and research support). As the library of supported model outputs types expands and new model-agnostic tools are added, Kamodo will become a staple software package in the heliophysics community to transform current workflows into a more efficient and productive process. We are building the next generation of capability with Kamodo. Join us!
History¶
Kamodo has been under development at the Community Coordinated Modeling Center (CCMC), NASA GSFC since May 2018. The CCMC supports the heliophysics community by providing software and services guided by domain experts in a variety of heliophysics science domains.
Kamodo supports the goals of the CCMC by:
- Bringing together models and data into a single high-level mathematical framework.
- Allows scientists and educators to work with complex space weather models and data with little or no coding experience.
- Provides an easy-to-extend framework for developers.
Kamodo shares some similarities with its predecessor, the CCMC's Kameleon Software Suite, insofaras it provides a unified API for space weather models. However, Kamodo gets there through a very different means: by leveraging cutting-edge python projects from both the heliophysics community (sunpy, spacepy, etc.) as well as more general mathematical frameworks like sympy. This allows Kamodo to be broader in its application with potential to handle arbitrary scientific data and physics-based model outputs. At the same time, by building on the tools provided by model and data providers, Kamodo inherits the high performance necessary for data analysis. We felt that due to the large departure in both design and scope from Kameleon, it was necessary to launch Kamodo as a separate project under a different moniker.
In 2009, the CCMC made its first public release of Kamodo, an official NASA open-source project, following the NASA software release procedures. Development of Kamodo has led to splitting it into two open repositories for a variety of reasons. However, use of Kamodo should be transparent to users as the portion of Kamodo kept in Kamodo-core is automatically included when Kamodo is installed. The CCMC team, who is responsible for the maintenance of the Kamodo open-source project, welcome any public contributions/comments/suggestions from the community.
Citing Kamodo¶
When publishing research which used Kamodo, please provide appropriate credit to the CCMC and the Kamodo team via citation or acknowledgment. Please also let the team know of publications or presentations that use Kamodo. Below is list of publications for Kamodo.
Pembroke, A., D. De Zeeuw, L. Rastaetter, R. Ringuette, O. Gerland, D. Patel and M. Contreras (2022). Kamodo: A functional API for space weather models and data. JOSS 7, 75, 4053, https://doi.org/10.21105/joss.04053
Ringuette, R., D. De Zeeuw, L. Rastaetter, A. Pembroke, O. Gerland, K. Garcia-Sage (2022). Kamodo’s model-agnostic satellite flythrough: Lowering the utilization barrier for heliophysics model outputs, Frontiers in Astronomy and Space Sciences, vol 9. http://dx.doi.org/10.3389/fspas.2022.1005977
Ringuette, R., L. Rastaetter, D. De Zeeuw, K. Garcia-Sage, R. Robinson, and O. Gerland (2022). Kamodo's Satellite Constellation Mission Planning Tool, poster presentation presented by L. Rastaetter at the 2022 Fall meeting of AGU, Dec 12-16, Chicago, IL, USA. https://doi.org/10.22541/essoar.167214257.73153757/v1
Ringuette, R., L. Rastaetter, D. De Zeeuw, A. Pembroke, and O. Gerland (2023). Kamodo: Simplifying model data access and utilization. Adv. Space. Res. Accepted. https://doi.org/10.1016/j.asr.2023.03.033
Resources¶
- Kamodo Official website - https://ccmc.gsfc.nasa.gov/tools/kamodo/
- Kamodo GitHub page - https://github.com/nasa/Kamodo
- Kamodo-core GitHub page - https://github.com/nasa/Kamodo-core/
- Sample model outputs - https://ccmc.gsfc.nasa.gov/RoR_WWW/output_files/KAMODO_DEMO/
- Youtube tutorial channel - https://www.youtube.com/playlist?list=PLBWJQ5-pik_yBBcrpDRPM2hLluh-jreFa
The Kamodo team¶
Dr. Lutz Rastaetter
- ORCiD: https://orcid.org/0000-0002-7343-4147
- NASA Staff Page: https://ccmc.gsfc.nasa.gov/staff/lutz-rastaetter/
Dr. Darren De Zeeuw
- ORCiD: https://orcid.org/0000-0002-4313-5998
- NASA Staff Page: https://ccmc.gsfc.nasa.gov/staff/darren-de-zeeuw/
Dr. Katherine Garcia-Sage
- ORCiD: https://orcid.org/0000-0001-6398-8755
- NASA Staff Page: https://ccmc.gsfc.nasa.gov/staff/katherine-garcia-sage/
Open-source license¶
Kamodo is an official NASA open source software package. Kamodo's official source code is hosted on github under a permissive NASA open source license. For more details, go here: https://github.com/nasa/Kamodo/blob/master/LICENSE