距离坡度阈值范围内的道路网络的阴影距离

时间:2017-12-08 19:30:08

标签: r geospatial raster

我开始了一个项目,试图找到我可以走多远的路,假设我受到道路,坡度和植被的限制。我尝试按顺序解决问题,但我遇到的问题比我能解决的问题多,所以我会在这篇文章中添加所有内容。

我的车辆不能以超过5度的坡度行驶,所以我的第一次尝试是find all the terrain that is <= 5 degrees.

感谢@ Christopher-Stephan,我有以下图片。  Area that is steeper than 5 degrees of slope

我似乎无法找到之前的工作或一篇解决我想要做的事情的帖子,所以我将对此进行描述。

考虑到我在汽车道路上的一个区域,在这种情况下是巴拉望岛,我试图看看在坡度超过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"))))

由于

1 个答案:

答案 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))

enter image description here