全球地理距离栅格
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')
我想知道是否有人建立了世界各大洲的栅格,其中每个像元等于该像元到最近海岸的距离。该地图将突出显示内陆最孤立的陆地区域。
我想这只是 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')