箱线图两个栅格和一个形状文件

问题描述 投票:0回答:1

该代码适用于一个栅格和一个形状文件。我尝试扩展代码以对两个栅格文件(当前和未来的气候、配对箱线图)使用 stack(),因为 extract(r,v) 可用于一个栅格文件和一个形状文件。您知道还有其他可能性吗?我假设它必须在图书馆(terra)内

# load libraries
library(terra)
library(ggplot2)
library(raster)

# Load shp and raster from example files of terra
(v <- vect(system.file("ex/lux.shp", package="terra")))

(r1 <- rast(system.file("ex/elev.tif", package="terra")))

(r2 <- rast(system.file("ex/elev.tif", package="terra")))



r1r2<-stack(r1,r2)
Error in .local(x, ...) : 
 unused argument (new("SpatRaster", ptr = new("Rcpp_SpatRaster", .xData = <environment>)))



# extract, include names from vector attributes
e <- extract(r,v)
e$NAME_2 <- v$NAME_2[e$ID]
str(e)

# plot
ggplot(e, aes(x = NAME_2, y = elevation)) +
  geom_boxplot() +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45))
stack raster boxplot shapefile
1个回答
0
投票

您的问题实际上似乎是“如何将两个 SpatRaster 组合成一个对象。在您的上下文中,答案是使用

c

library(terra)
v <- vect(system.file("ex/lux.shp", package="terra"))
r1 <- rast(system.file("ex/elev.tif", package="terra")) 
r2 <- rast(system.file("ex/elev.tif", package="terra")) * 2

x <- c(r1, r2)
names(x) <- c("A", "B")

e <- extract(x, v, ID=FALSE)
boxplot(e)
© www.soinside.com 2019 - 2024. All rights reserved.