Re: [R] Point pattern to grid

2005-11-18 Thread Roger Bivand
On Fri, 18 Nov 2005, Leaf Sun wrote:

> Hi Roger,
> 
> Thanks again for your kind help.
> 
> Yes, I still use the 200K points data applying this program but the good
> thing is I found it finished in no time.

The reply is on R-sig-geo.

> 
> The questions again here are:
> 
> 1)   >try0 <- lapply(split(as(df1, "data.frame"), res), mean)  
> 
> When I tried to replace mean to sum, error looks like this:
> 
> Error in [EMAIL PROTECTED], i, drop = FALSE] : undefined columns selected 
> 
> 2) If I just need to know the number of points in each cells, how can I 
> modify the codes. The codes still a bit beyond me.
> 
> Thanks!
> 
> Leaf
> 
> === At 2005-11-18, 01:39:05 you wrote: ===
> 
> >On Thu, 17 Nov 2005, Leaf Sun wrote:
> >
> >> Dear all,
> >> 
> >> I'd like to change a point pattern to a grid of cells and use one of the
> >> variables as the output.
> >> 
> >> e.g.  The point pattern is of a window of (500*500) and several features
> >> such as pH, SoilType etc.  I like to divide it into a grid with cell
> >> size 5*5, and use the mean of the point values falling inside the cell
> >> as the output.
> >> 
> >> Is there any package in R working with this? Thanks in advance!
> >
> >This might have been better posted on R-sig-geo. Try this:
> >
> >library(sp)
> >df1 <- data.frame(x=runif(1,0,500), y=runif(1,0,500),
> >  z=rnorm(1))
> >coordinates(df1) <- c("x", "y")
> >summary(df1) # SpatialPointsDataFrame
> >grd <- GridTopology(c(2.5,2.5), c(5,5), c(100,100))
> >sgrd <- SpatialGrid(grd) #SpatialGrid
> >bbox(sgrd)
> >res <- overlay(sgrd, df1)
> ># find which grid cells the points are in
> >str(res)
> >try0 <- lapply(split(as(df1, "data.frame"), res), mean)
> ># take means by grid cell - assumes all numeric columns in df1
> ># (soil type??) - maybe write a custom function to handle non-numeric 
> ># columns sensibly
> >try01 <- vector(mode="list", length=prod(slot(slot(sgrd, "grid"),
> >  "cells.dim")))
> >nafill <- rep(as.numeric(NA), ncol(as(df1, "data.frame")))
> >try01 <- lapply(try01, function(x) nafill)
> ># make a container to put the means in with the right number of columns
> >try01[as.integer(names(try0))] <- try0
> ># insert means into correct list elements
> >try1 <- data.frame(t(data.frame(try01)))
> ># transpose
> >summary(try1)
> >sgrd1 <- SpatialGridDataFrame(slot(sgrd, "grid"), try1)
> >image(sgrd1, "x")
> >image(sgrd1, "y")
> >image(sgrd1, "z")
> >
> >It goes a bit further than the short description of the sp package in the 
> >latest R-News, and will most likely be a new method for overlay in sp. If 
> >these are your 200K points, it may take a little longer ...
> >
> >> 
> >> Cheers,
> >> 
> >> Leaf
> >> 
> >> 
> >
> >-- 
> >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]
> >
> 
> = = = = = = = = = = = = = = = = = = = =
> 
> 

-- 
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-help@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


Re: [R] Point pattern to grid

2005-11-18 Thread Leaf Sun
Hi Roger,

Thanks again for your kind help.

Yes, I still use the 200K points data applying this program but the good thing 
is  I found it finished in no time.

The questions again here are:

1)   >try0 <- lapply(split(as(df1, "data.frame"), res), mean)  

When I tried to replace mean to sum, error looks like this:

Error in [EMAIL PROTECTED], i, drop = FALSE] : undefined columns selected 

2) If I just need to know the number of points in each cells, how can I modify 
the codes. The codes still a bit beyond me.

Thanks!

Leaf

=== At 2005-11-18, 01:39:05 you wrote: ===

>On Thu, 17 Nov 2005, Leaf Sun wrote:
>
>> Dear all,
>> 
>> I'd like to change a point pattern to a grid of cells and use one of the
>> variables as the output.
>> 
>> e.g.  The point pattern is of a window of (500*500) and several features
>> such as pH, SoilType etc.  I like to divide it into a grid with cell
>> size 5*5, and use the mean of the point values falling inside the cell
>> as the output.
>> 
>> Is there any package in R working with this? Thanks in advance!
>
>This might have been better posted on R-sig-geo. Try this:
>
>library(sp)
>df1 <- data.frame(x=runif(1,0,500), y=runif(1,0,500),
>  z=rnorm(1))
>coordinates(df1) <- c("x", "y")
>summary(df1) # SpatialPointsDataFrame
>grd <- GridTopology(c(2.5,2.5), c(5,5), c(100,100))
>sgrd <- SpatialGrid(grd) #SpatialGrid
>bbox(sgrd)
>res <- overlay(sgrd, df1)
># find which grid cells the points are in
>str(res)
>try0 <- lapply(split(as(df1, "data.frame"), res), mean)
># take means by grid cell - assumes all numeric columns in df1
># (soil type??) - maybe write a custom function to handle non-numeric 
># columns sensibly
>try01 <- vector(mode="list", length=prod(slot(slot(sgrd, "grid"),
>  "cells.dim")))
>nafill <- rep(as.numeric(NA), ncol(as(df1, "data.frame")))
>try01 <- lapply(try01, function(x) nafill)
># make a container to put the means in with the right number of columns
>try01[as.integer(names(try0))] <- try0
># insert means into correct list elements
>try1 <- data.frame(t(data.frame(try01)))
># transpose
>summary(try1)
>sgrd1 <- SpatialGridDataFrame(slot(sgrd, "grid"), try1)
>image(sgrd1, "x")
>image(sgrd1, "y")
>image(sgrd1, "z")
>
>It goes a bit further than the short description of the sp package in the 
>latest R-News, and will most likely be a new method for overlay in sp. If 
>these are your 200K points, it may take a little longer ...
>
>> 
>> Cheers,
>> 
>> Leaf
>> 
>> 
>
>-- 
>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-help@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

Re: [R] Point pattern to grid

2005-11-18 Thread Roger Bivand
On Thu, 17 Nov 2005, Leaf Sun wrote:

> Dear all,
> 
> I'd like to change a point pattern to a grid of cells and use one of the
> variables as the output.
> 
> e.g.  The point pattern is of a window of (500*500) and several features
> such as pH, SoilType etc.  I like to divide it into a grid with cell
> size 5*5, and use the mean of the point values falling inside the cell
> as the output.
> 
> Is there any package in R working with this? Thanks in advance!

This might have been better posted on R-sig-geo. Try this:

library(sp)
df1 <- data.frame(x=runif(1,0,500), y=runif(1,0,500),
  z=rnorm(1))
coordinates(df1) <- c("x", "y")
summary(df1) # SpatialPointsDataFrame
grd <- GridTopology(c(2.5,2.5), c(5,5), c(100,100))
sgrd <- SpatialGrid(grd) #SpatialGrid
bbox(sgrd)
res <- overlay(sgrd, df1)
# find which grid cells the points are in
str(res)
try0 <- lapply(split(as(df1, "data.frame"), res), mean)
# take means by grid cell - assumes all numeric columns in df1
# (soil type??) - maybe write a custom function to handle non-numeric 
# columns sensibly
try01 <- vector(mode="list", length=prod(slot(slot(sgrd, "grid"),
  "cells.dim")))
nafill <- rep(as.numeric(NA), ncol(as(df1, "data.frame")))
try01 <- lapply(try01, function(x) nafill)
# make a container to put the means in with the right number of columns
try01[as.integer(names(try0))] <- try0
# insert means into correct list elements
try1 <- data.frame(t(data.frame(try01)))
# transpose
summary(try1)
sgrd1 <- SpatialGridDataFrame(slot(sgrd, "grid"), try1)
image(sgrd1, "x")
image(sgrd1, "y")
image(sgrd1, "z")

It goes a bit further than the short description of the sp package in the 
latest R-News, and will most likely be a new method for overlay in sp. If 
these are your 200K points, it may take a little longer ...

> 
> Cheers,
> 
> Leaf
> 
> 

-- 
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-help@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


[R] Point pattern to grid

2005-11-17 Thread Leaf Sun
Dear all,

I'd like to change a point pattern to a grid of cells and use one of the 
variables as the output.

e.g.  The point pattern is of a window of (500*500) and several features such 
as pH, SoilType etc.  I like to divide it into a grid with cell size 5*5, and 
use the mean of the point values falling inside the cell as the output.

Is there any package in R working with this? Thanks in advance!

Cheers,

Leaf

__
R-help@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