TDX/AI
← All datasetsDataset Profile

OPSIS / open-gira

Geospatial infrastructure + hazard exposure

REST (3 APIs)Auth: None

OPSIS (Open Platform for Systemic Infrastructure Spatial Analysis)

Repository: University of Oxford / GFDRR / World Bank URL: https://global.infrastructureresilience.org/ GitHub: https://github.com/nismod License: Code: MIT | OSM data: ODbL-1.0 | Other data: CC-BY-4.0 Update cadence: Periodic re-runs against updated OSM extracts and hazard models (not real-time)


What This Dataset Is

Global geospatial infrastructure networks (roads, rail, ports, airports, waterways) combined with multi-hazard exposure analysis and damage modelling. This is the primary source for where infrastructure is and how vulnerable it is to climate and natural hazards.

OPSIS is the public face of the Global Infrastructure Resilience Initiative (GIRI). The underlying analysis pipelines come from Oxford's nismod programme.


API Feature Record Structure

Every feature returned by GET /features/{id} has this top-level shape:

FieldTypeDescription
idIntegerAuto-increment feature ID
string_idStringHuman-readable ID ({slice}_{index}, e.g. "152_1001")
layerStringLayer name (e.g. "road_edges_motorway", "road_edges_primary")
sublayerString/nullOptional sublayer
propertiesObjectAsset attributes (mode-specific — see below)
damages_expectedArrayExpected Annual Damage across hazard/climate scenarios
damages_return_periodArrayDamage by specific return period
damages_npvArrayNet present value damage
adaptationArrayAdaptation/mitigation measures

Data Layers (Transport-Specific)

Roads — properties Schema (31 fields, confirmed from live API)

FieldTypeExampleDescription
sectorString"transport"Always "transport"
subsectorString"road"Always "road"
asset_typeString"motorway", "primary", "secondary", "tertiary"Road classification (from OSM highway tag)
_asset_typeString"road_paved", "road_unpaved"Internal type for damage curve lookups
osm_way_idInteger25452113Original OpenStreetMap way ID
segment_idInteger0, 1Segment index within a split OSM way
from_node_idString"152_1377"Network graph source node
to_node_idString"152_535"Network graph target node
from_iso_a3String"USA", "KEN"ISO alpha-3 country of source node
to_iso_a3String"USA", "KEN"ISO alpha-3 country of target node
length_mFloat2069.68Edge length in metres
lanesInteger1, 2Number of lanes (gap-filled from OSM or defaults)
width_mFloat6.25, 9.5Estimated road width in metres
pavedBooleantrue, falseWhether the road is paved
bridgeBooleantrue, falseWhether the segment is a bridge
materialString"asphalt", "gravel"Surface material
tag_lanesFloat/String2.0, ""Raw OSM lanes tag (empty if unmapped)
tag_surfaceString"asphalt", ""Raw OSM surface tag
tag_bridgeString""Raw OSM bridge tag
tag_maxspeedFloat/String50.0, ""Raw OSM maxspeed (km/h)
max_speed_kmhFloat207.69, 110.0Maximum speed (gap-filled/estimated)
min_speed_kmhFloat156.17, 32.075Minimum speed (gap-filled/estimated)
max_tariffFloat0.54, 2.4Maximum transport tariff (USD/ton-km)
min_tariffFloat0.36, 1.6Minimum transport tariff (USD/ton-km)
tariff_unitString"USD/ton-km"Unit for tariff fields
max_flow_costFloat1.124Maximum flow cost (USD/ton)
min_flow_costFloat0.749Minimum flow cost (USD/ton)
flow_cost_unitString"USD/ton"Unit for flow cost fields
rehab_cost_USD_per_kmFloat4579435.63, 23545.10Rehabilitation cost per km

Layers served: road_edges_motorway, road_edges_trunk, road_edges_primary, road_edges_secondary, road_edges_tertiary

Railways

Rail is included in the gri_osm.roads_and_rail_version_1 extract processor. Schema follows the same pattern as roads with expected differences:

FieldExpected ValuesNotes
sector"transport"Same
subsector"rail"Rail-specific
asset_type"rail", "light_rail", "subway", "tram"From OSM railway tag
tag_gaugeTrack gauge valueOSM gauge tag
tag_electrifiedElectrification statusOSM electrified tag
Network topology fieldsSame pattern as roadsfrom_node_id, to_node_id, length_m

Layers: rail_edges, rail_nodes

Ports and Airports

These appear in the visualization platform but are not currently part of the GeoPackage extract service (gri_osm processor covers roads + rail only). Available as point/polygon layers in the web viewer with location, name, country, and hazard exposure.


Damage & Adaptation Arrays

Each feature carries nested arrays for damage modelling. Confirmed structure from live API records:

damages_expected[] — Expected Annual Damage

FieldTypeDescription
ead_aminFloatEAD annual minimum estimate (USD)
ead_meanFloatEAD mean estimate (USD)
ead_amaxFloatEAD annual maximum estimate (USD)
eael_aminFloatExpected Annual Economic Loss — minimum (USD)
eael_meanFloatEAEL mean (USD)
eael_amaxFloatEAEL maximum (USD)
hazardStringHazard type (e.g. "river")
rcpStringClimate scenario: "baseline", "rcp4p5", "rcp8p5"
epochIntegerTime period: 1980, 2030, 2050, 2080
protection_standardIntegerExisting protection level (return period years)

damages_return_period[] — Per Return Period

FieldTypeDescription
exposureFloatAsset value at risk (USD)
damage_amin / damage_mean / damage_amaxFloatDamage estimates (USD)
loss_amin / loss_mean / loss_amaxFloatEconomic loss estimates (USD)
hazardStringHazard type
rcpStringClimate scenario
epochIntegerTime period
rpIntegerReturn period in years (25, 50, 100)

adaptation[] — Adaptation Measures

FieldTypeDescription
hazardStringTarget hazard type
rcpStringClimate scenario
adaptation_nameStringName/description of measure
adaptation_protection_levelFloatProtection standard provided (return period years)
propertiesObjectAdditional adaptation attributes

Terminology

TermMeaning
eadExpected Annual Damage — average annual cost of damage from a hazard
eaelExpected Annual Economic Loss — indirect losses from disruption
rcpRepresentative Concentration Pathway (climate scenario)
epochTime period for projections (1980=baseline, 2030/2050/2080=future)
rpReturn period — flood frequency in years
rehab_cost_USD_per_kmCost to reconstruct per kilometre
_asset_typeInternal classification for damage curve lookups

Access Methods

1. REST APIs (No Authentication)

APIBase URLPurpose
Main APIhttps://global.infrastructureresilience.org/api/Feature queries, pixel drilling
Extract APIhttps://global.infrastructureresilience.org/extract/Country data package generation
Vector Tileshttps://global.infrastructureresilience.org/vector/36 MVT layers

OpenAPI specs:

  • https://global.infrastructureresilience.org/api/openapi.json
  • https://global.infrastructureresilience.org/extract/openapi.json

Key endpoints:

GET  /features/{id}                    -- single feature with damage/adaptation data
GET  /features/sorted-by/{field}       -- paginated features with filters (sector, asset_type)
POST /v1/jobs                          -- submit country extraction (async, returns GeoPackage)
GET  /v1/processors                    -- list available data processors
GET  /pixel-driller/point/{lon}/{lat}  -- all layer values at a coordinate

2. Extract API — Country GeoPackage Bundles

The Extract API generates national-level data packages on demand. The key transport processor:

gri_osm.roads_and_rail_version_1 — Roads and Rail from GRI OSM, including damage estimates. Output: GeoPackage.

249 country boundaries available. Packages stored at: https://irv-autopkg.s3.eu-west-2.amazonaws.com/{iso3}/

Other available processors include hazard data (flood, cyclone, drought, landslide), population, power infrastructure — see the OpenAPI spec for full list.

3. Bulk Downloads

  • Country data starter kits on Zenodo (GeoPackage + GeoTIFF)
  • Extract API as above

3. Code Pipelines

RepositoryPurpose
nismod/open-giraCore Snakemake analysis pipeline
nismod/infra-risk-visBackend + frontend web app
nismod/irv-autopkgExtract API service
nismod/snailSpatial network analysis library
nismod/snkitNetwork cleaning/assembly

Data Formats

FormatUse
GeoPackage (.gpkg)Primary vector format
GeoJSONWeb-friendly vector
GeoTIFF / COGRaster hazard data
MVTVector tiles
ParquetLarge tabular datasets

Coverage & Quality

RegionRoadsRailPortsHazards
EuropeExcellentExcellentGoodGood
North AmericaExcellentGoodGoodGood
East AsiaGoodGoodGoodGood
South/SE AsiaGoodModerateGoodGood
Sub-Saharan AfricaModerateModerateGoodGood
Latin AmericaGoodModerateGoodGood
Pacific IslandsLimitedN/AModerateGood

Coverage quality is driven by OSM completeness for networks and global hazard model availability for hazard layers.


Key Limitations for Automation

  • No traffic volumes — network geometries are well-covered but traffic/demand data is mostly absent
  • Static snapshots — not real-time; reflects a point-in-time analysis
  • OSM-dependent — quality mirrors OSM completeness, which is uneven
  • Modelled damage — EAD and disruption estimates are model outputs, not observed events
  • Schema varies by country extraction — different extractions may include different field sets depending on available data

Integration Notes

  • Join key to PortWatch: Match OPSIS port geometries to PortWatch portid for combined resilience + trade monitoring
  • Join key to World Bank: Country ISO codes enable linking OPSIS exposure summaries to WDI indicators
  • Python stack: GeoPandas, NetworkX, Rasterio, Snail are the core libraries for working with this data
  • Full schema reference: Run open-gira pipeline outputs or query the OpenAPI specs for the definitive field list