当我基于wrld_simpl(或来自worldclim的任何其他环境层)创建世界陆地栅格时,总是看起来是陆地上的一些“不可能” NA。为什么会这样?我需要一个完美的世界面具,以摘录未落入海洋的记录。但是,陆地上有很多记录,仍然被认为是不适用。
我的脚本如下:
require(raster)
require(maptools)
data(wrld_simpl)
x=read.csv("https://www.dropbox.com/s/ncvu64r2fxgfd4e/NAlocations.csv?dl=0")
r=raster(ncols=360,nrows=(180))
extent(r)=extent(wrld_simpl)
r=rasterize(wrld_simpl,r,wrld_simpl$AREA)
plot(r)
x=x[-which(is.na(extract(r,x$lon,x$lat))),]# This should eliminate all locations on land.
points(x$lon,x$lat, col="red", cex=.3)
那怎么可能?并为世界土地创建干净的栅格吗?
答案 0 :(得分:1)
来自保管箱的直接read.csv
对我不起作用。
如果我这样做
z <- extract(r, x)
# NOT z <- extract(r, x[,1], x[,2]) !!!
i <- which(is.na(z))
points(x[i,])
我在莫桑比克海岸的水中看到很多点。