r-光栅::extend不扩展光栅



我正在尝试在R中对齐具有不同范围但分辨率相同的.asc光栅,以便它们可以用于创建光栅堆栈。我正在与";光栅";包(Hijmans等人,2022,版本3.5-29(

光栅具有以下属性:

> r1;r2
class      : RasterLayer 
dimensions : 1420, 1207, 1713940  (nrow, ncol, ncell)
resolution : 50, 50  (x, y)
extent     : -30155.19, 30194.81, -35519.03, 35480.97  (xmin, xmax, ymin, ymax)
crs        : NA 
source     : Naive_IS2018_UDScaled.asc 
names      : Naive_IS2018_UDScaled 
class      : RasterLayer 
dimensions : 1418, 939, 1331502  (nrow, ncol, ncell)
resolution : 50, 50  (x, y)
extent     : -23488.8, 23461.2, -35475.82, 35424.18  (xmin, xmax, ymin, ymax)
crs        : NA 
source     : Naive_IS2019_UDScaled.asc 
names      : Naive_IS2019_UDScaled 

为了使它们达到相同的程度,我正在创建一个光栅列表,并提取最小值和最大值:

## align all rasters to same extent
rasterlist <- as.list(r1,r2)
raster_extents <- lapply(rasterlist, raster::extent)
do.call(raster::merge, raster_extents)
sharedextent <- c(-30155.19 , 30194.81 , -35519.03 , 35480.97)

现在我使用enxtend((来扩展光栅的范围,使它们共享相同的范围。

r1 <- raster::extend(r1, sharedextent)
r2 <- raster::extend(r2, sharedextent)

但是,这不会导致范围的更改。但是,它将源更改为";存储器";并添加一个";值";r2中的行。

> r1;r2
class      : RasterLayer 
dimensions : 1420, 1207, 1713940  (nrow, ncol, ncell)
resolution : 50, 50  (x, y)
extent     : -30155.19, 30194.81, -35519.03, 35480.97  (xmin, xmax, ymin, ymax)
crs        : NA 
source     : Naive_IS2018_UDScaled.asc 
names      : Naive_IS2018_UDScaled 
class      : RasterLayer 
dimensions : 1420, 1207, 1713940  (nrow, ncol, ncell)
resolution : 50, 50  (x, y)
extent     : -30138.8, 30211.2, -35525.82, 35474.18  (xmin, xmax, ymin, ymax)
crs        : NA 
source     : memory
names      : Naive_IS2019_UDScaled 
values     : 0, 0.0006528347  (min, max)

如有任何帮助,我们将不胜感激。

这就是你要找的吗?(更新为keepres = TRUE(。请记住,更改范围将更改分辨率或行/列数。

library(raster)
#> Loading required package: sp
r1 <- raster(nrows = 1420, ncols = 1207, resolution = 50, ext = extent(c(-30155.19, 30194.81, -35519.03, 35480.97)))
r2 <- raster(nrows = 1418, ncols = 939, resolution = 50, ext = extent(c(-23488.8, 23461.2, -35475.82, 35424.18)))
r2
#> class      : RasterLayer 
#> dimensions : 1418, 939, 1331502  (nrow, ncol, ncell)
#> resolution : 50, 50  (x, y)
#> extent     : -23488.8, 23461.2, -35475.82, 35424.18  (xmin, xmax, ymin, ymax)
#> crs        : NA
r2 <- setExtent(r2, r1, keepres=TRUE)
r2
#> class      : RasterLayer 
#> dimensions : 1420, 1207, 1713940  (nrow, ncol, ncell)
#> resolution : 50, 50  (x, y)
#> extent     : -30155.19, 30194.81, -35519.03, 35480.97  (xmin, xmax, ymin, ymax)
#> crs        : NA

创建于2022-09-06,reprex v2.0.2

相关内容

  • 没有找到相关文章

最新更新