[R-SIG-Mac] FW: *** caught segfault *** error
Abellan Andres, Juanjo
j.abellan at imperial.ac.uk
Wed Dec 6 11:59:03 CET 2006
Dear all,
I forgot to mention that Roger Bivand, who developed package maptools,
wrote a special function for me to determine which polygon caused the
error. The error happens on the 256th polygon, and he suspects this is a
signal that the loop index is running in a variable of the wrong size
(in an unsigned byte 0-255) ? I guess the question is could I run a
debugger with R.app to actually trap the error.
Many thanks.
Juanjo
-----Original Message-----
From: Abellan Andres, Juanjo
Sent: 06 December 2006 10:39
To: 'r-sig-mac at stat.math.ethz.ch'
Cc: 'Roger Bivand'; Turro, Ernest
Subject: *** caught segfault *** error
Dear R for Mac users,
I use R 2.4.0 on an iMac running Mac OS X 10.4.8, with a 2.16GHz
Intel Core 2 Duo and 2GB 667 MHz DDR2 SDRAM.
I get an error below whenever I try to plot a map from a shapefile
imported into R; I've tried packages shapefiles and spdep, and two
different shapefiles, and get the error in all 4 combinations.
The shapefile is imported correctly, and I get the error only when I
try to plot the map. I specifically use commands
> library(spdep)
Loading required package: tripack
Loading required package: maptools
Loading required package: foreign
Loading required package: sp
Loading required package: SparseM
Package SparseM (0.71) loaded. To cite, see citation("SparseM")
Loading required package: boot
> library(maptools)
> sessionInfo()
R version 2.4.0 (2006-10-03)
i386-apple-darwin8.8.1
locale:
es_ES.UTF-8/es_ES.UTF-8/es_ES.UTF-8/C/es_ES.UTF-8/es_ES.UTF-8
attached base packages:
[1] "methods" "stats" "graphics" "grDevices" "utils"
"datasets" "base"
other attached packages:
spdep boot SparseM maptools sp foreign tripack
"0.3-32" "1.2-26" "0.71" "0.6-3" "0.9-4" "0.8-17" "1.2-10"
> district.shp <-
read.shape("~/Documents/SAHSU/MD/data/Carthography/districts_ok.shp")
Shapefile type: Polygon, (5), # of Shapes: 354
> district.shp <- read.shape("~/Documents/SAHSU/MD/data/Carthography/
districts_ok.shp")
Shapefile type: Polygon, (5), # of Shapes: 354
> plot(district.shp)
*** caught segfault ***
address 0xc00006d5, cause 'memory not mapped'
Traceback:
1: polygon(theMap$Shapes[[ii]]$verts, col = fg[i], border = ol, ...)
2: plot.Map(district.shp)
3: plot(district.shp)
4: plot(district.shp)
Possible actions:
1: abort (with core dump)
2: normal R exit
3: exit R without saving workspace
4: exit R saving workspace
Selection:
I saw that plot.Map is deprecated, so I converted the shapefile into
a polygon list, and then tried to plot it, but still got the error:
> library(spdep)
Loading required package: tripack
Loading required package: maptools
Loading required package: foreign
Loading required package: sp
Loading required package: SparseM
Package SparseM (0.71) loaded. To cite, see citation("SparseM")
Loading required package: boot
> library(maptools)
> district.shp <- read.shape("~/Documents/SAHSU/MD/data/Carthography/
districts_ok.shp")
Shapefile type: Polygon, (5), # of Shapes: 354
> district.pl <- Map2poly(district.shp, as.character(district.shp$att
$DISTRICT_2))
> plot(district.pl)
*** caught segfault ***
address 0xc0000165, cause 'memory not mapped'
Traceback:
1: polygon(coords[pFrom[i]:pTo[i], ], border = border, xpd = xpd,
density = density, angle = angle)
2: polygonholes(x[[j]], border = border, xpd = xpd, density = density
[j], angle = angle[j], pbg = pbg, forcefill = forcefill)
3: plot.polylist(district.pl)
4: plot(district.pl)
5: plot(district.pl)
Possible actions:
1: abort (with core dump)
2: normal R exit
3: exit R without saving workspace
4: exit R saving workspace
Selection:
I also get the same error when I use library shapefiles to import the
shp file and then try to plot the polygons myself; these are the
commands I run:
> library(shapefiles)
> districts.shp <- read.shapefile("~/Documents/SAHSU/MD/data/
carthography/districts_ok")
Attaching package: 'foreign'
The following object(s) are masked from package:shapefiles :
read.dbf
The following object(s) are masked from package:shapefiles :
write.dbf
> ndistricts <- length(districts.shp$shp$shp)
> keys <- districts.shp$dbf$dbf$DISTRICT_2
> vertices <- list()
> for(i in 1:ndistricts){
+ vertices[[i]] <- districts.shp$shp$shp[[i]]$points
+ }
>
> districts.map <- list(codigo=keys, vertices=vertices)#,
nombre=wardnames)
>
> xymin <- apply(t(sapply(districts.map$vertices, apply, 2, min)), 2,
min)
> xymax <- apply(t(sapply(districts.map$vertices, apply, 2, max)), 2,
max)
> corners <- expand.grid(xymin, xymax)
>
> # Plotting the corners and then adding polygons one by one.
> par(pty="s")
> plot(rbind(xymin, xymax), type="n")
> for (i in 1:ndistricts){
+ polygon(x=districts.map$vertices[[i]][,1],
y=districts.map$vertices[[i]][,2])
+ }
*** caught segfault ***
address 0xc00009d8, cause 'memory not mapped'
Traceback:
1: polygon(x = districts.map$vertices[[i]][, 1], y = districts.map
$vertices[[i]][, 2])
Possible actions:
1: abort (with core dump)
2: normal R exit
3: exit R without saving workspace
4: exit R saving workspace
Selection:
In all above cases, I can generate a postscript file though. I.e. the
sequence of commands
>districts.shp <-
read.shape("~/Documents/SAHSU/MD/data/Carthography/districts_ok.shp")
Shapefile type: Polygon, (5), # of Shapes: 354
> postscript("~/Documents/SAHSU/MD/data/Carthography/districts_ok.eps")
> plot(districts.shp)
Warning message:
'plot.Map' is deprecated.
Use 'plot.Spatial' instead.
See help("Deprecated") and help("maptools-deprecated").
> dev.off()
null device
1
works fine, and the postscript file with the map is created.
The same commands work fine using R terminal instead of R.app. So the
error only happens in R.app when generating the map to be seen on teh
screen. They also work fine in my laptop (Intel Pentium 4 CPU 2.00 GHz,
with 512 MB RAM), where I use R v2.2.1 on Windows XP Home Edition v2002.
A colleague of mine's reproduced the error using R.app on the following
machine:
System Version: Mac OS X 10.4.8 (8N1051)
Kernel Version: Darwin 8.8.2
Hardware Overview:
Machine Name: Mac
Machine Model: MacBookPro2,2
Processor Name: Intel Core 2 Duo
Processor Speed: 2.33 GHz
Number Of Processors: 1
Total Number Of Cores: 2
L2 Cache (per processor): 4 MB
Memory: 2 GB
Bus Speed: 667 MHz
> sessionInfo()
R version 2.4.0 (2006-10-03)
i386-apple-darwin8.8.1
locale:
en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8
attached base packages:
[1] "methods" "stats" "graphics" "grDevices" "utils"
[6] "datasets" "base"
other attached packages:
spdep boot SparseM maptools sp foreign tripack
"0.3-32" "1.2-26" "0.71" "0.6-3" "0.9-4" "0.8-17" "1.2-10"
The offending shapefile was generated with ArcGIS 9.0 running on Windows
XP. It
can be can be found in www.uv.es/~abellan/districts_ok.zip.
Any ideas of what may cause the error?
Many thanks,
Juanjo Abellan
Research Associate in Statistics
Department of Epidemiology and Public Health
Imperial College London
More information about the R-SIG-Mac
mailing list