Skip to main content
removed TIA; formatting; English usage
Source Link
Vince
  • 20.3k
  • 16
  • 48
  • 65

in RIn R I want to apply the Mercator-Projection to a SpatialPolygonsDataFrame before plotting it with ggplot. I dont want to use ggplot::coord_map() since the map is supposed to be the "canvas" for a network-graph, that i dont want to be mercator-projected aswell.

After using the sp::spTransform() function I was unable to broom::tidy() the resulting SpatialPolygonsDataFrame due to "orphaned holes"...

Is the SpatialPolygonsDataFrame provided by cshapes::cshp() somehow faulty or am I doing the transformation wrong?

Thanks in advance!

PS: The cleangeo::clgeo_Clean()-function (Suggested here: Fixing orphaned holes in R) has been computing for at least 3 hours sofar. It doesn't seem to be the ideal approach - even if it turns out to be working...


> library(cshapes)
Loading required package: sp
Loading required package: maptools
Checking rgeos availability: TRUE
Loading required package: plyr

> library(broom)

> wrld <- 
+   cshp(as.Date("2016-01-01"))
Warning message:
use rgdal::readOGR or sf::st_read 

> class(wrld)
[1] "SpatialPolygonsDataFrame"
attr(,"package")
[1] "sp"

> proj4string(wrld)
[1] "+proj=longlat +ellps=WGS84"

> wrld <-
+   spTransform(wrld, CRS("+proj=merc +lon_0=0 +k=1 +x_0=0
+                          +y_0=0 +ellps=WGS84 +datum=WGS84
+                          +units=m +no_defs"))

> wrld <- 
+   broom::tidy(wrld, region="COWCODE")
Error in createPolygonsComment(p) : 
  rgeos_PolyCreateComment: orphaned hole, cannot find containing polygon for hole at index 84

in R I want to apply the Mercator-Projection to a SpatialPolygonsDataFrame before plotting it with ggplot. I dont want to use ggplot::coord_map() since the map is supposed to be the "canvas" for a network-graph, that i dont want to be mercator-projected aswell.

After using the sp::spTransform() function I was unable to broom::tidy() the resulting SpatialPolygonsDataFrame due to "orphaned holes"...

Is the SpatialPolygonsDataFrame provided by cshapes::cshp() somehow faulty or am I doing the transformation wrong?

Thanks in advance!

PS: The cleangeo::clgeo_Clean()-function (Suggested here: Fixing orphaned holes in R) has been computing for at least 3 hours sofar. It doesn't seem to be the ideal approach - even if it turns out to be working...


> library(cshapes)
Loading required package: sp
Loading required package: maptools
Checking rgeos availability: TRUE
Loading required package: plyr

> library(broom)

> wrld <- 
+   cshp(as.Date("2016-01-01"))
Warning message:
use rgdal::readOGR or sf::st_read 

> class(wrld)
[1] "SpatialPolygonsDataFrame"
attr(,"package")
[1] "sp"

> proj4string(wrld)
[1] "+proj=longlat +ellps=WGS84"

> wrld <-
+   spTransform(wrld, CRS("+proj=merc +lon_0=0 +k=1 +x_0=0
+                          +y_0=0 +ellps=WGS84 +datum=WGS84
+                          +units=m +no_defs"))

> wrld <- 
+   broom::tidy(wrld, region="COWCODE")
Error in createPolygonsComment(p) : 
  rgeos_PolyCreateComment: orphaned hole, cannot find containing polygon for hole at index 84

In R I want to apply the Mercator-Projection to a SpatialPolygonsDataFrame before plotting it with ggplot. I dont want to use ggplot::coord_map() since the map is supposed to be the "canvas" for a network-graph, that i dont want to be mercator-projected aswell.

After using the sp::spTransform() function I was unable to broom::tidy() the resulting SpatialPolygonsDataFrame due to "orphaned holes"...

Is the SpatialPolygonsDataFrame provided by cshapes::cshp() somehow faulty or am I doing the transformation wrong?

PS: The cleangeo::clgeo_Clean()-function (Suggested here: Fixing orphaned holes in R) has been computing for at least 3 hours sofar. It doesn't seem to be the ideal approach - even if it turns out to be working...


> library(cshapes)
Loading required package: sp
Loading required package: maptools
Checking rgeos availability: TRUE
Loading required package: plyr

> library(broom)

> wrld <- 
+   cshp(as.Date("2016-01-01"))
Warning message:
use rgdal::readOGR or sf::st_read 

> class(wrld)
[1] "SpatialPolygonsDataFrame"
attr(,"package")
[1] "sp"

> proj4string(wrld)
[1] "+proj=longlat +ellps=WGS84"

> wrld <-
+   spTransform(wrld, CRS("+proj=merc +lon_0=0 +k=1 +x_0=0
+                          +y_0=0 +ellps=WGS84 +datum=WGS84
+                          +units=m +no_defs"))

> wrld <- 
+   broom::tidy(wrld, region="COWCODE")
Error in createPolygonsComment(p) : 
  rgeos_PolyCreateComment: orphaned hole, cannot find containing polygon for hole at index 84
Source Link

Orphaned Holes after Mercator-Projection in R

in R I want to apply the Mercator-Projection to a SpatialPolygonsDataFrame before plotting it with ggplot. I dont want to use ggplot::coord_map() since the map is supposed to be the "canvas" for a network-graph, that i dont want to be mercator-projected aswell.

After using the sp::spTransform() function I was unable to broom::tidy() the resulting SpatialPolygonsDataFrame due to "orphaned holes"...

Is the SpatialPolygonsDataFrame provided by cshapes::cshp() somehow faulty or am I doing the transformation wrong?

Thanks in advance!

PS: The cleangeo::clgeo_Clean()-function (Suggested here: Fixing orphaned holes in R) has been computing for at least 3 hours sofar. It doesn't seem to be the ideal approach - even if it turns out to be working...


> library(cshapes)
Loading required package: sp
Loading required package: maptools
Checking rgeos availability: TRUE
Loading required package: plyr

> library(broom)

> wrld <- 
+   cshp(as.Date("2016-01-01"))
Warning message:
use rgdal::readOGR or sf::st_read 

> class(wrld)
[1] "SpatialPolygonsDataFrame"
attr(,"package")
[1] "sp"

> proj4string(wrld)
[1] "+proj=longlat +ellps=WGS84"

> wrld <-
+   spTransform(wrld, CRS("+proj=merc +lon_0=0 +k=1 +x_0=0
+                          +y_0=0 +ellps=WGS84 +datum=WGS84
+                          +units=m +no_defs"))

> wrld <- 
+   broom::tidy(wrld, region="COWCODE")
Error in createPolygonsComment(p) : 
  rgeos_PolyCreateComment: orphaned hole, cannot find containing polygon for hole at index 84