如何解决如何堆叠R中具有几乎完全相同范围的栅格
我正在尝试堆叠多波段栅格。它们是通过ESA Sentinel 1预处理工具SNAP创建的。每个tif文件都没有分层。
我加载了两个栅格堆栈并尝试将它们堆叠:
rs1 <- raster::stack("example/rs1.tif")
rs2 <- raster::stack("example/rs2.tif")
rsstack <- stack(rs1,rs2)
然后我收到以下错误消息:
compareRaster(x)中的错误:程度不同
栅格堆栈的范围几乎相同:
> rs1
class : RasterBrick
dimensions : 2273,2100,4773300,2 (nrow,ncol,ncell,nlayers)
resolution : 8.983153e-05,8.983153e-05 (x,y)
extent : 8.183134,8.37178,48.49076,48.69495 (xmin,xmax,ymin,ymax)
crs : +proj=longlat +datum=WGS84 +no_defs
source : memory
names : S1A_IW_GRDH_1SDV_20180110T053421_20180110T053446_020088_0223E7_69E7_10.1,S1A_IW_GRDH_1SDV_20180110T053421_20180110T053446_020088_0223E7_69E7_10.2
min values : 1.729380e-07,1.077101e-06
max values : 11.63158,109.76797
> rs2
class : RasterBrick
dimensions : 2273,y)
extent : 8.183171,8.371817,48.49071,48.6949 (xmin,ymax)
crs : +proj=longlat +datum=WGS84 +no_defs
source : memory
names : S1A_IW_GRDH_1SDV_20180106T171534_20180106T171559_020037_02223E_CE2A_10.1,S1A_IW_GRDH_1SDV_20180106T171534_20180106T171559_020037_02223E_CE2A_10.2
min values : 8.244981e-08,5.691331e-06
max values : 6.012002,64.965996
如何将两者堆叠在一起?如何调整范围?
我尝试了什么: 我也有兴趣领域。因此,我尝试将两个堆栈裁剪到感兴趣的区域,然后尝试再次将它们堆栈:
shp <- readOGR(dsn=path.expand(example/area.shp)))
shp <- sp::spTransform(shp,CRS(proj4string(rs[[1]])))
rs1 <- raster::crop(rs1,shp)
rs2 <- raster::crop(rs2,shp)
rsstack <- stack(rsstack,r2)
compareRaster(x)中的错误:程度不同
shp
class : SpatialPolygonsDataFrame
features : 16
extent : 8.183144,48.49075,48.69491 (xmin,ymax)
crs : +proj=longlat +datum=WGS84 +no_defs
variables : 14
names : fid,Area,BoundLen,CentX,CentY,AreaIncI,BoundNotIn,CentXNotIn,CentYNotIn,PointInPol,PointInPo1,CompactRat,CompactRa1,rast
min values : 1,1440.64063,168.67161,3442255.57469,5377418.66407,3442259.72286,5377409.4208,1.14669,1
max values : 16,76089100.06641,89693.52095,3451427.74745,5393682.39749,76858585.26953,76662.07157,3451416.96957,5393687.75063,2.57399,2.90065,1
有人可以解决吗?
解决方法
我可以看到您的栅格具有相同的坐标系(crs:+ proj = longlat + datum = WGS84 + no_defs),只是范围不同。首先,可以对其进行裁剪,然后可以使用resample
包中的raster
函数,如
library(raster)
#Crop the raster
rs1 <- raster::crop(rs1,shp)
rs2 <- raster::crop(rs2,shp)
#Conversion of rasters into same extent
rs2_resampled <- resample(rs2,rs1,method='bilinear')
#Stack the rasters
rsstack <- stack(rs1,rs2_resampled)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。