Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 76 additions & 0 deletions data/datasets/aemet-cap-warnings.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
id: aemet-cap-warnings
name: AEMET Spain CAP Warnings
description: >
Official Spanish adverse-weather CAP warning Atom feed from AEMET for
inspecting alert IDs, updates, and affected regions.
theme: Environment & Hazards
url: https://www.aemet.es/es/rss_info/avisos/esp
access_type:
- api
api_key_required: false
free_to_access: true
size_gb_min: 0
size_gb_max: 0.01
formats:
- Atom
- CAP
license: AEMET public information may be reused commercially or noncommercially with attribution and integrity conditions.
license_url: https://www.aemet.es/es/nota_legal
url_checks:
source_marker: CAP_AFAE_ATOM.xml
license_marker: fines comerciales y no comerciales
domains:
- Weather
- Emergency Management
data_types:
- Event Data
- Geospatial
tasks:
- Monitoring
- Alerting
difficulty: intermediate
geography:
- Spain
temporal_coverage: current adverse-weather alerts
update_frequency: near real time
provider: Agencia Estatal de Meteorología
source_type: government
last_verified: 2026-09-28
getting_started:
overview: >
AEMET publishes adverse-weather warnings through an Atom index with CAP
details. Start with five current Atom entries, preserving IDs and update
times. The legal notice requires source attribution and forbids distorting
technical meaning; verify official area and validity before display.
prerequisites:
- Python 3.10 or newer
- An internet connection
- The requests Python package
access_steps:
- Read AEMET's CAP feed page and legal reuse conditions.
- Fetch the national Atom index and inspect at most five entries.
- Use linked CAP details for severity, affected area, and expiry.
python:
packages:
- requests
code: |
import xml.etree.ElementTree as ET
import requests

response = requests.get(
"https://www.aemet.es/documentos_d/eltiempo/prediccion/avisos/rss/"
"CAP_AFAE_ATOM.xml", timeout=30,
)
response.raise_for_status()
root = ET.fromstring(response.content)
atom = "{http://www.w3.org/2005/Atom}"
print(root.findtext(f"{atom}updated"))
for entry in root.findall(f"{atom}entry")[:5]:
print(entry.findtext(f"{atom}id"), entry.findtext(f"{atom}title"))
first_project:
title: Inspect Spanish CAP Publications
goal: Test the official warning index for a bounded Spanish alert card.
steps:
- Keep AEMET IDs, update timestamps, and CAP detail links.
- Check whether each CAP message is current and applies to the intended area.
- Explain why Atom publication alone cannot establish local warning coverage.
61 changes: 61 additions & 0 deletions data/datasets/arc-appalachian-counties.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
id: arc-appalachian-counties
name: ARC Appalachian Counties
description: >
The Appalachian Regional Commission's maintained county membership list for building regional comparison and eligibility tools.
theme: Demographics & Development
url: https://www.arc.gov/appalachian-counties-served-by-arc/
access_type: [download]
api_key_required: false
free_to_access: true
size_gb_min: 0
size_gb_max: 0.001
formats: [HTML, XLSX]
license: ARC-produced material is public domain; cite ARC and check linked third-party materials separately.
license_url: https://www.arc.gov/arc-web-and-privacy-policy/
url_checks:
source_marker: Appalachian Counties Served by ARC
license_marker: Material provided on this website and produced by ARC is not copyrighted
domains: [Demographics]
data_types: [Tabular]
tasks: [Community Comparison]
difficulty: beginner
geography: [United States counties]
temporal_coverage: current ARC county membership; check the fiscal-year caveats
update_frequency: annual
provider: Appalachian Regional Commission
source_type: government
last_verified: 2026-09-28
getting_started:
overview: >
ARC maintains a public county list and notes fiscal-year exceptions, including Schoharie County for FY 2026.
Start with Alabama's 37 named counties. Names alone do not give a county FIPS code or prove grant eligibility.
prerequisites: [Python 3.10 or newer, An internet connection, The requests Python package]
access_steps:
- Read the official county list and its fiscal-year notes.
- Fetch the Alabama row from the ARC-maintained page.
- Join to an authoritative FIPS table before a county-level analysis.
python:
packages: [requests]
code: |
import html
import re
import requests

url = "https://www.arc.gov/appalachian-counties-served-by-arc/"
response = requests.get(url, timeout=20)
response.raise_for_status()
match = re.search(
r'<strong><a href="https://www.arc.gov/alabama/">Alabama</a>.*?</strong>(.*?)</p>',
response.text, re.S,
)
if not match:
raise ValueError("ARC Alabama county list not found")
names = html.unescape(re.sub(r"<[^>]+>", "", match.group(1))).strip()
print(names[:160])
first_project:
title: Compare ARC County Membership
goal: Show which sampled counties are within the ARC region while retaining the fiscal-year caveat.
steps:
- Extract county names for one state from the ARC list.
- Resolve names to state-qualified county FIPS identifiers.
- Explain why ARC membership does not by itself establish current grant eligibility.
67 changes: 67 additions & 0 deletions data/datasets/arso-current-hydrology.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
id: arso-current-hydrology
name: ARSO Current Hydrology
description: Slovenian river and lake station measurements for building a local water-level conditions
display.
theme: Environment & Hazards
url: https://www.arso.gov.si/xml/vode/hidro_podatki_zadnji.xml
access_type:
- api
api_key_required: false
free_to_access: true
size_gb_min: 0
size_gb_max: 0.005
formats:
- XML
license: ARSO permits public-information reuse for commercial and noncommercial analysis with source citation.
license_url: https://kazalci.arso.gov.si/en/content/legal-note
url_checks:
source_marker: Agencija RS za okolje
license_marker: reuse of public information for commercial or non-commercial purposes
domains:
- Water Resources
data_types:
- Time Series
tasks:
- Monitoring
difficulty: beginner
geography:
- Slovenia
temporal_coverage: current observations or notices
update_frequency: near real time
provider: Slovenian Environment Agency
source_type: government
last_verified: '2026-09-28'
getting_started:
overview: The official Slovenian Environment Agency feed supplies current public data. Start with two
current Slovenian stations; a provisional station level is not a flood warning or a destination-wide
measurement.
prerequisites:
- Python 3.10 or newer
- An internet connection
- The requests Python package
access_steps:
- Read the official data documentation and reuse terms.
- Fetch the small official feed and inspect two records.
- Preserve source timestamps and locations before mapping results.
python:
packages:
- requests
code: |
import requests
from xml.etree import ElementTree as ET

url = "https://www.arso.gov.si/xml/vode/hidro_podatki_zadnji.xml"
response = requests.get(url, timeout=20)
response.raise_for_status()
root = ET.fromstring(response.content)
print("Prepared", root.findtext("datum_priprave"))
for station in root.findall("postaja")[:2]:
print(station.get("sifra"), station.findtext("reka"),
station.findtext("vodostaj"), station.findtext("datum_cet"))
first_project:
title: Inspect Dated Local Conditions
goal: Inspect two current Slovenian stations with source timestamps.
steps:
- Fetch the official source and retain its update time.
- Show two records with their station or notice identifiers.
- Explain why these records are context rather than complete hazard coverage.
76 changes: 76 additions & 0 deletions data/datasets/at-alert-public-warnings.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
id: at-alert-public-warnings
name: Austria AT-Alert Public Warnings
description: >
Official Austrian civil-emergency alerts from the AT-Alert public API for
reviewing affected polygons, alert levels, and validity intervals.
theme: Environment & Hazards
url: https://warnung.at-alert.at/de
access_type:
- api
api_key_required: false
free_to_access: true
size_gb_min: 0
size_gb_max: 0.01
formats:
- JSON
license: Official public warnings under Austrian free-works terms; credit the issuing authority.
license_url: https://www.rtr.at/rtr/service/opendata/OD_Nutzungsbedingungen.de.html
url_checks:
source_marker: Aktuelle Warnungen
license_marker: keinen urheberrechtlichen Schutz
domains:
- Emergency Management
data_types:
- Event Data
- Geospatial
tasks:
- Monitoring
- Alerting
difficulty: intermediate
geography:
- Austria
temporal_coverage: current official civil alerts
update_frequency: near real time
provider: Austrian Federal Ministry of the Interior
source_type: government
last_verified: 2026-09-28
getting_started:
overview: >
AT-Alert lists current public warnings through a JSON RPC POST endpoint.
Start with at most five production alert records; an empty response is
possible. Preserve official polygons, severity, and begin/end times, and
exclude tests before presenting any warning.
prerequisites:
- Python 3.10 or newer
- An internet connection
- The requests Python package
access_steps:
- Read the official AT-Alert site and public-data reuse terms.
- POST a five-record request for production alert levels.
- Check alert identifier, validity, level, and geography.
python:
packages:
- requests
code: |
import requests

response = requests.post(
"https://warnung.at-alert.at/api/rpc/alert/list",
json={"json": {"limit": 5, "offset": 0,
"alertLevels": ["AlertLevel1", "AlertLevel2",
"AlertLevel3", "AlertLevel4"]}},
timeout=30,
)
response.raise_for_status()
payload = response.json()["json"]
print(f"{payload['totalCount']} production alerts in this response")
for alert in payload["alerts"][:5]:
print(alert.get("consolidation_identifier"), alert.get("alert_level"),
alert.get("begin_date"), alert.get("end_date"))
first_project:
title: Inspect Austrian Civil Alerts
goal: Check a bounded AT-Alert response for region-specific warning review.
steps:
- Keep issuer, alert ID, severity, validity, and official polygons.
- Reject test messages and handle updates and expirations.
- Explain why no returned records do not establish an all-clear.
55 changes: 55 additions & 0 deletions data/datasets/avalanche-report-bulletins.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
id: avalanche-report-bulletins
name: Avalanche.report Regional Bulletins
description: >
European regional avalanche bulletins published as CAAML JSON for building a dated mountain hazard view.
theme: Environment & Hazards
url: https://static.avalanche.report/eaws_bulletins/2026-01-31/2026-01-31-AT-02.json
access_type: [download]
api_key_required: false
free_to_access: true
size_gb_min: 0
size_gb_max: 0.001
formats: [JSON]
license: CC BY 4.0 for Avalanche.report data; credit the issuing regional warning service and Avalanche.report.
license_url: https://avalanche.report/more/open-data
url_checks:
source_marker: avalancheActivity
license_marker: All data provided, such as the avalanche report
domains: [Natural Hazards]
data_types: [Event Data, Geospatial]
tasks: [Monitoring, Mapping]
difficulty: beginner
geography: [Europe]
temporal_coverage: seasonal daily avalanche bulletins
update_frequency: daily
provider: Avalanche.report
source_type: nonprofit
last_verified: 2026-09-28
getting_started:
overview: >
Avalanche.report publishes daily regional CAAML JSON partitions, including
AT-02 used by TravelCanary. Start with two archived January 2026 bulletin
records; an archived bulletin is not a current warning, and no bulletin
may be published outside its season.
prerequisites: [Python 3.10 or newer, An internet connection, The requests Python package]
access_steps:
- Read the official open-data licence and CAAML access description.
- Fetch one dated regional bulletin file.
- Inspect two bulletin IDs and their validity periods.
python:
packages: [requests]
code: |
import requests

url = "https://static.avalanche.report/eaws_bulletins/2026-01-31/2026-01-31-AT-02.json"
response = requests.get(url, timeout=20)
response.raise_for_status()
for bulletin in response.json()["bulletins"][:2]:
print(bulletin["bulletinID"], bulletin.get("validTime"))
first_project:
title: Review Regional Avalanche Bulletins
goal: Inspect two dated CAAML bulletins before mapping warning regions.
steps:
- Fetch one regional partition and retain its publication time.
- Match its region identifiers to the official EAWS geometry.
- Explain why an archived bulletin does not describe today's mountain hazard.
Loading
Loading