View source: R/nc_grid_to_dt.R
nc_grid_to_dt | R Documentation |
Extracts a variable from netcdf, and returns a
data.table
with cell index, date, values, and
optionally: coordinates.
nc_grid_to_dt(
filename,
variable,
icell_raster_pkg = TRUE,
add_xy = FALSE,
interpolate_to_standard_calendar = FALSE,
date_range,
verbose = FALSE
)
filename |
Complete path to .nc file. |
variable |
Name of the variable to extract from |
icell_raster_pkg |
Boolean, if |
add_xy |
Boolean, if |
interpolate_to_standard_calendar |
Boolean, if |
date_range |
(optional) two-element vector of class Date (min, max), which will be used to extract only parts of the netcdf file |
verbose |
Boolean, if |
Coordinates are usually not put in the result, because it saves space. It is
recommended to merge them after the final operations. The unique cell index
is more efficient. However, if you plan to merge to data extracted with the
raster package (assuming the same grid), then cell indices might differ. Set
icell_raster_pkg
to TRUE
, to have the same cell indices. Note
that raster and ncdf4 have different concepts of coordinates (cell corner vs.
cell center), so merging based on coordinates can produce arbitrary results
(besides rounding issues).
A data.table
with columns:
icell: Cell index
date: Date of class Date
, if file has
a standard calendar. Date as character, if it has a non-standard calendar
(360, noleap) and if interpolate_to_standard_calendar
is set to
FALSE
. If interpolate_to_standard_calendar
is TRUE
,
it's always of class Date
.
variable: Values, column is
renamed to input variable
(optional) x,y: Coordinates of
netcdf dimensions, will be renamed to dimension names found in array named
after input variable
Netcdf files can be huge, so loading everything in memory can rapidly crash your R session. Think first about subsetting or aggregating (e.g. using CDO: https://code.mpimet.mpg.de/projects/cdo/).
The raster and terra packages can also open netcdf files and create
data.frames with raster::as.data.frame
or terra::as.data.frame
. But, it does
not handle non-standard calendars, and returns a data.frame, which is
slower than data.table.
# example data from EURO-CORDEX (cropped for size)
fn1 <- system.file("extdata", "test1.nc", package = "eurocordexr")
dat <- nc_grid_to_dt(fn1)
str(dat)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.