我正在尝试强化我用rgdal加载到R中的形状文件,但是我收到以下错误:
"Error: TopologyException: found non-noded intersection between LINESTRING
(34.7279 1.59723, 34.7278 1.59729) and LINESTRING
(34.7278 1.59723, 34.7278 1.59729) at 34.727793021883102 1.5972887049072426"
Run Code Online (Sandbox Code Playgroud)
我从maplibrary.org使用非洲大陆的形状文件.它可以在我的保管箱中找到:https: //www.dropbox.com/s/etqdw3nky52czv4/Africa%20map.zip
我使用以下代码:
library(rgdal)
library(ggplot2)
africa = readOGR("Africa_SHP", layer = "Africa")
africa.map = fortify(africa, region="COUNTRY")
Run Code Online (Sandbox Code Playgroud)
我得到了之前提到的错误.我认为R在多边形方面存在一些问题 - 有没有办法解决这个问题?
正如您从评论中看到的那样,mdsumner和agstudy能够回答为什么会发生这种情况,尽管agstudy无法使用可用的数据集重新创建它.我确实找到了解决这个问题的方法.
library(rgdal)
library(rgeos)
library(ggplot2)
#LOADING IN DATA
africa = readOGR("directory", layer="filename")
#FIXING THE NON-NODED INTERSECTS#
africa = gBuffer(africa, width=0, byid=TRUE)
africa.map = fortify(africa, region="ID")
Run Code Online (Sandbox Code Playgroud)