Skip to content

Commit

Permalink
update and add paper.md, paper.bib, and figure_1.jpg to new joss-pape…
Browse files Browse the repository at this point in the history
…r dir
  • Loading branch information
kylejgillett committed Jan 13, 2025
1 parent 7386208 commit 14cca8f
Show file tree
Hide file tree
Showing 4 changed files with 161 additions and 0 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added joss-paper/figure_1.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
66 changes: 66 additions & 0 deletions joss-paper/paper.bib
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}
}
95 changes: 95 additions & 0 deletions joss-paper/paper.md
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


0 comments on commit 14cca8f

Please sign in to comment.