【问题标题】:Calculate areas with one raster layer and one shapefile (polygons)使用一个栅格图层和一个 shapefile(多边形)计算面积
【发布时间】:2020-04-08 08:55:26
【问题描述】:

我在弄清楚如何解决 R 中的问题时遇到了一些问题。我有一个包含大约 300 个多边形(区域)的 shapefile 和一个包含不同值(例如基础设施、森林、湖泊)的栅格层(LULC 地图)等等一)对于不同的像素。我的任务是获取栅格文件(LULC 地图)中每个多边形的面积,然后从每个多边形的总面积中减去一个值(在我的情况下,其中三个值表示基础设施)。

我是 R 编程和使用这种过程的新手,因此非常感谢任何帮助!我只需要一些帮助来了解如何解决这个问题以及将其分为哪些步骤。所以请耐心等待:)

我已经成功读取了我的 shapefile 并进行了光栅化:

# Read shapefile into R
jvk_18 <- readOGR(dsn = "JKV_18_19/Alla_kretsar_geografisk1.shp")

#Change CRS on shapefile to same as rasterlayer, copy the one from raster layer
jvk_18 <- spTransform(jvk_18, 
                      CRS("+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"))

# Set up a raster template for a 1000 degree grid in resulution.
ext <- extent(268607.50, 920075.4, 6133580, 7670992)
gridsize <- 100
r <- raster(ext, res = gridsize)

# Rasterize shapefile
rr <- rasterize(jvk_18, r)

#Plot raster (axes = T to get the map I want)
plot(rr, axes = T)

然后我读入了我的光栅文件:

> mark_raster <- raster("Marktäckedata/nmd2018bas_generaliserad_v1_0.tif")
> plot(mark_data)

所以这就是我已经走了多远!所以我对你们所有人的问题是如何进行? - 两者都有相同的 CRS (WGS84)

  • 两者的范围相同

  • 我猜我的光栅化 shapefile 需要与我的光栅文件具有相同的分辨率(即 10*10)?我应该这样做吗?

  • 在开始合并或计算之前我还需要做些什么吗?

  • 我应该在任何计算之前合并这两个层吗?在这种情况下,我需要在合并之前做任何事情吗?

  • 还有其他方法可以计算面积吗?

我知道这有很多要求!任何帮助将不胜感激:)

【问题讨论】:

    标签: merge polygon raster area calculation


    【解决方案1】:

    您可以继续走这条路,但我认为使用 spatialEco 包简单地运行区域统计数据会更容易。

    zonal.stats(x, y, stats = c("min", "mean", "max"))
    #x = Polygon object of class SpatialPolygonsDataFrame
    #y = rasterLayer object of class raster
    

    https://www.rdocumentation.org/packages/spatialEco/versions/1.3-0/topics/zonal.stats

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-06
      • 1970-01-01
      • 2018-06-12
      • 2019-11-28
      • 2012-04-07
      • 2017-08-06
      • 2018-09-28
      • 2013-11-13
      相关资源
      最近更新 更多