You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用R查询WorldClim并提取全球范围仅陆地表面数据集?

分离WorldClim数据中的纯陆地区域(移除海洋、湖泊、冰川)

要高效从WorldClim全球数据中提取纯陆地(排除海洋、大型湖泊、河流及冰川),可以结合矢量边界数据和terra包的栅格处理能力实现,步骤如下:

1. 加载依赖包

确保安装并加载所需工具包:

library(geodata)
library(terra)
library(rnaturalearth)
# 首次使用rnaturalearth需先安装:install.packages("rnaturalearth")

2. 获取WorldClim原始数据

读取你需要的生物气候数据:

# 用临时目录存储数据,也可指定自己的路径
wc_data <- worldclim_global(var = "bio", res = 2.5, path = tempdir())

3. 构建纯陆地掩膜

我们使用权威的自然地球(Natural Earth)矢量数据,先获取排除大型湖泊的陆地边界,再移除冰川区域:

# 获取1:1000万比例尺的陆地矢量(已排除大型湖泊/河流)
land_boundary <- ne_download(
  scale = 10, 
  type = "land", 
  category = "physical", 
  returnclass = "sf"
)
# 转换为terra支持的SpatVector格式
land_vect <- vect(land_boundary)

# 获取冰川区域矢量并从陆地中移除
glacier_boundary <- ne_download(
  scale = 10, 
  type = "glaciated_areas", 
  category = "physical", 
  returnclass = "sf"
)
glacier_vect <- vect(glacier_boundary)
# 移除冰川后的纯陆地矢量
pure_land <- erase(land_vect, glacier_vect)

4. 应用掩膜提取纯陆地数据

用处理好的纯陆地矢量作为掩膜,裁剪WorldClim数据:

# 保留掩膜范围内的栅格数据,其余设为NA
wc_pure_land <- mask(wc_data, pure_land)

关键说明

  • 自然地球的1:1000万矢量数据已经预排除了大型湖泊和河流,无需额外处理这类水体;
  • terra包的mask和erase操作基于高效的栅格-矢量计算,适合全球尺度数据处理;
  • 如果需要更高精度的水体排除(比如小型河流),可以改用1:100万比例尺的自然地球数据(将scale参数改为1),但数据量会更大。

内容的提问来源于stack exchange,提问作者Eron Raines

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 02:15:59