Skip to content

feat(displacement): internal displacement by region (IOM DTM, then IDMC events) #9014

Open

Description

@koala73

Track internal displacement below the country level, not only UNHCR's yearly country totals.

Step 1: IOM DTM (shipped in #9015; fix #9130)

  • Seed IOM DTM API v3 admin-1 rows daily (DTM_API_KEY is set on seed-bundle-health), keeping each operation's latest round.
  • Serve them via GetInternalDisplacement, draw IDP bubbles and region-to-region routes on the displacement layer, and add an Internal tab to the UNHCR panel.
  • /api/health probe dtmDisplacement uses an activation marker (seed-activated:displacement:dtm) until the first publish.

Step 2: IDMC event data (via HDX; seeder #9444, serving #9466, signals #9470, all merged)

  • feat(displacement): show IDMC events on the map and panel, and in MCP (#9014) #9466: map points on the displacement layer, a Recent tab in the panel, and get_displacement_data view: "events" in MCP. The browser reads on-demand bootstrap key idmcIduDisplacement. No REST endpoint yet: public/openapi.json has no room (3 bytes left); it needs a budget recovery first.
  • IDMC enters figures a median of 23 days after the displacement (p90 65), so "same-week" is not achievable: feat(displacement): seed IDMC internal displacement events from HDX (#9014) #9444 flags surges on a 30-day window vs the prior 150 days and adds newlyReported7d by publication date.
  • Source: IDMC's own per-country IDU event CSVs on HDX — 116 datasets named <iso3>-idmc-idu-events under organisation international-displacement-monitoring-centre-idmc. No key needed. Discover them with CKAN package_search (fq=organization:international-displacement-monitoring-centre-idmc); all ~116 files (~36 MB) are re-read daily, ~29 s.
  • Columns follow the Helix IDU schema: id, iso3, latitude, longitude, displacement_type (Conflict/Disaster), figure, displacement_date, event_id, event_name, category/type, sources, locations_*, description.
  • The files include events older than 180 days (the AFG file starts 2025-02-27), so the seeder filters to the last 180 days by displacement_date itself.
  • Seed daily for same-week surge detection, with seed-meta and a health key. Credit IDMC.
  • Licence: HDX lists these as CC BY-IGO, but IDMC's API page says CC BY-NC-SA 3.0 IGO. IDMC confirmed by phone on 2026-10-20 that WorldMonitor may use the data; a confirming email is pending.
  • The Helix API client_id (requested from ch.datainfo@idmc.ch on 2026-10-07 and chased on 2026-10-16) is no longer a blocker. If it arrives, one idus/last-180-days call can replace the ~116 per-country downloads.

Follow-ups

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions