[英]How does R assign a resolution to raster objects?
假設運行以下 R 代碼
install.packages("raster")
library(raster)
r <- raster(ncol=18, nrow=18)
res(r)
res
function 的 output 是
[1] 20 10
這些值是如何定義的? raster
function 如何計算它們? 它們用什么單位表示?
正如 Guillaume Devailly 所指出的,水平分辨率是水平范圍除以列數。 垂直分辨率是垂直范圍除以行數。 單位是坐標參考系的單位。 默認值為度(用於經度/緯度)。 要為紀堯姆的回答添加更多內容:
創建一個包含 10 行和列的柵格,從 0 到 10。分辨率為 1。
library(raster)
r <- raster(ncol=10, nrow=10, xmn=0, xmx=10, ymn=0, ymx=10)
r
#class : RasterLayer
#dimensions : 10, 10, 100 (nrow, ncol, ncell)
#resolution : 1, 1 (x, y)
#extent : 0, 10, 0, 10 (xmin, xmax, ymin, ymax)
#crs : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
將分辨率更改為0.5; 行數和列數加倍
res(r) <- 0.5
r
#class : RasterLayer
#dimensions : 20, 20, 400 (nrow, ncol, ncell)
#resolution : 0.5, 0.5 (x, y)
#extent : 0, 10, 0, 10 (xmin, xmax, ymin, ymax)
#crs : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
您可以通過調整范圍來間接更改分辨率
extent(r) <- c(0,5,0,5)
r
#class : RasterLayer
#dimensions : 20, 20, 400 (nrow, ncol, ncell)
#resolution : 0.25, 0.25 (x, y)
#extent : 0, 5, 0, 5 (xmin, xmax, ymin, ymax)
#crs : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
x 和 y 分辨率可以設置為不同的值
res(r) <- c(1, 0.5)
當您直接更改分辨率時,通過res
與 Raster* object 關聯的任何像元值都會丟失; 因為行數或列數必須改變。 如果您通過更改范圍間接更改它,則值將保持不變。
根據我從小插圖中了解到的
默認設置將創建一個具有經度/緯度坐標參考系統和 1 x 1 度像元的全局柵格數據結構。
r
# class : RasterLayer
# dimensions : 18, 18, 324 (nrow, ncol, ncell)
# resolution : 20, 10 (x, y)
# extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax)
# coord. ref. : +proj=longlat +datum=WGS84
r
x范圍默認從 -180 到 +180 度(總共 360 度),並且 360 度/18 點 = 20 度的x分辨率。
r
默認情況下, y范圍從 -90 到 +90 度,180 度/18 點導致 10 度的y分辨率。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.