[R-sig-Geo] where to tweak memory allocation settings

Roger Bivand Roger.Bivand at nhh.no
Thu Oct 8 20:18:32 CEST 2009


On Thu, 8 Oct 2009, Jochen Albrecht wrote:

> Fellow spatial statisticians:
> I am trying to align a bunch of world-wide datasets at 0.1 degree resolution. 
> I figured that the easiest way to do that is to create a dataset where the 
> rownames form the index that allows to relate all my variable-sized point 
> datasets to. I therefore created a shapefile base dataset that contains appr. 
> 6.5 million points and had hoped that I could read this into R to then link 
> all my other data to. Unfortunately, I ran into memory allocation problems 
> (see error messages attached to this email).

You have not reported sessionInfo() or your operating system (Windows?). 
See the R for Windows FAQ for memory management there. In fact the problem 
isn't the number of points (here 3.5 million, presumably the raster cells 
with data, not 6.5 million for global coverage), it is 
likely the combination of character columns and their conversion into 
factor form - do they contain long character strings?

> My hunch is that these can be overcome by just changing some settings 
> (hopefully without having to recompile R sources). Do you have suggestions 
> what these are and what the practically hard limit is? 6.5 million points is 
> large but not uncommon these days, so I figured that this should be doable 
> without embarking on major efforts.
> Alternatively, would it save me a lot of memory space if I tried to read this 
> into a SpatialPixel or SpatialGrid structure?

To read into a SpatialPixelDataFrame object, you still need points, or go 
through a SpatialGridDataFrame. For a SpatialGridDataFrame, store the data 
as a multiband GeoTiff for example. If however there is something odd - 
long character strings as attributes, the problem will be the same. One 
advantage of going through a SpatialGridDataFrame is that the 3.5 million 
row names fo not get generated and do not take up space - readOGR() always 
generates feature IDs from the input geometry FIDs. If the support is grid 
support, use a gridded representation, as in Robert's suggestion for 
using the raster package.

Hope this helps,

Roger

> Cheers,
>    Jochen
>
>> basepoints = readOGR(".", "basepoints")
> OGR data source with driver: ESRI Shapefile
> Source: ".", layer: "basepoints"
> with  3465355  rows and  7  columns
> Feature type: wkbPoint with 2 dimensions
> Warning in data.frame(dlist) :
> Reached total allocation of 1535Mb: see help(memory.size)
> Warning in data.frame(dlist) :
> Reached total allocation of 1535Mb: see help(memory.size)
> Warning in data.frame(dlist) :
> Reached total allocation of 1535Mb: see help(memory.size)
> Warning in data.frame(dlist) :
> Reached total allocation of 1535Mb: see help(memory.size)
> Warning in as.data.frame.integer(x[[i]], optional = TRUE) :
> Reached total allocation of 1535Mb: see help(memory.size)
> Warning in as.data.frame.integer(x[[i]], optional = TRUE) :
> Reached total allocation of 1535Mb: see help(memory.size)
> Warning in as.data.frame.integer(x[[i]], optional = TRUE) :
> Reached total allocation of 1535Mb: see help(memory.size)
> Warning in as.data.frame.integer(x[[i]], optional = TRUE) :
> Reached total allocation of 1535Mb: see help(memory.size)
> Error: cannot allocate vector of size 13.2 Mb
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>

-- 
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: Roger.Bivand at nhh.no



More information about the R-sig-Geo mailing list