我开始了一个项目,试图找到我可以走多远的路,假设我受到道路,坡度和植被的限制。我尝试按顺序解决问题,但我遇到的问题比我能解决的问题多,所以我会在这篇文章中添加所有内容。
我的车辆不能以超过5度的坡度行驶,所以我的第一次尝试是find all the terrain that is <= 5 degrees.
感谢@ Christopher-Stephan,我有以下图片。
我似乎无法找到之前的工作或一篇解决我想要做的事情的帖子,所以我将对此进行描述。
考虑到我在汽车道路上的一个区域,在这种情况下是巴拉望岛,我试图看看在坡度超过5度(非常重要)之前我可以在多远的路上行驶或者我跑进入丛林(不太重要)。
我现在想的是我的坡度在5度以内,我绘制了道路并以某种方式遮住了小于5度的相邻箱子。一旦坡度超过5,将其遮盖不同的颜色。 (输出是这个图形)。
然后我只需要找到每个阴影区域内的区域比例(假设你找到p,另一个是1-p)。
图片的代码在
下面library(raster)
library(rasterVis)
elevation <- getData("alt", country = "PHL")
x <- terrain(elevation, opt = c("slope", "aspect"), unit = "degrees")
e <- drawExtent(show = TRUE)
gewataSub <- crop(x, e)
m <- c(0, 5, 0, 5, maxValue(gewataSub$slope), 1)
rclmat <- matrix(m, ncol = 3, byrow = TRUE)
rc <- reclassify(gewataSub$slope, rclmat)
levelplot(rc, margin = F, col.regions = c("wheat", "gray"), colorkey = list(at = c(0, 1, 2), labels = list(at = c(0.5, 1.5), labels = c("<= 5", "> 5"))))
由于
答案 0 :(得分:0)
您可以将道路网络作为http://philgis.org/country-basemaps/roads的shapefile,并将其添加到水平图中。从那里我不完全清楚你的预期结果是什么。
library(raster)
library(rasterVis)
library(rgdal)
elevation <- getData("alt", country = "PHL")
x <- terrain(elevation, opt = c("slope", "aspect"), unit = "degrees")
plot(x$slope)
e <- drawExtent(show = TRUE)
gewataSub <- crop(x, e)
plot(gewataSub$slope, 1)
m <- c(0, 5, 0, 5, maxValue(gewataSub$slope), 1)
rclmat <- matrix(m, ncol = 3, byrow = TRUE)
rc <- reclassify(gewataSub$slope, rclmat)
roads = readOGR("/Users/christopherstephan/Downloads", layer = "roads")
levelplot(
rc,
margin = F,
col.regions = c("wheat", "gray"),
colorkey = list(at = c(0, 1, 2), labels = list(
at = c(0.5, 1.5), labels = c("<= 5", "> 5")
))
) + layer(sp.polygons(roads))