C. Susannah Tysor
2011-Jun-17 22:21 UTC
[R] Inconsistent results from var.get.nc in RNetCDF
Hello - I am having trouble extracting data from NetCDF data files using RNetCDF. The data files each have 3 dimensions (longitude, latitude, and a date) and 3 variables (latitude, longitude, and a climate variable). Here is some of the output from print.nc for clarity: ----- dimensions: month = UNLIMITED ; // (1368 currently) lat = 3105 ; lon = 7025 ; variables: float lat(lat) ; lat:long_name = "latitude" ; lat:standard_name = "latitude" ; lat:units = "degrees_north" ; float lon(lon) ; lon:long_name = "longitude" ; lon:standard_name = "longitude" ; lon:units = "degrees_east" ; short tmax(lon, lat, month) ; tmax:missing_value = -9999 ; tmax:_FillValue = -9999 ; tmax:units = "degree_celsius" ; tmax:scale_factor = 0.01 ; tmax:valid_min = -5000 ; tmax:valid_max = 6000 ; ----- I am getting behavior I don't understand when I use the var.get.nc function from the RNetCDF package. For example, when I attempt to extract 82 values beginning at stval from the maximum temperature data with > var.get.nc(p8m.tmax,'tmax', start=c(lon_val, lat_val, stval), count=c(1,1,82)) I get Error: Invalid argument But after successfully running > var.get.nc(p8m.tmax,'tmax', start=c(lon_val, lat_val, stval), count=c(1,1,80)) > var.get.nc(p8m.tmax,'tmax', start=c(lon_val, lat_val, stval), count=c(1,1,81)) the command with 82 works: > var.get.nc(p8m.tmax,'tmax', start=c(lon_val, lat_val, stval), count=c(1,1,82)) [1] 444 866 1063 1496 1905 2625 2662 2515 2016 1282 862 270 850 560 1002 1069 1900 2394 2721 2352 2192 1843 656 483 350 384 1532 1219 1929 2428 [31] 2517 2288 2038 1209 527 489 407 505 899 1252 1885 2193 2707 2220 2040 1498 1040 689 594 941 729 1374 2016 2556 2475 2193 1841 1316 1010 476 [61] 202 646 1266 1357 1860 2451 2530 2355 2010 1519 1210 228 173 600 1037 1316 1530 2389 2358 2303 2052 1583 The same occurs in the identically structured tmin file, but at 36 instead of 82: > var.get.nc(p8m.tmin,'tmin', start=c(lon_val, lat_val, stval), count=c(1,1,36)) produces Error: Invalid argument But after repeating the command with 30, 31, etc >var.get.nc(p8m.tmin,'tmin', start=c(lon_val, lat_val, stval), count=c(1,1,36)) works. Does anyone know what causes the initial failure to extract the variable? And how I might prevent it? Thanks! Susannah --- C. Susannah Tysor Research Assistant Pinyon Ecology Research Group Northern Arizona University
Seemingly Similar Threads
- Extracting subset from netCDF file using lat/lon and converting into .csv in R
- Extracting subset from netCDF file using lat/lon and converting into .csv in R
- Copying ncdf dims and vars from one file to the other
- read a netcdf file _Fill_value=-32768
- Help with optimization using GENOUD