【问题标题】:How to extract data from transect located in a single shp file如何从位于单个 shp 文件中的样带中提取数据
【发布时间】:2019-07-31 02:05:26
【问题描述】:

我在一个 shapefile 中有 7 条单独的横断线。有没有办法从中提取数据以从文件中选择单个样带线并提取并将其用作从栅格文件中提取数据的一种方式

我目前在R中使用过这个功能

 extract(raster, transect line.shp )

但这会同时从所有 7 个样带中提取数据。

【问题讨论】:

    标签: r gis


    【解决方案1】:

    这是我从 ?raster::extract 复制的最小可重现示例。

    示例数据

    library(raster)
    r <- raster(ncol=36, nrow=18, vals=1:(18*36))
    cds1 <- rbind(c(-50,0), c(0,60), c(40,5), c(15,-45), c(-10,-25))
    cds2 <- rbind(c(80,20), c(140,60), c(160,0), c(140,-55))
    lines <- spLines(cds1, cds2)
    

    提取所有行

    extract(r, lines)
    [[1]]
     [1] 126 127 161 162 163 164 196 197 200 201 231 232 237 266 267 273 274 302 310
    [20] 311 338 346 381 382 414 417 450 451 452 453 487 488
    
    [[2]]
     [1] 139 140 141 174 175 177 208 209 210 213 243 244 249 250 279 286 322 358 359
    [20] 394 429 430 465 501 537
    

    要提取单行,请对 SpatialLines 对象进行子集化。例如,获取第一行:

    extract(r, lines[1,])
    [[1]]
     [1] 126 127 161 162 163 164 196 197 200 201 231 232 237 266 267 273 274 302 310
    [20] 311 338 346 381 382 414 417 450 451 452 453 487 488
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-03
      • 1970-01-01
      • 1970-01-01
      • 2010-11-11
      • 2013-08-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多