Full technical workflow
FULL TECHNICAL DOCUMENTATION
Complete workflow for the QGIS map, terrain model, agricultural overlay, web viewer and physical 3D-print resource.
Mr Lane · 2026 · working record compiled from the completed Etna project
1. Purpose and finished resource
The project was created for a Year 5 geography unit on earthquakes and volcanoes, with Mount Etna as the principal case study. The aim was to move beyond a flat textbook diagram by combining a physical relief model with an interactive 3D web model. The finished digital resource lets pupils inspect Etna's terrain, settlements, roads and volcanic features, then switch on an agricultural land-use layer and click mapped areas for short crop information.
Finished components
A custom QGIS map of Etna with relief, roads, settlements, volcanic landmarks, sea and labels.
A 3D terrain surface built from a 10 m Italian DEM, including a flat 0 m sea.
A toggleable agricultural overlay showing vineyards, fruit orchards, olive groves and mixed farming.
Clickable pupil information cards with photographs and short observation questions.
A simplified mobile-friendly Three.js/Qgis2threejs interface with Show farming, Reset view and Credits.
A physical 3D-print workflow intended to produce a tiled relief model and frame carrying a permanent QR link to the digital resource.
2. Source data and licensing
| Dataset | Provider | Use | Credit / licence |
|---|---|---|---|
| TINITALY 1.1 | INGV | 10 m elevation data for terrain and print model | CC BY 4.0; DOI 10.13127/tinitaly/1.1 |
| CORINE Land Cover 2018 | Copernicus / ISPRA | Agricultural land-use polygons | Credit Copernicus Land Monitoring Service / ISPRA |
| Open mapping / manually prepared QGIS layers | Project work | Roads, settlements and map annotation | Credit source data as appropriate in final published map |
| Wikimedia Commons photographs | Individual photographers | Pupil information cards | Retain photographer, source and Creative Commons licence |
Terrain credit used in the published viewer: TINITALY 1.1, © INGV, CC BY 4.0. Tarquini, S., Isola, I., Favalli, M., Battistini, A. & Dotta, G. (2023), TINITALY, a digital elevation model of Italy with a 10 metres cell size (Version 1.1).
3. QGIS project setup
The Etna project was standardised around EPSG:32632 (WGS 84 / UTM zone 32N). Using one projected CRS for the working terrain, map extent and exported 3D scene made scale and alignment easier to control.
Set the QGIS project CRS to EPSG:32632.
Load the relevant TINITALY DEM tiles and combine them into a continuous Etna DEM.
Create or load vector layers for settlements, roads and any additional volcanic landmarks.
Keep the final map extent fixed once the terrain and print layout are agreed; later 3D and texture exports should use exactly this extent.
| Key lesson: do not rely on visually similar extents. The terrain raster, constant-sea raster, texture/map image and Qgis2threejs scene should all use effectively identical geographic bounds. |
|---|
4. Cartographic workflow
Relief and height
The base terrain used a hypsometric colour ramp running from green lowlands through yellow/brown higher ground to pale summit colours, with a subtle hillshade above it. The purpose was to make elevation obvious without obscuring roads and labels.
Map content
Major settlements were shown as simple points and labelled in the Print Layout/map texture.
Roads were drawn as a separate line layer and styled to remain legible over the relief.
Volcanic landmarks included Mount Etna, summit craters, Valle del Bove and flank-cone areas.
The Ionian Sea was labelled with spaced/angled typography.
Catania Airport and a height scale were included as orientation/reference features.
Labels were deliberately baked into the map texture rather than exported as independent 3D text. This kept the web model simpler and ensured consistent typography.
5. Successful DEM + sea workflow
A major technical problem was that the original clipped land DEM did not contain geometry offshore. Simply adding a separate flat plane produced a second surface, while filling missing cells in a land-clipped DEM created false vertical cliffs where valid land had been omitted.
Final method
Use the fuller source elevation raster ('Etna combined') rather than a land-clipped derivative.
Clip the combined DEM to the exact final model/map extent with Raster → Extraction → Clip Raster by Extent.
Check with Identify: summit and all land edges must return real elevation values; offshore can remain NoData.
Create a constant raster with exactly the same final extent, CRS and pixel size, value = 0 m.
Merge the constant raster first and the clipped real DEM second. Use Float32 and do not define 0 as NoData.
Check the merged output: real numbers on all land and exactly 0 offshore.
Use this merged raster as the single terrain layer in Qgis2threejs.
The final model extent was approximately 49.93 km east-west by 52.29 km north-south. In Qgis2threejs Scene Settings, a fixed extent matching the final map was used and 'Fix aspect ratio to 1:1' was disabled.
Diagnostic rule
| If an apparent vertical 'wall' appears inside the model, use Identify on the underlying merged DEM. If a land-edge cell is 0 when it should have a real elevation, the wrong/over-clipped DEM has been used. |
|---|
6. Draping the map in Qgis2threejs
Open Qgis2threejs Exporter and enable only the final merged DEM.
Set the scene base extent to the fixed final model extent rather than the broader current QGIS canvas.
Use map (canvas) as the DEM texture so the cartography is draped across the terrain.
Raise the texture image width to roughly 4096 px as a practical starting point; use 8192 px only if the extra sharpness is useful and mobile performance remains acceptable.
Check labels, roads, coastline and sea alignment at several camera angles before exporting.
The final web package was around 20 MB during testing. It did not load instantly on iPhone, but once loaded the controls were smooth and intuitive.
7. Agricultural land-use layer
The detailed Sicilian 1:10,000 land-use service proved unnecessarily large and unreliable for this classroom purpose. The final workflow used CORINE Land Cover 2018 via ISPRA, which provides broad, readable land-use zones.
Preparing CORINE
Load the CORINE vector layer.
Reproject/work in EPSG:32632 where practical.
Clip it geometrically to the Etna model footprint; do not rely only on export-by-extent, because multipart features can extend far outside the requested box.
Filter the clc18 field to the agricultural classes needed for pupils.
Optionally dissolve by clc18 to reduce geometry complexity.
| CLC code | Pupil label | Final colour |
|---|---|---|
| 221 | Vineyards | #6F3B78 |
| 222 | Fruit orchards | #D97A1F |
| 223 | Olive groves | #556B2F |
| 242 | Mixed farming | #D6C57A |
Overlay settings
In Qgis2threejs the agricultural layer was exported as an Overlay, with Z mode Relative to the merged DEM. At small offsets the overlay intersected the terrain mesh and produced holes. The artefacts disappeared at roughly 17 m, so 20 m was used as a safe offset. Opacity looked visually detached at this height, so the final overlay uses solid muted colours and no outlines.
8. Pupil-facing web interface
The stock dat.GUI-style interface was removed from the exported HTML and replaced with a simpler pupil-facing UI. The interface was tested on desktop and iPhone.
Farming layer is off on initial load.
A single Show farming control reveals the thematic overlay and legend.
Reset view restores the original camera, switches farming off, unticks the control, hides the legend and closes any open information card.
Clicking mapped farming areas opens a compact responsive information card.
Each card uses one clear photograph, short pupil-friendly text and one 'Look closely' question.
Photographs are loaded on demand rather than bundled into the initial scene.
A Credits control lists model authorship, terrain data, land-use data, photographs and software.
9. Publishing workflow
The Qgis2threejs export is a folder of HTML, JavaScript, scene data and supporting assets rather than a single file. The working site route was kept simple so it could also become the QR target.
Export to a folder and keep the generated folder structure intact.
Rename the principal viewer HTML file to index.html.
Upload the contents to the /etna/ directory in the website's public web root.
Use https://mrlane.co.uk/etna/ as the permanent public address.
Test first on desktop, then phone/tablet over the actual network pupils are likely to use.
The permanent short path is important for the physical model: a QR code can point to /etna/ even if the wider website is redesigned later. The page itself can be redirected in future without reprinting the frame.
10. Physical 3D-print workflow
The physical model uses the same DEM and geographic extent as the digital resource, so the printed relief and interactive map are two versions of the same landscape.
Hardware and format
Printer: Bambu Lab A1.
Nozzle: 0.4 mm.
The Etna relief was planned as a 2 × 2 tiled model so each tile fits comfortably on the printer while preserving a useful classroom footprint.
A separate 3D-printed frame is intended to hold the four tiles and provide a location for a permanent QR code.
Preparing terrain for print
Start from the same cleaned/combined DEM used for the map, in EPSG:32632.
Define the final rectangular print extent in QGIS and keep it fixed.
Use the DEM-to-3D workflow/plugin to convert the raster elevation surface into printable geometry.
Choose the overall horizontal dimensions first, then set vertical exaggeration only if the real relief is too subtle at the chosen physical size.
Split the model into a 2 × 2 grid using exactly aligned boundaries so the four tiles meet cleanly.
Export each tile as STL (or another slicer-compatible mesh format) and verify orientation before slicing.
During the project, a full model footprint around 230 × 241 mm was considered before moving towards a larger 2 × 2 tiled presentation. The exact finished print dimensions and slicer settings should be recorded alongside the final physical build once the tiles are printed, because these were still being refined during the documented GIS work.
Map/print alignment
The print map and 3D relief were deliberately derived from the same fixed extent. This allows printed cartography, a physical relief model and the web model to refer to the same geographic frame. When producing any paper overlay or accompanying map, use one Print Layout and split/export it consistently rather than rebuilding each tile separately.
Frame and QR
Design a rigid frame that registers the four relief tiles and hides minor tile-edge irregularities.
Reserve a flat area for a 3D-printed QR code.
Encode only the permanent short URL (mrlane.co.uk/etna), not a deep file path.
Keep the QR physically generous and low-complexity; a short URL produces a simpler pattern that scans more reliably when printed in relief.
| Not yet fixed in the project record: final layer height, infill, wall count, print orientation and final physical dimensions. Record these after the successful production print rather than inventing settings retrospectively. |
|---|
11. Problems, causes and fixes
| Problem | Cause | Fix |
|---|---|---|
| Sea missing | No geometry offshore in the land DEM | Merge the full clipped DEM over a matching 0 m raster. |
| Huge white terrain sheet | Qgis2threejs was using a much larger map-canvas extent | Use fixed scene extent matching the final model; disable 1:1 lock. |
| Texture draped over a cliff | Missing land cells had been filled with 0 | Use the fuller combined DEM before merging the sea. |
| Low-resolution drape | Texture image width too small | Increase map texture to 4096 px or higher if justified. |
| Overlay holes | Land-use overlay intersected terrain mesh | Raise overlay to about 17–20 m relative to DEM. |
| CORINE clip at an angle / long shapes | CRS mismatch or extent filtering without true geometric clipping | Use a proper vector Clip against the Etna footprint in the working CRS. |
| GIS source too detailed / unreliable | Regional 1:10,000 dataset was huge and service was unstable | Use CORINE 2018 for a simpler pupil-readable thematic layer. |
| Technical web UI | Default viewer exposed developer-style controls | Replace with purpose-built pupil controls in HTML/CSS/JS. |
12. Reuse checklist for another volcano
Choose a reliable DEM and record licence before processing.
Choose one projected CRS suitable for the volcano.
Fix the final geographic extent early.
Build the base cartography and labels.
Create one continuous terrain raster; fill genuine sea with 0 but never missing land.
Use the same extent for 3D print, map texture and web scene.
Keep thematic overlays conceptually simple.
Test Qgis2threejs overlays for mesh intersection before styling heavily.
Simplify the web interface for pupils rather than exposing the default GUI.
Test on the weakest real device/network likely to be used.
Keep a stable short URL for any physical QR code.
Record final slicer/print settings after the physical production print.
13. Publication credits
Interactive model, cartography and resource design: Mr Lane, 2026.
Terrain data: TINITALY 1.1, © INGV, CC BY 4.0. DOI: 10.13127/tinitaly/1.1.
Land-use data: CORINE Land Cover 2018, Copernicus Land Monitoring Service / ISPRA.
Photographs: Creative Commons images from Wikimedia Commons, with individual photographer and licence details retained in the interactive viewer.
Software: QGIS, Qgis2threejs and Three.js.
Live model: https://mrlane.co.uk/etna/