# Use DEM elevation attributes in vector polygon?

I am modeling glacier retreat scatching polygons on DEM surface trying to come out with 3D scatch.

Is it possible to adjust "height" of polygon to follow elevation of DEM surface (eg. glacier height is 70 meters and it will be the same all across the terrain) ?

So far It looks like this, not following terrain

• You can add surface information resources.arcgis.com/en/help/main/10.2/index.html#//… if you have a 3d analyst license but this will only affect the vertices, in the area between vertices (across the top) it will be rendered as flat. If you want the terrain height +70m then take the surface (within a buffer of 100 approx metres of the glacier for speed) and add 70m to it with the plus tool (spatial analyst license needed) resources.arcgis.com/en/help/main/10.2/index.html#//… and use this as the surface for elevations. Commented Apr 29, 2018 at 22:04
• I don't think they want to know how to do it in ArcGIS as they have tagged QGIS. Commented Jun 4, 2018 at 14:38
• Not sure if this helps with polygons - I got it to work with lines. I created a line and then densified it. In layer styling I then set extrusion to (here) 10m, altitude clamping to 'relative', and Altitude binding to 'vertex'. This way the line followed the terrain. For Polygons that might work too....
– FPG
Commented Aug 8, 2021 at 23:35

With QGIS 3.x (I used 3.20.0), it's really easy to use the native 3D functionality.

Variant 1: constant hight of the glacier

1. Create a polygon grid (squares) with the extent of your glacier and delete all grid cells that do not overlap the gacier's polygon. To do so use Select by location, run it with Grid / Disjoint / Glacier polygon and delete the selected cells.

2. In the grid's Layer Styling panel, go to the 3D view tab, set Extrusion to the value representing the hight of the glacier and Altitude clamping to Terrain.

3. Go to Menu View / New 3D Map View and use the spanner icon (configuration) to set Terrain / Type to DEM (Raster Layer) and select your DEM.

You now have your glacier in 3D with constant hight above the terrain surface. Make settings for the style (color etc.):

Variant 2: Different height of the glacier at different places

The advantage of using a grid is that you can set an individual height value for each grid cell. For demonstration purposes, I placed a red point near the end of the glacier and calculated a new attribute named hight. It corresponds to the distance of each cell's centroid to that point: the further away, the higher it is. In reality, of course, you could use actual measurement values representing the thickness of the ice, this here was just to get quickly different value for the glacier's thickness.

For Extrusion now use data driven override and set the field created before as input. This is what you get:

I have once used similar feature in the Google Earth, such as here: Google Earth Polygon surface area to follow the curvature of the earth model

The QGIS 3 and above have added support for the 3D view. I think this is what you can try (see video: Exploring the 3D Viewer in QGIS 3.0). If you also want to show the thickness of your glacier, you might be able to use the 2.5D (see figure).