I'm having a bit of meltdown about projections and coordinate reference systems, and was hoping for a few pointers.

I have 3 GIS projects, at 3 sites in Europe (the largest of which measures about 10x30km) all using similar data.

My data layers include point features (from GPS, in lat lon), derived buffers around these points, manually created polygon features (representing landuse) which I want to convert to raster for analysis and some externally derived rasters reprenting imagery, elevation, etc. I will also have some GPS points representing animal locations.

I'm currently using ArcMAP, but also trying to migrate to R and/or QGIS (in preparation for losing my Arc license). I guess my problem isn't software-specific anyway.

I want to measure distance accurately (e.g. 1000m buffer around point features; nearest-neighbour distance) as well as area (point density; percent cover of different landuse within a buffer). Currently I'm working in WGS84 as this is the system my GPS points come in. I'm wondering whether this is the best projection (though as I understand it, it is not a true projection) to be using for these small-scale analyses. I've read that it might be better to use a site-specific transverse Mecator centred on each site. Will it make much difference? (I also want to make some nice figures for presentation, so it would be good if e.g. 1km buffers were actually round rather than eliptical - maybe this is a different point though)

I realise this sort of question has been asked a million times before. I'm not being lazy, but I currently have massively restricted web access so can't afford to figure out the answer myself.

  • 1
    Depending on which version you have, ArcGIS will calculate geodesic-based buffers for points, and probably for other feature types too. – mkennedy May 22 '15 at 16:54
  • 2
    If you're using software that doesn't support geodesic-based buffers but that's what you want, a work-around is to use an ellipsoidal azimuthal equidistant projection, centered on the point/feature to be buffered. – mkennedy May 22 '15 at 17:00

Unless you really need ~millimeter accuracy you do not need a custom local system. Just use the appropriate UTM zone. UTM is metric and projected, so you will get proper distances.

You can find some examples for calculating the distortion from going away from the central meridian of an UTM zone.

You can keep your source data as WGS84 but be aware that at least QGIS always uses the source's CRS for any calculation, regardless of what the map/project is set to. It really is annoying. So for calculations you would need to transform/project to the UTM zone.

Using Postgis or Spatialite might be a nice solution, they allow you to transform on-the-fly or specify projected "views". With R it should be easy to project as needed as well. If you have lots of data, it can be cpu intense to do so all the time though, so storing projected data (in addition to your original sources) can be a good idea.

Having said all that, calculating the decimal degrees equivalent of your metric buffer ranges and simply using that for buffering in WGS84 might be accurate enough. 10x30km really is not that big.

PS: Please update your question title to be somehow specific.

  • 3
    UTM was designed to be no worse than 4 parts in 10000 or 0.4 meters in 1 km. – mkennedy May 22 '15 at 16:59

I guess your data have lat/long coordinates ("Geographic coordinate systems" in ArcGis), so that coordinates are stored in degrees (e.g. decimal degrees). For this kind of analysis I think the use of a "Projected coordinate systems" is recommended. You can refer to the following image (Wikipedia) to find the UTM zone where your project data belongs:


In ArcGis, you can use the tool in the ArcToolbox -> Data Management Tools -> Project and Transformations -> Project to project your vector geographic data in the chosen projected coordinate system. For Raster the same option is under Raster -> Project Raster


See my solution for QGIS:

Export your projects to shape, and load them to qgis. If you want to use meter for your buffer distances, you have to transform your layer to meter coordinate system. The Best would be the local (country-national) coordinate systems. So save as your layers again to shape but in the CRS section choose selected CRS and load your new layers into QGIS. Now you can create the buffers using meter distances in the Vector->Geoprocessing Tools->Buffers menu. Save your buffer areas. enter image description here

For presentation change the map view coordinate system from WGS84 to EPSG3857 (wgs84 transverse mercator), you can do at the bottom right corner clicking on the earth icon and voila no more eggs :) With the openlayers plugin you can add nice base maps to your maps, like google hybrid or bing areal. Hope it helps.

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