从基于空间点范围的栅格中提取
extract from raster that is based on spatialpoints extent
假设我根据 SpatialPoints 对象的范围生成栅格。
r<-setExtent(r,extent(pts))
identical(extent(r),extent(pts))==TRUE
但现在如果我用 res
更改分辨率,为什么会这样:
identical(extent(r),extent(pts))==FALSE
这只会在某些情况下发生(如果您不能将 x/y 范围除以新分辨率所暗示的 columns/rows 的数量。)某width/height的列数和行数。如果这些不完全符合范围,则需要调整范围。简单示例:
library(raster)
r <- raster(xmn=0, xmx=5, ymn=0, ymx=5, res=1)
r
#class : RasterLayer
# dimensions : 5, 5, 25 (nrow, ncol, ncell)
# resolution : 1, 1 (x, y)
# extent : 0, 5, 0, 5 (xmin, xmax, ymin, ymax)
# coord. ref. : +proj=longlat +datum=WGS84
因此,如果您将 'r' 的分辨率更改为 2.5 或 0.5,则范围保持不变:
res(r) <- 2.5
r
# class : RasterLayer
# dimensions : 2, 2, 4 (nrow, ncol, ncell)
# resolution : 2.5, 2.5 (x, y)
# extent : 0, 5, 0, 5 (xmin, xmax, ymin, ymax)
# coord. ref. : +proj=longlat +datum=WGS84
但是,如果您将其更改为 3,则范围需要更改,因为您无法将 3 的倍数 (rows/columns) 放入 0..5 的范围内。所以范围需要减小到 0..3 或扩展到 0..6(或 -1..5)。后者是较小的变化,所以就是这样。
r <- raster(xmn=0, xmx=5, ymn=0, ymx=5, res=1)
res(r) <- 3
r
class : RasterLayer
dimensions : 2, 2, 4 (nrow, ncol, ncell)
resolution : 3, 3 (x, y)
extent : 0, 6, -1, 5 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84
假设我根据 SpatialPoints 对象的范围生成栅格。
r<-setExtent(r,extent(pts))
identical(extent(r),extent(pts))==TRUE
但现在如果我用 res
更改分辨率,为什么会这样:
identical(extent(r),extent(pts))==FALSE
这只会在某些情况下发生(如果您不能将 x/y 范围除以新分辨率所暗示的 columns/rows 的数量。)某width/height的列数和行数。如果这些不完全符合范围,则需要调整范围。简单示例:
library(raster)
r <- raster(xmn=0, xmx=5, ymn=0, ymx=5, res=1)
r
#class : RasterLayer
# dimensions : 5, 5, 25 (nrow, ncol, ncell)
# resolution : 1, 1 (x, y)
# extent : 0, 5, 0, 5 (xmin, xmax, ymin, ymax)
# coord. ref. : +proj=longlat +datum=WGS84
因此,如果您将 'r' 的分辨率更改为 2.5 或 0.5,则范围保持不变:
res(r) <- 2.5
r
# class : RasterLayer
# dimensions : 2, 2, 4 (nrow, ncol, ncell)
# resolution : 2.5, 2.5 (x, y)
# extent : 0, 5, 0, 5 (xmin, xmax, ymin, ymax)
# coord. ref. : +proj=longlat +datum=WGS84
但是,如果您将其更改为 3,则范围需要更改,因为您无法将 3 的倍数 (rows/columns) 放入 0..5 的范围内。所以范围需要减小到 0..3 或扩展到 0..6(或 -1..5)。后者是较小的变化,所以就是这样。
r <- raster(xmn=0, xmx=5, ymn=0, ymx=5, res=1)
res(r) <- 3
r
class : RasterLayer
dimensions : 2, 2, 4 (nrow, ncol, ncell)
resolution : 3, 3 (x, y)
extent : 0, 6, -1, 5 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84