小编Cec*_*ile的帖子

了解 raster::extract 和 terra:extract

我在完全理解 terra:extract 时遇到问题。我希望提取管理 GADM 多边形的平均栅格值。我的栅格每个国家/地区只有一个值。我希望特定国家/地区内的每个行政多边形都具有相同的值,并且某些包含某些国家/地区边界的多边形会分配面积加权平均值。不幸的是,我当前的脚本并非如此。raster::extract 似乎给出了合理的结果,但不是 terra:extract (请参阅下面的示例代码 - 提供具有不同值的输出)。有人可以根据下面的代码解释一下为什么吗?非常感谢。

## libraries
library(terra)
library(raster)

#===============================================    
## sample example - provides results as expected (1.333, that is (2*0.5+1*1)/1.5)

# sample raster and SpatialPolygons
r <- raster(ncol=2, nrow=3, xmn= 0, ymn= 0, xmx = 30,ymx = 30)
r[] <- c(2, 2, 2, 1, NA, NA)
cds <- rbind(c(7.5,0), c(7.5,20), c(30, 20),c(30,10))
library(sp)
p = Polygon(cds)
ps = Polygons(list(p),1)
sps = SpatialPolygons(list(ps))
plot(r)
plot(sps, add=T)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

# test raster package
test1 <- raster::extract(r , …
Run Code Online (Sandbox Code Playgroud)

r polygon raster terra

9
推荐指数
1
解决办法
4375
查看次数

从wrld_simpl全局地图中删除Antarctica

我在我的ggplots中使用wrld_simpl作为背景,并希望删除Antarctica.不知道如何做到这一点.谢谢您的帮助!

library(maptools)
data("wrld_simpl")
plot(wrld_simpl)
wrld_simpl[wrld_simpl@data$ISO3 != "ATA"]
Run Code Online (Sandbox Code Playgroud)

脚本示例:

library(ggplot2)

p <- ggplot() +
  geom_polygon(data = wrld_simpl, aes(x = long, y = lat, group = group), colour = "black", fill = "grey") 
p <- p + geom_raster(data = df , aes(x = x, y = y, fill = layer))
p <- p + coord_equal() +  theme_bw()  + labs(x="", y="") 
p <- p + scale_fill_gradientn(colours = rev(terrain.colors(10)))
p <- p + labs(list(title = ""))  
p
Run Code Online (Sandbox Code Playgroud)

r raster ggplot2

3
推荐指数
1
解决办法
589
查看次数

面具海洋 - wrld_simpl

我一直试图在下面的代码中将海洋涂成白色或透明,但到目前为止都没有成功。我在 Stack 上看到了其他帖子,但无法将它们应用到我的示例中(例如,我如何在美国地图中为海洋着色?)。我欢迎建议。非常感谢!

library(raster)
library(ggplot2)
library(maptools)
data("wrld_simpl")

#sample raster
r <- raster(ncol=10, nrow=20)
r[] <- 1:ncell(r)
extent(r) <- extent(c(-20, 20, -20, 20))

#plotting
var_df <- as.data.frame(rasterToPoints(r))
p <- ggplot() +
  geom_polygon(data = wrld_simpl[wrld_simpl@data$UN!="10",], 
               aes(x = long, y = lat, group = group),
               colour = "black", fill = "grey") # does the fortification automatically
p <- p + geom_raster(data = var_df, aes(x = x, y = y, fill = layer))
p <- p + coord_equal() +  theme_bw()  +labs(x="", y="") …
Run Code Online (Sandbox Code Playgroud)

r raster ggplot2 r-maptools

1
推荐指数
1
解决办法
519
查看次数

标签 统计

r ×3

raster ×3

ggplot2 ×2

polygon ×1

r-maptools ×1

terra ×1