【问题标题】:Simplifying the data in a raster - R简化栅格中的数据 - R
【发布时间】:2020-06-19 03:22:41
【问题描述】:

我有一个栅格文件,它是根据从 DIVA-GIS 下载的数据创建的:http://www.diva-gis.org/datadown

nz_map<-raster("NZL1_msk_cov.grd")

在这个对象上使用plot() 效果很好,所以导入它没有问题。栅格对象包含很多我不需要的数据,土地覆盖数据。我想要一个更简单的栅格对象,它具有经纬度坐标,陆地值为 1,海洋值为 NA。

此栅格将与 dismo 函数randomPoints() 一起使用来采样背景数据以建模物种分布,因此最重要的是确定哪些区域是陆地(适合采样)和哪些区域是海洋(不适合)。

我可以使用plot(!is.na(nz_map5)) 更简单地可视化栅格。这适用于 randomPoints() 功能,但我不确定如何编辑地图的颜色。这样做:plot(!is.na(nz_map5), col="grey") 会产生一个完全灰色的块,而不是仅仅将适当的区域涂成灰色;这就是为什么我认为使用更简单的栅格对象可能会更好,以取消 !is.na 参数有什么想法吗?

如果有人知道你可以下载这些文件的地方,我就省去了麻烦——这也行。

【问题讨论】:

    标签: r raster dismo


    【解决方案1】:

    这里有类似的海拔数据

    library(raster)
    a <- getData("alt", country="NZL")
    r <- a[[1]]
    plot(r)
    

    我认为你的困惑源于这里发生的事情

    x <- !is.na(r)
    

    这会将值变为TRUE(那些不是NA)或FALSE(那些是NA)。所以现在你有两个类别

    plot(x, col=c("red", "blue"))
    

    现在它不再是 dismo::randomPoints 的好数据集

    如果您希望拥有NA 和其他 1 个值,您可以这样做

    y <- r * 0
    plot(y, col="blue")
    

    或者

     y <- reclassify(y, cbind(-Inf, Inf, 1))
    

    但是,正如您自己所说,对于randomPoints,您可以只使用原始数据。

    【讨论】:

      猜你喜欢
      • 2022-01-13
      • 2020-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-16
      • 1970-01-01
      • 2015-08-05
      相关资源
      最近更新 更多