14

I'm very new to the GIS world, so my problem could be very stupid, but I'm going to try anyway.

Objective

Given a list of coordinates in longitude/latitude, stored as a .csv file, I want to create a buffer with distance of x km around those coordinates. (In case this is relevant, these coordinates are locations of the societies in the SCCS dataset. These societies scatter all around the world.)

Problem

I'm only able to create buffers with distance in radial degrees, but I want to do them in (kilo)meters. I'm aware of the following Q&A's, but following what's suggested therein doesn't seem to solve my problem:

What I have tried...

  1. I start QGIS (v2.4), and Add delimited text layer
  2. choose my .csv file and the x/y fields, click OK
  3. select WGS 84 as my CRS (also tried NAD83 but didn't make a difference), click OK
  4. right-click on layer and select Save As..., in the dialog box, choose the following and click OK: enter image description here
  5. add sccs_meter.shp as layer to the current project
  6. Select Vector > Geoprocessing Tools > Buffers > set buffer distance as 10

The result is a buffer with radius of approximately 1068km, which suggests that buffer distance is 10 degrees rather than 10 meters.

What did I do wrong here?

  • 1
    "What's the Workflow for buffering in meters/km using WGS84 layers?" does solve your problem, please read the comments. When you use the buffer tool it uses the layer CRS units, choosing wgs84 it will use degrees. You can your file _meters, but you haven't realy changed the coordinate system. – Alexandre Neto Jul 11 '14 at 22:28
  • @AlexandreNeto: I read the answer by Jake in that question. Did you mean the part about creating the Azimuthal Equidistant projection, or the part about saving the current layer using a different CRS? I did save mine using NAD83 (as shown in the picture), which is supposed to be in meters, but it still creates buffers in degrees. – Herr K. Jul 11 '14 at 22:49
  • 3
    NAD83 also uses degrees for units. There are many projections that use the NAD83 datum which do use meters, perhaps you meant to choose one of them instead. – Evil Genius Jul 12 '14 at 2:53
17

In step 4, you have to change the CRS from NAD83 to another projection that uses metres as units.

It depends on the extent of your data which one is best. Unfortunately, your data is located all over the world, so you could:

  1. Create a custom CRS using aeqd (or tmerc) for each one, and draw just that one buffer with it. Practically, you only have to create the buffer once, and exchange the CRS information in the .prj and .qpj file. The coordinates of the buffer with respect to its center will always be the same.
  2. Group the data according to the UTM zones, and use the UTM CRS of that zone for those points.
  3. Similar to UTM, group your points into zones of latitude (e.g. every 10 degrees), and create custom Lambert conformal conical 2SP CRS for each group. This will be significantly faster than using all northern and southern UTM zones of the world.
  4. Use pseudo mercator EPSG:3857 for all. The buffers will look like nice circles, but the real size will get smaller and distorted the more to the poles you come.
  • Hi there, I have a similar situation (but with polylines located all over the wold and needing a 50km buffer either side) and I am a little confused as to why you would use one of the top options if you can use the fourth one (which seems the easiest). Is it just because it will not clearly show the distortion which you may like to see, despite giving the accurate result? Thanks! :) – Amroco Jun 5 '17 at 18:09
  • @Amroco EPSG:3857 should be avoided if it should be a exactly a certain distance, and you are far away from the equator. – AndreJ Jun 6 '17 at 5:36
2

Fast and dirty way: use a buffer distance of 0.01° per km. That is the mean degrees per km at 37° lat. and distorts N-S and E-W buffer extent. But it may be accurate enough for your purpose.

  • hi, do you know how great the distortion is at the equ. and the poles? – Amroco Jun 5 '17 at 17:56
  • Assuming a perfect sphere (not geoid): Equator: 1°lat = ~ 111111 m, 1°long = ~ 111133 m, avg. = 111122 m Poles: 1°lat = ~ 111111 m, 1°long = 0 m, avg. = 55556 m – Flo Jun 19 '17 at 6:34
1

You can check the link geospatialearth site link. You need to allow Adobe flash in your browser. Firefox is recommended.

As a programmer, to create a buffer of a point you can use geographiclib javascript along with js2shapefile. You will be able to create numerous equi-angled points at a fixed distance x around every point of the csv file using geographiclib then convert it into shapefile using js2shapefile.

Just check the link above, you will be hundred percent satisfied.

  • Adding a little additional information about what the link explains that will solve the problem is helpful. External links change/break a lot. – MaryBeth Jul 1 '16 at 19:19
  • @MatyBeth The link mentioned above is a little form using which the user uploads the .csv file which is read in the browser using javascript. It will display the preview of this csv file. User has to choose the latititude and longitude column and the type of geometry he/she wants to download like point shapefile, a rectangle buffer with provided length and height in meters or a circle butter with provided radius in meter and number of segments. User has the choice to save the buffer as a shapefile or KML file. – GeoSpatialEarth.in Jul 3 '16 at 7:47

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.