全球地理距离栅格

Global Raster of geographic distances

我想知道是否有人建立了世界各大洲的栅格,其中每个像元等于该像元到最近海岸的距离。该地图将突出显示内陆最孤立的陆地区域。

我想这只是 rasterize 全局边界的 shapefile,然后计算距离。

您可以使用 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')