From Sensor to GeoJSON: Building an Open Source IoT Geo-Pipeline
2026-07-02 , Info lab 1

Spatial datasets originate in field measurements, yet the transformation from sensor reading to interoperable geospatial resource is often hidden in GIS workflows. This workshop makes that “first mile” tangible by guiding participants as they build and program their own hardware kit. The kit uses a microcontroller, GNSS module, and environmental sensor of choice. Measurements are transmitted to a provided Dockerized Python (FastAPI) and PostgreSQL backend, where they are exposed as GeoJSON Features. Emphasizing architectural clarity over complexity, the session demonstrates how structured JSON, REST APIs, and relational storage underpin scalable geospatial services, while outlining PostGIS and OGC API as natural extension paths within an open standards ecosystem.


A significant share of spatial datasets originates from measurements collected in the field. Environmental monitoring, groundwater observation, climate sensing, infrastructure management, and many other geospatial domains depend on distributed sensor networks. Yet in many GIS workflows, the “first mile” remains abstracted or hidden. Namely how measurements become structured, georeferenced, and interoperable data

This workshop addresses that gap by guiding participants through the complete open-source pipeline from physical sensor to geospatial web resource. For this, we will be using a XIAO ESP32-C3 microcontroller, a GPS/GNSS module, and an environmental sensor of choice. Participants will collect real-world measurements and attach geographic coordinates at the source. These observations will be transmitted over Wi-Fi to a locally hosted backend stack built entirely with Free and Open-Source Software.

The provided backend is written in Python (FastAPI) and uses PostgreSQL. It will be provided as a ready-to-use Docker container. Measurements will be stored and exposed as GeoJSON Features, transforming raw sensor data into interoperable geospatial resources ready for integration with web maps and GIS clients.

The workshop emphasizes architectural understanding rather than framework complexity. Participants will examine how structured JSON payloads, RESTful APIs, and relational storage form the foundation for scalable geospatial services.

While the implementation focuses on PostgreSQL and GeoJSON to keep things simple, the architecture naturally extends toward PostGIS for spatial indexing and advanced spatial operations, and toward OGC API Features for standardized data access. These extensions will be discussed conceptually as evolution paths within an open standards framework.

The core learning objective is to make the origins of spatial data tangible: from measurement in the field to structured, accessible geospatial services.


What topics do you plan to cover in your workshop?:

From field measurement to geospatial dataset
Building and programming a GNSS-enabled sensor device
Transmitting georeferenced data over HTTP
Running a provided Dockerized FastAPI + PostgreSQL backend
Storing and exposing measurements as GeoJSON
Conceptual interoperability and extension paths (PostGIS, OGC API)

Level of the workshop: 2: intermediate Pre-requirements for attendees:

Participants should have basic Python knowledge and introductory familiarity with Docker (https://www.docker.com/101-tutorial/). No prior experience with C++, microcontrollers, PostGIS, or OGC APIs is required. Pre-installation instructions (Arduino IDE, Docker, Python) will be provided in advance.

Coding knowledge required?:

Basic Python required. Basic C++ is a nice-to-have but not required.

Link to software source code repository: Link to software source code repository

Geologist turned OSGeo developer with a strong focus on Python-based backend development and spatial data engineering. I design and build robust solutions for processing and exposing geo- and sensor data through APIs and database-driven architectures.

Experienced in Python, REST APIs, PostgreSQL, Docker, and CI/CD (GitHub Actions, Azure). Previously responsible for the backend of an Azure-based GIS API integrating public spatial datasets into engineering workflows.

Currently deepening my expertise in OSGeo backend solutions to further strengthen my work in scalable, production-ready GIS systems. I combine analytical thinking with a drive to continuously learn, teach and improve.