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

运行exact_extract出现Unsupported geometry type报错如何解决?

问题描述

运行exact_extract(rasterlayer, sf_object)代码时收到如下报错:

in CPP_exact_extract(x, weights, wkb, default_value, default_weight,  :  Unsupported geometry type.

使用其他参数几乎一致的sf对象运行相同代码可正常执行,仅当前sf对象触发报错。

报错原因

exact_extract对输入的sf几何类型有严格校验,触发该报错的常见原因包括:

  • sf对象内包含混合几何类型,或者存在GEOMETRYCOLLECTION类型的几何
  • 几何携带Z/M三维/度量维度信息,低版本exactextractr包不支持带额外维度的几何
  • sf对象中存在空几何或者无效几何
排查步骤
  • 查看sf对象的几何类型分布:运行table(st_geometry_type(sf_object))确认是否有异常类型
  • 检查空几何数量:运行sum(st_is_empty(sf_object))
  • 检查几何维度:运行st_geometry(sf_object)查看坐标维度是否为XY,是否带Z/M后缀
  • 检查几何有效性:运行sum(!st_is_valid(sf_object))确认无效几何数量
解决方案
  • 存在混合几何/GEOMETRYCOLLECTION时,提取所需的单一类型几何即可:
    例如需要保留面要素时运行sf_object <- st_collection_extract(sf_object, type = "POLYGON"),按需替换type参数为POINT/LINESTRING即可
  • 几何带Z/M维度时,删除额外维度:
    运行sf_object <- st_zm(sf_object, drop = TRUE)
  • 存在空几何时过滤空值:
    运行sf_object <- sf_object[!st_is_empty(sf_object), ]
  • 存在无效几何时先修复:
    运行sf_object <- st_make_valid(sf_object)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:12:02