I have 2 layers: The first one is a point Layer (converted from SRTM) with height information. The second one is a polygon layer (shows the forest).
I want to reduce the height value – let's say about 15m if the point value is in a forest area. How can I do that?
Best Answer
One way to do this is to create a new point layer that contains information about overlapping forest areas. If your point layer has an attribute 'height' and each forest polygon an attribute 'forest' which is 1 for all forest areas:
Enter an output shapefile (like points_forestoverlap.shp) and click 'ok'; add to the TOC (layers).
Your new points layer will have a 'forest' attribute - forest areas will be 1 (or whatever value was in the polygon layer) and all non-overlapping points will have NULL. I have not found a way to do calculations using 'NULL' in the field calculator so you have to replace these with 0:
"height" - (("forest" = 1) * 15)
then OK; this will test if it's a forest area ("forest" =1), returning 1, and multiplying by your correction factor.You could also (in step 6) choose to update the existing heights field, and use the same expression.
I suspect you're doing this to correct for canopy height in a forest area? You could have a 'canopy' attribute in your forest polygon and use that to do your correction, thus you could have different canopy heights for different forest areas.