使用 shapefile 屏蔽大栅格
masking big raster using shapefile
我有一个覆盖陆地和海洋的 0.0833 度分辨率的全球栅格。
我正在尝试仅为陆地区域提取栅格。方式
我正在做的是使用全局 shapefile 并将其用作遮罩。
然而,这需要很长时间(超过 2 小时但仍未完成)并且想知道我在做的事情是否存在根本性错误
library(raster)
# this is my raster
class : RasterLayer
dimensions : 4320, 10800, 46656000 (nrow, ncol, ncell)
resolution : 0.008333333, 0.008333333 (x, y)
extent : -180, -90, -90, -54 (xmin, xmax, ymin, ymax)
crs : +proj=longlat +datum=WGS84 +no_defs
source : 1_High_2050_.tif
names : X1_High_2050_
values : 3, 3 (min, max)
# my shapefile
library(maptools)
data('wrld_simpl')
# my approach
mask_raster <- mask(temp_rast, wrld_simpl)
terra
包(raster
的替代品)
要快得多
library(terra)
r <- rast(res=1/120, xmax=-90, ymax=-54)
r <- init(r, "cell")
library(geodata)
w <- world(path=".")
system.time(x <- mask(r, w))
# user system elapsed
# 1.36 0.53 1.89
我有一个覆盖陆地和海洋的 0.0833 度分辨率的全球栅格。 我正在尝试仅为陆地区域提取栅格。方式 我正在做的是使用全局 shapefile 并将其用作遮罩。 然而,这需要很长时间(超过 2 小时但仍未完成)并且想知道我在做的事情是否存在根本性错误
library(raster)
# this is my raster
class : RasterLayer
dimensions : 4320, 10800, 46656000 (nrow, ncol, ncell)
resolution : 0.008333333, 0.008333333 (x, y)
extent : -180, -90, -90, -54 (xmin, xmax, ymin, ymax)
crs : +proj=longlat +datum=WGS84 +no_defs
source : 1_High_2050_.tif
names : X1_High_2050_
values : 3, 3 (min, max)
# my shapefile
library(maptools)
data('wrld_simpl')
# my approach
mask_raster <- mask(temp_rast, wrld_simpl)
terra
包(raster
的替代品)
library(terra)
r <- rast(res=1/120, xmax=-90, ymax=-54)
r <- init(r, "cell")
library(geodata)
w <- world(path=".")
system.time(x <- mask(r, w))
# user system elapsed
# 1.36 0.53 1.89