[R-sig-Geo] group data into squares

Roger Bivand Roger.Bivand at nhh.no
Wed Nov 29 13:43:21 CET 2006


On Wed, 29 Nov 2006, Luis Ridao Cruz wrote:

> R-sig-geo-help,
> 
> I have locations of fish abundance
> which I want to aggregate into squares.
> 
> The code below creates the grid:
> 
> 
> library(sp)
> test <- GridTopology(c(-10.5,60),c(0.1,0.1),c(67,35))
> coordinates(test)
> coordinatevalues(test)
> yy <-SpatialGrid(grid=test)
> plot(yy,pch=16,cex=0.3,col=1)
> 
> and within each cell the total abundance of fish
> should be specified.
> 
> How can I do this?

Use the overlay() method. Something like:

fish <- SpatialPoints(cbind(runif(10000, bbox(yy)[1,1], bbox(yy)[1,2]), 
  runif(10000, bbox(yy)[2,1], bbox(yy)[2,2])))
plot(fish, add=TRUE, pch=".", col="green")
out <- overlay(yy, fish)
out1 <- formatC(out, width=4, format="d", flag="0")
# otherwise it sorts 1, 10, 100, ...
res <- aggregate(rep(1, length(out)), list(out1), sum)

and res$x are the counts. Because some cells have zero counts, they are 
not in res$Group.1, so maybe:

res1 <- numeric(nrow(coordinates(yy)))
res1[as.integer(as.character(res$Group.1))] <- res$x
# to insert the values in the cells with positive counts
table(res1)

where the zero counts are now in place. I didn't check whether the counts 
had ended up in the correct cells here - too many, but:

test <- GridTopology(c(-10.5,60),c(1,1),c(7,4))
yy <-SpatialGrid(grid=test)
fish <- SpatialPoints(cbind(runif(10, bbox(yy)[1,1], bbox(yy)[1,2]),
  runif(10, bbox(yy)[2,1], bbox(yy)[2,2])))
out <- overlay(yy, fish)
out1 <- formatC(out, width=4, format="d", flag="0")
res <- aggregate(rep(1, length(out)), list(out1), sum)
res1 <- numeric(nrow(coordinates(yy)))
res1[as.integer(as.character(res$Group.1))] <- res$x
yyy<- SpatialGridDataFrame(grid=test, data=data.frame(fish_count=res1))
image(yyy)
text(coordinates(yyy), labels=yyy$fish_count)
plot(fish, add=TRUE, pch=16, col="blue", cex=0.6)

looks OK.

Roger





> 
> 
> Thanks in advance
> 
> 
> > version
>                _                           
> platform       i386-pc-mingw32             
> arch           i386                        
> os             mingw32                     
> system         i386, mingw32               
> status                                     
> major          2                           
> minor          4.0                         
> year           2006                        
> month          10                          
> day            03                          
> svn rev        39566                       
> language       R                           
> version.string R version 2.4.0 (2006-10-03)
> >
> 
> _______________________________________________
> 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