Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error: isTRUE(gpclibPermitStatus()) is not TRUE

Tags:

r

gis

choropleth

This question may be a duplicate of an earlier unanswered one. I still have the problem.

I am trying to use a zipcode shapefile and coming up with the following error:

tract <- readOGR(dsn = ".", layer = "cb_2013_us_zcta510_500k")
tract<-fortify(tract, region="GEOID10")
Error: isTRUE(gpclibPermitStatus()) is not TRUE

I have tried installing gpclib to fix this but then I get the following error:

install.packages("gpclib")

Installing package into ‘C:/Users/Nick/Documents/R/win-library/3.2’
(as ‘lib’ is unspecified)
Package which is only available in source form, and may need compilation of C/C++/Fortran: ‘gpclib’
  These will not be installed

Help?

like image 648
garson Avatar asked Jun 11 '15 19:06

garson


2 Answers

You can look at Hadley's master file for ggplot2/R/fortify-spatial.r. Based on this outside link, my understanding is that lines 31–34 (in it's current form) used to read something like

# Union together all polygons that make up a region
try_require(c("gpclib", "maptools"))
unioned <- unionSpatialPolygons(cp, invert(polys))

So back then one way to attack the problem was to turn on the license

library(rgdal)
library(maptools)
if (!require(gpclib)) install.packages("gpclib", type="source")
gpclibPermit()

As @rcs, @Edzer Pebesma, and this answer mention, rgeos should resolve the issue for more recent installations.

like image 142
Pat W. Avatar answered Oct 18 '22 20:10

Pat W.


I ran into the same problem but the solution was slightly different than those listed above.

As mentioned by others, the issue is the dependency on gpclib, which is required by maptools.

However, after loading maptools, it provided the following message ...

> library('maptools')

Checking rgeos availability: FALSE
Note: when rgeos is not available, polygon geometry     computations in maptools depend on gpclib,
which has a restricted licence. It is disabled by default;
to enable gpclib, type gpclibPermit()

So rgeos can be used instead of gpclib. To resolve, I did the following ...

install.packages('rgeos', type='source')
install.packages('rgdal', type='source')

The reinstallation of rgdal removes the dependency on gpclib and points to rgeos.

Hope this is helpful.

like image 18
Chris Bishop Avatar answered Oct 18 '22 22:10

Chris Bishop