Nowadays, it is possible to buffer without projecting vectors in ArcMap and I want to do the same in R. So, could somebody suggest me some way outs to buffer vector polygons without projecting in R?

Function descriptions for "gbuffer" and "buffer" say that they can do that but ends up with error message that they expect metric CRS.


I do not know what is happening to your case. Does this work for you?

library(maptools); library(rgdal)
columbus <- readOGR(dsn= system.file("shapes/columbus.shp", 
                                     package="maptools"), layer= "columbus")
proj4string(columbus)   ##### will return NA 
plot(columbus, axes= TRUE)
plot(gBuffer(columbus, width= 0.1, byid = FALSE), border='blue', add= T)

enter image description here

[Added] Geographic (LatLon) dataset

gadm <- getData('GADM', country = "AUT", level = 1)
plot(gadm, axes=T)
plot(gBuffer(gadm, width= 0.1, byid = FALSE), border='blue', add= T)

enter image description here

|improve this answer|||||
  • Those look like projected coordinates to me. I believe the OP wants to compute buffers using lat-lon coordinates. Treating them as Euclidean, which your code seems to do, would produce incorrect buffers. – whuber Mar 27 '17 at 19:41
  • 1
    Please verify what you are doing before offering advice. If you read the help for the Columbus data (?spdep::columbus) you will see that the polygon coordinates are not geographic or projected and [X,Y] are "in arbitrary digitizing units, not polygon coordinates". The reason that geographic coordinates do not work is that they are in time and not distance units. You first have to convert to great circle distances (kilometers) before performing any distance based analysis. As of now, the gBuffer function does not do this and expects distance units. Many functions in sp provide this conversion. – Jeffrey Evans Mar 28 '17 at 17:42
  • Many thanks @JeffreyEvans for the detailed explanation about the error message. My purpose was to figure out the cause of issue OP encountered. (Error itself does not mean it cannot be plotted.) Added another example for OP to give a try. – Kazuhito Mar 28 '17 at 18:47
  • 1
    Let me try to put my problem more clearly, if that helps, I want to use unprojected vector shapefile for buffering but I want to use metric distance to create an outside buffer (e.g. 200km outside buffer). This I could do without any issue in ArcGIS but finding hard time to do it in R. – Surya Sep 15 '17 at 8:00
  • @Surya Interesting. Please edit your question to add your comment. It seems my answer is definitely irrelevant. – Kazuhito Sep 15 '17 at 8:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.