Skip to content

Commit

Permalink
Merge pull request #6217 from openjournals/joss.07406
Browse files Browse the repository at this point in the history
Merging automatically
  • Loading branch information
editorialbot authored Dec 4, 2024
2 parents a6d486c + 219a712 commit f6b7ae8
Show file tree
Hide file tree
Showing 3 changed files with 377 additions and 0 deletions.
148 changes: 148 additions & 0 deletions joss.07406/10.21105.joss.07406.crossref.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
<?xml version="1.0" encoding="UTF-8"?>
<doi_batch xmlns="http://www.crossref.org/schema/5.3.1"
xmlns:ai="http://www.crossref.org/AccessIndicators.xsd"
xmlns:rel="http://www.crossref.org/relations.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="5.3.1"
xsi:schemaLocation="http://www.crossref.org/schema/5.3.1 http://www.crossref.org/schemas/crossref5.3.1.xsd">
<head>
<doi_batch_id>20241204155753-9acb097bdd7e66b9caf60a09008c005e0d34e694</doi_batch_id>
<timestamp>20241204155753</timestamp>
<depositor>
<depositor_name>JOSS Admin</depositor_name>
<email_address>admin@theoj.org</email_address>
</depositor>
<registrant>The Open Journal</registrant>
</head>
<body>
<journal>
<journal_metadata>
<full_title>Journal of Open Source Software</full_title>
<abbrev_title>JOSS</abbrev_title>
<issn media_type="electronic">2475-9066</issn>
<doi_data>
<doi>10.21105/joss</doi>
<resource>https://joss.theoj.org</resource>
</doi_data>
</journal_metadata>
<journal_issue>
<publication_date media_type="online">
<month>12</month>
<year>2024</year>
</publication_date>
<journal_volume>
<volume>9</volume>
</journal_volume>
<issue>104</issue>
</journal_issue>
<journal_article publication_type="full_text">
<titles>
<title>ndbc-api: Accelerating oceanography and climate science
research with Python</title>
</titles>
<contributors>
<person_name sequence="first" contributor_role="author">
<given_name>Christopher David</given_name>
<surname>Jellen</surname>
<affiliations>
<institution><institution_name>United States Naval Academy, USA</institution_name></institution>
</affiliations>
<ORCID>https://orcid.org/0000-0003-0469-353X</ORCID>
</person_name>
</contributors>
<publication_date>
<month>12</month>
<day>04</day>
<year>2024</year>
</publication_date>
<pages>
<first_page>7406</first_page>
</pages>
<publisher_item>
<identifier id_type="doi">10.21105/joss.07406</identifier>
</publisher_item>
<ai:program name="AccessIndicators">
<ai:license_ref applies_to="vor">http://creativecommons.org/licenses/by/4.0/</ai:license_ref>
<ai:license_ref applies_to="am">http://creativecommons.org/licenses/by/4.0/</ai:license_ref>
<ai:license_ref applies_to="tdm">http://creativecommons.org/licenses/by/4.0/</ai:license_ref>
</ai:program>
<rel:program>
<rel:related_item>
<rel:description>Software archive</rel:description>
<rel:inter_work_relation relationship-type="references" identifier-type="doi">10.5281/zenodo.14261355</rel:inter_work_relation>
</rel:related_item>
<rel:related_item>
<rel:description>GitHub review issue</rel:description>
<rel:inter_work_relation relationship-type="hasReview" identifier-type="uri">https://github.com/openjournals/joss-reviews/issues/7406</rel:inter_work_relation>
</rel:related_item>
</rel:program>
<doi_data>
<doi>10.21105/joss.07406</doi>
<resource>https://joss.theoj.org/papers/10.21105/joss.07406</resource>
<collection property="text-mining">
<item>
<resource mime_type="application/pdf">https://joss.theoj.org/papers/10.21105/joss.07406.pdf</resource>
</item>
</collection>
</doi_data>
<citation_list>
<citation key="NDBC_Data_Guide">
<article_title>NDBC web data guide</article_title>
<author>National Data Buoy Center (NDBC)</author>
<cYear>2023</cYear>
<unstructured_citation>National Data Buoy Center (NDBC).
(2023). NDBC web data guide.
https://www.ndbc.noaa.gov/docs/ndbc_web_data_guide.pdf.</unstructured_citation>
</citation>
<citation key="NDBC_Active_Stations">
<article_title>NDBC active stations</article_title>
<author>National Data Buoy Center (NDBC)</author>
<cYear>2024</cYear>
<unstructured_citation>National Data Buoy Center (NDBC).
(2024). NDBC active stations.
https://www.ndbc.noaa.gov/wstat.shtml.</unstructured_citation>
</citation>
<citation key="pandas">
<article_title>Data Structures for Statistical Computing in
Python</article_title>
<author>Mckinney</author>
<journal_title>Proceedings of the 9th Python in Science
Conference</journal_title>
<issue>1</issue>
<volume>445</volume>
<doi>10.25080/majora-92bf1922-00a</doi>
<cYear>2010</cYear>
<unstructured_citation>Mckinney, W. (2010). Data Structures
for Statistical Computing in Python. Proceedings of the 9th Python in
Science Conference, 445(1), 56–61.
https://doi.org/10.25080/majora-92bf1922-00a</unstructured_citation>
</citation>
<citation key="reback2020pandas">
<article_title>pandas-dev/pandas: Pandas</article_title>
<author>The pandas development team</author>
<doi>10.5281/zenodo.3509134</doi>
<cYear>2020</cYear>
<unstructured_citation>The pandas development team. (2020).
pandas-dev/pandas: Pandas (latest). Zenodo.
https://doi.org/10.5281/zenodo.3509134</unstructured_citation>
</citation>
<citation key="hoyer2017xarray">
<article_title>Xarray: N-D labeled arrays and datasets in
Python</article_title>
<author>Hoyer</author>
<journal_title>Journal of Open Research
Software</journal_title>
<issue>1</issue>
<volume>5</volume>
<doi>10.5334/jors.148</doi>
<cYear>2017</cYear>
<unstructured_citation>Hoyer, S., &amp; Hamman, J. (2017).
Xarray: N-D labeled arrays and datasets in Python. Journal of Open
Research Software, 5(1).
https://doi.org/10.5334/jors.148</unstructured_citation>
</citation>
</citation_list>
</journal_article>
</journal>
</body>
</doi_batch>
Binary file added joss.07406/10.21105.joss.07406.pdf
Binary file not shown.
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 f6b7ae8

Please sign in to comment.