【问题标题】:Clipping shapefile using intersected shapefiles in R在 R 中使用相交的 shapefile 裁剪 shapefile
【发布时间】:2019-10-30 12:54:51
【问题描述】:

我正在尝试裁剪(不根据范围裁剪)美国州和县 shapefile 以匹配此 DEM(数字高程模型)裁剪栅格的边界。

我的裁剪(根据程度)状态 shapefile 如下所示:

如何剪辑状态 shapefile 以匹配 DEM 的复杂轮廓?我尝试过将两者相交,这很有效,但这并不能区分州和分水岭边界,使得地图很难阅读(尤其是县!)。

huc6_cty_intersect <- raster::intersect(huc6s, counties)  

我需要能够分别覆盖州和县,这样我就可以更改它们的边界宽度、颜色等,以便地图可读。

我尝试将州和县 shapefile 栅格化,然后用 dem 进行遮罩,但这似乎需要非常非常长的时间(一夜之间是不够的)。

counties_rast <- rasterize(counties, dem)
r4 <- raster::mask(counties_rast, huc6_cty_intersect)

我正在尝试获取以下图像,但分水岭以外的所有州边界都被切断了。任何有关如何做到这一点的帮助都会很棒。谢谢你。

注意:流域边界内的白色高地被故意掩盖。

【问题讨论】:

    标签: r polygon crop shapefile clip


    【解决方案1】:

    如果我理解你,你正在寻找raster::crop

    library(raster)
    b <- as(extent(6, 6.4, 49.75, 50), 'SpatialPolygons')
    crs(b) <- "+proj=longlat +datum=WGS84"    
    p <- shapefile(system.file("external/lux.shp", package="raster"))
    
    pb <- crop(p, b)
    

    如果我没有很好地理解你,那么请像我一样使用简单的示例数据来澄清你的答案。引用别人没有的对象没有什么价值。

    【讨论】:

    • 没有提供可重现的示例。您不应该显示 your 数据,而是像我一样显示一些示例数据。无论如何,看起来我的回答仍然可以解决您的问题。你试过了吗? raster::crop(states, huc6s)
    • 它可以工作,但它会在裁剪状态数据中留下 huc6s 数据的“残差”。谢谢。
    猜你喜欢
    • 2014-05-29
    • 2018-09-15
    • 1970-01-01
    • 2022-09-24
    • 1970-01-01
    • 1970-01-01
    • 2020-08-05
    • 2021-09-26
    • 1970-01-01
    相关资源
    最近更新 更多