[R] spgrass6 and aggregation (bis)

Roger Bivand Roger.Bivand at nhh.no
Wed Jun 6 12:30:10 CEST 2007


On Wed, 6 Jun 2007 jessica.gervais at tudor.lu wrote:

> 
> Dear all,
> 
> I have some additionale question concerning the spgrass6 package.
> 
> * When you set a region in GRASS, does the readGRASS6 function in R only
> load data contained in the zoomed region or the whole map ?

readRAST6() uses the current region, readVECT6() should not clip to the 
current region.

> 
> * When you have a MASK map in grass, does the readGRASS6 function in R only
> load data contained inside the MASK area ?
> 

MASK is respected (in spearfish):

r.mask input=rushmore
d.rast elevation.dem
R
library(spgrass6)
el <- readRAST6("elevation.dem")
summary(el)
image(el)

> 
> Could this be the problem ?

No, the problem was that you did not pay attention to the class of the 
data objects you were reading. You could have done:

my_SGDF <- readRAST6(c("landuse_mapname_in_grass", 
  "catchement_mapname_in_grass",
  "precipitation_mapname_in_grass"), cat=c(TRUE, TRUE, FALSE))

treating the whole as a single SpatialGridDataFrame, and the first two 
maps as factors (categorical).

Please remember that class(), summary(), image(), and other methods let 
you look at the data you have read - here I would certainly do:

summary(my_SGDF)
image(my_SGDF, "precipitation_mapname_in_grass")

You can then try:

my_DF <- as(my_SGDF, "data.frame")
aggregate(my_DF, by=list(my_DF$catchement_mapname_in_grass, 
  my_DF$landuse_mapname_in_grass), sum, na.rm=TRUE)

although I'm not sure whether this is what you need.

There are two mailing lists that are better suited to this question, 
R-sig-geo on the R side, and STATGRASS on the GRASS side, both with a fair 
number of experienced helpers.

> 
> Thanks,
> 
> Jessica
> 
> 
> ########################################################################3
> 
> Dear all,
> 
> 
> I am exporting grass map into R thanks to the very useful spgrass6 package.
> 
> library(spgrass6)
> 
> # I have 3 map I am working with a MASK map of a specific area.
> 
> # 1) a landuse map
> landuse<-readRAST6("landuse_mapname_in_grass")
> 
> # 2) a catchment map which divide the area in several catchements
> catchment<-readRAST6("catchement_mapname_in_grass")
> 
> # 3) a precipitation map
> precipitation<-readRAST6("precipitation_mapname_in_grass")
> 
> 
> # then I would like to sum the precipitation spatialy over each catchment
> and landuse. So, first I cbind all maps with cbind
> 
> MAP<-cbind(landuse,catchment,precipitation)
> 
> # then I use the aggregate function
> SUM<-aggregate(MAP[3],by=list(MAP[1],MAP[2]),sum,na.rm=TRUE)
> # here is the problem !!!
> Error in as.vector(x, mode) : invalid argument 'mode'
> 
> ....
> 
> I don't find any idea to solve this...
> 
> Does anyone has a suggestion ??
> 
> Thanks in advance
> 
> 
> Jess
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
> 

-- 
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-help mailing list