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.