当前位置: 首页 > 知识库问答 >
问题:

sf::st\U交叉口:虚拟随机错误动作

刁璞
2023-03-14

我有一个相对简单的任务要在R中完成:我有两个多边形层,一个“面片”层包含39个焦点多边形,另一个“土地覆盖”层包含一个焦点土地覆盖类型的多多边形。我需要剪裁这两个图层,以便在焦点多边形中仅保留焦点土地覆盖类型的范围。有时,这适用于sf::st\U交叉口,有时适用于sf::st\U差异和“负”土地覆盖层(包含所有非焦点土地覆盖类型的范围),有时两种方法都不起作用。起初,我认为这些不同的行为取决于地形的复杂性,但事实似乎并非如此。

我得到的错误是

Error in CPL_geos_op2(op, st_geometry(x), st_geometry(y)) :    
Evaluation error: TopologyException: Input geom 1 is invalid: Ring Self-intersection at or near point 
4372482.6526834015 5297568.4303682083 at 4372482.6526834015 5297568.4303682083.

因此,我使用sf:: st_is_simple('patch')检查了土地覆盖多边形和每个焦点多边形,在所有情况下都产生TRUE

考虑以下三种情况:

我无法制作一个可复制的示例,因此我希望可以从示例图像中找出这里发生了什么。我在那里看不到任何模式,所以可能只有对st\U交叉口和st\U差异有深入了解的人才能找到解决方案。。。

共有1个答案

伊铭
2023-03-14

您描述的错误不是随机的;环形自相交表示几何体无效。您应该能够通过sf::st\u is\u valid()进行测试。

当使用源自ESRI产品领域的空间对象时,已知会发生此错误,ESRI产品领域使用的有效性标准与OGC领域略有不同。

要解决此问题,您有几种选择:

  • 过滤出有问题的几何体(通过基于sf::st\u is\u valid()的结果对空间对象进行子集设置)=只保留有效的几何体
  • 尝试通过sf::st\U make\U valid()纠正几何图形-注意,这可能会导致几何图形改变,并且可能需要安装{lwgeom}软件包
  • 通过sf::st\U缓冲区(您的\uObject,0)在无效的空间对象上应用零宽度缓冲区的“魔法尘”。这种破解将强制创建新的几何体,可能会克服原始几何体中的错误

有关更多信息,请考虑sf包留档:https://r-spatial.github.io/sf/reference/valid.html

 类似资料:
  • 我正在研究java wicket框架和Apache Tomcat。当我尝试 启动tomcat时出现了问题,它显示Java Virtual Machine Launcher弹出窗口“无法创建 Java Virtual Machine”。 单击弹出窗口上的“OK”按钮后,它显示控制台上的错误。 初始化虚拟机时出错。 无法为对象堆保留足够的空间。 请给我任何参考或建议。 提前感谢。

  • 我已经访问了所有与我的问题相关的现有问题,但我仍然有一个问题。所有安装都正确安装。我使用的是最新的Netbeans版本。在执行程序后,我出现了以下错误:

  • 问题内容: 就像标题所说的那样,我对Eclipse JVM启动器有问题。昨晚,一切正常,据我所知,此后我的电脑上没有任何变化。但是,我今天早上醒来,发现当我在Eclipse中运行任何项目时,我都会收到此错误: 我已经验证了 Path 变量()的完整性,现在,您可能会注意到,我的jdk的版本为65。我的JRE和Java安装也是如此。我不明白为什么eclipse使用jre60。我还检查了首选项,并且也

  • 正如标题所说,我对EclipseJVM启动器有一个问题。昨晚,一切都很好,据我所知,从那时起,我的电脑就没有任何变化。然而,我今天早上醒来发现,当我在eclipse中运行任何项目时,我收到了以下错误: 我已经验证了Path变量的完整性()现在,您可能会注意到,我的jdk版本是65。我的JRE和java安装也是如此。我不明白eclipse为什么要使用jre 60。我还检查了首选项,并更改了jre版本

  • 查看虚拟机相关的监控告警信息。 监控菜单下的虚拟机页面主要用于查看虚拟机相关的监控告警信息。 入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击 “监控/资源/虚拟机” 菜单项,进入虚拟机页面。 查看虚拟机列表 该功能用于查看虚拟机的监控告信息。 在虚拟机页面,支持查看以下信息: 名称:虚拟机的名称。 IP:虚拟机的IP地址。 监控状态:虚拟机是否设置告警以及发生告警。 状态:虚拟机的当

  • 主机回收站用于存放用户删除的虚拟机和裸金属文件。 主机回收站用于存放用户删除的虚拟机和裸金属文件。回收站中主机文件默认保存3天,如有误删除的主机需要在3天内进行恢复操作,可以将其恢复到原来位置,超过3天后,文件将被彻底删除。 入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击 “主机/回收站/主机” 菜单项,进入主机回收站列表。 清除 当确定回收站中的主机无用后,可使用清除功能立即彻底删