Tidy Approach to 'NetCDF' Data Exploration and Extraction
Overview
Tidy tools for 'NetCDF' data sources. Explore the contents of a 'NetCDF' source (file or URL) presented as variables organized by grid with a database-like interface. The hyper_filter() interactive function translates the filter value or index expressions to array-slicing form. No data is read until explicitly requested, as a data frame or list of arrays via hyper_tibble() or hyper_array().
This release adds multi-source support, request of (#131): a tidync object can now present a consolidated
lazy view across a collection of NetCDF sources, extending the
filter-then-read model unchanged from one file to many.
Multi-source collections
tidync()now accepts a vector of file paths together with aconcat_dimargument, building a consolidated view across sources along that dimension (typically time). Downstream operations (hyper_filter(),hyper_array(),hyper_tibble(),hyper_tbl_cube()) work transparently across the collection, and only the files needed for the current selection are opened at read time. A single file withconcat_dimis a valid degenerate collection.- Fast mode for large collections:
tidync(files, concat_dim = "time", fast = TRUE)skips full metadata scans of sources 2..N, reading only the concat dimension coordinate from each file. Validation is deferred to data-read time, where dimension mismatches are reported with the offending file named. In fast mode the time coordinate is presented numerically (no timestamp column), since per-source calendar metadata is not read; use the default full mode for CFtime timestamps.
Show all changes in 0.5.0Hide the rest of the changes in 0.5.0
- Zero file I/O construction: supply coordinate values directly with
concat_dim = list(name = "time", values = dates)and only the first source is opened (as the template). Values can be numeric, Date, or POSIXct, andhyper_filter()operates on them directly. This is aimed at file-database workflows (for example raadfiles) where per-file coordinates are already known. This construction assumes one step per source; files holding more steps on the concat dimension are detected at read time and reported as an error rather than silently subset. - Read-time validation is armed automatically for fast mode and for values-supplied construction: shared dimensions and the per-source concat dimension length are checked against the consolidated view as each file is opened, with clear errors naming the file.
- Optional parallel reads via mirai: when
mirai::daemons()are active, per-source reads inhyper_array()run in parallel withmirai::mirai_map(), falling back to sequential reads when mirai is not installed or no daemons are set. Parallelism is entirely under user control; tidync never starts daemons itself. Errors raised during parallel reads (including validation failures) propagate normally. - Sources are kept in the order supplied; the consolidated
indexon the concat dimension is file order. Value-based filters work regardless of ordering, but supply sources in coordinate order for a monotonic view. tidync()on atidync_dataobject (round-trip) preserves the source table andconcat_dim.
Known limitations
- Non-contiguous selections *within* a single source still read a bounding slab and are not supported at
hyper_array()time, consistent with single-source behaviour. Non-contiguous selections that span whole sources (for example dropping intermediate files) are supported and read only the files required.
Fixes
- Fixed
hyper_tibble()producing constant dimension values whendrop = TRUE(the default) collapses arrays to bare vectors; expansion is now based onlength()rather thanprod(dim()). - Fixed the print method showing NA for min/max of Date/POSIXct coordinate columns; non-numeric coordinates are now converted with
as.numeric()(Date as days since epoch) rather than replaced with NA. - Repaired mangled pipe operators in the package overview help examples.
- Removed commented-out
browser()calls. - Update to CFTime as_timestamp(), thanks to @fabern.
- Support for CF time metadata via package CFtime thanks to @pvanlaake, see https://github.com/ropensci/tidync/pull/124
- Suppress ncdf4 warnings on open, issue #119.
Dependencies and internals
- Minimum R version is now 4.1.0 (native pipe
|>). Removed forcats, magrittr, and purrr dependencies;%>%replaced with|>throughout andpurrr::safely()replaced withtryCatch(). - ncmeta (>= 0.5.0) is now required, for extended (CFtime) metadata and for correct handling of sources with no variables (such as compound-type L3 bin files), which errored uninformatively with earlier ncmeta under current dplyr.
- Minimum dplyr version is 1.1.0 (
multipleargument in joins) and minimum tidyr version is 1.0.0 (colsargument inunnest()); all version-gating conditionals removed. - mirai added to Suggests.
print.tidyncnow returns its input invisibly, as always claimed.
From NEWS.md in the release
Install
Health
- OK13 OK2026-08-04
- NOTE12 OK, 1 NOTE2026-08-01
- OK13 OK2026-06-09
- ERROR12 OK, 1 ERROR2026-06-08
- OK14 OK2026-03-10
Documentation
- Help pages
- 12 (1 internal)includes a package overview page
- Examples that run
- 100%12 run in a plain check
- Exported functions with examples
- 100%
- Documented parameters
- 100%
- Return-value docs
- 100%
- Help pages citing references
- 0%
Downloads
Repository
- PRs merged (all time)
- 75%
- Median days to close, 50 most recently updated closed issues
- 200
- Median days to close, 50 most recently updated closed PRs
- 0
Stars over time
Forks over time
Releases over time
Issues over time
PRs over time
Commits over time
12 development-tooling and community-health practices detected across 6 families in the upstream repository
Checks run against github.com/ropensci/tidync on 2026-10-25.
The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel
GitHub Pages site last deployed 2019-11-06 · The repository has a site deploy workflow
Show all practicesHide 2 practices
Dependencies
Installing tidync adds 24 packages (14 with compiled code, 19 MB of source tarballs). Heaviest: stringi 11 MB, vctrs 1.0 MB, dplyr 902 KB.
Code & Tests
People & History
Show 1 more contributorHide 1 contributor
Pick two releases to compare their code metrics.
- 0.5.0Latest
- RR 4.6.0 released · 2026-04-24
- RR 4.5.0 released · 2025-04-11
- 0.4.0
- RR 4.4.0 released · 2024-04-24
- RR 4.3.0 released · 2023-04-21
- 0.3.02022-10-27 · diff ↗
- RR 4.2.0 released · 2022-04-22
- RR 4.1.0 released · 2021-05-18
- 0.2.42020-05-12 · diff ↗
- RR 4.0.0 released · 2020-04-24
- unarchivedReturned to CRAN2019-11-07
- 0.2.32019-11-07 · diff ↗
- archivedRemoved from CRAN2019-11-06check problems were not corrected in time
- 0.2.22019-10-22 · diff ↗
- 0.2.12019-05-23 · diff ↗
Package metadata
- First published
- 2019-04-27
- Total releases
- 9 / 7 yrs
- License
- GPL-3 OSI
- Minimum R
- ≥ 4.1.0
- Download size
- 384 KB
Cite
Cite this package
Run in R for the authors' preferred citation:
citation("tidync")This package has no citation file, so citation() returns this entry built from DESCRIPTION.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-26, which the citation names so these numbers can be found later. More on citing and the projects behind them.