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

Reply via email to