用聚合到较低分辨率的另一个栅格掩蔽一个栅格
Masking one raster by another that was aggregated to lower resolution
我有两个栅格:一个 ("log"),我想用它来屏蔽另一个 ("roi") 中的像素。
> log
class : RasterLayer
dimensions : 11957, 13462, 160965134 (nrow, ncol, ncell)
resolution : 30, 30 (x, y)
extent : 621465, 1025325, 8464135, 8822845 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=21 +south +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0
data source : C:\Users\drappap\AppData\Local\Temp\Rtmp21P4c1\raster\r_tmp_2017-02-06_095634_10544_50628.grd
names : layer
values : 1.1, 1.1 (min, max)
> roi
class : RasterLayer
dimensions : 30, 47, 1410 (nrow, ncol, ncell)
resolution : 50, 50 (x, y)
extent : 717330, 719680, 8641184, 8642684 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=21 +south +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0
data source : in memory
names : layer
values : 2.132891, 14.65027 (min, max)
Log 的分辨率比 roi 高,所以在尝试屏蔽之前,我将 log 聚合到 roi 的分辨率,如下所示:
require(spatial.tools)
require(raster)
log.new<-spatial_sync_raster(log, roi, method="bilinear")
roi.new<-mask(roi, log.new, inverse=T)
我想屏蔽掉任何与对数像素有轻微重叠的 roi 像素。从下面的两张图片可以看出,情况并非如此。问题是,当我将日志像素从 30m 聚合到 50m(以匹配 roi 像素)时,一些单独的 30m 日志像素(在下图中用钢笔突出显示)在聚合到 50m 时丢失(因此未裁剪) out in the roi image) 因为它们没有占 50m 像素的足够大的比例。
如何修改代码,使任何与对数像素稍微重叠的 roi 像素都被屏蔽掉?
您需要 resample
数据集才能获得相同的分辨率(30x30 或 50x50)
rs<-resample(r1,r2,method='bilinear') # you can choose your own method
我有两个栅格:一个 ("log"),我想用它来屏蔽另一个 ("roi") 中的像素。
> log
class : RasterLayer
dimensions : 11957, 13462, 160965134 (nrow, ncol, ncell)
resolution : 30, 30 (x, y)
extent : 621465, 1025325, 8464135, 8822845 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=21 +south +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0
data source : C:\Users\drappap\AppData\Local\Temp\Rtmp21P4c1\raster\r_tmp_2017-02-06_095634_10544_50628.grd
names : layer
values : 1.1, 1.1 (min, max)
> roi
class : RasterLayer
dimensions : 30, 47, 1410 (nrow, ncol, ncell)
resolution : 50, 50 (x, y)
extent : 717330, 719680, 8641184, 8642684 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=21 +south +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0
data source : in memory
names : layer
values : 2.132891, 14.65027 (min, max)
Log 的分辨率比 roi 高,所以在尝试屏蔽之前,我将 log 聚合到 roi 的分辨率,如下所示:
require(spatial.tools)
require(raster)
log.new<-spatial_sync_raster(log, roi, method="bilinear")
roi.new<-mask(roi, log.new, inverse=T)
我想屏蔽掉任何与对数像素有轻微重叠的 roi 像素。从下面的两张图片可以看出,情况并非如此。问题是,当我将日志像素从 30m 聚合到 50m(以匹配 roi 像素)时,一些单独的 30m 日志像素(在下图中用钢笔突出显示)在聚合到 50m 时丢失(因此未裁剪) out in the roi image) 因为它们没有占 50m 像素的足够大的比例。
如何修改代码,使任何与对数像素稍微重叠的 roi 像素都被屏蔽掉?
您需要 resample
数据集才能获得相同的分辨率(30x30 或 50x50)
rs<-resample(r1,r2,method='bilinear') # you can choose your own method