[R-sig-Geo] Tearing of polygons using ggmap & readOGR

Tyler Frazier tyler.j.frazier at icloud.com
Mon Feb 1 04:58:16 CET 2016


That’s great, works like a charm.

> On Jan 31, 2016, at 10:12 PM, boB Rudis <bob at rudis.net> wrote:
> 
> Clip the state polygons with gIntersection. You cross-posted to
> StackOverflow & here so there's a complete answer there as it's more
> amenable to source code + commentary + images and will be around for
> quite a while despite what folks may opine about mailing lists.
> 
> On Sun, Jan 31, 2016 at 8:03 PM, Tyler Frazier
> <tyler.j.frazier at icloud.com <mailto:tyler.j.frazier at icloud.com>> wrote:
>> Hi Roger,
>> 
>> Thanks for your reply and pointers.  I was looking for a simplified shapefile of American state boundaries and downloaded this one from ESRI, states_basic.
>> 
>> https://www.arcgis.com/home/item.html?id=f7f805eb65eb4ab787a0a3e1116ca7e5 <https://www.arcgis.com/home/item.html?id=f7f805eb65eb4ab787a0a3e1116ca7e5> <https://www.arcgis.com/home/item.html?id=f7f805eb65eb4ab787a0a3e1116ca7e5 <https://www.arcgis.com/home/item.html?id=f7f805eb65eb4ab787a0a3e1116ca7e5>>
>> 
>> The .shp is only about 222 KB which was OK for plotting speed in R as well as its appearance.  I tried
>> 
>> states <- getData('GADM', country='USA', level=1)
>> 
>> as well as the census state subdivisions, but the resolution seemed to be too much for R to handle in a plot.
>> 
>> The states_basic file from ESRI plots just fine with
>> 
>> plot(states)  — I think the summary() command returns what would be expected of a shapefile that was read into R as SPDF.
>> 
>>> summary(states)
>> Object of class SpatialPolygonsDataFrame
>> Coordinates:
>>         min       max
>> x -178.21760 -66.96927
>> y   18.92179  71.40624
>> Is projected: FALSE
>> proj4string :
>> [+proj=longlat +datum=NAD83 +no_defs +ellps=GRS80 +towgs84=0,0,0]
>> Data attributes:
>>      STATE_NAME    DRAWSEQ       STATE_FIPS              SUB_REGION   STATE_ABBR
>> Alabama   : 1   Min.   : 1.0   01     : 1   South Atlantic    : 9   AK     : 1
>> Alaska    : 1   1st Qu.:13.5   02     : 1   Mountain          : 8   AL     : 1
>> Arizona   : 1   Median :26.0   04     : 1   West North Central: 7   AR     : 1
>> Arkansas  : 1   Mean   :26.0   05     : 1   New England       : 6   AZ     : 1
>> California: 1   3rd Qu.:38.5   06     : 1   East North Central: 5   CA     : 1
>> Colorado  : 1   Max.   :51.0   08     : 1   Pacific           : 5   CO     : 1
>> (Other)   :45                  (Other):45   (Other)           :11   (Other):45
>>> states at data
>>             STATE_NAME DRAWSEQ STATE_FIPS         SUB_REGION STATE_ABBR
>> 0                Hawaii       1         15            Pacific         HI
>> 1            Washington       2         53            Pacific         WA
>> 2               Montana       3         30           Mountain         MT
>> 
>> etc…
>> 
>> sounds like I need to look into exactly what is happening as part of the fortify() command in order to achieve some consistency of integrating SpatialPolygonsDataFrames with the ggmap() function.  I may eventually go to tmap or mapview or perhaps leaflet, but have found ggplot:: / ggmap:: to be very useful packages (+geom_polygons, + geom_points etc…)and was hoping to keep working with their grammar of graphics.
>> 
>> Tyler
>> 
>> 
>>> On Jan 31, 2016, at 3:35 PM, Roger Bivand <Roger.Bivand at nhh.no> wrote:
>>> 
>>> On Sun, 31 Jan 2016, Tyler Frazier wrote:
>>> 
>>>> I'm trying to incorporate a simple shapefile of US states with ggmap and keep getting "tearing" of my polygons. I tried changing group=id to group=group which seemed to partially solve the problem, but not entirely.
>>>> 
>>>> library(rgdal)
>>>> 
>>>> states <- readOGR(dsn="shapefiles", layer="states")
>>>> 
>>>> proj4string(states)
>>>> 
>>>> [1] "+proj=longlat +datum=NAD83 +no_defs +ellps=GRS80 +towgs84=0,0,0"
>>>> 
>>>> states <- spTransform(states, CRS("+proj=longlat +datum=WGS84"))
>>> 
>>> Unnecessary, as you should know from the +towgs84= tag.
>>> 
>>>> 
>>>> states <- fortify(states)
>>> 
>>> The fortify methods turn data from marine animals with structure into fish soup (a data frame adding attribute values spuriously to each coordinate, I believe). Unless the objects are exactly as fortify wants them, it derails.
>>> 
>>> Do you know that they were polygons? Where did the shapefile come from? Did you plot it? Did you check that it contained what you thought it contained (summary())?
>>> 
>>> Have you considered alternatives (tmap, mapview, ...)?
>>> 
>>>> 
>>>> sstates <- get_map(location = c(-81, 35, -69, 45), zoom = 4, maptype = "watercolor")
>>>> 
>>>> sstates <- ggmap(sstates)
>>>> 
>>>> sstates <- sstates + geom_polygon(aes(x = long, y = lat, group=group), data = states, color ="white", fill ="orangered4", alpha = .4, size = .2)
>>>> 
>>>> Here is an image of the output.
>>>> 
>>>> http://pasteboard.co/1d7kiRfw.png <http://pasteboard.co/1d7kiRfw.png>
>>>> 
>>> 
>>> Image posted OK, but posting HTML (unnecessary).
>>> 
>>>> 
>>>>     [[alternative HTML version deleted]]
>>>> 
>>>> _______________________________________________
>>>> R-sig-Geo mailing list
>>>> R-sig-Geo at r-project.org
>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>>>> 
>>> 
>>> --
>>> Roger Bivand
>>> Department of Economics, Norwegian School of Economics,
>>> Helleveien 30, N-5045 Bergen, Norway.
>>> voice: +47 55 95 93 55; fax +47 55 95 91 00
>>> e-mail: Roger.Bivand at nhh.no
>>> http://orcid.org/0000-0003-2392-6140
>>> https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en
>>> http://depsy.org/person/434412
>> 
>> 
>>        [[alternative HTML version deleted]]
>> 
>> _______________________________________________
>> R-sig-Geo mailing list
>> R-sig-Geo at r-project.org <mailto:R-sig-Geo at r-project.org>
>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo <https://stat.ethz.ch/mailman/listinfo/r-sig-geo>

	[[alternative HTML version deleted]]



More information about the R-sig-Geo mailing list