Your browser sucks, JavaScript disabled! Gunnar's console needs JavaScript and WebAssembly. Git over SSH on port 2222 does not.

nordisk/korp-collectors

.nornir/design.md

korp-collectors — the open-data collector leaf

What it is. The standalone LEAF of korp's ingest layer: one object-safe Collector trait + per-access-method collectors that parse open data (pure-Rust → Arrow), land it via an Iceberg BatchSink (skade), and declare a typed source_target() so the test-matrix can iterate (collector, source, target). Depends on neither korp nor facett — both consume it; it breaks the facett⇄korp cycle.

Function axis

Collectors (Direction::Source)

Collector Source Lands
entsoe ENTSO-E transparency (price/load) warehouse table
entsoe_generation ENTSO-E documentType=A75 (generation per type, psrType) warehouse table
ais AIS positions (boats) position table → osm3d-flight scene
marinetraffic-ais AISStream.io nested PositionReport feed (boats) ship position table → osm3d-flight scene
opensky-flights OpenSky states/all (planes) flight position table → osm3d-flight scene
opensky-europe-bbox OpenSky states/all bbox-scoped to Europe flight position table → osm3d-flight scene
trafikverket-trainpos / trafikverket_trains Trafikverket TrainPosition XML query (trains) position table → osm3d-flight scene
trafikverket-roads Trafikverket NVDB RoadGeometry (WKT LINESTRING) ways table → osm3d scene
gbfs-citybikes GBFS free_bike_status (dockless bikes) position table → osm3d-flight scene
osm-overpass OSM Overpass QL nodes (selectable POI query) point feature table → osm3d-poi scene
smhi-weather SMHI metobs station-set (station geometry) point table → osm3d scene
osm osm-katana RegionSource ways → osm3d map layer
bolagsverket-organisationer Bolagsverket Näringslivsregistret (orgnr spine) company registry warehouse table
nordpool Nord Pool day-ahead spot prices (multiAreaEntries period×zone) price table per bidding zone (SE1–SE4/NO/DK/FI)
energy-charts-power Energy-Charts (Fraunhofer ISE) public-power generation mix JSON — parallel unix_seconds[] axis ZIPPED against each production_types[].data[] by index (public CC-BY; Europe-wide via ?country=) generation-mix table (time, production_type, power_mw) warehouse table
usgs-earthquakes USGS real-time earthquake GeoJSON FeatureCollection (public/no-auth; each Point feature) quake position table (id, place, magnitude, depth, lon/lat, epoch-ms time) → osm3d scene
wfs OGC WFS GetFeature GML FeatureCollection (Lantmäteriet/SGU geodata) feature table (WKT geometry + properties JSON) → osm3d scene
rss-atom RSS 2.0 / Atom 1.0 syndication feed (Krisinformation/SMHI/agency alert + news streams; dialect-agnostic) feed-item table (feed_title, id, title, link, summary, author, published, categories JSON) warehouse table
openaq-air-quality OpenAQ air-quality measurements JSON results[] (public CC-BY; free API key via X-API-Key; nested coordinates{lat,lon} + date.utc per reading) air-quality measurement table (location_id, location, parameter, value, unit, lon/lat, country, city, UTC time) → osm3d scene
gtfs-stops / gtfs-routes / gtfs-trips GTFS static transit feed zip (pure-Rust ZIP + csv; feature gtfs) stops (→ osm3d scene) / routes / trips warehouse tables
gtfs-rt-vehicles GTFS-Realtime VehiclePositions protobuf FeedMessage (hand-rolled varint/length-delimited reader — no prost dep; a binary wire shape no other collector decodes) live vehicle position table (entity/vehicle/route/trip id, lat/lon, bearing, speed, timestamp, stop) → osm3d-flight scene
eurostat-sdmx Eurostat SDMX-JSON 2.1 (series/observation split, colon-key decode) EU stats cube → per-(geo × time × measure) value rows warehouse table
dcat-ap-se · pxweb · kolada · smhi-metobs · polisen SE open-data portals warehouse tables

Laws (this leaf)

Open work (see korp/.nornir/korp-worklist.md)