[R-sig-Geo] raster brick error cells are not equally spaced

Michael Sumner mdsumner at gmail.com
Thu Aug 14 02:59:24 CEST 2014


Hello, can you point to or share one of the files? Sometimes these
things are just a regular grid under the hood but that has been
forgotten in favour of longitude/latitude arrays.

If that's the case you can reconstruct the original grid and all is
well, there's not really any precedent for this but I have a lot of
examples that work well.  (Also sometimes there's only a small amount
of numeric fuzz that you can ignore).

The raster types cannot take grids that have irregular (rectilinear or
curvilinear) coordinates. There's no way around this except some
combination of these:

- read the data in the raw using ncdf/ncdf4 or RNetCDF and use base
graphics with image() (which can deal with rectilinear grids), or
points() or maybe polygons (which with care can  deal with curvilinear
grids).
- use the hidden argument "stopIfNotEqualSpaced=FALSE" to raster() to
get the data out and deal with the arrays as "index-only" grids


Cheers, Mike.



On Thu, Aug 14, 2014 at 2:26 AM, Chagaris, Dave <Dave.Chagaris at myfwc.com> wrote:
> I am trying to read netcdf files into R using the brick function.  I have many netcdf files and want to process them on a 64bit workstation instead my 32bit laptop.  The code    I'm using works fine on my 32 bit laptop, but on the workstation I get an error "Error in .rasterObjectFromCDF(x, type = objecttype, band = band, ...) :
>   cells are not equally spaced; you should extract values as points".
>
> Any  help is appreciated.
>
> On Laptop...
>> library(raster)
>
>> library(ncdf)
>
>> windows(record=T)
>
>> sessionInfo()
> R version 2.15.0 (2012-03-30)
> Platform: i386-pc-mingw32/i386 (32-bit)
>
> locale:
> [1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252 LC_NUMERIC=C
> [5] LC_TIME=English_United States.1252
>
> attached base packages:
> [1] grDevices datasets  splines   graphics  stats     tcltk     utils     methods   base
>
> other attached packages:
> [1] ncdf_1.6.6       raster_2.0-41    sp_1.0-11        svSocket_0.9-53  TinnR_1.0-5      R2HTML_2.2       Hmisc_3.9-3      survival_2.36-12
>
> loaded via a namespace (and not attached):
> [1] cluster_1.14.2 grid_2.15.0    lattice_0.20-6 svMisc_0.9-65  tools_2.15.0
>
>> i = "expt_31.0_20130226.nc"
>
>> open.ncdf(paste(getwd(),i,sep='/'))
> [1] "file C:/dave.chagaris/HYCOM/expt_31.0_20130226.nc has 4 dimensions:"
> [1] "MT   Size: 1"
> [1] "Depth   Size: 40"
> [1] "Latitude   Size: 213"
> [1] "Longitude   Size: 290"
> [1] "------------------------"
> [1] "file C:/dave.chagaris/HYCOM/expt_31.0_20130226.nc has 8 variables:"
> [1] "float ssh[Longitude,Latitude,MT]  Longname: sea surf. height  [31.0H] Missval:1.26765060022823e+30"
> [1] "float u[Longitude,Latitude,Depth,MT]  Longname: u-veloc. [31.0H] Missval:1.26765060022823e+30"
> [1] "float v[Longitude,Latitude,Depth,MT]  Longname: v-veloc. [31.0H] Missval:1.26765060022823e+30"
> [1] "float w_velocity[Longitude,Latitude,Depth,MT]  Longname: w-veloc. [31.0H] Missval:1.26765060022823e+30"
> [1] "float temperature[Longitude,Latitude,Depth,MT]  Longname:  temp [31.0H] Missval:1.26765060022823e+30"
> [1] "float salinity[Longitude,Latitude,Depth,MT]  Longname: salinity [31.0H] Missval:1.26765060022823e+30"
> [1] "float mld[Longitude,Latitude,MT]  Longname: MLT (0.20 degC)   [31.0H] Missval:1.26765060022823e+30"
> [1] "float mlp[Longitude,Latitude,MT]  Longname: MLT (0.03 kg/m3)  [31.0H] Missval:1.26765060022823e+30"
>
>> salt = brick(paste(getwd(),i,sep='/'),varname='salinity',lvar=4,level=2)
> Warning messages:
> 1: In rm(.SavedPlots) : object '.SavedPlots' not found
> 2: In .rasterObjectFromCDF(x, type = objecttype, band = band, ...) :
>   level set to: 1
>
> on workstation...
>
>> setwd('E:\\work\\data\\HYCOM')
>
>> .libPaths('C:\\Users\\dave.chagaris\\Documents\\R\\win-library\\3.1')
>
>> library(raster)
>
>> library(ncdf)
>
>> sessionInfo()
>
> R version 2.15.1 (2012-06-22)
>
> Platform: x86_64-pc-mingw32/x64 (64-bit)
>
>
>
> locale:
>
> [1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252
>
> [3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
>
> [5] LC_TIME=English_United States.1252
>
>
>
> attached base packages:
>
> [1] stats     graphics  grDevices utils     datasets  methods   base
>
>
>
> other attached packages:
>
> [1] ncdf_1.6.6    raster_2.2-31 sp_1.0-15
>
>
>
> loaded via a namespace (and not attached):
>
> [1] grid_2.15.1    lattice_0.20-6 tools_2.15.1
>
>> i = "expt_31.0_20130226.nc"
>
>> open.ncdf(paste(getwd(),i,sep='/'))
>
> [1] "file E:/work/data/HYCOM/expt_31.0_20130226.nc has 4 dimensions:"
>
> [1] "MT   Size: 1"
>
> [1] "Depth   Size: 40"
>
> [1] "Latitude   Size: 213"
>
> [1] "Longitude   Size: 290"
>
> [1] "------------------------"
>
> [1] "file E:/work/data/HYCOM/expt_31.0_20130226.nc has 8 variables:"
>
> [1] "float ssh[Longitude,Latitude,MT]  Longname: sea surf. height  [31.0H] Missval:1.26765060022823e+30"
>
> [1] "float u[Longitude,Latitude,Depth,MT]  Longname: u-veloc. [31.0H] Missval:1.26765060022823e+30"
>
> [1] "float v[Longitude,Latitude,Depth,MT]  Longname: v-veloc. [31.0H] Missval:1.26765060022823e+30"
>
> [1] "float w_velocity[Longitude,Latitude,Depth,MT]  Longname: w-veloc. [31.0H] Missval:1.26765060022823e+30"
>
> [1] "float temperature[Longitude,Latitude,Depth,MT]  Longname:  temp [31.0H] Missval:1.26765060022823e+30"
>
> [1] "float salinity[Longitude,Latitude,Depth,MT]  Longname: salinity [31.0H] Missval:1.26765060022823e+30"
>
> [1] "float mld[Longitude,Latitude,MT]  Longname: MLT (0.20 degC)   [31.0H] Missval:1.26765060022823e+30"
>
> [1] "float mlp[Longitude,Latitude,MT]  Longname: MLT (0.03 kg/m3)  [31.0H] Missval:1.26765060022823e+30"
>
>> salt = brick(paste(getwd(),i,sep='/'),varname='salinity',lvar=4,level=2)
>
> Error in .rasterObjectFromCDF(x, type = objecttype, band = band, ...) :
>
>   cells are not equally spaced; you should extract values as points
>
> In addition: Warning message:
>
> In .rasterObjectFromCDF(x, type = objecttype, band = band, ...) :
>
>   level set to: 1
>
>
>
> David Chagaris, PhD
> Associate Research Scientist
> Florida Fish and Wildlife Conservation Commission
> Fish and Wildlife Research Institute
> 100 8th Ave SE
> St. Petersburg, FL  33701
> 727-502-4959
> fax: 727-893-1374
>
>
>         [[alternative HTML version deleted]]
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo



-- 
Michael Sumner
Software and Database Engineer
Australian Antarctic Division
Hobart, Australia
e-mail: mdsumner at gmail.com



More information about the R-sig-Geo mailing list