-
Notifications
You must be signed in to change notification settings - Fork 15
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
update and add paper.md, paper.bib, and figure_1.jpg to new joss-pape…
…r dir
- Loading branch information
1 parent
7386208
commit 14cca8f
Showing
4 changed files
with
161 additions
and
0 deletions.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
@article{harris2020numpy, | ||
author = {Harris, C.R. and Millman, K.J. and van der Walt, S.J. et al.}, | ||
title = {Array programming with NumPy}, | ||
journal = {Nature}, | ||
volume = {585}, | ||
pages = {357--362}, | ||
year = {2020}, | ||
doi = {10.1038/s41586-020-2649-2} | ||
} | ||
|
||
@article{hoyer2017xarray, | ||
author = {Hoyer, S. and Hamman, J.}, | ||
title = {xarray: N-D labeled Arrays and Datasets in Python}, | ||
journal = {Journal of Open Research Software}, | ||
volume = {5}, | ||
number = {1}, | ||
pages = {10}, | ||
year = {2017}, | ||
doi = {10.5334/jors.148} | ||
} | ||
|
||
@article{hunter2007matplotlib, | ||
author = {J. D. Hunter}, | ||
title = {Matplotlib: A 2D Graphics Environment}, | ||
journal = {Computing in Science \& Engineering}, | ||
volume = {9}, | ||
number = {3}, | ||
pages = {90--95}, | ||
year = {2007} | ||
} | ||
|
||
@misc{may2023metpy, | ||
author = {Ryan M. May and Sean C. Arms and Patrick Marsh and Eric Bruning and John R. Leeman and Kevin Goebbert and Jonathan E. Thielen and Zachary S. Bruick and M. Drew Camron}, | ||
title = {MetPy: a Python package for meteorological data}, | ||
year = {2023}, | ||
publisher = {Unidata}, | ||
url = {https://github.com/Unidata/MetPy}, | ||
doi = {10.5065/D6WW7G29} | ||
} | ||
|
||
@misc{may2017siphon, | ||
author = {Ryan M. May and Sean C. Arms and John R. Leeman and Chastang, J.}, | ||
title = {Siphon: A collection of Python Utilities for Accessing Remote Atmospheric and Oceanic Datasets}, | ||
year = {2017}, | ||
publisher = {Unidata}, | ||
url = {https://github.com/Unidata/siphon}, | ||
doi = {10.5065/D6CN72NW} | ||
} | ||
|
||
@article{virtanen2020scipy, | ||
author = {Pauli Virtanen and Ralf Gommers and Travis E. Oliphant and Matt Haberland and Tyler Reddy and David Cournapeau and Evgeni Burovski and Pearu Peterson and Warren Weckesser and Jonathan Bright and Stéfan J. van der Walt and Matthew Brett and Joshua Wilson and K. Jarrod Millman and Nikolay Mayorov and Andrew R. J. Nelson and Eric Jones and Robert Kern and Eric Larson and CJ Carey and İlhan Polat and Yu Feng and Eric W. Moore and Jake VanderPlas and Denis Laxalde and Josef Perktold and Robert Cimrman and Ian Henriksen and E.A. Quintero and Charles R Harris and Anne M. Archibald and Antônio H. Ribeiro and Fabian Pedregosa and Paul van Mulbregt and SciPy 1.0 Contributors}, | ||
title = {SciPy 1.0: Fundamental Algorithms for Scientific Computing in Python}, | ||
journal = {Nature Methods}, | ||
volume = {17}, | ||
number = {3}, | ||
pages = {261--272}, | ||
year = {2020} | ||
} | ||
|
||
@misc{marsh_sharppy, | ||
author = {Marsh, P. and Halbert, K. and Blumberg, G. and Supinie, T. and Esmaili, R. and Szkodzinski, J.}, | ||
title = {SHARPpy: Sounding/Hodograph Analysis and Research Program in Python}, | ||
year = {2020}, | ||
publisher = {GitHub}, | ||
url = {https://github.com/sharppy/SHARPpy} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
--- | ||
title: "SounderPy: An atmospheric sounding visualization and analysis tool for Python" | ||
tags: | ||
- Python | ||
- meteorology | ||
- atmospheric-sciences | ||
- data-analysis | ||
- weather-data | ||
authors: | ||
- name: Kyle J. Gillett | ||
orcid: 0009-0001-5528-5037 | ||
affiliation: 1 | ||
ror: 04a5szx83 | ||
affiliations: | ||
- name: College of Aerospace Sciences, University of North Dakota, United States | ||
index: 1 | ||
date: 9 December 2024 | ||
bibliography: paper.bib | ||
--- | ||
|
||
|
||
# Summary | ||
|
||
SounderPy is a simple, open-source Python package for retrieving, processing, and | ||
plotting atmospheric vertical profile (sounding) data. Designed for simplicity and | ||
reliability, SounderPy aims to provide a uniform and intuitive method for sounding | ||
analysis across various data sources. The package is available on GitHub and PyPI | ||
and is distributed under the MIT license. | ||
|
||
# Statement of need | ||
|
||
Meteorological data from diverse sources are often stored in various file | ||
formats and structured differently, posing challenges for consistent and thus | ||
efficient data processing. This diversity complicates the thorough analysis of | ||
atmospheric properties, which is vital in describing the past, current, and future | ||
state of the atmosphere. The need for thorough analysis of the atmosphere's | ||
vertical properties has been recognized since the early 20th century, during the | ||
advent of "free-air" observations (soundings) using kites, balloons, and aircraft | ||
[@Byers:1934]. | ||
|
||
Normalizing the analysis of meteorological data ensures that meaningful comparisons | ||
can be drawn across different datasets. Reliable statistics and analogs can then be | ||
developed from such normalized analysis which can aid forecasters and researchers with | ||
pattern recognition and context. For example, comparing numerical weather prediction | ||
(NWP) output to past observations allows forecasters to recognize patterns and draw | ||
connections between historical and future events, improving predictive accuracy. | ||
|
||
SounderPy addresses these challenges by providing simple access to multiple data sources, | ||
including National Weather Service radiosonde observations (RAOBs), Aircraft Communications | ||
Addressing and Reporting System (ACARS) data, NWP forecast data, and reanalysis datasets. | ||
Each of these data types come from unique file formats and structures, which SounderPy | ||
processes to normalize and streamline analysis and visualization of soundings. | ||
|
||
|
||
# High-level API overview | ||
|
||
Simple, intuitive classes and functions make SounderPy's API easy to understand and | ||
use. The procedure for creating sounding figures requires only a few lines of | ||
straightforward API calls that first retrieve data from a source and plot the data | ||
on a figure. While internally this involves sophisticated data retrieval and processing | ||
methods, extensive manipulations and calculations, and intricate plotting routines, the | ||
user-facing interface allows this process to be completed in just two lines of code for | ||
most integrated data sources. The simplicity of these "tools" in SounderPy's "toolbox" | ||
allows quick and easy use for researchers, students, and hobbyists alike. After importing | ||
the library, two lines of code create Figure 1. | ||
|
||
```py | ||
import sounderpy as spy | ||
|
||
sounding_data = spy.get_model_data("rap", [45.7101, -100.1666], | ||
"2024", "08", "29", "00") | ||
|
||
spy.build_sounding(sounding_data, color_blind=True) | ||
``` | ||
|
||
![Figure 1: A sounding figure of NCEP RAP reanalysis data for a severe weather event in northern South Dakota on August 28th, 2024](figure_1.jpg) | ||
|
||
# Acknowledgements | ||
|
||
The development of SounderPy relies on the robust functionality provided by | ||
several foundational Python libraries, including MetPy, NumPy, Matplotlib, | ||
xarray, Cartopy, SHARPpy, SciPy, and others. We gratefully acknowledge the | ||
valuable contributions of individuals who have enhanced this project, including | ||
Scott Thomas (National Weather Service), Daryl Herzmann (Iowa State University), | ||
Amelia R.H. Urquhart (University of Oklahoma), Ryan Vandersmith, and many others. | ||
|
||
This project also extends its graditude to the researchers, institutions, and | ||
individuals who have utilized SounderPy in their work and publications, driving | ||
its growth and application within the meteorological community. | ||
|
||
|
||
|
||
# References | ||
|
||
|