我想知道是否有人建造了世界各大洲的栅格,每个细胞等于该细胞与最近岸的距离。该地图将突出显示内陆最孤立的陆地区域。
我认为这只是rasterize
全局边界的shapefile,然后计算距离。
答案 0 :(得分:8)
您可以使用raster::distance
执行此操作,NA
计算从每个NA
单元格到最近的非NA
单元格的距离。您只需要为陆地像素创建一个library(raster)
library(maptools)
data(wrld_simpl)
# Create a raster template for rasterizing the polys.
# (set the desired grid resolution with res)
r <- raster(xmn=-180, xmx=180, ymn=-90, ymx=90, res=1)
# Rasterize and set land pixels to NA
r2 <- rasterize(wrld_simpl, r, 1)
r3 <- mask(is.na(r2), r2, maskvalue=1, updatevalue=NA)
# Calculate distance to nearest non-NA pixel
d <- distance(r3)
# Optionally set non-land pixels to NA (otherwise values are "distance to non-land")
d <- d*r2
的栅格,为非陆地像素创建一些其他值。
以下是:
rasterVis
要创建上面的图表(我喜欢plot(r)
进行绘图,但您可以使用library(rasterVis)
levelplot(d/1000, margin=FALSE, at=seq(0, maxValue(d)/1000, length=100),
colorkey=list(height=0.6), main='Distance to coast')
):
startDeviceMotionUpdatesToQueue