[R-sig-Geo] Map2Poly: Error message

Roger Bivand Roger.Bivand at nhh.no
Thu Aug 3 19:00:36 CEST 2006


On Thu, 3 Aug 2006, Graham Cookson wrote:

> 
> 
> Dear List,
> 
> I hope you can help me with this problem.
> 
> I am attempting to form an adjacency matrix and I'm trying to get my
> shapefile into R. However, I get error messages at the initial stages.
> 
> I used the following code:
> library(maptools)
> library(spdep)
> map<-read.shape("englandandwales.shp")
> polylist<-Map2poly(map)
> 
> The map object is created fine and it finds all 8490 polygons, but the
> Map2poly command generates the following error message:
> 
> Error in if (res[[6]] > 0) return(as.integer(-1)) else return(as.integer(1))
> 
> I have searched the web and the R Help Archives but can't find examples of
> this problem occurring before.
> 
> The shapefile I am using was  created in ArcView by merging the separate
> Wales and England shapefiles available from UK Borders at Edina.ac.uk
> 
> I am using R2.2.0 on an Apple iBook G4 running Mac OS X 10.3.9
> 
> I hope that this isn't a really stupid question

No, a relevant question on the right list with lots of helpful details. 
The error is thrown in Map2poly -> .get.polylist -> .ringDirxy, where the 
two last functions are internal ones, and the last one, with the error, is 
trying to determine the ring direction.

This is implemented differently in the readShapePoly() function also in 
maptools, which imports a shapefile into a SpatialPolygonsDataFrame. From 
there, you just coerce to SpatialPolygons to run poly2nb() - 
poly2nb(as(SPDF, "SpatialPolygons")) should work. Could you please try 
that route first, and let us know if it works?

If you'd prefer not to use the SpatialPolygonsDataFrame class, then we'll 
need to debug the older code, and then access to your shapefile (or a 
subset displaying the same symptoms) will be needed just for testing. In 
any case the output of sessionInfo() and of traceback() immediately after 
the error, together with the full error message would be very useful. 
Setting quiet=FALSE in the Map2poly() call may also show that some 
polygons are getting their ring directions reversed.

Roger

> 
> Thanks!
> Graham
> 
> 
> 
> 
> 
> 

-- 
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: Roger.Bivand at nhh.no




More information about the R-sig-Geo mailing list