=== versions === python 3.12.0 | numpy 2.5.4 | rasterio 1.5.2 | shapely 2.2.0 | manifold3d 3.5.5 | pyvista 0.49.2 === Step 1: DEM and land cover on one 20 m grid === grid 400 x 350 cells of 20 m | read and reprojected in 1.4 s DEM: 53.6 - 1072.6 m, NaNs 0 WorldCover classes: tree cover 10.5%, grassland 86.7%, built-up 0.3%, bare / sparse 0.4%, permanent water 2.1%, herbaceous wetland 0.0%, moss and lichen 0.0% === Step 2: classify into four colours and remove unprintable specks === cell on the print 0.376 mm -> minimum region 1.5 mm2 = 11 cells water regions 17 -> 11 | area 2.1% -> 2.1% woodland regions 273 -> 65 | area 10.5% -> 10.2% open ground regions 67 -> 16 | area 79.1% -> 79.5% high ground regions 6 -> 3 | area 8.3% -> 8.3% cells changed by the sieve: 772 (0.55%) === Step 3: terrain solid === horizontal scale 1:53,200 | model 150.0 x 131.2 x 31.7 mm lakes lowered by 0.4 mm at 2,920 vertices single-extruder alternative: change filament at z = 21.22 mm for ground above 700 m === Step 4: one watertight part per colour === A: full-depth colours accent colours 59.18 cm3 | 152 of 159 layers (0.2 mm) need more than one filament B: 1.2 mm colour caps accent colours 4.85 cm3 | 144 of 159 layers (0.2 mm) need more than one filament water dropped 0 slivers totalling 0.0000 mm3 woodland dropped 0 slivers totalling 0.0000 mm3 open ground dropped 178 slivers totalling 0.0000 mm3 high ground dropped 0 slivers totalling 0.0000 mm3 water 20,536 triangles | watertight True | oriented True | volume 0.49 cm3 woodland 106,628 triangles | watertight True | oriented True | volume 2.39 cm3 open ground 626,896 triangles | watertight True | oriented True | volume 257.33 cm3 high ground 63,410 triangles | watertight True | oriented True | volume 1.96 cm3 sum of parts 262.176 cm3 | whole terrain 262.176 cm3 | pairwise overlap -0.0005 mm3 water 11 separate piece(s) woodland 65 separate piece(s) open ground 1 separate piece(s) high ground 3 separate piece(s) === Step 5: write STLs and a 3MF === yr_wyddfa_1_water.stl 1.0 MB yr_wyddfa_2_woodland.stl 5.3 MB yr_wyddfa_3_open_ground.stl 31.3 MB yr_wyddfa_4_high_ground.stl 3.2 MB yr_wyddfa_multicolour.3mf 7.4 MB | parts: water, woodland, open ground, high ground === figures === wrote 01-dem-and-land-cover, 02-colour-regions-sieve, 03-stl-preview-multicolour, 04-stl-parts