# how to do randomly sampling in raster layer

5 messages
Open this post in threaded view
|

## how to do randomly sampling in raster layer

 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 [hidden email] https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Open this post in threaded view
|

## Re: how to do randomly sampling in raster layer

 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 <[hidden email]> 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 > [hidden email] > https://stat.ethz.ch/mailman/listinfo/r-sig-geo> _______________________________________________ R-sig-Geo mailing list [hidden email] https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Open this post in threaded view
|

## Re: how to do randomly sampling in raster layer

 On 08/03/2010 11:15 AM, caspar hallmann wrote: > 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") >     I would consider converting it to SpatialPointsDF instead. r.spgrd<-as(r,"SpatialPointsDataFrame") Now you can eliminate the NA value: r.spgrd = r.spgrd[!is.na(r.spgrd[[1]]),] In stead of rpoint you can also use sample: selectedPoints = sample(1:length(r.spgrd[[1]]), 1000) r.sampled = r.spgrd[selectedPoints,] cheers, Paul > 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<[hidden email]>  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 >> [hidden email] >> https://stat.ethz.ch/mailman/listinfo/r-sig-geo>> >>       > _______________________________________________ > R-sig-Geo mailing list > [hidden email] > https://stat.ethz.ch/mailman/listinfo/r-sig-geo>     -- Drs. Paul Hiemstra Department of Physical Geography Faculty of Geosciences University of Utrecht Heidelberglaan 2 P.O. Box 80.115 3508 TC Utrecht Phone:  +3130 253 5773 http://intamap.geo.uu.nl/~paulhttp://nl.linkedin.com/pub/paul-hiemstra/20/30b/770_______________________________________________ R-sig-Geo mailing list [hidden email] https://stat.ethz.ch/mailman/listinfo/r-sig-geo