Being a regular hiker, I often wonder about the flatness of the places I visit. A few months ago, I came across an article on disruptivegeo.com detailing a complex methodology of flatness measuring in the US, based on the distance of the horizon.
Not being in the mood for fancy analyses, I took a rather easier approach: simply compute the standard deviation of a DEM inside predefined regions. I used ETOPO1 as a digital elevation model and a shapefile of European NUTS from Eurostat.
Here are the results:
According to this measure, the flattest regions in Europe are Kingston upon Hull in UK (SD = 1.2 m), Oost-Zuid-Holland (1.5 m) and Zaanstreek (1.6 m) in the Netherlands. On the other side of the roughness spectrum, the most mountainous areas are the Savoie département in France (SD = 824 m, home to the Mont-Blanc massif), the Torino province in Italy (815 m) and the Valais canton in Switzerland (776 m).
As far as whole countries are concerned, the 3 flattest areas are the Netherlands (no kidding), Denmark and Estonia. The 3 hilliest countries are Switzerland, Austria and Liechtenstein (note that Andorra was not included in the analysis).
Finally, the small piece of PyQGIS code I used to compute standard deviation inside polygons:
from qgis.analysis import QgsZonalStatistics rasterPath = "/path/to/ETOPO.tif" rLayer = QgsRasterLayer(rasterPath, "DEM") vLayer = QgsVectorLayer("/path/to/NUTS.shp", "NUTS", "ogr") if not ( vLayer.isValid() and rLayer.isValid() ): print "Error loading layers..." zonalstats = QgsZonalStatistics(vLayer, rasterPath, '_', 1, QgsZonalStatistics.StDev) zonalstats.calculateStatistics(None) print "Done"