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

使用elevatr包获取瑞士高程数据时遇零长度参数错误求助

解决elevatr包获取瑞士高程数据时的"zero length argument"错误

这个错误的核心原因是get_elev_raster接收的locations参数为空或格式不兼容,导致内部逻辑判断触发空值报错,大概率是rgeoboundaries::geoboundaries("Switzerland")未正确返回瑞士的边界数据。

解决步骤:

  • 先验证边界数据有效性
    运行以下代码检查获取的边界是否正常:

    swiss_bound <- rgeoboundaries::geoboundaries("Switzerland")
    class(swiss_bound)
    dim(swiss_bound)
    head(swiss_bound)
    

    如果dim(swiss_bound)返回NULL或行数为0,说明边界获取失败。

  • 重新获取有效边界
    尝试给geoboundaries指定行政级别参数:

    swiss_bound <- rgeoboundaries::geoboundaries("Switzerland", type = "ADM0")
    

    若仍无效,改用rnaturalearth包获取边界(首次使用需安装):

    install.packages("rnaturalearth")
    library(rnaturalearth)
    
    swiss_bound <- ne_countries(country = "Switzerland", returnclass = "sf")
    
  • 重新调用高程获取函数
    确认边界数据正常后,再次执行:

    elevation_data <- get_elev_raster(locations = swiss_bound, z = 10)
    
  • 备选方案:手动用边界框获取
    如果边界对象始终有问题,直接用瑞士的WGS84坐标系边界框:

    swiss_bbox <- c(5.9559, 45.8179, 10.4921, 47.8085)
    elevation_data <- get_elev_raster(locations = swiss_bbox, z = 10, prj = "+proj=longlat +datum=WGS84")
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 06:35:05