I have a points layer representing the locations of urban green spaces, each containing an associated cooling intensity value and decay coefficient in the attribute table. I want to show the decay of cooling intensity in all direction for each green space point based on its assigned decay coefficient as a raster layer. Similar to how a heat map of points would look, I would want to see the cooling intensity gradually fade away from the points and blending together with the cooling intensity of nearby points.

I am using the following cooling intensity decay equation to show how the cooling intensity of a green space point will decrease with distance travelled away:

y = a + B * ln(x)


y = cooling intensity at given distance (starting from 0 meters and increasing away)
x = distance away from the green space (starting from 0 meters and increasing away)
B = cooling intensity decay coefficient
a = intercept

And so what I want to do is take my points layer, each with its own assigned cooling intensity value and B coefficient in the attribute table, and then apply my decay equation to each point, and produce a raster layer that shows the cooling intensity decay for all green space points.

I have looked into kernel density and interpolation tools, but I have not found any tools that will allow me to apply an equation to a points layer to create the raster layer I am looking for. I would ideally like to show interaction between the cooling intensities of green spaces close together in distance, where cooling intensities between nearby green spaces will be greater depending on the cooling intensities of those nearby green spaces. Is this possible in QGIS?

  • Observing your formula, decay envelopes of all points overlap (with different values) on each raster cell. at a given raster cell, you will have a stronger influence (higher y value) of points which are closer or have a higher a coefficient, and a weaker influence (lower y) of points which are far and/or have lower a coeff. So, how do you handle the influence of different points? would you take the maximum value? Also, out of curiosity: are a and B negative? Aug 31, 2021 at 21:41
  • Yes, a given raster pixel will be most impact by those points that are both closer and have a higher a coefficient, and less impacted by those points that are both further away and having a lower a coefficient. I am trying to figure out how to handle the influence of different points. I am trying to use a distance-weighted average to determine the raster pixels in between points. This would say that any raster pixel in between parks would be an average of the cooling influence of nearby points, but most weighted towards the closest points. a is positive and B is negative. Oct 25, 2021 at 23:41

1 Answer 1


Any GIS should be able to do this. Simply compute Euclidean distance (ED) to your parks and use raster calculator:

Con("ED" > 0,a+B*Ln("ED"),a)

which says, use a if distance is greater than zero, otherwise use formula. You might need additional expression to convert negatives to 0.

enter image description here

You cannot accumulate park effects, it might very well result in higher cooling (>a) outside parks than inside.

  • Thanks this is a great suggestion and looks like what I am going for in my objective raster layer. Though regarding the formula, how does raster calculator know to use a separate "B" for each green space? Sep 1, 2021 at 3:16
  • Use Euclidean Allocation to parks, join to parks table and use lookup to convert it to raster of B.
    – FelixIP
    Sep 1, 2021 at 3:20
  • Expression will look like Con("ED" > 0,a+"B"*Ln("ED"),a)
    – FelixIP
    Sep 1, 2021 at 3:30
  • So use "Euclidean Allocation" on parks instead of "Euclidean Distance"? I think this would be "r.grow.distance" in QGIS. So then once I rename that output raster as "ED", I will join it to my parks table. Once that is done, I will enter "Con("ED" > 0,a+"B"*Ln("ED"),a)" into Raster Calculator, which will produce the desired raster. Did I understand that correctly? Sep 1, 2021 at 4:15
  • No. ED remains, but instead of simply B, use raster of B.
    – FelixIP
    Sep 1, 2021 at 4:26

Your Answer

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

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