[R-sig-Geo] 'xyValues' from 'raster' package slow

Karl Ove Hufthammer karl at huftis.org
Tue Dec 1 13:11:28 CET 2009

Dear list members

I'm using the 'raster' package to load a rather large (~2 GB) file of 
bathymetry data. To extract elevation/depth data for various positions, 
I use the 'xyValues' function.

However, it turns that this operations is extremely slow for extracting 
a even moderately large number of values. Here is in essence my code:

r = raster("file.ers")
x = seq(0, 20, length = 100)
y = seq(55, 70, length = 100)
xy = expand.grid(x, y)
z = xyValues(r, xy)

Am I doing something wrong here? Using 'readBin' or 'readBinFragments' 
on the same file, to extract the same values, takes almost no time. But 
then I have to calculate the indices, positions &c. myself, which is 
tedious and easy get wrong (having to take into account half-pixel 
shifts and other details). 

Using Rprof indicates that a lot of 'self.time' is taken up by 'gc' (and 
'=='), which does sound a bit strange.

Karl Ove Hufthammer

More information about the R-sig-Geo mailing list