What does the following error mean: TopologyException: found non-nonded intersection between LINESTRING

匿名 (未验证) 提交于 2019-12-03 00:53:01

问题:

I'm trying to fortify a shape file that I loaded into R with rgdal, but I get the following error:

"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" 

I am using a shape file for the continent of Africa from maplibrary.org. It is available from my dropbox here: https://www.dropbox.com/s/etqdw3nky52czv4/Africa%20map.zip

I am using the following code:

library(rgdal) library(ggplot2)  africa = readOGR("Africa_SHP",    layer = "Africa") africa.map = fortify(africa, region="COUNTRY") 

And I get the error I mentioned before. I take it that R has some problems with the polygon - is there a way around this?

回答1:

As you can see from the comments mdsumner and agstudy were able to answer why this is happening, though agstudy was unable to recreate it with the dataset available. I did find a work-around for this problem.

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") 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!