1

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

nz_map<-raster("NZL1_msk_cov.grd")

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

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

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

如果有人知道您可以下载此类文件的地方,就可以省去我的麻烦——也可以。

4

1 回答 1

0

以下是海拔的类似数据

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您可以使用原始数据。

于 2020-06-19T04:35:16.817 回答