What You'll Find Here
Engineering-Grade Guides for Geospatial Infrastructure
Building reliable spatial data infrastructure requires more than familiarity with WMS endpoints or GeoServer admin panels. It demands a deep understanding of OGC specification behaviours across versions, the ability to automate complex provisioning workflows in Python, and the discipline to enforce metadata compliance across heterogeneous catalog systems.
This site provides the production-tested patterns, annotated code examples, and architectural context that GIS platform engineers need to build interoperable, maintainable spatial services at scale.
Each guide targets practitioners already working with spatial servers. You'll find precise coverage of WMS 1.1.1 vs 1.3.0
axis-order divergence, idempotent GeoServer REST automation with requests and Pydantic validation, ISO 19115
XSD compliance pipelines using lxml, and DCAT-AP JSON-LD generation for WMS layers — complete with working
Python code using pyproj, geopandas, rasterio, and shapely.
Whether you're configuring tile matrix sets for a global WMTS deployment, syncing PostGIS layers to GeoServer via the REST API, or validating ISO 19115 XML records against published XSD schemas, these guides give you the precise technical foundation to implement correctly the first time.
Coverage extends across the full OGC service family and its modern REST successor — WCS coverage
subsetting, the transition from WFS to OGC API Features, and side-by-side decision guides for choosing
between WMS, WFS, WMTS, and OGC API Features. On the operations side you'll find CI/CD pipelines that run OGC CITE
compliance suites in GitHub Actions, and on the catalog side, CSW harvesting with owslib and STAC
publishing for Cloud-Optimized GeoTIFF archives.
The newest material goes deeper on the parts that break in production: SLD rule selection and why a schema-valid
style can render an empty tile, the structural gap between GML 3.2 and GeoJSON that silently relocates geometry,
heap and thread-pool arithmetic for a WMS under load, request gating that stops one client exhausting a renderer,
and OGC API Records as the successor to CSW — including how to serve both from one store while
harvesters catch up.
Three Focus Areas
Explore the Knowledge Base
Structured deep-dives from specification fundamentals to production deployment patterns.
OGC Standards & Architecture
WMS, WFS, WMTS, WCS, and OGC API specifications with production implementation patterns. Covers request lifecycle, version divergence, CRS handling, SLD styling and symbology, GML and GeoJSON payload handling, caching strategies, and compliance testing.
Explore guidesPython Automation for GeoServer & MapServer
Automate workspace provisioning, layer publishing, SLD deployment, and OGC validation using Python. Covers GeoServer REST API patterns, MapServer configuration-as-code, PostGIS integration, CI/CD pipelines, performance tuning, and access control.
Explore guidesSpatial Metadata & Catalog Integration
ISO 19115 implementation, DCAT-AP compliance, CSW harvesting pipelines, OGC API Records
modernisation, and automated schema validation. Covers metadata extraction, XSD validation
with lxml, JSON-LD generation for open data portals, and cross-system synchronisation.
Newest
Five New Topic Areas
SLD · Symbology
SLD Styling and Symbology for OGC Services
GML · GeoJSON
GML and GeoJSON Payload Handling
Performance
Performance Tuning for OGC Service Backends
Security
Security and Access Control for Spatial Services
OGC API Records
OGC API - Records and Catalog Modernisation
SLD · Debugging
Debugging SLD Rules That Render Nothing
GML · shapely
Parsing GML 3.2 Geometries Into Shapely Objects
JVM · Tuning
Sizing GeoServer JVM Heap and Thread Pools for WMS Load
Proxy · Limits
Rate Limiting OGC Requests With a Python Reverse Proxy
CSW · Migration
Migrating a CSW Catalog to OGC API - Records
CQL2 · Filtering
Implementing CQL2 Filters Against OGC API - Features in Python
WFS-T · Locking
Handling WFS Feature Locking and Lock Expiry in Python
Start Here
Featured Guides
WMS
Understanding OGC Web Map Service Specifications
WMS · Python
How to Parse OGC WMS GetCapabilities XML in Python
CRS
SRS and Coordinate Reference System Handling
CRS · OGC
Handling Spatial Reference Mismatches in OGC Requests
WFS
WFS Transactional Operations Deep Dive
WFS · Migration
WFS 2.0 vs 1.1.0: Breaking Changes for Backend Developers
WMTS
WMTS Tile Matrix Sets Explained
WMTS · Config
Configuring Tile Matrix Sets for Global WMTS Deployments
GeoServer
Automating GeoServer with the Python REST API
GeoServer · Python
Python Script to Auto-Publish Shapefiles to a GeoServer Workspace
DevOps
Environment Parity for Spatial Servers
PostGIS · Python
Syncing PostgreSQL/PostGIS Layers with GeoServer via Python
Workflows
Layer Publishing Workflows in Python
SLD · CI/CD
Automating SLD Style Deployment Across Staging and Production
MapServer
MapServer Configuration as Code
MapServer · Python
Using gsconfig-py3 for MapServer Layer Configuration
ISO 19115
Implementing ISO 19115 Metadata Standards
ISO 19115 · Python
Validating ISO 19115 XML Against XSD Schemas with lxml
DCAT-AP
DCAT-AP for Spatial Data Portals
DCAT-AP · JSON-LD
Generating DCAT-AP Compliant JSON-LD for WMS Layers
Validation
Schema Validation for Spatial Records
Harvesting
Automated Metadata Harvesting Workflows
WCS
WCS Coverage Service Fundamentals
OGC API
OGC API Features and the REST Transition
Architecture
WMS vs WFS vs WMTS vs OGC API Features: A Decision Guide
WFS · Migration
Converting a WFS Endpoint to OGC API Features
WCS · Python
Downloading Coverage Subsets with WCS GetCoverage in Python
CI/CD
CI/CD and Compliance Testing for Spatial Services
CI/CD · CITE
Running OGC CITE Tests in GitHub Actions
Comparison
GeoServer vs MapServer: A Feature Matrix
Docker · DevOps
Containerizing GeoServer with Docker and Python Provisioning
CSW
CSW Catalog Service Integration
CSW · Python
Querying a CSW Catalog with OWSLib in Python
STAC
STAC Catalog Publishing for Raster Archives
STAC · COG
Creating STAC Items for Cloud-Optimized GeoTIFFs