GitOps SDI

Infrastructure as Code inspired SDI

Paul van Genuchten, Tom Kralidis

2025-06-15

Contents

  • GitOps / Infrastructure as code
  • Metadata at the source
  • Map services from metadata
  • Data visualisation

GitOps / Infrastructure as code

  • reproducability
  • containerisation

GitHub

Service to facilitate co-creation

  • version history of contributions
  • authentication
  • issue management
  • release management
  • Continuous integration

Related software; Git, GitLab, Bitbucket, Codeberg

Quarto

A content management system to create websites, documentation, slides, etc.

Related software; Hugo, mkdocs, Jekyll, Wordpress, Drupal

Metadata at the source

File hierarchy

A README in each folder

  • Add a README to describe the resources in a folder
  • Why not structure the content in the README, so also machines can read it?

Metadata Control File

  • A convention of the pygeometa community (Meteo Canada)
  • YAML, easy to read by humans and machines
  • A subset of the ISO19115 standard for metadata

MCF

pygeometa library

The pyGeoDataCrawler tool

  • Developed at ISRIC in the last year
  • On the shoulders of giants; GDAL, pygeometa, pandas
  • Generates MCF files for a file repository
  • Imports metadata from external sources
  • Extracts MCF files from a repository to load it into a catalogue
  • Creates map services configuration for files in the repository

pycsw catalogue

  • A catalogue implementation in python
  • Limited funtionality, easy maintenance
  • Wide range of supported catalogue standards, serves many communities
  • Database backend
  • Skin customisable with jinja templates

https://pycsw.org

pygeometa / pyGeoDataCrawler

Scripting libraries which support data management of a file repository

  • Generate metadata from existing data
  • Import remote metadata
  • Ingest metadata from a file repository
  • Create map services (APIs) for existing data

Map services from metadata

MapServer

  • Recent versions of MapServer support the old and new standards
  • Features and Maps
  • No tiles (mapproxy), No coverages yet
  • No records/stac, by design

https://mapserver.org

Mapfile

mapfile

Mapfiles from metadata

  • Use the metadata to generate/update mapfiles
  • Store map configuration on github
  • Use SLD file {dataset}.sld to style a layer
  • Metadata is updated with WMS/WFS/WCS url

Data visualisation

TerriaJS

An Open Source javascript WebGIS application

demo

Related products; GeoNode, GeoMoose, MapBender, Oskari, GisQuick

Quarto

  • Add diagrams or maps with python and R scripting
  • Other interesting option is the W3C MapML