2
我想知道是否有人建立了一個世界大陸的光柵,每個細胞等於該細胞到最近岸的距離。該地圖將突出顯示內陸最爲孤立的陸地區域。地理距離的全球柵格
我會想象這只是rasterize
一個shapefile的全局邊界,然後計算距離。
我想知道是否有人建立了一個世界大陸的光柵,每個細胞等於該細胞到最近岸的距離。該地圖將突出顯示內陸最爲孤立的陸地區域。地理距離的全球柵格
我會想象這只是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')
偉大的答案!兩個後續問題:1)像素的分辨率是否可以進一步縮小? 2)地圖的值被解釋爲公里? –
@IDelToro(1)你可以在我們定義'r'的地方設置所需的分辨率('res'參數,這裏以度爲單位)。 (2)看看'柵格' - 如果數據是「未投射的」(即地理的),就像它在這裏一樣,那麼'距離'的輸出是以米爲單位的。否則,它以投影的單位。請注意,當我繪製它時,我除以1000,得到公里。 – jbaums
謝謝!你會以同樣的方式創建一個緯度(或經度)值的柵格嗎? –