在sf包中使st_make_valid工作(windows)

时间:2017-09-16 19:56:46

标签: r gis sf

我目前正在尝试让sf :: st_make_valid()函数在R 3.3.3(Windows)下运行。

我的问题是sf包不是针对liblwgeom库构建的。要在windows下安装liblwgeom,我尝试安装osgeo4w,根据其安装选项列出liblwgeom库。仍然,在通过osgeo4w安装程序安装liblwgeom之后,sf无法识别liblwgeom库。

关于有效功能的sf文档: 仅当包与liblwgeom链接时才可用,目前情况并非如此 二进制CRAN分布;有关如何使用的说明,请参阅包源代码存储库 安装liblwgeom

有什么建议吗?

install.packages("sf")
library(sf)
Linking to GEOS 3.5.0, GDAL 2.1.1, proj.4 4.9.3

如果sf识别出liblwgeom库,则应在加载sf包时指明它。

任何人都有过如何在sf包中启用st_make_valid功能以及如何在Windows上安装liblwgeom的经验?

2 个答案:

答案 0 :(得分:3)

如果您安装了rtools,您现在应该可以通过从https://github.com/r-spatial/lwgeom/安装包lwgeom来获得此功能

答案 1 :(得分:1)

我一直在尝试让这个工作。不幸的是,开发人员确实not currently know最好的方法是让这个工作按照要求运行。

一个对我有用的解决方案,主要是根据您尝试使用st_make_valid的几何类型,使用st_buffer(x, 0.0)。这在this blog post中有更详细的描述。据我所知,它将所有几何点与零距离替换为几何,并尝试解决会使多边形无效的事物。我用它来处理多边形中的自相交。