{Source name}
TODO: one-paragraph description.
Scope / conversion principle: TODO.
Collections
| Collection | Code | Monty role | Source for |
|---|---|---|---|
| {Source} — Events | {source}-events |
event |
{upstream object} |
| {Source} — Hazards | {source}-hazards |
hazard |
{upstream object} |
| {Source} — Impacts | {source}-impacts |
impact |
{upstream object} |
| {Source} — Response | {source}-response |
response |
{upstream object} |
- Source organisation: {org} (
{CODE}) - Organisation type: {one of the sources.yml org_type vocabulary}
- Source URL: https://example.org
- Contact: contact@example.org (or a contact-form URL; omit if the source publishes neither)
- API / ingestion entry point: {endpoint or bucket} ({auth: public / partner / key})
- License: {license or terms; "None stated by the source" if it publishes none}
- Temporal coverage: {from – to}
Object model
flowchart TD
A["<b>{Upstream object}</b><br/>→ Event ({source}-events)"]
A -->|"scopes"| B["<b>{Sub-object}</b><br/>→ Hazard ({source}-hazards)"]
A -->|"produces"| C["<b>{Product}</b><br/>→ Response ({source}-response)"]
C -->|"statistics"| D["<b>{Figures}</b><br/>→ Impact ({source}-impacts)"]
| {Source} object | Monty type | Monty id pattern |
Collection |
|---|---|---|---|
| {Object} | Event | {source}-event-{key} |
{source}-events |
| {Sub-object} | Hazard | {source}-hazard-{key}-{type} |
{source}-hazards |
| {Product} | Response | {source}-response-{key} |
{source}-response |
| {Figure} | Impact | {source}-impact-{key}-{thematic} |
{source}-impacts |
Data access
TODO: endpoints / layout, auth, pagination, the ETL unit.
Reference fixtures in api-files/: TODO (name them and say what each exercises).
Object → Event
| {Source} field | Monty field | Notes |
|---|---|---|
{code} |
id ({source}-event-{code}) |
Prefix {source}-event- |
| — | collection: "{source}-events" |
Required |
{onset} |
datetime / start_datetime |
Event onset, not the processing/tasking time |
{title} |
title |
|
{geometry} |
geometry / bbox |
|
{category} |
monty:hazard_codes |
Map via Hazard codes |
{country} |
monty:country_codes |
ISO 3166-1 alpha-3 |
| derived | monty:corr_id |
Standard Monty algorithm — not the source key |
Object → Hazard
| {Source} field | Monty field | Notes |
|---|---|---|
{id} |
id |
{source}-hazard-{key}-{type} |
| — | collection: "{source}-hazards" |
Required |
{geometry} |
geometry |
|
{type} |
monty:hazard_codes |
One UNDRR-ISC 2025 code set per item — split multi-hazard into one item per code |
{severity} |
monty:hazard_detail |
severity_value + severity_unit where available |
| parent event | links[rel=related] (roles: ["event"]) |
Object → Response
| {Source} field | Monty field | Notes |
|---|---|---|
{product_type} |
monty:response_detail.type |
A response taxonomy code (eo-*, hum-*, …); never encode the source into the code |
{source_key} |
monty:response_detail.source_id |
Source-system anchor |
{status} |
monty:response_detail.status |
Only from an explicit source status field |
{geometry} |
geometry / bbox |
Product footprint |
| source imagery | links[rel=derived_from] → acquisition item(s) |
Sensor extensions (sat:/eo:/sar:) live on the linked acquisition, not on the Response |
| upstream page | links[rel=derived_from] |
Provenance |
Follow the Response best practices for extension layering, and the Response ↔ Impact boundary rules for what belongs on a Response vs. a paired Impact. Do not put damage/exposure statistics in
monty:response_detail— those become Impact items.
Object → Impact
| {Source} field | Monty field | Notes |
|---|---|---|
{figure} |
monty:impact_detail.value |
|
{category}/{type} |
monty:impact_detail.category / .type |
|
{unit} |
monty:impact_detail.unit |
|
| — | monty:impact_detail.estimate_type |
primary unless the source marks otherwise |
| parent product | links[rel=derived_from] (roles: ["response"]) |
Canonical edge: Impact → derived_from → Response where the impact is read off a response product |
Tracking over time
TODO: update mechanics, idempotency, refresh/polling strategy.
Cross-source linkage
TODO, or delete.
Hazard codes
| {Source} class | UNDRR-ISC 2025 | GLIDE | EM-DAT | Notes / refinement |
|---|---|---|---|---|
| {value} | {GH0000} | {XX} | {nat-xxx-xxx-xxx} |
Every code above is verified against
taxonomy.mdand its Cross-Classification Mapping table. Any unmapped or new source class MUST fall through to manual review rather than be dropped.
get_canonical_hazard_codes()does not validate this table. It preserves any syntactically valid UNDRR-ISC 2025 code — it does not check the code is the correct one for the mapped class. The mapping above must be correct at the source; canonicalisation is formatting, not verification.
Examples
TODO: link one worked item per collection, e.g. examples/{source}-events/….
Reference files
api-files/{…}.json— TODO: what it exercises.
See FINDINGS.md for the raw stage-1 familiarisation notes (optional but recommended).
Decisions (resolved)
| # | Decision | Resolution |
|---|---|---|
| 1 | TODO | TODO |
Resources
- {Source} portal / docs — TODO
- Response taxonomy · Response best practices · Response ↔ Impact boundary
- Monty STAC Extension specification