[R-sig-Geo] "subset" a large raster object
Don MacQueen
macq at llnl.gov
Wed Jan 27 23:03:50 CET 2010
I have a SpatialGridDataFrame named tmp.lc [see below for part of the
str() information on it] obtained by using readGDAL() on an image
file.
I would like to subset it in the sense of finding the portions of the
raster image that meet a defined criterion, so that I can use, for
example, chull() to find a polygon that surrounds that portion of the
raster.
For a relatively small object (150x150) I can do the job by
converting to SpatialPointsDataFrame. Then subsetting is easly. See
example below.
But when I go to the full 5100x5400 image the method fails due to
insufficient memory. Similarly if I use rasterToPoints() from the
raster package from R-forge.
I would appreciate suggestions for an alternative.
(perhaps GRASS, to which I have just a very small amount of exposure?)
Thanks
-Don
## start with object tmp.lc
ick <- SpatialPointsDataFrame(coordinates(tmp.lc), tmp.lc at data,
proj4string=CRS(proj4string(tmp.lc)))
bah <- ick[ ick at data$band1 %in% 22:24 ,]
> str(tmp.lc)
Formal class 'SpatialGridDataFrame' [package "sp"] with 6 slots
..@ data :'data.frame': 22500 obs. of 1 variable:
.. ..$ band1: int [1:22500] 11 11 11 11 11 11 11 11 11 11 ...
..@ grid :Formal class 'GridTopology' [package "sp"] with 3 slots
> str(bah)
Formal class 'SpatialPointsDataFrame' [package "sp"] with 5 slots
..@ data :'data.frame': 4032 obs. of 1 variable:
.. ..$ band1: int [1:4032] 22 22 22 22 22 22 22 22 22 23 ...
> sessionInfo()
R version 2.10.1 (2009-12-14)
i386-apple-darwin8.11.1
locale:
[1] C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] raster_0.9.9-4 spatstat_1.17-5 deldir_0.0-11 mgcv_1.6-1
rmacq_1.0-2 rgdal_0.6-12 maptools_0.7-29
[8] lattice_0.17-26 sp_0.9-56 foreign_0.8-39
loaded via a namespace (and not attached):
[1] Matrix_0.999375-33 grid_2.10.1 nlme_3.1-96
tcltk_2.10.1 tools_2.10.1
--
--------------------------------------
Don MacQueen
Environmental Protection Department
Lawrence Livermore National Laboratory
Livermore, CA, USA
925-423-1062
More information about the R-sig-Geo
mailing list