[R-sig-Geo] Error using unionSpatialPolygons

Ariel Ortiz-Bobea aortizbobea at arec.umd.edu
Sun Sep 2 23:55:05 CEST 2012


Hello,

I was recycling some code I used a few months ago that involved using the
unionSpatialPolygons() of the maptools package. Back then I didn't have a
problem, now I get the following error:

>   usa_counties <- unionSpatialPolygons(usa_counties, data$fips)
Loading required package: rgeos
Loading required package: stringr
rgeos: (SVN revision 330)
 GEOS runtime version: 3.3.3-CAPI-1.7.4 
 Polygon checking: TRUE 
 WARNING! if you turn polygon checking off, and polygons are
 not valid in GEOS, you risk losing data as your R session may crash! 

Error: TopologyException: found non-noded intersection between LINESTRING
(-76.0029 36.5547, -75.9398 36.5547) and LINESTRING (-75.9742 36.5261,
-75.9857 36.5547) at -75.985664369999995 36.55470657

I tried an approach in an older message to a similar problem but didn't work
(see
http://r-sig-geo.2731867.n2.nabble.com/Problem-with-aggregating-UScensus2000-FL-data-td6641334.html).

Any help would be great.

Ariel

----- Here is my reproducible code: --------------------------------------

# packages
library(maps)
library(maptools)

# Import NC counties in "map" format
   usa_counties   <- map('county', region = c('north carolina'), plot=FALSE,
fill=TRUE)

# extract data from map
   data  <- data.frame(id=1:length(usa_counties$names),
name=usa_counties$names, polyname=gsub("\\s","",
sapply(strsplit(usa_counties$names,":"), function(x) x[1]))  ) # create name
id for merge   

# create county id (akin a fips code)
   data$fips <- sapply(1:dim(data)[1], function(x)
match(as.character(data$polyname)[x],unique(as.character(data$polyname))) )

# This is the key county with several polygons
   data[27:29,]

# convert to SptialPolygons
   usa_counties   <- map2SpatialPolygons(usa_counties, data$id, proj4string
= CRS(as.character(NA)))

# Merge polygons belonging to same county
# This is where the error occurs:
   usa_counties <- unionSpatialPolygons(usa_counties, data$fips)

----- My Session info ---------------------------------------------

> sessionInfo()
R version 2.15.0 (2012-03-30)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] rgeos_0.2-5     stringr_0.6     maptools_0.8-14 lattice_0.20-6 
sp_0.9-99       foreign_0.8-49 
[7] maps_2.2-5     

loaded via a namespace (and not attached):
[1] grid_2.15.0  plyr_1.7.1   tools_2.15.0



-----
Ariel Ortiz-Bobea
PhD Candidate in Agricultural & Resource Economics
University of Maryland - College Park
--
View this message in context: http://r-sig-geo.2731867.n2.nabble.com/Error-using-unionSpatialPolygons-tp7580881.html
Sent from the R-sig-geo mailing list archive at Nabble.com.



More information about the R-sig-Geo mailing list