Dear Mao, This is an alternative approach, using only package raster and working with a lonlat grid. In a lonlat grid, cells represent different areas. Therefore, I randomly draw cells with probabilities relative to their area. I simply use the function sample() from base to do the sampling.
library(raster) #Create a raster and set its values to 1 r <- raster(ncol=36, nrow=18) r[] <- rep(1,times=ncell(r)) #Draw 10 cell numbers with a probability relative to their area probs <- values(area(r)) probs <- probs/sum(probs) randomCells <- sample(1:ncell(r), 10, prob=probs) #Set the selected cells to NA and plot the result r[randomCells] <- NA plot(r) #Get the coordinates of the cell centres of the selected cells xyFromCell(r, randomCells) Jacob. --- On Tue, 3/8/10, caspar hallmann <caspar.hallm...@gmail.com> wrote: From: caspar hallmann <caspar.hallm...@gmail.com> Subject: Re: [R-sig-Geo] how to do randomly sampling in raster layer To: "Mao Jianfeng" <jianfeng....@gmail.com> Cc: r-sig-geo@stat.math.ethz.ch Date: Tuesday, 3 August, 2010, 11:15 Dear Mao, You can use function rpoint from spatstat, after converting your raster object into a pixel image. consider the following: library(raster) library(spatstat) library(maptools) library(sp) # An arbitrary raster r <- raster(system.file("external/test.grd", package="raster")) # plot it image(r) # convert to SpatialGridDataFrame r.spgrd<-as(r,"SpatialGridDataFrame") r.spgrd$constant<-ifelse(is.na(r.spgrd[[1]]),NA,1) # ...this to ensure an equal weight to each non-NA cell # convert to im r.im<-as.im(r.spgrd["constant"]) # sample points according to constant r.points<-rpoint(100,r.im) # plot the random points points(r.points) #..to get the coordinates as.data.frame(r.points) Good Luck! Caspar On Tue, Aug 3, 2010 at 10:43 AM, Mao Jianfeng <jianfeng....@gmail.com> wrote: > Dear r-sig-geoers, > > I want to randomly sample n points from regions of a raster layers, > the cells denoted as "NA" is not > included in this sampling process. And, I want to got the longitude > and latitude of the sampled points. > > I checked the manual of raster package, I found several functions is > relative to my purpose. I tried them all, but I failed. > > Can it can be done by raster functionalities. Could you please refer > me to the right direction? > > I expect to hearing from you. Your helps are very valuable for a > Chinese who can not reach helps nearby. > > Best, > > Sincerely, > Mao Jian-Feng > > _______________________________________________ > R-sig-Geo mailing list > R-sig-Geo@stat.math.ethz.ch > https://stat.ethz.ch/mailman/listinfo/r-sig-geo > _______________________________________________ R-sig-Geo mailing list R-sig-Geo@stat.math.ethz.ch https://stat.ethz.ch/mailman/listinfo/r-sig-geo [[alternative HTML version deleted]] _______________________________________________ R-sig-Geo mailing list R-sig-Geo@stat.math.ethz.ch https://stat.ethz.ch/mailman/listinfo/r-sig-geo