PärPod by Claude
PärPod by Claude
PärPod by Claude
Forty Layers, One Page: The Gruvor Stack as a Composition
13m · May 14, 2026
Forty Layers, One Page: The Gruvor Stack as a Composition

Forty Layers, One Page: The Gruvor Stack as a Composition

The Layer Tree is a Cross Section

Open the gruvor project in QGIS and look at the layers panel on the left. Six groups, around forty layers, stacked top to bottom. Most people read that panel as a list, an inventory, a table of contents. It is not a list. It is a cross section.

The layers panel, read top to bottom, is the map read front to back. The layer at the top of the panel is the layer closest to the reader's eye. The layer at the bottom is the layer furthest away, the floor everything else stands on. When you drag a layer up in the panel, you are not reordering a list. You are pulling that layer towards the viewer, in front of everything below it.

This matters because the gruvor centerfold has a lot of layers, and the order they sit in is not an accident. It is an argument. The mining layers sit at the top because the map is about mining. The basemap sits at the bottom because the basemap's job is to be the ground, not the subject. Every layer in between has a position, and the position encodes how important that layer is to what the map is trying to say.

So before any symbology work, before any colour decisions, the first cartographic question is this. Is the stack in the right order? Does the cross section, read front to back, match the priority order of the story?

Six Groups, One Question

The gruvor project has six groups. Gruvor mining Sweden. Mining Norway. Thematic, Sami and geology. Reference. Basemap Sweden. Basemap Norway.

Each group should be able to answer one question. What is your job on this page?

Gruvor mining Sweden. Job: be the subject. This is the reason the map exists. Permits, historical mines, unmined ore bodies, deposits, boreholes, protected areas. This group must win every visual fight against everything below it.

Mining Norway. Job: make the cross-border story true. Three mines, concessions, prospecting rights, the rest. It mirrors the Swedish group on the other side of the border so the reader sees one mineral region, not two national datasets that happen to share an edge.

Thematic, Sami and geology. Job: provide context, on demand. Off by default. These are the layers you turn on for a specific figure and turn off again. They are not part of the base composition.

Reference. Job: orientation. The print frame outline. Hidden unless needed.

Basemap Sweden and Basemap Norway. Job: be the ground. Be legible, be continuous across the border, and then get out of the way.

If a group cannot answer the job question in one sentence, that is the first thing to fix. A group with no clear job is a group that will muddy the page.

The Floor: Hillshade and the Sense of Terrain

At the very bottom of the stack is the hillshade. Derived from the fifty-metre DEM, rendered out as its own raster, set to Multiply blend at around fifty-five percent opacity.

The hillshade is the floor. It is the thing that gives the whole map a sense of terrain, of mountains and valleys, without drawing a single contour line. Everything else in the map stands on top of it, and because it is set to Multiply, everything else inherits a little of its shadow. A lake drawn on top of a dark hillside reads as a lake on a dark hillside. A permit polygon over a valley reads as being in the valley. The terrain is felt through every layer above it rather than stated by any one of them.

This is why the hillshade goes at the very bottom and why it uses Multiply rather than normal opacity. Normal opacity would just fade the hillshade towards grey. Multiply keeps the dark parts dark and lets the light parts disappear, so the shading reads as light and shadow on a surface, not as a grey film over the page.

There is a note in the sources file worth flagging here. One bad DEM tile was skipped during the mosaic, and it is not yet known whether that tile falls inside the visible print frame. That is a real cartographic risk. A hole in the floor shows through everything above it. Before the centerfold goes to print, that tile needs checking. If it is outside the Åre, Berg, Krokom print rectangle, it does not matter at all. If it is inside, it is a white scar under the whole composition that no layer above will hide. Five minutes with the Python console and the print frame extent will answer it, and it is the kind of thing that is invisible until it is printed large.

The Basemap's Job is to Be Forgotten

Above the hillshade sits the rest of the basemap. The Lantmäteriet land cover, the Topo50 vector layers, the Norwegian N50 layers. This is the bulk of the data by file size. The Topo50 GeoPackage alone is one and a half gigabytes. The land cover is close to a gigabyte.

And the job of all of it is to be forgotten.

This is the hardest idea in basemap design. The basemap is most of the work and most of the data, and if it is doing its job well, the reader does not notice it. They notice the mines. They notice the permits. The basemap is what lets them locate the mines in real geography, but it should never compete for attention with the mines themselves.

Concretely, that means the basemap layers should be lower in contrast, lower in saturation, and lower in visual weight than anything in the editorial groups. The roads should be visible but quiet. The land cover should be present but muted. The contours should be there for the reader who looks for them and invisible to the reader who does not.

When a basemap feels loud, the instinct is to start deleting layers. Usually the fix is not deletion. The fix is to turn the volume down. Same layers, less contrast. A basemap layer that is annoying you at full saturation is often exactly right at half.

The Topo50 Ladder

The Topo50 group has ten layers, and the sources file lists them in render order, bottom to top. That order is itself a small piece of cartographic craft, and it is worth understanding why it goes the way it goes.

Land cover at the bottom. It is areal, it covers everything, so it must be furthest back. Then wetlands, then water bodies, areal again but more specific, so they sit on top of general land cover. Then contours, which are lines, and lines go above polygons because a line drawn under a polygon is a line you cannot see. Then water lines, streams and rivers, above the contours because hydrology should read over terrain. Then buildings. Then railways. Then roads, categorised by type with weighted widths so a motorway reads heavier than a small road. Then administrative boundaries. Then place labels at the very top of the basemap group.

The principle in that ladder: areas at the bottom, then lines, then points and labels at the top. Within each tier, general below specific. It is the same logic as the whole map stack, applied in miniature inside one group.

If you ever need to rebuild this and you are not sure where a new basemap layer goes, ask those two questions. Is it an area, a line, or a point? And is it more general or more specific than its neighbours? The answers place it. There is a reason the contours sit where they do, and the reason is not taste, it is that a line under a polygon is wasted ink.

The Norway Side and the Seam

The Norwegian basemap, the N50 group, has its own five layers, ordered on the same areas-then-lines-then-points logic. And the sources file notes something quietly clever. The Norwegian data is in UTM thirty-three north, which is equivalent to SWEREF ninety-nine TM, so there are no reprojection artefacts at the border.

That is the seam. The place where two national datasets meet. It is the hardest part of any cross-border map, and it gets harder the closer you look. The N50 land cover palette is matched to the Swedish land cover palette deliberately, so that a forest on the Swedish side and a forest on the Norwegian side are the same green, and the reader's eye crosses the border without snagging.

There is an open issue in the file. The N50 admin boundaries layer contains both kommun borders and the national border in one styled line. For a map about a cross-border story, the national border is not just another administrative line. It is one of the most important lines on the page. It should be split out on the objtype attribute and drawn bolder, because the whole editorial point of the map is what happens on each side of exactly that line. A reader needs to see the border without hunting for it.

The seam is also where the missing piece lives. The Norwegian place name layer is not yet wired in. The sources file already names the fix: clone the Topo50 place label rule-based pattern. Until that is done, the Norwegian side of the map is mute. Half the geography has no names. That is a real gap for a centerfold, because a reader on the Swedish side can navigate by town names and a reader looking at the Norwegian side cannot. A map that names one country and not the other quietly tells the reader which country matters, even when that is not the intent.

The Thematic Layers: Context That Waits

The Sami and geology group is collapsed and hidden by default. The sources file gives the practical reason plainly: so the project opens fast. The quaternary soils layer alone is close to six hundred megabytes and nearly three hundred thousand polygons. Loading that every time you open the project would be punishing.

But there is a deeper cartographic reason for off by default, and it is about honesty per figure. The samebyar, the grazing areas, the bedrock, the quaternary soils. Each of these changes what the map is about. Turn on the samebyar layer and the map is now partly about reindeer husbandry and land use. Turn on the bedrock and it is partly a geological map. Those are real stories, but they are not the same story, and a centerfold can only tell one story well.

So the thematic group is context that waits. It is there for the specific figure that needs it. A small inset about mining permits overlapping sameby winter grazing land would turn on exactly two of those layers and nothing else. The discipline of off by default is what keeps each figure making a single clear argument instead of six muddy ones.

The Editorial Ceiling: the Gruvor Group

At the top of the stack, the Gruvor mining Sweden group. Expanded, visible, on top of everything.

This group has a specific internal grammar worth respecting. Historical mines are filled black triangles. Unmined ore bodies are hollow triangles. That contrast, filled versus hollow, is doing real semantic work. Filled means it happened, the ore came out of the ground. Hollow means it is still there, the ore body is known but never extracted. A reader can learn that grammar in one glance at the legend and then read the whole map with it.

The permits are polygons, categorised by status, labelled. The deposits are points, categorised by economic status. The boreholes are a deliberate subset, one hundred and twenty-seven modern holes pulled from a pool of nearly four thousand.

One layer in this group behaves differently from the rest, and it is worth noticing. The protected areas, the pale green hatch. It is in the editorial group, but it acts as an underlay, a soft wash that the mining symbols sit on top of. That is the right call. Protected areas are editorially relevant, they are part of the mining story, but they are context for the mines rather than the subject themselves. So they live in the editorial group for editorial reasons, but they are styled to recede, not to pop. A layer's group membership and its visual weight are two separate decisions, and this layer is the proof.

The whole group otherwise sits on top because it must. If a permit polygon were drawn under the road network, the roads would cut across it and break it up. If the mine triangles were under the place labels, town names would sit on top of mines. The editorial layer goes on the ceiling so that nothing in the basemap can interrupt it.

Figure and Ground, and Who Wins

There is a term from visual perception that every cartographer eventually learns: figure and ground. The figure is what the eye locks onto. The ground is what recedes behind it. A well-built map has a clear figure and a clear ground, and the reader never has to work out which is which.

On the gruvor centerfold, the figure is mining. The mines, the permits, the ore bodies, the deposits. The ground is everything else: terrain, land cover, roads, towns, borders. Forty layers, but only two roles.

Every symbology decision in the next two episodes comes back to this. When you are deciding the colour of a deposit symbol, the real question is, does this help the deposit be figure? When you are deciding the contrast of the road network, the real question is, does this keep the roads as ground?

The failure mode of a forty-layer map is that everything becomes figure. Every layer is interesting to the person who added it, so every layer gets a saturated colour and a strong outline, and the result is a page with no ground at all. Just forty figures fighting. The reader's eye has nowhere to rest and nothing to lock onto, and a centerfold that gives the eye nowhere to rest is a centerfold the reader turns past.

The fix is a decision, made once, and held: mining wins. Everything else supports.

The Rebuild and the Order That Encodes the Argument

The sources file notes that the project file is stale relative to the expanded eight-kommun scope, and that the fix is to rerun the build script in the QGIS Python console before printing.

That rebuild is the moment to get the stack right. The build script applies layers in a specific order, and that order is the cross section. When you rerun it, watch the layer tree assemble itself, group by group, and ask the cross-section question the whole time. Is the floor at the bottom. Is the basemap quiet and continuous. Are the thematic layers waiting, off. Is the editorial group on the ceiling. Does the front-to-back order match the priority order of the story.

There is also a small piece of housekeeping the file flags: an orphaned style file, the old combined mines style, superseded once the mines were split into historical and unmined. Delete it after the rebuild. Orphaned style files are not dangerous, but they are the kind of small rot that makes a project confusing to return to in six months. A clean project is a project you can pick back up.

If the stack is right, the map has a spine before a single colour is chosen. If it is not, no amount of symbology will save it, because symbology cannot fix a layer that is in the wrong plane. A loud layer can be quieted. A layer in the wrong z-order is just wrong.

Forty layers sounds like a lot, and it is. But it is not forty problems. It is one composition with a floor, a quiet middle, and a loud ceiling, and a clear decision about who wins. Get the stack right first. Then, and only then, start choosing colours.

That is the next episode. The colour budget, and why a map with forty layers cannot afford to give each one a colour.