Creates a NetCDF file with an instance dimension, and any attributes from a data frame. Use to create the start of a NetCDF-DSG file. One character length dimension is created long enough to contain the longest provided character string. This function does not implement any CF convention attributes or standard names. Any columns of class date will be converted to character.
character
file path to the nc file to be created.
If adding to a file, it must already have the named instance dimension.
data.frame
with instances as columns and attributes as rows.
character
name for the instance dimension. Defaults to "instance"
character
vector with units for each column of att_data. Defaults to "unknown" for all.
boolean overwrite existing file? Will append if FALSE.
sample_data <- sf::st_set_geometry(sf::read_sf(system.file("shape/nc.shp",
package = "sf")),
NULL)
example_file <-write_attribute_data(tempfile(), sample_data,
units = rep("unknown", ncol(sample_data)))
try({
ncdump <- system(paste("ncdump -h", example_file), intern = TRUE)
cat(ncdump ,sep = "\n")
}, silent = TRUE)
#> netcdf file3e9c2b8be02 {
#> dimensions:
#> instance = 100 ;
#> char = 12 ;
#> variables:
#> double AREA(instance) ;
#> AREA:units = "unknown" ;
#> AREA:missing_value = -9999.999 ;
#> double PERIMETER(instance) ;
#> PERIMETER:units = "unknown" ;
#> PERIMETER:missing_value = -9999.999 ;
#> double CNTY_(instance) ;
#> CNTY_:units = "unknown" ;
#> CNTY_:missing_value = -9999.999 ;
#> double CNTY_ID(instance) ;
#> CNTY_ID:units = "unknown" ;
#> CNTY_ID:missing_value = -9999.999 ;
#> char NAME(instance, char) ;
#> NAME:units = "unknown" ;
#> char FIPS(instance, char) ;
#> FIPS:units = "unknown" ;
#> double FIPSNO(instance) ;
#> FIPSNO:units = "unknown" ;
#> FIPSNO:missing_value = -9999.999 ;
#> int CRESS_ID(instance) ;
#> CRESS_ID:units = "unknown" ;
#> CRESS_ID:missing_value = -9999 ;
#> double BIR74(instance) ;
#> BIR74:units = "unknown" ;
#> BIR74:missing_value = -9999.999 ;
#> double SID74(instance) ;
#> SID74:units = "unknown" ;
#> SID74:missing_value = -9999.999 ;
#> double NWBIR74(instance) ;
#> NWBIR74:units = "unknown" ;
#> NWBIR74:missing_value = -9999.999 ;
#> double BIR79(instance) ;
#> BIR79:units = "unknown" ;
#> BIR79:missing_value = -9999.999 ;
#> double SID79(instance) ;
#> SID79:units = "unknown" ;
#> SID79:missing_value = -9999.999 ;
#> double NWBIR79(instance) ;
#> NWBIR79:units = "unknown" ;
#> NWBIR79:missing_value = -9999.999 ;
#> }