Dear list, I want to calculate the distance between the centroid of each cell in a raster ârasâ and the closest village (villages are stored as SpatialPointsDataFrame).
ras is as follow: class : RasterLayer dimensions : 5027, 3386, 17021422 (nrow, ncol, ncell) resolution : 27.28532, 27.28532 (x, y) I can obtain what I want with a sub-sample of ras that has less cells, and here are my codes: *# sub sample ras* *sub_ras <- aggregate(ras, fact=20, fun=mean)* class : RasterLayer dimensions : 252, 170, 42840 (nrow, ncol, ncell) resolution : 545.7063, 545.7063 (x, y) *# extract x and y coord from each cell of the raster* *centroid <- xyFromCell(sub_ras, c(1:ncell(sub_ras))) * *# combine x and y into a spatial point object* *centroid <- SpatialPoints(cbind(centroid[,1], centroid[,2]))* *# calculate distance of each centroid to the closest village and then turn it into a raster of * *# extent âsub_ras' and values 'dist'* *dist <- nncross(as(centroid,"ppp"), as(villages, "ppp"))$dist * *rasterdist2village <- rasterize(centroid, sub_ras, dist)* *plot(rasterdist2village)* I then tried to run the same codes using all cells of ras. After 15 minutes the ârasterizeâ function was still running and so I aborted the procedure. I wonder whether there is a more elegant and computationally faster way of doing what explained above? Any input is highly appreciated Best, Gabriele -- Gabriele Cozzi Postdoctoral Research Associate Population Ecology Research Group http://www.popecol.org Zurich University Institute of Evolutionary Biology and Environmental Studies Winterthurerstr. 190 8057 Zurich - Switzerland E-mail: gabriele.co...@uzh.ch Phone: +41(0)44 635 49 12 Fax: +41(0)16355711 http://www.ieu.uzh.ch [[alternative HTML version deleted]]
_______________________________________________ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo