Skip to content

Commit

Permalink
add JOSS citation to docs
Browse files Browse the repository at this point in the history
  • Loading branch information
trchudley committed Oct 24, 2024
1 parent fc73032 commit f860a98
Show file tree
Hide file tree
Showing 7 changed files with 96 additions and 24 deletions.
38 changes: 38 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
cff-version: "1.2.0"
authors:
- family-names: Chudley
given-names: Thomas R.
orcid: "https://orcid.org/0000-0001-8547-1132"
- family-names: Howat
given-names: Ian M.
orcid: "https://orcid.org/0000-0002-8072-6260"
contact:
- family-names: Chudley
given-names: Thomas R.
orcid: "https://orcid.org/0000-0001-8547-1132"
doi: 10.5281/zenodo.13936813
message: If you use this software, please cite our article in the
Journal of Open Source Software.
preferred-citation:
authors:
- family-names: Chudley
given-names: Thomas R.
orcid: "https://orcid.org/0000-0001-8547-1132"
- family-names: Howat
given-names: Ian M.
orcid: "https://orcid.org/0000-0002-8072-6260"
date-published: 2024-10-23
doi: 10.21105/joss.07149
issn: 2475-9066
issue: 102
journal: Journal of Open Source Software
publisher:
name: Open Journals
start: 7149
title: "pDEMtools: conveniently search, download, and process
ArcticDEM and REMA products"
type: article
url: "https://joss.theoj.org/papers/10.21105/joss.07149"
volume: 9
title: "pDEMtools: conveniently search, download, and process ArcticDEM
and REMA products"
27 changes: 16 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,9 @@
__Conveniently search, download, and process ArcticDEM and REMA products__


[![conda-forge version](https://anaconda.org/conda-forge/pdemtools/badges/version.svg)](https://anaconda.org/conda-forge/pdemtools) [![PyPI version](https://badge.fury.io/py/pdemtools.svg)](https://pypi.org/project/pdemtools/) [![Documentation Status](https://readthedocs.org/projects/pdemtools/badge/?version=latest)](https://pdemtools.readthedocs.io/en/latest/?badge=latest) [![Unit Tests](https://github.com/trchudley/pdemtools/actions/workflows/unit_test.yml/badge.svg)](https://github.com/trchudley/pdemtools/actions/workflows/unit_test.yml) [![JOSS paper](https://joss.theoj.org/papers/2a10e67d2709a6cfb672538b4a21726e/status.svg)](https://joss.theoj.org/papers/2a10e67d2709a6cfb672538b4a21726e)
[![conda-forge version](https://anaconda.org/conda-forge/pdemtools/badges/version.svg)](https://anaconda.org/conda-forge/pdemtools) [![PyPI version](https://badge.fury.io/py/pdemtools.svg)](https://pypi.org/project/pdemtools/) [![Documentation Status](https://readthedocs.org/projects/pdemtools/badge/?version=latest)](https://pdemtools.readthedocs.io/en/latest/?badge=latest) [![Unit Tests](https://github.com/trchudley/pdemtools/actions/workflows/unit_test.yml/badge.svg)](https://github.com/trchudley/pdemtools/actions/workflows/unit_test.yml) [![JOSS paper](https://joss.theoj.org/papers/10.21105/joss.07149/status.svg)](https://doi.org/10.21105/joss.07149)


pDEMtool provides a convenient set of functions to explore, download, and preprocess high-resolution DEMs of the polar regions from the ArcticDEM (Porter _et al._ 2022; 2023) and Reference Elevation Model of Antarctica (REMA; Howat _et al._ 2022a, b) products, courtesy of the Polar Geospatial Center (PGC).
pDEMtools provides a convenient set of functions to explore, download, and preprocess high-resolution DEMs of the polar regions from the ArcticDEM (Porter _et al._ 2022; 2023) and Reference Elevation Model of Antarctica (REMA; Howat _et al._ 2022a, b) products, courtesy of the Polar Geospatial Center (PGC).

The first aim of pDEMtools is to enable access to ArcticDEM and REMA mosaics and multitemporal strips using the `search()` function and `load` module:

Expand Down Expand Up @@ -36,19 +35,25 @@ Please visit the [pDEMtools readthedocs](https://pdemtools.readthedocs.io/) for

## Cite

<!--
Update when v.1.0 uploaded to Zendoo.
-->

A software paper is being prepared for the [Journal of Open Source Software](https://joss.theoj.org/). In the meantime, the use of the pDEMtools package can be cited as follows:
A software paper for `pdemtools` is published in the [Journal of Open Source Software](https://joss.theoj.org/), and can be cited as follows:

> Chudley, T. R. and Howat, I. M. (2024) pDEMtools: conveniently search, download, and process ArcticDEM and REMA products (vX.X.X). GitHub. https://github.com/trchudley/pDEMtools
> Chudley, T. R., and Howat, I. M. (2024). pDEMtools: conveniently search, download, and process ArcticDEM and REMA products. _Journal of Open Source Software_, _9_(102), 7149, doi.org/10.21105/joss.07149
or by using `bibtex`:

```
@software{pDEMtools
author = {Chudley, Thomas R. and Howat, Ian M.}, title = {pDEMtools: conveniently search, download, and process ArcticDEM and REMA products}, year = 2024, publisher = {GitHub}, version = {X.X.X}, url = {https://github.com/trchudley/pDEMtools}
@article{Chudley2024,
title = {pDEMtools: conveniently search, download, and process ArcticDEM and REMA products},
volume = {9},
ISSN = {2475-9066},
url = {http://dx.doi.org/10.21105/joss.07149},
DOI = {10.21105/joss.07149},
number = {102},
journal = {Journal of Open Source Software},
publisher = {The Open Journal},
author = {Chudley, Thomas R. and Howat, Ian M.},
year = {2024},
pages = {7149}
}
```

Expand Down
Empty file modified docs/appendix/faq.md
100755 → 100644
Empty file.
11 changes: 9 additions & 2 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,12 @@
# -- Project information -----------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information

import datetime

year = datetime.date.today().year

project = "pdemtools"
# copyright = "2024, Tom Chudley"
copyright = "2023-{}, The pdemtools Development Team".format(year)
author = "Tom Chudley"
# release = "0.6"

Expand Down Expand Up @@ -55,8 +59,10 @@
# Book theme options
html_theme_options = {
"repository_url": "https://github.com/trchudley/pdemtools",
"home_page_in_toc": False,
"use_repository_button": True,
"home_page_in_toc": True,
"use_source_button": True,
"use_issues_button": True
# "logo": {
# "image_light": "_static/logo-light.png",
# "image_dark": "_static/logo-dark.png",
Expand All @@ -66,3 +72,4 @@

# Site-wide logo!
html_logo = "_static/pdemtools_logo_1600px.png"

18 changes: 14 additions & 4 deletions docs/getting_started/cite.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,24 @@
# Cite

A software paper is being prepared for the [Journal of Open Source Software](https://joss.theoj.org/). In the meantime, the use of the pDEMtools package can be cited as follows:
A software paper for `pdemtools` is published in the [Journal of Open Source Software](https://joss.theoj.org/), and can be cited as follows:

> Chudley, T. R. and Howat, I. M. (2024) pDEMtools: conveniently search, download, and process ArcticDEM and REMA products (vX.X.X). GitHub. https://github.com/trchudley/pDEMtools
> Chudley, T. R., and Howat, I. M. (2024). pDEMtools: conveniently search, download, and process ArcticDEM and REMA products. _Journal of Open Source Software_, _9_(102), 7149, doi.org/10.21105/joss.07149
or by using `bibtex`:

```
@software{pDEMtools
author = {Chudley, Thomas R. and Howat, Ian M.}, title = {pDEMtools: conveniently search, download, and process ArcticDEM and REMA products}, year = 2024, publisher = {GitHub}, version = {X.X.X}, url = {https://github.com/trchudley/pDEMtools}
@article{Chudley2024,
title = {pDEMtools: conveniently search, download, and process ArcticDEM and REMA products},
volume = {9},
ISSN = {2475-9066},
url = {http://dx.doi.org/10.21105/joss.07149},
DOI = {10.21105/joss.07149},
number = {102},
journal = {Journal of Open Source Software},
publisher = {The Open Journal},
author = {Chudley, Thomas R. and Howat, Ian M.},
year = {2024},
pages = {7149}
}
```

Expand Down
6 changes: 3 additions & 3 deletions docs/getting_started/why_pdemtools.md
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# Why pDEMtools?

> This page reproduces the 'Statement of Need' of the [_Journal of Open Source Software_ manuscript](https://joss.theoj.org/papers/2a10e67d2709a6cfb672538b4a21726e) for `pdemtools`.
> This page reproduces the 'Statement of Need' of the [_Journal of Open Source Software_ manuscript](http://dx.doi.org/10.21105/joss.07149) for `pdemtools`.
[ArcticDEM](https://www.pgc.umn.edu/data/arcticdem/) and [REMA](https://www.pgc.umn.edu/data/rema/) are high-resolution, time-stamped 2-metre-resolution DEMs of the polar regions provided by the Polar Geospatial Center (PGC). They are extracted by applying stereo auto-correlation techniques ([Noh & Howat, 2017](https://doi.org/10.1016/j.isprsjprs.2017.04.019)) to pairs of submetre Maxar satellite imagery. The data includes Worldview-1, Worldview-2, Worldview-3, and GeoEye-1, beginning in 2007 (ArcticDEM) or 2009 (REMA) and ongoing to the present day. Products are available as tens of thousands of time-stamped 'strips' ([Porter _et al._ 2022](ttps://doi.org/10.7910/DVN/OHHUKH); [Howat _et al._ 2022a](https://doi.org/10.7910/DVN/X7NDNY)) constructed from individual scene pairs, or as a single mosaic ([Porter _et al._ 2023](https://doi.org/10.7910/DVN/3VDC4W); [Howat _et al._ 2022a](https://doi.org/10.7910/DVN/EBW8UC)) compiled from the combined stack of strips. Strips allow users to perform change detection by comparing data from different seasons or years, whilst mosaics provide a consistent and comprehensive product over the entire polar regions.

As Earth Science has moved into the 'big data' era, increasing amounts of Arctic- and Antarctic-focused resources are available as public, cloud-optimised datasets. New approaches are providing Python tools to act as combined API and processing tools, such as [`icepyx`](https://icepyx.readthedocs.io) ([Scheick _et al._ 2023](https://doi.org/10.21105/joss.04912)) or [`pypromice`](https://pypromice.readthedocs.io) ([How _et al._ 2023](https://doi.org/10.21105/joss.05298)). From 2022 (ArcticDEM v4.1 and REMA v2), the PGC DEM products are [hosted](https://polargeospatialcenter.github.io/stac-browser/#/external/pgc-opendata-dems.s3.us-west-2.amazonaws.com/pgc-data-stac.json) as Cloud Optimised GeoTIFFs (CoGs) in a SpatioTemporal Asset Catalog (STAC), a standardised structure for cataloguing spatiotemporal data. However, the PGC STAC is currently a 'static' rather than 'dynamic' STAC, which means there is no convenient Application Programming Interface (API) for searching the datasets in response to user queries. This limits the ability of users to programmatically interact with ArcticDEM and REMA data in a quick and efficient manner. The `pdemtools` package has two aims: the first is to provide a Python-focussed alternative for searching and downloading ArcticDEM and REMA data, emulating dynamic STAC query tools such as [`pystac`](https://pystac.readthedocs.io); whilst the second is to provide commonly used processing functions specific to the needs of ArcticDEM and REMA users (a focus on ice sheet and cryosphere work), as well as the particular strengths of the ArcticDEM and REMA datasets (high-resolution and multitemporal).
As Earth Science has moved into the 'big data' era, increasing amounts of Arctic- and Antarctic-focused resources are available as public, cloud-optimised datasets. New approaches are providing Python tools to act as combined Application Programming Interface (API) and processing tools, such as [`icepyx`](https://icepyx.readthedocs.io) ([Scheick _et al._ 2023](https://doi.org/10.21105/joss.04912)) or [`pypromice`](https://pypromice.readthedocs.io) ([How _et al._ 2023](https://doi.org/10.21105/joss.05298)). From 2022 (ArcticDEM v4.1 and REMA v2), the PGC DEM products are [hosted](https://polargeospatialcenter.github.io/stac-browser/#/external/pgc-opendata-dems.s3.us-west-2.amazonaws.com/pgc-data-stac.json) as Cloud Optimised GeoTIFFs (CoGs) in a SpatioTemporal Asset Catalog (STAC), a standardised structure for cataloguing spatiotemporal data. However, the PGC STAC is currently a 'static' rather than 'dynamic' STAC, which means there is no convenient API for searching the datasets in response to user queries. This limits the ability of users to programmatically interact with ArcticDEM and REMA data in a quick and efficient manner. The `pdemtools` package has two aims: the first is to provide a Python-focussed alternative for searching and downloading ArcticDEM and REMA data, emulating dynamic STAC query tools such as [`pystac`](https://pystac.readthedocs.io); whilst the second is to provide commonly used processing functions specific to the needs of ArcticDEM and REMA users (a focus on ice sheet and cryosphere work), as well as the particular strengths of the ArcticDEM and REMA datasets (high-resolution and multitemporal).

The `pdemtools` `search()` tool and `load` module allow for convenient access to the ArcticDEM and REMA datasets. Mosaics can be downloaded from a one-line `load.mosaic()` function, whilst the `search()` function allows for convenient filtering of a locally downloading ArcticDEM/REMA strip index according to variables such as date, region of interest, spatial coverage, temporal baseline, source sensors, accuracy, and cross-track data. The results of searches are returned as a [`geopandas`](https://geopandas.org) dataframe, and can be downloaded using the `load.from_search()` function. Elevation models are returned as [`xarray`](https://docs.xarray.dev) DataArrays [Hoyer _et al. 2017](https://doi.org/10.5334/jors.148) with geospatial metadata via the [`rioxarray`](https://corteva.github.io) extension - a standard format for storing and processing n-dimensional geospatial data within the geospatial Python community. By utilising standardised formats, the aim is to allow the user to quickly move beyond `pdemtools` into their own analysis in whatever format they desire, be that `xarray`, `numpy` or `dask` datasets, DEM analysis Python packages such as [`xdem`](https://xdem.readthedocs.io/) for advanced coregistration or [`richdem`](https://richdem.readthedocs.io) for flow analysis, or exporting to geospatial file formats for analysis beyond Python.

After download, there exist a number of (pre-)processing steps that are near universally common in topographic analyses. These include geoid-correction, co-registration of time-series data, and/or the construction of terrain parameters such as hillshade, slope, aspect, and curvature. `pdemtools` contains pre-built functions to perform these processing steps, as well as further functionality specific to ArcticDEM and REMA use cases. For instance, we include functions to quickly extract the EIGEN-6C4 geoid [Foerste _et al._ 2014](https://doi.org/10.5880/icgem.2015.1) and Greenland/Antarctic bedrock masks directly from local versions of the Greenland and Antarctic BedMachine datasets (Morlighem _et al_, [2022a](https://doi.org/10.5067/GMEVBWFLWA7X), [2022b](https://doi.org/10.5067/FPSU0V1MWUB6)), reprojecting and resampling the data to match the target DEM. Options for ingesting user-provided mask and geoid data are also provided. Additionally, partial derivatives of the surface used to calculate terrain parameters (∂z/∂x, ∂z/∂y, ∂<sup>2</sup>z/∂x<sup>2</sup>, ∂<sup>2</sup>z/∂y<sup>2</sup>, ∂<sup>2</sup>z/∂x∂y) are calculated following [Florinsky (2009)](https://doi.org/10.1080/13658810802527499), as opposed to more common methods such as [Zevenbergen and Thorne (1987)](https://doi.org/10.1002/esp.3290120107). The newer approach computes partial derivatives of elevation based on fitting a third-order polynomial, by the least-squares approach, to a 5 $\times$ 5 window as opposed to the more common 3 $\times$ 3 window. This is more appropriate for high-resolution DEMs: curvature over a 10 m window for the 2 m resolution ArcticDEM/REMA strips will lead to a local denoising effect that limits the impact of noise common in high-resolution photogrammetric products. These methods are also adapted into a co-registration routine, which otherwise follows the commonly used approach of [Nuth & Kääb (2011)](https://doi.org/10.5194/tc-5-271-2011).

We aim to grow `pdemtools` by implementing new methods developed by the ArcticDEM and REMA research community. For instance, we currently include sea-level-filtering and iceberg detection routines outlined by @shiggins_automated_2023, and invite community contributions or requests of other routines that will be of use to users of `pdemtools`. Ongoing research projects making use of `pdemtools` are applying ArcticDEM and REMA data to the mapping of crevasses, ice cliff heights, and subglacial lakes, as well as the initiation of ice sheet models. It has also been used within training exercises at the 2024 Polar Geospatial Center Data Workshop, contributing to a growing international network of `pdemtools` users.
We aim to grow `pdemtools` by implementing new methods developed by the ArcticDEM and REMA research community. For instance, we currently include sea-level-filtering and iceberg detection routines outlined by Shiggins _et al._ (2023), and invite community contributions or requests of other routines that will be of use to users of `pdemtools`. Ongoing research projects making use of `pdemtools` are applying ArcticDEM and REMA data to the mapping of crevasses, ice cliff heights, and subglacial lakes, as well as the initiation of ice sheet models. It has also been used within training exercises at the 2024 Polar Geospatial Center Data Workshop, contributing to a growing international network of `pdemtools` users.
20 changes: 16 additions & 4 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,16 @@
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
pDEMtools
=========
.. |version badge| image:: https://badge.fury.io/py/pdemtools.svg
:alt: PyPi package link and version
:target: https://pypi.org/project/pdemtools/

.. |JOSS| image:: https://joss.theoj.org/papers/10.21105/joss.07149/status.svg
:alt: JOSS publication link and DOI
:target: https://doi.org/10.21105/joss.07149

pDEMtools |version badge| |JOSS|
=====================================

.. .. image:: _static/pdemtools_logo_1600px.png
.. :align: center
Expand Down Expand Up @@ -38,8 +46,11 @@ Rather than introducing custom classes, pDEMtools will always try and return DEM

**Contact me:** Tom Chudley, thomas.r.chudley@durham.ac.uk

**Cite pDEMtools:** Chudley, T. R., and Howat, I. M. (2024). pDEMtools: conveniently search, download, and process ArcticDEM and REMA products. *Journal of Open Source Software*, *9*(102), 7149, doi.org/10.21105/joss.07149
.. toctree::
:maxdepth: 2
:hidden:
:caption: Getting Started:

getting_started/why_pdemtools.md
Expand All @@ -49,6 +60,7 @@ Rather than introducing custom classes, pDEMtools will always try and return DEM

.. toctree::
:maxdepth: 2
:hidden:
:caption: Examples:

examples/mosaic_and_terrain
Expand All @@ -58,7 +70,7 @@ Rather than introducing custom classes, pDEMtools will always try and return DEM

.. toctree::
:maxdepth: 3
:glob:
:hidden:
:caption: API reference:

api/search.rst
Expand All @@ -68,7 +80,7 @@ Rather than introducing custom classes, pDEMtools will always try and return DEM

.. toctree::
:maxdepth: 2
:glob:
:hidden:
:caption: Appendix:

appendix/faq.md
Expand Down

0 comments on commit f860a98

Please sign in to comment.