wrld_simpl 不可能的 Nas
Impossible Nas in wrld_simpl
当我基于 wrld_simpl(或来自 worldclim 的任何其他环境层)创建世界土地的光栅时,陆地上总是出现一些 "impossible" NA。为什么会这样?我需要一个完美的世界陆地面具来摘录没有落入海洋的记录。但是,陆地上有很多记录,仍然被认为是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)
这怎么可能?这会是一种为世界土地创建干净栅格的方法吗?
Dropbox 中的直接 read.csv
对我不起作用。
如果我这样做
z <- extract(r, x)
# NOT z <- extract(r, x[,1], x[,2]) !!!
i <- which(is.na(z))
points(x[i,])
我在莫桑比克海岸的水域看到一堆点。
当我基于 wrld_simpl(或来自 worldclim 的任何其他环境层)创建世界土地的光栅时,陆地上总是出现一些 "impossible" NA。为什么会这样?我需要一个完美的世界陆地面具来摘录没有落入海洋的记录。但是,陆地上有很多记录,仍然被认为是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)
这怎么可能?这会是一种为世界土地创建干净栅格的方法吗?
Dropbox 中的直接 read.csv
对我不起作用。
如果我这样做
z <- extract(r, x)
# NOT z <- extract(r, x[,1], x[,2]) !!!
i <- which(is.na(z))
points(x[i,])
我在莫桑比克海岸的水域看到一堆点。