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

R语言getSpatialData包get_records()函数products参数错误求助

解决getSpatialData::get_records()的"Argument 'products' must be a character containing at least one element"错误

这个错误的核心原因是:你调用get_records()时缺少了必填的products参数。collection参数仅指定数据大类(比如Sentinel-2),但函数需要明确具体的产品类型——以Sentinel-2为例,其下分不同级别的数据产品,必须通过products指定至少一个有效产品代码。

Sentinel-2的有效产品名称

Sentinel-2最常用的两类产品代码:

  • S2MSI1C:Level-1C大气表观反射率产品(未经过大气校正)
  • S2MSI2A:Level-2A地表反射率产品(经过大气校正,直接可用作地表分析)

如果想查看该collection下所有可用产品,可运行以下命令获取详情:

get_product_info("Sentinel-2")

修正后的完整代码

在get_records()调用中添加products参数即可,示例如下:

# devtools::install_github("16EAGLE/getSpatialData")
library(getSpatialData)
library(sf)

dat <- st_as_sf(st_sfc(st_polygon(list(rbind(c(-58.5, -34.9),
                                             c(-58.3, -34.9),
                                             c(-58.3, -34.6),
                                             c(-58.5, -34.6),
                                             c(-58.5, -34.9))))),
                 crs = 4326)
print(dat)

login_CopHub(username = "xxxxx", password = "xxxxx")
# 添加products参数,指定具体产品类型
out <- get_records(collection = "Sentinel-2",
                   products = "S2MSI2A", # 可改用c("S2MSI1C", "S2MSI2A")同时查询两类产品
                   aoi = dat,
                   time_range = c("2023-04-15", "2023-09-15"),
                   max_cloud_cov = 20)

额外故障排查点

  1. 确认login_CopHub()登录成功:若登录失败,后续查询会直接报错,需检查用户名密码是否正确
  2. AOI格式验证:你的代码已将多边形转为sf对象且CRS为WGS84(EPSG:4326),符合函数要求
  3. 时间范围合理性:确保时间范围在对应产品的上线时间之后(比如Sentinel-2 Level-2A从2017年开始提供)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 23:43:15