Macrostrat serves mosaicked raster datasets — the EMIT mineral maps, and other layers as they are indexed — as map tiles from the tileserver. They can be loaded into QGIS without a plugin, and classified layers can be filtered to particular classes on the server, so you can put a single mineral on the map.

Two ways in. Use WMTS if you want to browse what is available; use an XYZ layer if you already know exactly what you want, or you are scripting it.

Throughout, emit-minerals is the layer name and https://tiles.macrostrat.org is the tileserver. For local development, swap in https://tiles.macrostrat.local.

The quick way: WMTS

Layer ▸ Add Layer ▸ Add WMS/WMTS Layer…, then New to create a connection, and give it this URL:

https://tiles.macrostrat.org/rasters/emit-minerals/WMTSCapabilities.xml

Connect, and every mineral class appears as its own selectable layer. Pick one, add it, done.

The layer names read as TiTiler Mosaic_WebMercatorQuad_Alunite — the tileserver composes them and the mineral is the last part, so filtering the list by the mineral name works.

To get every class at once, choose the layer named

TiTiler Mosaic_WebMercatorQuad_default

default here means "no class filter", not "a class called default". It sits in the middle of the alphabetical list rather than at the top, so it is easy to scroll past when you are looking for the whole mosaic.

The precise way: an XYZ layer

Layer ▸ Add Layer ▸ Add XYZ Layer…, and build the URL from the tile template. The whole mosaic:

https://tiles.macrostrat.org/rasters/emit-minerals/tiles/WebMercatorQuad/{z}/{x}/{y}@2x.png

Filter it by adding query parameters — one or more classes:

…/{z}/{x}/{y}@2x.png?classes=Alunite,Muscovite

a single source dataset:

…/{z}/{x}/{y}@2x.png?datasets=cali_clipped

or both together:

…/{z}/{x}/{y}@2x.png?classes=Alunite&datasets=cali_clipped

Anything outside the selection is drawn transparent, and the classes that remain keep the layer's own colors, so several classes at once still read as a legend. Separate multiple values with a plain comma. Class names containing spaces need the space percent-encoded (Basalt%20glass), but the commas stay as they are.

Finding the names to use

Both of these are plain JSON — open them in a browser.

Class names come from the layer's vocabulary:

https://tiles.macrostrat.org/rasters/emit-minerals/layer

The categories list gives each class's value, its label (the name to pass to ?classes=), and the color it is drawn in.

Dataset names come from the coverage footprints:

https://tiles.macrostrat.org/rasters/emit-minerals/footprints

Each feature's properties.slug is the name to pass to ?datasets=, and its properties.href is the underlying file — useful for the next section. The footprints follow the actual data rather than each file's bounding box, so they are also a fair picture of where a dataset really has coverage.

What these layers can't do

Both routes hand QGIS rendered images. That is fine for looking at the data and for making a map, but it means:

  • Identify will not return a class value. Clicking a pixel gives you a color, not "Alunite".
  • You cannot restyle in QGIS. The colors come from the palette stored with the layer, and classes are chosen on the server rather than toggled locally.

If you need the actual class values, open one of the source files directly instead. GDAL reads a cloud-optimized GeoTIFF over HTTP, so in Layer ▸ Add Layer ▸ Add Raster Layer…, choose the Protocol source type (or type the path directly) and use the href from the footprints response, prefixed with /vsicurl/:

/vsicurl/https://storage.macrostrat.org/remote-sensing-data/emit-mineral-maps/Group2min/cali_clipped.tif

QGIS then treats it as an ordinary paletted raster: the Paletted/Unique values renderer lists the classes, you can show, hide and recolor them yourself, and Identify returns the class value. The trade-off is that this is one file at a time — no mosaicking, and you have to know which file covers your area.

Other layers

The same URLs work for any indexed raster layer: substitute its name for emit-minerals. The ?classes= filter and the per-class WMTS layers only apply to classified layers — ones whose pixels are class codes rather than continuous measurements — and only once a class vocabulary has been recorded for them.