Skip to main content

umferd

Icelandic traffic counters (Vegagerðin) — real-time 15-min counts, 7-day rolling daily totals, 168+ stations via WFS.

소스 정보

저장소
jokull/icelandic-data
최근 소스 활동
2026년 9월 10일 15:02
감지된 SKILL.md 언어
영어
스타
54
포크
4

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
umferd
description
Icelandic traffic counters (Vegagerðin) — real-time 15-min counts, 7-day rolling daily totals, 168+ stations via WFS.
# Umferð (Traffic) — Vegagerðin **Requires:** Tier 0 (core). Only `scripts/umferd_map.py` needs Tier 1 (maps). Real-time traffic counter data from the Icelandic Road Administration via GeoServer WFS. ## API **Base URL:** `https://gagnaveita.vegagerdin.is/geoserver/gis/ows?` No authentication required. WFS 1.0.0 protocol. Returns GeoJSON, CSV, GML, or Shapefile. ### Layers | Layer | Features | Description | |-------|----------|-------------| | `gis:umferdvika_2021_1` | ~254 | Real-time counters: 15-min count, today's count, rolling 7-day daily totals | | `gis:umf_talningar_stefnugreint_stadir` | ~248 | Station metadata with direction, elevation, compass heading | ### WFS Request Pattern ``` {base}?service=WFS&version=1.0.0&request=GetFeature&typeName={layer}&outputFormat=application/json&srsName=EPSG:4326 ``` ### Parameters | Parameter | Values | |-----------|--------| | `srsName` | `EPSG:4326` (WGS84) or `EPSG:3057` (ISN93) | | `outputFormat` | `application/json`, `csv`, `GML2`, `GML3`, `shape-zip` | | `cql_filter` | e.g. `IDSTOD=912` to filter by station | | `maxFeatures` | Limit number of features returned | ### Example Requests ```bash # All stations as GeoJSON (WGS84) curl "https://gagnaveita.vegagerdin.is/geoserver/gis/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=gis:umferdvika_2021_1&outputFormat=application/json&srsName=EPSG:4326" # Single station curl "https://gagnaveita.vegagerdin.is/geoserver/gis/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=gis:umferdvika_2021_1&cql_filter=IDSTOD=912&outputFormat=application/json&srsName=EPSG:4326" ``` ## Real-Time Layer Schema (`gis:umferdvika_2021_1`) | Field | Type | Description | |-------|------|-------------| | OBJECTID | INT | Unique per measurement point (direction-specific) | | IDSTOD | INT | Station ID (may appear twice for directional stations) | | NAFN | STRING | Station name (e.g., "Gufuá", "Dettifoss") | | STEFNA | STRING | Direction — see below | | UMF_15MIN | INT | Vehicles in last 15 minutes | | MEDALHRADI_15MIN | INT | Avg speed km/h last 15 min (only for type 4 classifiers) | | UMF_I_DAG | INT | Vehicles since midnight | | DAGS_SIDUSTUGAGNA | DATE | Timestamp of latest data received | | UMF_DAGUR1..7 | INT | Daily vehicle count for last 1..7 days | | DAGS_DAGUR1..7 | DATE | Date for each of the 7 daily counts | | MAELISTOD_TEGUND | INT | Station type (see below) | | SHAPE | POINT | Coordinates [lon, lat] in requested SRS | ## Station Metadata Layer (`gis:umf_talningar_stefnugreint_stadir`) | Field | Type | Description | |-------|------|-------------| | IDSTADUR | STRING | Location ID | | IDSTOD | INT | Station ID | | IDSTEFNA | INT | Direction code | | NAFN | STRING | Station name | | STEFNA_TXT | STRING | Direction text | | NSAV_STEFNA | STRING | Compass code | | HAED | INT | Elevation (m) | | UMFERD | INT | Latest traffic count | | DAGS_UMFERD | DATE | Timestamp of latest count | | MEDALHRADI | INT | Average speed (if available) | | STAERDARFLOKKUR | STRING | Size class ("all") | | MAELISTOD_TEGUND | INT | Station type | ## Station Types (MAELISTOD_TEGUND) | Code | Type | Description | |------|------|-------------| | 1 | Veðurstöð | Counter co-located with weather station | | 2 | Umferðarteljari | Dedicated traffic counter | | 4 | Umferðargreinir | Traffic classifier (provides speed data) | ## Direction Field (STEFNA) - Directional: `"Til norðurs"`, `"Frá Þingvöllum"`, etc. - Combined: `"Samanlögð umferð óháð stefnu"` (both directions summed) - Directional stations have two OBJECTIDs sharing the same IDSTOD **Double-count warning:** When aggregating, use either combined records OR directional records, never both. ## Key Caveat: No Historical API The API only provides a **rolling 7-day window**. There is no endpoint for historical data. To build a time series, you must poll regularly (daily) and accumulate into a local store. The `collect` subcommand handles this. ## Script Usage ```bash # List all counting stations uv run python scripts/umferd.py stations # Fetch current real-time snapshot uv run python scripts/umferd.py snapshot # Collect rolling 7-day data into history (run daily via cron) uv run python scripts/umferd.py collect # Generate HTML traffic report uv run python scripts/umferd.py report ``` ## Data Files | File | Format | Description | |------|--------|-------------| | `data/raw/umferd/stations.csv` | CSV | Station metadata with coordinates | | `data/raw/umferd/snapshot_*.json` | GeoJSON | Raw API snapshots | | `data/processed/umferd_snapshot.csv` | CSV | Latest real-time flat data | | `data/processed/umferd_daily.parquet` | Parquet | Accumulated daily history (append + dedup) | | `reports/umferd-traffic.html` | HTML | Self-contained traffic report | ## Other Caveats - **Encoding.** GeoServer WFS returns UTF-8 GeoJSON. Station names contain Icelandic chars (`Þingvellir`, `Hvalfjörður`, `Mývatn`, `Sólheimasandur`); direction labels combine spatial Icelandic (`Til norðurs`, `Frá Reykjavík`). Read with `httpx.json()` defaults; write CSV with `encoding="utf-8"`. - **Rate-limiting.** No declared rate limit on `gagnaveita.vegagerdin.is`. Intended cadence is one snapshot per quarter-hour (matches the source update interval). A daily `collect` cron is well within budget. - **Double-counting directional data.** A single physical site often emits two rows — one per direction. When summing flows for a region, group by station-id-without-direction or filter on a single `STEFNA` value.
GitHub에서 보기