Allan Koetter

Spatio‑Temporal
Machine Learning

Nearly every question worth asking about the physical world is a question of where, when, and what it is connected to. I build machine learning systems that treat space, time and topology as first-class dimensions — and the data pipelines that hold them up. Twenty years of production data work, an MSc in geology, and a year spent forecasting time series.

Focus

Four domains and the engineering that carries them. One shape of problem throughout: a measurement with a coordinate, a timestamp, and often an edge to whatever it is connected to.

Earth observation and change detection

Multispectral and radar imagery from Sentinel-1 and Sentinel-2: land cover and semantic segmentation across a scene, then across its revisit cycle — where the question stops being what is here and becomes what changed, when, and whether it matters.

Movement and trajectories

Vessel detection in SAR imagery joined against AIS tracks. A trajectory is a time series with a geometry attached, and in maritime domain awareness the absence of a signal where the imagery shows a hull is frequently the whole finding.

Subsurface and groundwater

Hydrogeology: flow and solute transport through aquifers, where the sedimentary architecture decides where water is and how it moves. The same two dimensions in a medium nobody can photograph — and the training behind how I read spatial data everywhere else.

Graph analysis

Where the relations carry the signal and not just the entities. Vessels meeting at a place and a moment, gauges connected along a river network, wells drawing on one aquifer — put timestamps on the edges and a graph becomes a spatio-temporal object in its own right, which makes graph neural networks the natural architecture rather than a bolt-on.

ML engineering

Tracked experiments, versioned models, orchestrated pipelines and served inference — the half of the work that decides whether a model ever leaves the notebook, and the half where spatio-temporal data breaks naive tooling first.

Background

Twenty years in production data work — SQL, Python, GIS, data engineering, data management and analytics — built on an MSc in geology. A Diploma in Data Science and Machine Learning in 2020, and a year as an ML Engineer at PostNord forecasting parcel volumes: a year spent entirely in the temporal dimension, on seasonality, lag structure and the discipline of never letting the future leak backwards into training.

The combination is the point. Space and time each punish carelessness in their own way — projections and resampling, spatial leakage between training and test splits, the difference between a pixel and a place on one side; lookahead bias, irregular sampling and autocorrelation on the other. Handle one well and the other quietly ruins the result. Both go wrong most often without anyone noticing, because the metric still looks fine.

Building the pipeline underneath all of that is where a lot of geoscience stops, and reasoning about the geology is where a lot of machine learning never starts. I work at both ends.

Stack

Modelling

  • Python
  • PyTorch
  • scikit-learn
  • torchgeo

Geospatial

  • STAC
  • stackstac
  • xarray
  • rasterio
  • geopandas
  • GDAL

Platform

  • MLflow
  • Dagster
  • DuckDB
  • MinIO
  • FastAPI
  • PostgreSQL
  • Docker
  • uv