Skip to Content
⚠️ Action required: DeltaTwin API has been updated to v2.0. Please update your deltatwin-cli. Read our technical notes for details.
DocumentationInteroperabilityMIM7 - Geospatial Data

MIM7 - Geospatial Data

DeltaTwin® support for ingesting and producing sensor data

For DeltaTwin® users seeking to integrate sensor data into their urban digital twin pipelines, a primary challenge is the burden of building custom connectors for every new data source. Integrating data from different vendor platforms and application silos can therefore become complex, costly, and time-consuming. Here are some examples of IoT data on rivers and air quality observations:

German river gauging stations (and their latest measurements) within 50km of Strasbourg (source )

[ { "uuid": "23af9b02-5c82-4f6e-acb8-f92a06e5e4da", "number": "23300900", "shortname": "KEHL-KRONENHOF", "longname": "KEHL-KRONENHOF", "agency": "STANDORT FREIBURG", "longitude": 7.8076918053124515, "latitude": 48.563320212896386, "water": { "shortname": "RHEIN", "longname": "RHEIN" }, "timeseries": [ { "shortname": "W", "longname": "WASSERSTAND ROHDATEN", "unit": "cm", "equidistance": 15, "currentMeasurement": { "timestamp": "2025-11-21T22:30:00+01:00", "value": 218, "stateMnwMhw": "normal", "stateNswHsw": "unknown" }, "gaugeZero": { "unit": "m. ü. NHN", "value": 133.02, "validFrom": "2018-11-01" } }, { "shortname": "Q", "longname": "ABFLUSS_ROHDATEN", "unit": "m³/s", "equidistance": 15, "currentMeasurement": { "timestamp": "2025-11-21T22:15:00+01:00", "value": 859 } } ] }, ... ]

French river observation (level/flow) within 50km of Strasbourg (source )

{ "count": 38461666, "first": "https://hubeau.eaufrance.fr/api/v2/hydrometrie/observations_tr?sort=desc&cursor=&size=5", "prev": null, "next": "https://hubeau.eaufrance.fr/api/v2/hydrometrie/observations_tr?sort=desc&cursor=AoJwvN6U1JoDPwpBNDA1MDYyMF9BNDA1MDYyMDAxX1FfMjAyNS0xMS0yMVQyMTozMDowMA%3D%3D&size=5", "api_version": "2.0.1", "data": [ { "code_site": "A4020610", "code_station": "A402061001", "grandeur_hydro": "H", "date_debut_serie": "2025-11-21T00:05:00Z", "date_fin_serie": "2025-11-21T21:30:00Z", "code_systeme_alti_serie": 31, "date_obs": "2025-11-21T21:30:00Z", "resultat_obs": 23, "code_methode_obs": 0, "libelle_methode_obs": "Mesurée", "code_qualification_obs": 16, "libelle_qualification_obs": "Non qualifiée", "longitude": 6.796285291, "latitude": 47.866921289, "code_statut": 4, "libelle_statut": "Brute", "code_continuite": 0, "libelle_continuite": "Continue" },... ] }

Dutch rivers observation (source )

MONSTER_IDENTIFICATIE MEETPUNT_IDENTIFICATIE LOCATIE_CODE TYPERING_OMSCHRIJVING TYPERING_CODE GROOTHEID_OMSCHRIJVING GROOTHEID_ CODE PARAMETER_OMSCHRIJVING PARAMETER_ CODE CAS_NR EENHEID_CODE HOEDANIGHEID_OMSCHRIJVING HOEDANIGHEID_CODE COMPARTIMENT_OMSCHRIJVING COMPARTIMENT_CODE WAARDEBEWERKINGSMETHODE_OMSCHRIJVING WAARDEBEWERKINGSMETHODE_CODE WAARDEBEPALINGSMETHODE_OMSCHRIJVING WAARDEBEPALINGSMETHODE_CODE BEMONSTERINGSSOORT_OMSCHRIJVING BEMONSTERINGSSOORT_CODE WAARNEMINGDATUM WAARNEMINGTIJD (MET/CET) LIMIETSYMBOOL NUMERIEKEWAARDE ALFANUMERIEKEWAARDE KWALITEITSOORDEEL_CODE REFERENTIE NOTITIE_CODE NOTITIE_OMSCHRIJVING STATUSWAARDE OPDRACHTGEVENDE_INSTANTIE MEETAPPARAAT_OMSCHRIJVING MEETAPPARAAT_CODE BEMONSTERINGSAPPARAAT_OMSCHRIJVING BEMONSTERINGSAPPARAAT_CODE PLAATSBEPALINGSAPPARAAT_OMSCHRIJVING PLAATSBEPALINGSAPPARAAT_CODE BEMONSTERINGSHOOGTE REFERENTIEVLAK EPSG X Y ORGAAN_OMSCHRIJVING ORGAAN_CODE TAXON_NAME GROEPERING_OMSCHRIJVING GROEPERING_CODE GROEPERING_KANAAL GROEPERING_TYPE Lobith LOBI Debiet Q m3/s Oppervlaktewater OW Debiet uit afvoerkromme (Q/H- of Q/HH-relatie) other:F006 Steekbemonstering SB 20-11-2025 00:00:00 1426,91 Normale waarde Ongecontroleerd LMW_AFVOER Stroomsnelheidsmeter 156 -999999999 NVT 25831 713670262 5748850481 Lobith LOBI Debiet Q m3/s Oppervlaktewater OW Debiet uit afvoerkromme (Q/H- of Q/HH-relatie) other:F006 Steekbemonstering SB 20-11-2025 00:10:00 1426,91 Normale waarde Ongecontroleerd LMW_AFVOER Stroomsnelheidsmeter 156 -999999999 NVT 25831 713670262 5748850481

Air quality observations in Lisbon (source )

[ { "id": "QAPM250001", "avg": "1h", "date": "202511220800", "dateStandard": "UTC", "value": 7, "unit": "µg/m3", "address": "Calçada da Ajuda", "coordinates": { "lat": 38.7023071286576, "lng": -9.19959443736461 } }, ... ]

Air quality observations in Aragon (Spain) region (source )

_id,FID,featureid,phenomenon_time,no,no2,co,o3,coverage 1,hourly_air_quality_observations.23.2019-07-22 10:00:00,23,2019-07-22T10:00:00,11.47828123,17.80389992,0.17973524,65.92232309,0 2,hourly_air_quality_observations.23.2019-07-22 11:00:00,23,2019-07-22T11:00:00,32.94673653,16.82322767,0.16005577,65.91046494,1

Therefore, DeltaTwin® components must natively handle live sensor information. To achieve this efficiently, adopting an open standardized data framework for both consuming and producing sensor data is mandatory.

To this end, DeltaTwin® supports OGC SensorThings API  as the unifying standard, providing a consistent, scalable, and interoperable interface that simplifies the integration, querying, and sharing of diverse sensor data within the DeltaTwin® ecosystem.

SensorThings API (STA)

The SensorThings API (STA) is an open and unified standard developed by the Open Geospatial Consortium (OGC) specifically for the Internet of Things. It provides a flexible, RESTful interface to interconnect all kinds of IoT devices, data, and applications over the web. By offering a standardized way to model and interact with sensors, observations, and related metadata, the SensorThings API solves the critical challenge of heterogeneous data formats and semantics. It allows diverse systems to not only share data but also to understand its context and meaning, making it an ideal candidate for creating interoperable and scalable data pipelines within complex ecosystems like Urban Digital Twins.

Core Entities

The core idea of STA is to break down an IoT system into its fundamental components and define the relationships between them.

alt text SensorThings API Data Model

Main entities, described logically from the physical world to the data:

  • Thing
    Represents a physical object in the real world. Central entity to which almost everything else is linked (a “Thing” is the subject of observation).
    Examples : A specific river, weather station, smart vehicle, building, person.
  • Location
    Represents the geographical location of the Thing. A single Thing can have multiple Locations over time (e.g., a moving vehicle).
    Examples : The GPS coordinates of a sensor station, a geoJSON polygon representing a river’s watershed.
  • Datastream
    A collection of Observations measuring the same Observed Property produced by the same Sensor. It’s the “data pipeline” or “channel” for a specific measurement.
    Examples : “River Water Temperature at Station A,” “Air PM2.5 Concentration at Sensor 123.”
  • Sensor
    Describes the instrument or procedure (e.g., algorithm) that produces Observations.
    Examples : Campbell Scientific temperature probe, PurpleAir optical particle counter, satellite processing algorithm.
  • Observed Property
    Defines the characteristic or phenomenon being measured.
    Examples : Water Temperature, Air Temperature, PM2.5 Concentration, Relative Humidity, River Discharge.
  • Observation
    Core data entity. A single measurement event recording the value of an Observed Property at a specific time.
    Examples : A reading of “7.7°C” at “2025-12-01T14:30:00Z”.
  • Feature of Interest
    The real-world object or phenomenon being observed. For in-situ sensors, this is often the Location of the Thing itself.
    Examples : Water volume around a temperature probe, the air parcel sampled by a PM2.5 sensor. Note : In many STA implementations, the Feature of Interest is the same as the Thing’s Location.

Key Features

  • Standardized Data Model

  • RESTful Principles (HTTP Interface)
    Resource-Oriented : every entity (Thing, Datastream, Observation, etc.) is a resource with a unique URL and CRUD operations.

  • Comprehensive Query Capabilities

    • $top & $skip: for pagination of large result sets.
    • $count: to get the total number of entities.
    • $select: to request only specific properties of an entity (reduces payload).
    • $expand: to embed related entities in-line (e.g., get a Datastream and its Sensor in one request). Crucial for reducing “chatty” API calls.
    • $filter: a powerful OData filter for complex queries (e.g., temperature gt 20, phenomenonTime ge 2023-01-01T00:00:00Z).
    • $orderby: to sort results by a property.
  • Sensing and Tasking Core Profiles

    • Sensing (mandatory): collecting data from sensors (Observations). This is the most widely implemented part.
    • Tasking : sending commands to actuators (e.g., “turn on”, “set setpoint”) (not supported (yet) in DeltaTwin®).
  • Efficient Data Formats

    • Primary format is JSON following the OData JSON protocol.
    • Geospatial data is encoded in GeoJSON within the JSON structure.
    • Supports batch requests to create/update multiple entities in one call.
  • Temporal Support, native handling of time at multiple levels :

    • phenomenonTime: when the event/measurement occurred in the real world.
    • resultTime: when the observation result was generated.
    • validTime: the time period during which the observation result is applicable.
    • HistoricalLocations track a Thing’s Location over time.
  • Linked Data & Discoverability
    All entities are hypermedia-driven. Resources contain links (self link, navigation links) to related entities, making the API self-discoverable.

  • Multi-Datastream Extension
    A MultiDatastream contains multiple ObservedProperties and its Observations have a multi-dimensional result (e.g., a JSON array).

  • Standardized by OGC and ISO : reduces vendor lock-in and promotes a shared ecosystem.

  • Security & Authentication

FROST-Server (Reference STA Implementation)

A robust reference implementation of the STA standard is the FRaunhofer Opensource SensorThings (FROST) Server.

Developed by the Fraunhofer Institute for Open Communication Systems, FROST-Server is a high-performance, ready-to-deploy server providing a full-featured STA endpoint. It handles high-volume, spatiotemporal IoT data and offers features such as efficient historical data querying and a rich data model.

Deploying a FROST-Server instance allows organizations to provide a standardized OGC-compliant API for sensor data, removing the need to build a custom backend and ensuring seamless interoperability with any STA-compliant client.

For more technical details about integrating FROST-Server in DeltaTwin®, see FROST-Server integration in DeltaTwin®