You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(cems): close all open questions with exhaustive verification
- statusCode/type enums: scanned all 224 activations (2074 products). Confirmed
exhaustive sets statusCode {F,I,W,N} and types {REF,FEP,DEL,GRA,GRM}; no others.
- N->status rule now data-driven from version.reason: "no change of impact/
damage/situation" -> no-impact; remote-sensing limitations / cancelled ->
withdrawn.
- GDACS episode resolution verified: geteventdata returns the current episode
(TC1001230 -> 41, iscurrent), so resolve it via one lookup instead of a stale
-1 default.
- No CEMS OpenAPI endpoint exists, so enums are grounded in the full corpus.
Removed the residual-verification note; decisions table now fully closed.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: docs/model/sources/CEMS/README.md
+14-11Lines changed: 14 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -177,7 +177,7 @@ Each product maps to a Monty Response item via `monty:response_detail`.
177
177
|----------------------|-------------|-------|
178
178
|`type`|`monty:response_detail.type`|`REF`→`eo-ref`, `FEP`→`eo-fep`, `DEL`→`eo-del`, `GRA`→`eo-gra`. Monitoring/variant type codes (e.g. **`GRM`** grading-monitoring) map to their base product code (`eo-gra`) with `monitoring_number` set |
179
179
|`code` (activation) |`monty:response_detail.source_id`| e.g. `EMSR847` (source-system anchor) |
180
-
|`version.statusCode`|`monty:response_detail.status`|`F` (delivered)→`published`;`I` (in production)→`in-production`;`W` (scheduled, future `expectedDelivery`)→`planned`;`N` (not produced)→`withdrawn`, or `no-impact` when `version.reason`indicates no damage/impact. `feasible=false` → `withdrawn`|
180
+
|`version.statusCode`|`monty:response_detail.status`|Full enum (confirmed across all 224 activations): `F`→`published`,`I`→`in-production`,`W`→`planned`,`N`→ `no-impact` when `version.reason`mentions *no change of impact/damage/situation*, else `withdrawn` (remote-sensing limitations, cancelled)|
181
181
|`monitoring` / `monitoringNumber`|`monty:response_detail.monitoring_number`| Set **only** when `monitoring=true`; iteration links to the prior via `rel: prev`|
| 4 |**Multi-hazard**| Driven by `category`/`subCategory` + GRA footprint classes — **not** DEL count. A secondary hazard with no dedicated polygon uses the AOI extent (coarse) and takes severity from its footprint-class figure. |
372
375
| 5 |**Response geometry**| The product's own `extent` (precise footprint); AOI extent only as fallback. |
373
376
| 6 |**Source imagery**| Emit linked **acquisition items** from `images[]` (carrying `sat:`/`eo:`/`sar:`, `resolutionClass`, `acquisitionTime`) referenced via `derived_from` — per the best-practices layer-separation rule; imagery extensions never on the Response product. |
374
377
| 7 |**Monitoring & revisions**| Monitoring iterations = separate items chained by `rel: prev`; `version.number` corrections supersede in place — see [Tracking over time](#tracking-over-time). |
375
378
| 8 |**Impact granularity**| Per-product GRA `stats` series (each timestamped), one Impact per exposure class per iteration; aggregated activation `stats` is cross-check only. |
376
-
| 9 |**Cross-source links**| Emit `related`**unconditionally** from the deterministic target id; GDACS episode defaults to `-1`. |
379
+
| 9 |**Cross-source links**| Emit `related`**unconditionally** from the deterministic target id; resolve the GDACS **current**episode via one `geteventdata` call (`-1` only if the lookup fails). |
377
380
| 10 |**Refresh**| Watermark on the `?closed=false` list; detail only when `(lastUpdate, n_products, n_aois)` advance — see [Refresh & polling strategy](#refresh-and-polling-strategy). |
378
381
379
-
**Residual verification (non-blocking):** cross-check the `statusCode` enum against the CEMS
380
-
product-lifecycle spec (only `F`/`I`/`W`/`N` observed); confirm whether a cheap GDACS
381
-
episode-resolution lookup is worth adding over the `-1` default.
382
+
All questions are closed against the live data (enums scanned exhaustively; GDACS episode
383
+
resolution verified). No CEMS OpenAPI/schema endpoint is published, so the enums above are
384
+
grounded empirically in the full 224-activation corpus rather than a spec.
0 commit comments