Skip to content

Commit

Permalink
Creating 10.21105.joss.07406.jats
Browse files Browse the repository at this point in the history
  • Loading branch information
editorialbot committed Dec 4, 2024
1 parent 722fdc5 commit 219a712
Showing 1 changed file with 229 additions and 0 deletions.
229 changes: 229 additions & 0 deletions joss.07406/paper.jats/10.21105.joss.07406.jats
Original file line number Diff line number Diff line change
@@ -0,0 +1,229 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.2 20190208//EN"
"JATS-publishing1.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="1.2" article-type="other">
<front>
<journal-meta>
<journal-id></journal-id>
<journal-title-group>
<journal-title>Journal of Open Source Software</journal-title>
<abbrev-journal-title>JOSS</abbrev-journal-title>
</journal-title-group>
<issn publication-format="electronic">2475-9066</issn>
<publisher>
<publisher-name>Open Journals</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">7406</article-id>
<article-id pub-id-type="doi">10.21105/joss.07406</article-id>
<title-group>
<article-title>ndbc-api: Accelerating oceanography and climate science
research with Python</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<contrib-id contrib-id-type="orcid">https://orcid.org/0000-0003-0469-353X</contrib-id>
<name>
<surname>Jellen</surname>
<given-names>Christopher David</given-names>
</name>
<xref ref-type="aff" rid="aff-1"/>
</contrib>
<aff id="aff-1">
<institution-wrap>
<institution>United States Naval Academy, USA</institution>
</institution-wrap>
</aff>
</contrib-group>
<pub-date date-type="pub" publication-format="electronic" iso-8601-date="2024-09-02">
<day>2</day>
<month>9</month>
<year>2024</year>
</pub-date>
<volume>9</volume>
<issue>104</issue>
<fpage>7406</fpage>
<permissions>
<copyright-statement>Authors of papers retain copyright and release the
work under a Creative Commons Attribution 4.0 International License (CC
BY 4.0)</copyright-statement>
<copyright-year>2024</copyright-year>
<copyright-holder>The article authors</copyright-holder>
<license license-type="open-access" xlink:href="https://creativecommons.org/licenses/by/4.0/">
<license-p>Authors of papers retain copyright and release the work under
a Creative Commons Attribution 4.0 International License (CC BY
4.0)</license-p>
</license>
</permissions>
<kwd-group kwd-group-type="author">
<kwd>Python</kwd>
<kwd>oceanography</kwd>
<kwd>climate science</kwd>
<kwd>NDBC</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="summary">
<title>Summary</title>
<p>The National Data Buoy Center (NDBC) and its partners are an
essential source of marine meteorological and oceanographic data
(<xref alt="National Data Buoy Center (NDBC), 2023" rid="ref-NDBC_Data_Guide" ref-type="bibr">National
Data Buoy Center (NDBC), 2023</xref>). The
<monospace>ndbc-api</monospace> Python package is an open-source tool
designed to streamline the acquisition, synthesis, and analysis of
this data. It provides a Python API for accessing real-time and
historical observations from a network of buoys, coastal stations, and
deployments. This package simplifies the process of retrieving,
parsing, and organizing NDBC data. Traditional HTTP access methods to
station-specific text files poses a challenge when dealing with
multiple stations or extended time ranges. The
<monospace>ndbc-api</monospace> provides a Python API which retrieves,
parses, and merges this data, returning Python-native data structures.
This package empowers researchers and practitioners in oceanography,
meteorology, and related fields to efficiently integrate NDBC data
into their workflows, accelerating research in climate science and
oceanography.</p>
</sec>
<sec id="statement-of-need">
<title>Statement of need</title>
<p>The National Oceanic and Atmospheric Association’s National Data
Buoy Center maintains marine monitoring and observation stations
around the world
(<xref alt="National Data Buoy Center (NDBC), 2024" rid="ref-NDBC_Active_Stations" ref-type="bibr">National
Data Buoy Center (NDBC), 2024</xref>). These stations report
atmospheric, oceanographic, and other meteorological data at regular
intervals to the NDBC
(<xref alt="National Data Buoy Center (NDBC), 2023" rid="ref-NDBC_Data_Guide" ref-type="bibr">National
Data Buoy Center (NDBC), 2023</xref>,
<xref alt="2024" rid="ref-NDBC_Active_Stations" ref-type="bibr">2024</xref>).
Measurements are made available over HTTP through the NDBC’s data
service. Measurements are typically distributed as quality-controlled
<monospace>utf-8</monospace> encoded, station-by-station, fixed-period
text files
(<xref alt="National Data Buoy Center (NDBC), 2023" rid="ref-NDBC_Data_Guide" ref-type="bibr">National
Data Buoy Center (NDBC), 2023</xref>). While the data collected and
maintained by the NDBC is critical to oceanography and climate science
researchers, the mode of access adds complexity to their workflows.
These challenges are particularly pronounced when working with
long-duration data, data from multiple stations, or data with a high
proportion of missing measurements.</p>
<p>The <monospace>ndbc-api</monospace> addresses these critical gaps
by providing a streamlined, programmatic interface to the NDBC’s data
service. By abstracting the complexities of file-based access,
handling of missing measurements, and cross-station joins, the
<monospace>ndbc-api</monospace> package lowers the barriers to
obtaining and using the NDBC’s global oceanographic and meteorological
data in scientific research. Researchers specify their stations, data
modalities (for example, <monospace>adcp</monospace> for acoustic
doppler current profiler measurements or <monospace>cwind</monospace>
for continuous winds data), and time ranges of interest, and the
package returns the processed NDBC data either as a Pandas
<monospace>DataFrame</monospace> object or as an xarray
<monospace>Dataset</monospace> object
(<xref alt="Hoyer &amp; Hamman, 2017" rid="ref-hoyer2017xarray" ref-type="bibr">Hoyer
&amp; Hamman, 2017</xref>;
<xref alt="Mckinney, 2010" rid="ref-pandas" ref-type="bibr">Mckinney,
2010</xref>;
<xref alt="The pandas development team, 2020" rid="ref-reback2020pandas" ref-type="bibr">The
pandas development team, 2020</xref>). The package maps missing
measurements from their varied text-based identifiers such as
<monospace>99</monospace>, <monospace>999</monospace>, or
<monospace>MM</monospace>, into a single missing measurement
representation of <monospace>nan</monospace>. The challenge of
aligning and joining data across measurements and stations is
similarly handled before the final object is returned to the user. By
exposing station metadata and search functionality alongside data
retrieval methods, researchers are also able to identify the set of
stations, based on their NDBC identifier, that were active during a
given period, or within some radius of a given location. The
combination of efficient identification of the relevant stations,
retrieval of the desired data variables, and processing of the data
from the NDBC data service make the <monospace>ndbc-api</monospace> a
valuable tool for oceanography and climate science researchers.</p>
</sec>
<sec id="acknowledgements">
<title>Acknowledgements</title>
<p>The authors would like to acknowledge the invaluable contributions
of the National Data Buoy Center (NDBC), their teams, and their
network of partners. Their efforts in deploying and maintaining the
buoys and marine observation stations, collecting and
quality-controlling oceanographic data, and making their measurements
readily available through their data service are fundamental to
advancing our understanding of earth systems. The
<monospace>ndbc-api</monospace> Python package would not be possible
without their commitment to open data access and their unwavering
support for the scientific and operational communities. We extend our
sincere appreciation to everyone involved in this vital endeavor.</p>
</sec>
</body>
<back>
<ref-list>
<title></title>
<ref id="ref-NDBC_Data_Guide">
<element-citation>
<person-group person-group-type="author">
<string-name>National Data Buoy Center (NDBC)</string-name>
</person-group>
<article-title>NDBC web data guide</article-title>
<publisher-name>https://www.ndbc.noaa.gov/docs/ndbc_web_data_guide.pdf</publisher-name>
<year iso-8601-date="2023">2023</year>
</element-citation>
</ref>
<ref id="ref-NDBC_Active_Stations">
<element-citation>
<person-group person-group-type="author">
<string-name>National Data Buoy Center (NDBC)</string-name>
</person-group>
<article-title>NDBC active stations</article-title>
<publisher-name>https://www.ndbc.noaa.gov/wstat.shtml</publisher-name>
<year iso-8601-date="2024">2024</year>
</element-citation>
</ref>
<ref id="ref-pandas">
<element-citation publication-type="article-journal">
<person-group person-group-type="author">
<name><surname>Mckinney</surname><given-names>Wes</given-names></name>
</person-group>
<article-title>Data Structures for Statistical Computing in Python</article-title>
<source>Proceedings of the 9th Python in Science Conference</source>
<year iso-8601-date="2010-01">2010</year><month>01</month>
<volume>445</volume>
<issue>1</issue>
<pub-id pub-id-type="doi">10.25080/majora-92bf1922-00a</pub-id>
<fpage>56</fpage>
<lpage>61</lpage>
</element-citation>
</ref>
<ref id="ref-reback2020pandas">
<element-citation publication-type="software">
<person-group person-group-type="author">
<string-name>The pandas development team</string-name>
</person-group>
<article-title>pandas-dev/pandas: Pandas</article-title>
<publisher-name>Zenodo</publisher-name>
<year iso-8601-date="2020-02">2020</year><month>02</month>
<uri>https://doi.org/10.5281/zenodo.3509134</uri>
<pub-id pub-id-type="doi">10.5281/zenodo.3509134</pub-id>
</element-citation>
</ref>
<ref id="ref-hoyer2017xarray">
<element-citation publication-type="article-journal">
<person-group person-group-type="author">
<name><surname>Hoyer</surname><given-names>S.</given-names></name>
<name><surname>Hamman</surname><given-names>J.</given-names></name>
</person-group>
<article-title>Xarray: N-D labeled arrays and datasets in Python</article-title>
<source>Journal of Open Research Software</source>
<publisher-name>Ubiquity Press</publisher-name>
<year iso-8601-date="2017">2017</year>
<volume>5</volume>
<issue>1</issue>
<uri>https://doi.org/10.5334/jors.148</uri>
<pub-id pub-id-type="doi">10.5334/jors.148</pub-id>
</element-citation>
</ref>
</ref-list>
</back>
</article>

0 comments on commit 219a712

Please sign in to comment.