On Apr 5, 2012, at 12:00 AM, Daisy Englert Duursma wrote:
random selection of cells in raster based on distance from xy
locations
Hi,
I am trying to sample a raster for random cells that occur within a
specific distance of point locations. I have successfully found
multiple
ways of doing this but have memory issues with very large datasets. To
overcome this problem I am working with lists. I am now stuck on how
to
randomlly sample the correct elements of a list. Here is an example
of my
code and an example dataset.
rm(list = ls())
#load libraries
library(dismo)
library(raster)
##example data
#load map of land
files<-list.files(path=paste(system.file(package="dismo"),"/
ex",sep=""),pattern="grd",full.names=TRUE)
mask <- raster(files[[9]])
#make point data
pts<-randomPoints(mask,100)
#extract the unique cell numbers within a 800km buffer of the points,
remove NA cells
z <- extract(mask, pts, buffer=800000,cellnumbers=T)
z_nonna <- lapply(z, na.omit)
###########PROBLEM AREA##########
##If I convert this to a dataframe and find the unique "cells" values
#z2<-as.data.frame(do.call(rbind,z_nonna))
#z_unique<-unique(z2[,1])
##I can tell there there are 9763 unique "cells" values
#How do I randomely sample the **LIST** NOT THE DATAFRAME for 5000
unique
values from "cells". I am working with huge datasets and the data
needs to
stay as a list due to memory issues
#Here is how I have tried to sample but it is not sampling from the
right
part of the list
bg<- z_nonna[sample(1:length(z_nonna), 5000, replace=FALSE)]
You should have gotten an error from sample() because z_nonna is only
of length 100.
--
David Winsemius, MD
West Hartford, CT
______________________________________________
R-help@r-project.org 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.