On Wed, 30 Jul 2008, Morten Sickel wrote:
I have a lot of measurements located using GPS projected to UTM. I would
prefer to grid those data, i.e. define a grid with e.g. 200m cell size
and calculate the average for each cell. Each cell may contain one, zero
or many measurements. Another related thing I would like to do is to
count for each grid cell how many measurement that falls within that
cell
The overlay methods in sp for SpatialPoints* and your grid (GridTopology,
SpatialPixels, SpatialGrid) ought in some combination return a vector of
length equat to the number of grid cells, with an integer index value.
Doing tapply() on your SpatialPoints* variable(s) should give output that
can be inserted into a variable in (probably) a SpatialGridDataFrame:
library(sp)
data(meuse)
data(meuse.grid)
coordinates(meuse) <- c("x", "y")
coordinates(meuse.grid) <- c("x", "y")
gridded(meuse.grid) <- TRUE
o <- overlay(meuse.grid, meuse)
# o is a vector of flattened grid indices, here for the SpatialPixels
# object
oo <- tapply(meuse$zinc, o, mean)
meuse.grid$zinc <- NA
meuse.grid$zinc[as.integer(names(oo))] <- c(oo)
image(meuse.grid, "zinc")
points(meuse, pch=4)
Do "look" at o and oo as a sanity check, and maybe pass arguments to the
FUN in tapply too. Perhaps o should be checked for NAs too.
Roger
Again, this looks like something that should be fairly easy, if you just
know how...
Morten
--
Morten Sickel
Norwegian Radiation Protection Authority
tel (+47) 6716 2551
_______________________________________________
R-sig-Geo mailing list
[email protected]
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: [EMAIL PROTECTED]
_______________________________________________
R-sig-Geo mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo