Skip to main content

coord-ingest

Global situational-awareness dashboards ingest hundreds of live feeds and turn them into an actionable picture — but they score the world's Tier-1 countries, and East Africa isn't on that list. The signals that matter here (drought onset, basin flooding, cholera clusters, rift-zone quakes) are in the same public feeds; nothing was turning them into events a regional coordination system could act on.

coord-ingest is that missing rail: an MIT-licensed adapter that converts open, key-free world-signal feeds into africa-coord-bus coordination events, filtered to East Africa, so the bus can cascade them to the right domains (insurance, crop advisory, water testing, cross-border alerts).

It ingests and normalizes; the bus routes. Clean separation, composable rails.

What it does

  • Adapters for public sources — Open-Meteo rainfall (drought/flood signals), USGS earthquakes, GDACS disaster alerts, HDX humanitarian datasets (OCHA, key-free CKAN), Kobo/ODK field reports (bottom-up ground truth), Google Flood Hub riverine forecasts — each mapping raw records to typed CoordinationEvents. Add a feed by adding an adapter.
  • East-Africa filter — a signal becomes an event only if it lands in the regional bounding box or names a regional country. Global noise is dropped at ingest.
  • Offline-capable — ships with a SampleAdapter over bundled fixtures, so the full pipeline (and its tests) run with no network and no API keys.
  • Feeds the bus, doesn't replace it — routing, cascading, and cross-border logic stay in africa-coord-bus.

Use it

pip install coord-ingest
from coord_ingest import IngestPipeline, SampleAdapter

# Offline demo — no keys, no network
summary = IngestPipeline([SampleAdapter()]).run()
print(summary["collected"], "East Africa events")   # global noise already dropped
print(summary["by_domain"])                          # {'water': 3, 'health': 1, 'transport': 1}

# With live feeds + the bus:
# from coord_ingest import OpenMeteoAdapter, USGSQuakeAdapter, GDACSAdapter
# from africa_coord_bus import EventBus
# IngestPipeline([USGSQuakeAdapter(), GDACSAdapter()]).run(bus=EventBus(...))

Why not just fork a dashboard?

The global open-source dashboards that inspired this are AGPL applications. This is deliberately the opposite: a small MIT library that produces standard bus events any tool can consume — including a dashboard, if someone wants to build one. Rails, not another train.

IP & Collaboration

MIT. New feed adapters welcome via GitHub Issues (public, key-free sources, East-Africa relevant). Full policy: docs/architecture/IP_POLICY.md. Security: SECURITY.md.

Anticipatory action: why forecasts belong on a bus

The Flood Hub adapter exists because a flood forecast is only worth what it triggers. Google's models cover 40 African countries with riverine forecasts up to 7 days ahead (CC BY 4.0, free), and forecast points now exist in Northern Kenya where there were none. IRC and GiveDirectly used those forecasts to move cash to households 5-7 days before flood peaks in Nigeria — the money arrived while it could still be spent on preparation rather than recovery.

That is a cascade, not a dashboard: a verified gauge crossing a danger threshold is a water-domain signal whose value is downstream — finance (anticipatory transfer), health (facility pre-positioning), transport (route closure). coord-ingest emits the signal; africa-coord-bus routes it.

from coord_ingest import FloodHubAdapter, IngestPipeline
events = IngestPipeline([FloodHubAdapter()]).collect()   # needs FLOODHUB_API_KEY

Access: the Flood Forecasting API is waitlisted — approval plus a Google Cloud Project ID, currently non-commercial use only. Without a key the adapter returns nothing and the pipeline still runs on its other feeds. Unverified gauges are excluded by default: an unverified gauge triggering a cash transfer is a worse failure than a missed alert.

Metadata

Release files for coord-ingest 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for coord-ingest 0.4.0
File Size Uploaded Provenance
coord_ingest-0.4.0.tar.gz 18.4 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for coord-ingest 0.4.0
File Interpreter ABI Platform
coord_ingest-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 33.2 kB

Release files / coord_ingest-0.4.0.tar.gz

Download URL coord_ingest-0.4.0.tar.gz
Size 18.4 kB
Tags Source
SHA-256 checksum
How to use checksums
71fa2cab867efcd0a4340af9834587f82c8f59a5b836ce9582da6f48744d94dc
BLAKE2b-256 checksum
How to use checksums
1737ca274f814fe0336b59482e3afed75eebaa4fed5528937270e47129942312
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / coord_ingest-0.4.0-py3-none-any.whl

Download URL coord_ingest-0.4.0-py3-none-any.whl
Size 14.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
edfa5c831894af456c207107060e8e50dd99178fac07af6fbfaa2c622280cea3
BLAKE2b-256 checksum
How to use checksums
1fd6699358edb109954a4b1c9ccaef88838e5a300730e856e0ddbd0ac463a50b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Security for coord-ingest 0.4.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page