Skip to content

Weather GIS Platform — architecture documentation

Start here

New to this platform? Read the Vision first — the goals and the principles that keep it simple and durable, with links to the proofs. Not a technical reader? How it works explains the platform in plain language. Preparing the Foundation Workshop? The GIS contribution answers the workshop agenda point by point.

This documentation describes how to deploy GeoServer as a cluster on Kubernetes to serve meteorological, aeronautical and hydrological data: catalog and resources in the database (JDBCConfig / JDBCStore / JDBCStatus via JNDI), tile cache and rasters on S3, WPS, TimescaleDB + PostGIS database, image mosaic ingestion service.

Reading guide

Section Audience Content
Architecture (arc42) Architects, tech leads The why and the what: constraints, context, building blocks, deployment, decisions
Guides Ops, developers The how: reproducible step-by-step instructions, derived from validated prototypes
Decisions (ADR) Everyone Each structuring choice, its alternatives and its consequences

Progress status

# Sub-project Status
0 Documentation foundation ✅ in place
1 Database (TimescaleDB + PostGIS, GeoServer schema) ✅ guide + PoC validated
2 GeoServer image (Tomcat, JNDI, plugins, JVM) ✅ guide + PoC validated
3 Clustering (variable replica count, configuration propagation) ✅ guide + PoC validated
4 S3 storage (tile cache, rasters) ✅ guide + PoC validated
5 ImageMosaic ingestion (satellite time series, multi-dimensional models) ✅ guide + PoC validated
6 Vector data (published TimescaleDB/PostGIS tables) ✅ guide + prototype validated
7 Basemaps (downloaded sources, external services) ✅ guide + prototype validated
8 Processing: vector → raster interpolation, custom WPS ✅ guide + prototype validated

Method

Each technical chapter is backed by a prototype executed on a test Kubernetes cluster before being written. The artifacts (Dockerfile, SQL scripts, manifests) live in poc/<NN>-<name>/ and are referenced from the guides.

Visual conventions

Screenshots are clickable (zoom). Example:

Test image — to be replaced by the first real screenshot