Skip to content

Known traps

IdroGEO works well, but its older documentation and many scripts on the web point to paths that no longer exist. This library handles these for you:

You try What actually happens What ispra-idrogeo does
/opendata/iffi/<region>/iffi_<region>_<layer>.zip, as in older guides HTTP 404 in 2026: the files moved uses /opendata/frane/<layer>_<area>_opendata.zip
the dictionaries in /opendata/iffi/dizionari/*.json HTTP 404: they moved to the API reads /api/dizionari
the WFS at geoserver/idrogeo/frane/ows HTTP 401: the WFS needs a login reads features through the WMS, which is public: GetFeatureInfo on 101 queryable layers
asking the WMS about a point with a 1×1 image or the point as the box nothing, or the wrong pixel a ~2 m box around the point and its middle pixel (i=50, j=50), lat,lon order as WMS 1.3.0 wants
the lithology layer next to the hazard layers ~16 s for the whole answer, against under one second without it hazard_at(..., lithology=False) by default
the slope at sea -9999.0 slope_deg = None
a file for trentino-alto-adige there is none: it publishes per province offers bolzano and trento in PROVINCES
downloading the inventory again every day "to be safe" ~870 MB a day, whether anything changed or not conditional GET: one 304 when nothing changed
/api/evento/{id}, which the OpenAPI lists with no login HTTP 401 without a login (/api/frana/{id} does answer 200) reads events through search_events, which is public
/api/frana/{id} with an id that does not exist HTTP 401 "Missing authorization header", not 404 raises IdrogeoError: unknown or not public
/api/sito/{id} with the site's id (a UUID) HTTP 404: the path wants the uid (SIPIE001); /listing of an unknown site answers null with HTTP 200 site(uid) and stations(uid), which raise IdrogeoError for both
webcam geom as longitude and latitude it is EPSG:3857 metres, while sites use lon/lat says so in webcams()
a webcam's timelapse_url HTTP 404 or a redirect to the web app: the videos are not published leaves the field as IdroGEO sends it
{"tipo_movimento": "eq.6"} on landslides, like every other field invalid input syntax for type integer: this one field wants a plain 6, and no list landslide_filter(movement=6)
landslides of a region, {"regione": "eq.16"} not an embedded resource; regione_2019, which does filter, is empty for 18% of the landslides, and regione_orig is worse (Campania: 19,710 and 6,224 of 55,254) iter_landslides_in(region=15) checks the record's own regione, which is always set: 55,254
paging the whole inventory 100,000 at a time each page slower than the last (2.5 s at offset 0, 6.7 s at 600,000), and id_frana takes no gt. for keyset paging one page of a million rows for area scans: ~20 s for Italy
several landslides by id, {"id_frana": "in.(…)"} an empty list, no error landslide(id) for each one
reading the shapefile while a new version is unpacking half a shapefile, or a crash unpacks beside it and swaps the folder in whole
the flood mosaic in UTM 32N, like everything else it is in EPSG:3035 (ETRS89 LAEA), in three files, one per scenario (HPH_, MPH_, LPH_) the warehouse reprojects it and names the scenarios P3, P2, P1
reading the IFFI shapefiles as UTF-8 Invalid unicode: the text is ISO-8859-1, said in a .cst file that GDAL ignores (it reads .cpg) the warehouse reads the .cst and passes the encoding
the mosaics under CC BY 4.0, like the rest the licence PDF in each ZIP says CC BY-SA 4.0, with a citation of its own warehouse.SOURCES holds each citation, and the warehouse's hazard answers their licence
the API's landslide hazard areas to add up like the mosaic you download the mosaic (v4.0, 2020-2021) adds up to ~60,500 km² (P4 9,506 · P3 16,894 · P2 14,553 · P1 12,558 · AA 6,988); the API's ar_fr_* give 69,529 km², 10–20% more per class: probably another edition. The flood areas do match says which is which: the warehouse uses the mosaic, area_risk and summary("pir", …) the API

All checked against the live service on 3–4 November 2026, and again every week by tests/live/ (make live): if IdroGEO changes one of these, the live workflow opens an issue.