5

I have a vector layer of multi-ring buffers in QGIS, where each ring contains a different cooling intensity value for a green space, at distance intervals of 30 meters moving away from the green space boundary. The cooling intensity decays as the distance away from the green space increases. The green spaces are polygons that I drew these buffers around.

I am trying to find a way to rasterize this layer so that I have a new raster layer that essentially shows these rings as a continuous spectrum of intensity moving away from the boundary of each green space. In this, I am trying to capture the influence that rings have on other rings, where overlap indicates a more concentrated and more intense cooling intensity, relative to rings that do not have overlap.

Also, I want to capture how as cooling intensity concentration increases with increasing overlapping, so will the distance this cooling intensity travels. Overall, I want to show how the cooling intensity between green spaces "merge and blend" together the closer they are, where the intensity of that merging and blending depends on the intensity of the corresponding green spaces. Essentially I am trying to capture the concept of a "gravity model" here, as such:

enter image description here

Source: https://newellta.weebly.com/gravity-model.html

Here is my multi-ring buffers layer, each showing cooling intensity at 30 meter distance intervals:

enter image description here

I want to turn this layer into something that looks like this (visualizing the darker areas as having more cooling intensity, and yellow as less cooling intensity, noticing that the larger dots indicate green spaces that have a higher cooling intensity):

enter image description here

I am thinking this might involve interpolation, but the problem is that the interpolation tools in QGIS only accept points, and so my multi-ring buffers would not work.

Can this be done in QGIS?

0

2 Answers 2

3

You can use a point layer to create your heatmap. Distance between points and an individual value for each point (based on an attribute) can be set in a way to get the result you like.

If you interpolate points, you have to set a radius, creating something like a "sphere of inluence" this point has. Depending on the size of the radius, the "spheres of influence" of several points will overlap.

Creating heatmaps, you can also select an attribute value to weight points. The following screenshot is made using the Heatmap renderer of a point layer (see documentation). To generate an actual raster-layer, you can use Menu Processing / Toolbox / Heatmap (Kernel density estimation) (see documentation), where you can also set the radius and Weight from field.

Screenshot: See the different results (darkness of red) for a set of 10 randomly distributed points (white dots) is labeled with a random value from 1 to 10. The point at the right (labeled with the value 6) is not overlapping the sphere of any other point. On the top, the points labeled 5 and 3 overlap and are represented darker because of the reciprocal influence. Again at the bottom, the two points labeled 8 and 9 have a larger distance, but their higher values still result in a darker red:

enter image description here

1
  • Thank you, this map you shared definitely looks like what I am going for. Though I was hoping to still capture the decay rates captured in my multi-ring buffers, since these rings also reflect the areas of the polygons the buffers are drawn around, rather than just a single attribute. I want to show cooling intensity decay as a function of both the cooling intensity of the polygon and its area. Would there be a way to weight the heat map points by an attribute (cooling intensity), and then by another attribute (area)? Or is there no use for the values identified in my multi-ring buffers? Aug 23, 2021 at 17:14
1

One way to do this may be vector analysis -> rasterize - > Gaussian blur.

  1. Union to Split all overlapping ring buffer polygons

  2. Aggregate to summarize (or average) values of the duplicate polygons created in 1. (Good description of how to do this here)

  3. Rasterize (vector to raster) (gdal toolbox) to burn in the combined value created in step 2 to a raster image

  4. Gaussian filter (Saga toolbox) to soften the edges.

2
  • Hello, I had not considered this approach before, thanks. So essentially are you suggesting that my multi-ring buffers layer be converted to a raster and then smoothed? So the overlapped values would be averaged? Aug 23, 2021 at 17:38
  • 1
    The overlapping values would be averaged or summed depending on what type of data you are analyzing. This would be done first in a vector analysis (using union and aggregate), and then that result would be rasterized. Caveat: This approach is theoretical in that I have not actually tried it. The overlay operations on so many combined polygons may overwhelm your CPU.
    – David Galt
    Aug 26, 2021 at 9:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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