Skip to content

nert: Curated Access to TERN Environmental Raster Data #785

Description

@max578

Submitting Author Name: Max Moldovan
Submitting Author Github Handle: @max578
Other Package Authors Github handles: (comma separated, delete if none) @adamhsparks, @RussellAndrewEdson, @wvjgsuhp, @rogerssam
Repository: https://github.com/AAGI-AUS/nert
Version submitted: 1.1.0
Submission type: Standard
Editor: @obrl-soil
Reviewers: TBD

Archive: TBD
Version accepted: TBD
Language: en


  • Paste the full DESCRIPTION file inside a code block below:
Package: nert
Title: Curated Access to TERN Environmental Raster Data
Version: 1.1.0
Authors@R: c(
    person("Adam H.", "Sparks", , "adamhsparks@gmail.com", role = "aut",
           comment = c(ORCID = "0000-0002-0061-8359")),
    person("Max", "Moldovan", , "max.moldovan@adelaide.edu.au", role = c("cre", "aut"),
           comment = c(ORCID = "0000-0001-9680-8474")),
    person("Russell A.", "Edson", , "russell.edson@adelaide.edu.au", role = "aut",
           comment = c(ORCID = "0000-0002-4607-5396")),
    person("Wasin", "Pipattungsakul", , "wasin.pipattungsakul@adelaide.edu.au", role = "aut"),
    person("Sam", "Rogers", , "sam.rogers@adelaide.edu.au", role = "aut",
           comment = c(ORCID = "0000-0002-8147-1239")),
    person("Grains Research and Development Corporation", role = c("fnd", "cph"),
           comment = c("GRDC Project CUR2210-005OPX (AAGI-CU), UOA2301-005OPX (AAGI-AU)", ROR = "02xwr1996"))
  )
Description: Provides curated access to gridded environmental data
    published by Australia's Terrestrial Ecosystem Research Network
    (TERN; <https://www.tern.org.au/>), spanning national soil
    attribute, soil classification, soil biodiversity, soil moisture,
    actual evapotranspiration, vegetation canopy height and phenology
    products. The package reads Cloud-Optimised GeoTIFF and virtual
    raster files directly from the TERN data server via GDAL
    '/vsicurl' range requests, streaming only the requested spatial and
    temporal subset for efficient data transfer. The environmental
    raster data are returned as terra::SpatRaster objects. A convenient
    helper function is also provided that provides a batch-download
    capability given specific locations and dates, returning the
    extracted data values in an analysis-ready data.table. Access to
    the TERN datasets using this package requires a TERN API key.
License: MIT + file LICENSE
URL: https://aagi-aus.github.io/nert/, https://github.com/AAGI-AUS/nert
BugReports: https://github.com/AAGI-AUS/nert/issues
Depends:
    R (>= 3.5.0)
Imports:
    cli,
    data.table,
    ggplot2 (>= 3.5.0),
    lubridate,
    rlang,
    terra,
    tidyterra,
    utils
Suggests:
    keyring,
    knitr,
    nlme,
    rmarkdown,
    testthat (>= 3.2.0),
    xml2,
    usethis,
    withr
VignetteBuilder:
    knitr
Config/Needs/build: moodymudskipper/devtag
Config/roxygen2/version: 8.0.0
Config/testthat/edition: 3
Config/testthat/parallel: true
Encoding: UTF-8
Language: en-AU
Roxygen: list(markdown = TRUE, roclets = c("collate", "namespace", "rd",
    "devtag::dev_roclet"))
X-schema.org-applicationCategory: Tools
X-schema.org-isPartOf:
    https://grdc.com.au/research/partnerships-and-initiatives/strategic-partnerships/aagi
X-schema.org-keywords: TERN, soil-data, Australia, earth-science,
    data-access

Scope

  • Please indicate which category or categories from our package fit policies this package falls under: (Please check an appropriate box below. If you are unsure, we suggest you make a pre-submission inquiry.):

    • data retrieval
    • data extraction
    • data munging
    • data deposition
    • data validation and testing
    • workflow automation
    • version control
    • citation management and bibliometrics
    • scientific software wrappers
    • field and lab reproducibility tools
    • database software bindings
    • geospatial data
    • translation
    • rOpenSci internal tools
  • Explain how and why the package falls under these categories (briefly, 1-2 sentences):

nert retrieves gridded environmental raster data directly from Australia's TERN national data server (data retrieval), streaming Cloud-Optimised GeoTIFF and virtual-raster subsets via GDAL /vsicurl range requests. It returns geospatial terra::SpatRaster objects and, via a batch helper, analysis-ready extracted values at user locations and dates (geospatial data).

  • Who is the target audience and what are scientific applications of this package?

The target audience is Australian agricultural, soil, and environmental researchers and data analysts, who need programmatic, analysis-ready access to TERN's national gridded raster products without handling TERN's raw storage layout or GDAL /vsicurl mechanics. Scientific applications include soil-attribute and soil-classification mapping, soil-moisture and actual-evapotranspiration time-series extraction, vegetation canopy-height and phenology analysis, and assembling covariates for agronomic and environmental modelling.

Yes, there is partial overlap, confined to the SLGA (Soil and Landscape Grid of Australia) portion of nert's coverage:

  • SLGACloud (GitHub; AusSoilsDSM/SLGACloud) provides helper functions to access TERN Landscapes Cloud-Optimised GeoTIFFs for SLGA, using a TERN Data API key and terra - the same data host, authentication, and technology nert uses for its SLGA datasets.
  • slga (CRAN; obrl-soil/slga) downloads geographic subsets of SLGA soil-attribute and terrain/climate rasters via OGC Web Coverage Service (WCS) endpoints.
  • ausplotsR (CRAN; ternaustralia/ausplotsR) accesses a different TERN product - point-based AusPlots field-survey vegetation and soil data - not gridded rasters.

General-purpose geospatial tools (terra, rstac, gdalcubes, geodata) require the user to already know each dataset's URLs, structure, projection, and temporal coverage.

nert differs, and aims to be best-in-category by breadth and consistency rather than by being the only SLGA option. It provides a single curated, validated read_*() / collect_tern_data() API across seven TERN gridded product families - SLGA soil attributes, soil classification (ASC), soil biodiversity, soil moisture (SMIPS), actual evapotranspiration, vegetation canopy height, and phenology - whereas the existing tools are each single-product (SLGA-only or AusPlots-only). It abstracts TERN's raw storage layout, streams only the requested spatial-temporal subset via GDAL /vsicurl, and adds a batch point-extraction helper returning analysis-ready data.tables. For the SLGA subset specifically, nert is complementary to SLGACloud and slga. Its distinct contribution is unified, consistent, validated access across the wider TERN raster archive.

Not applicable. nert accesses openly published, non-personal environmental raster data. It involves no human subjects, personal, or otherwise sensitive data.

  • If you made a pre-submission inquiry, please paste the link to the corresponding issue, forum post, or other discussion, or @tag the editor you contacted.

No pre-submission inquiry was made, scope fit (data retrieval / geospatial data) is considered clear.

  • Explain reasons for any pkgcheck items which your package is unable to pass.

pkgcheck (v0.1.3.6) was run against the submission commit and reports "Your package is in great shape!". All structural checks pass: package name available, contributing file, roxygen2, DESCRIPTION URL and BugReports fields, at least one HTML vignette, examples for all functions, package website, continuous integration, 100% test coverage, and R CMD check with no errors and no warnings. There are no failing pkgcheck items.

Three informational (non-failing) notes are reported:

  • Examples are guarded (nine functions use if (interactive()), one uses \dontrun()) because every data call requires a live TERN API key and therefore cannot execute in a noninteractive check and this safeguards against errors on CRAN.
  • "Function names are duplicated in other packages": some exported names coincide with functions in unrelated CRAN packages. This is informational and does not create a namespace conflict.
  • "Some goodpractice linters failed": minor style notes from goodpractice's linter set.

(Note for anyone rerunning pkgcheck locally: its continuous-integration check queries the GitHub API and reports a false negative when run without a GitHub token. With API access, as in the ropensci-review-bot environment, it passes. nert has GitHub Actions CI across Ubuntu devel/release/oldrel, macOS and Windows, plus lintr, test-coverage and pkgdown, all currently passing.)

Technical checks

Confirm each of the following by checking the box.

This package:

Use of Generative AI

  • Generative AI tools were used to produce some of the material in this submission.

Generative AI coding tools were used as a part of the package's development. A reference implementation for one dataset (SMIPS) was written by hand, and that pattern was then generalised with AI assistance to the other TERN datasets the package covers. The AI-assisted code was afterwards reviewed and revised line-by-line by the package maintainers, and its external facts (dataset identifiers, file-path templates, temporal ranges, units) were checked against TERN's live data services and metadata before release.

Publication options

  • Do you intend for this package to go on CRAN?

  • Do you intend for this package to go on Bioconductor?

  • Do you wish to submit an Applications Article about your package to Methods in Ecology and Evolution? If so:

MEE Options
  • The package is novel and will be of interest to the broad readership of the journal.
  • The manuscript describing the package is no longer than 3000 words.
  • You intend to archive the code for the package in a long-term repository which meets the requirements of the journal (see MEE's Policy on Publishing Code)
  • (Scope: Do consider MEE's Aims and Scope for your manuscript. We make no guarantee that your manuscript will be within MEE scope.)
  • (Although not required, we strongly recommend having a full manuscript prepared when you submit here.)
  • (Please do not submit your package separately to Methods in Ecology and Evolution)

Code of conduct

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions