SoyoonKO

02

Fieldmark

C-LAB PROJECT · SATELLITE TILE PIPELINE

Tile pipeline for satellite-derived map layers

Role
Frontend lead · tile pipeline
Period
2026.08—2026.10
Stack
  • React
  • TypeScript
  • Vite
  • Mapbox GL
  • Python
  • PostGIS / Martin
  • MSW
Links

Overview

A tile pipeline that delivers satellite-derived outputs as analytical layers in a web map.

Model rasters and spatial-database vectors each become tiles, so Mapbox GL receives only the area it needs.

Problem

Model output is difficult to judge as raw values, and large source rasters cannot simply be put in a browser.

Map colours, legend classes and panel values had to point to one definition and still update immediately.

Constraint

  1. A changed threshold changes everything

    If class boundaries differ between the map and legend, one area reads as two different risks.

  2. The demo opens before the backend

    A deployable demo was needed while API readiness and UI implementation moved at different speeds.

Decision

  1. Rebake GeoTIFF into XYZ tiles

    dNBR GeoTIFF is classified by severity and reprojected into z9–14 tiles. The full wildfire area rebakes in about 16 seconds, making threshold changes immediately inspectable.

  2. One stable threshold over a continuous scale

    At a low lower bound, 93.1% of one frame was painted. I chose one stable threshold over colours that shift their meaning with time of day.

Tile serving

RASTER TILES

  1. dNBR GeoTIFFContinuous-value raster from the model
  2. ClassifyOne stable threshold fixes risk classes
  3. XYZ · z9—14Reprojected; only the viewed area is requested
  4. Mapbox GLRendered as an analytical layer

VECTOR TILES

  1. PostGISSpatial features such as boundaries and facilities
  2. Martin SQLQueries matched to the map extent
  3. MVTOnly required features travel as vector tiles
  4. Mapbox GLInteractive layer over the raster

TILE LAB · SYNTHETIC RASTER

Rebake tiles in the browser

A portfolio simulation; no production GeoTIFF or server is used.

XYZ / z12 / VIEWPORT TILES / 102 classified cells

Engineering

  1. GeoTIFFModel output
  2. ClassifyClass boundaries shared with the legend
  3. XYZ tilesOnly the viewed area renders on the map
  4. Map / panelVerdict and evidence are read together
  1. Martin SQL tuning

    Vector-tile server queries were tuned to deliver only the data the map needs.

  2. A deployable demo with MSW

    MSW kept the same user flow demonstrable in a production build before the backend was ready.

Result

The pipeline keeps model, tiles, map and verdict copy speaking the same definition.

Change the criterion, rebake the full area and compare the result straight away.

This summarizes only the structure and role of an internal project. Actual locations, events, values, models and server details are not published.