In this module we will play around with visualizations of Himalayan lakes and glaciers downloaded from Open Street Maps. Lakes and glaciers are represented as polygons in QGIS and various geometric functions can be used to calculate area, center and elevation, useful for comprehensive visualization. We will visualize the distribution of Himalayan lakes in a scatter plot as per their size and elevation.
Open up QGIS and zoom into the state of Himachal Pradesh. See image 1 below.
QGIS showing the state of Himachal using an OSM base map layer
Glacial Lakes
Let’s start by querying glacial lakes from Open Street Maps. Open the “QuickOSM” QGIS plug-in through the corresponding icon on the toolbar. Query on “water” = “lake” in the “Layer Extent” = “HP_DEM” (region for which we queried Digital Elevation Model data). See Image 1 below.
Around 684 glacial lakes covering the state of HP will be returned as a polygon vector layer in QGIS. As lakes are fairly small in size versus on the scale of an entire state they ll hardly be visible on the map. See Image 2 below.
Querying glacial lakes through QuickOSM QGIS plug-in
684 glacial lakes covering the state of HP shown on an OSM base map layer
Visualizing Lakes
A more comprehensive way to visualize small lakes on a large scale is to use the “Centroid Fill” in the “Symbology” tab of the vector layer. See Image 1 below.
Secondly, we can color the lakes as per their size. In the “Expression Editor” under the “Geometry” category we have the “$area” function which returns the size (in square meters) for the current feature (lake). Divide this by 1 million to get the size in square kilometers. See Image 2 below.
Finally, chose a “Graduated” visualization, “Mode” = “Natural Breaks” (size spread is non uniform, Tso Miori being huge), “Classes” = “10” and a Blue color ramp. In the “Labels” tab chose “concat(name, $area/1000/1000))” to display name of lake and size as label. See Images 3+4 below.
All this will result in a comprehensive visualization of Himalayan lakes colored as per their size (light = smaller, dark = larger). Zoom into individual lakes and show them on different base map layers (Satellite, OpenTopo). See Images 5+6+7 below.Visualizing lakes through “Centroid Fill”, fixed size dots in their center.
Computing the size in square kilometers of current glacial lake
Visualizing lakes on blue graduated color scale as per size using “Natural breaks” distribution
Labeling each lake with its name and size
Himalayan lakes shown as per size (light = smaller, dark = larger)
Samudri Tapu lake at the base of the same glacier shown on a topographic (OpenTopo) map
Samudri Tapu lake shown on a satellite map
Glaciers
We can follow similar steps for Himalayan glaciers. QuickOSM query on “natural” = “glacier”. “Centroid Fill” symbol with a graduated visualization as per their size (in square kilometers) using a red color spectrum. This will show approx 609 glaciers on our base map colored as per size. See Images 1+2+3 below.Visualizing glaciers using a Centroid symbol graduated coloring using red spectrum as per size
Himalayan glaciers shown on an standard OSM base map colored as per size (light = smaller, dark = larger).
Zooming into the map we can see individual glaciers, represented as red dots in their center.
Visualizing Glaciers
The “Centroid” visualization of smaller features is useful at larger scale but – as apparent above – not so comprehensive at a smaller scale. Open up “Symbology” tab and change the symbol type to “Gradient Fill” to represent glaciers as polygons with gradient fill. See Image 1 below.
This results in a more comprehensive visualization when zooming in showing the extent of the individual glaciers shaded as per their size (light = smaller, dark = larger). See Images 2+3 below.
Yet another useful visualization for glaciers is “Outline” symbol which clearly shows the boundaries of these permanent ice bodies on various base maps. See Images 4+5 below.Visualizing glaciers using a “Gradient Fill”
Individual Himalayan glaciers shown using a gradient fill (darker = larger, lighter = smaller) on a standard OSM base map
Same type of visualization on a Google Satellite base map
Outline of glaciers shown on a topographic map. One can clearly see the permanent ice aligned inside the valleys below the high ridgelines
Zooming in further we can compare the boundaries of OSM mapped glaciers with the actual ice sheet on Google Satellite map
Extracting Size
Similar to the previous module, let’s extract various geometric attributes (size and elevation) into new feature attributes. Add a new “Area” attribute for Himalayan lakes in the “Fields” Properties tab as per Image 1 below.
We can update the value of this new attribute with the size of the lake in square kilometers as per Image 2 below. Click on the “Area” column to sort lakes based on size, Tso Mioriri being the largest at 145 square kilometers. See Image 3 below.Adding a new “Area” attribute for Himalayan lakes vector layer
Updating the value of the “Area” attribute with the size of the lake in square kilometers
Soring glacial lakes as per size, Tso Mioriri being the largest
Extracting Elevation
Next, similar to Himalayan passes in the previous module, let’s extract the elevation for glacial lakes from the downloaded DEM data. Before doing so we will need to run “Centroids” processing function on the lakes polygon layer. See Image 1 below.
The resulting point layer can now be used to extract the elevation for each lake (center) using the “Drape” processing function. The resulting elevation is added to the geometry of each feature (lake). See Image 2 below.
Finally, let’s add a new “Z” attribute to lakes (“Centroids”) and update its value to “z($geometry)” (=altitude) as per Images 3+4 below, similar as we did for mountain passes in the previous module.Calculating centroids for lake polygons
Extracting elevation of center of lakes from the downloaded DEM data
Adding a new “Z” attribute for draped centroid lakes vector layer
Updating the Z attribute to the elevation of each lake using the “z($geometry)” expression
Visualizing Size & Elevation
Now that we have size (in square kilometers) and elevation (in meters) stored as two new attributes in the draped centroids lakes vector layer we can create comprehensive visualization of Himalayan lakes.
As there is a large non-uniform spread in the size of lakes (Tso Mioriri being 145 square kilometers vs. many others less then 1 sq km) we will use a more meaningful logarithmic scale. Open up the Attributes table for the lakes and Update the value for “Area” attribute as per expression “log10($area))”. This shows the size See Image 1 below.
Next, in the “Processing Toolbox” panel chose “Vector Layer Scatterplot” to visualize the distribution of glacial lakes as per their elevation and (logarithmic) size on a 2-dim chart. We can see a higher concentration of lakes between 3500-6000 meters elevation and 10^3-10^5 (1000 and 1 lakh) square meters in size. See Images 1+2 below.Updating the “Area” attribute of lakes to a logarithmic (log10) scale for square meters
Generating a “Vector layer scatterplot” using the QGIS Processing Toolbox
Scatter plot visualizing the spread of glacial lakes as per size (10^0->10^8 square meters, x-axis) and elevation (meters, y-axis)