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.):
-
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 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
MEE Options
Code of conduct
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
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.):
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::SpatRasterobjects and, via a batch helper, analysis-ready extracted values at user locations and dates (geospatial data).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 andterra- 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.
@tagthe editor you contacted.No pre-submission inquiry was made, scope fit (data retrieval / geospatial data) is considered clear.
pkgcheckitems 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:
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.(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 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
Code of conduct