# Major-Project Corridor Baseline Pack - Lake Louise to Field (Kicking Horse Pass), AB/BC

**Pack ID:** `kicking-horse-corridor-20261002-sample`  
**Packed:** 2026-10-02 22:54 (UTC)  
**Corridor:** 27.438 km centreline, 28 segments of ~1 km, strip +/-500 m (27.4 km^2)  
**Imagery:** Sentinel-2 L2A, peak season 07-01 to 08-31, years 2019-2026 (119 scenes)  
**Produced by:** Nimpact Environmental Ltd (nimpact.ca)

> Illustrative sample. The centreline is a Ground Boots GPS track along the existing Trans-Canada Highway / rail corridor over Kicking Horse Pass, chosen because it is an existing linear corridor with field records on file. It is not the route of any proposed project.

## What this is
A dated, hash-sealed "before" record of a linear corridor. Every kilometre of the centreline is a segment; for each segment the pack records its peak-season vegetation (NDVI) and moisture (NDMI) for every year back to 2019, and screens the latest season against that segment's own history. Ground Boots field records that fall inside the strip are attached. Archived before works begin, it gives a later "after" run something to be compared against, and it is the same record whoever is holding it.

## Read this before using any number
- **No model runs in this pack.** NDVI and NDMI are band arithmetic on Sentinel-2 reflectance. The status is a fixed-threshold comparison of each segment with its own past seasons (`surface_rules.py`, unchanged from the CCS surface-watch sample).
- **A flag is a screening proxy, not a finding.** Harvest, haying, clearing, fire, insects, drought, hail, flooding and road work all move these numbers. WATCH/SCREEN means "look here first", never "something happened because of a project".
- Sentinel-2 is 10-20 m. Segment values are medians over a ~1 km^2 strip; nothing here resolves a single tree, wetland edge or watercourse bank. Those are what a ground visit is for.
- Snow, terrain shadow and cloud are masked with the ESA Scene Classification Layer; a segment without enough clean pixels is INSUFFICIENT_DATA, not guessed.
- Segment polygons are built in EPSG:32611 from the centreline; chainage (KP) is measured along it from the first vertex.

## Status summary
| Status | Segments |
|---|---|
| Within own range | 12 |
| Watch: softer than own history | 10 |
| Screen: well outside own history | 4 |
| Insufficient clear imagery | 2 |
| Open water: not scored | 0 |

## Flagged segments (WATCH / SCREEN)
| Segment | KP | status | NDVI d | z | NDMI d | z |
|---|---|---|---|---|---|---|
| KP000.0 | 0.0-1.0 | WATCH | -0.059 | -2.75 | -0.005 |  |
| KP002.0 | 2.0-3.0 | SCREEN | -0.193 | -9.67 | -0.105 | -5.24 |
| KP003.0 | 3.0-4.0 | SCREEN | -0.128 | -6.42 | -0.01 |  |
| KP004.0 | 4.0-5.0 | WATCH | -0.064 | -3.22 | -0.014 |  |
| KP005.0 | 5.0-6.0 | WATCH | -0.084 | -3.63 | -0.019 |  |
| KP011.0 | 11.0-12.0 | WATCH | -0.056 | -2.78 | -0.025 |  |
| KP013.0 | 13.0-14.0 | WATCH | -0.079 | -2.77 | -0.001 |  |
| KP014.0 | 14.0-15.0 | WATCH | -0.097 | -3.96 | 0.008 |  |
| KP016.0 | 16.0-17.0 | SCREEN | -0.118 | -4.49 | -0.058 |  |
| KP017.0 | 17.0-18.0 | SCREEN | -0.175 | -8.73 | -0.038 |  |
| KP023.0 | 23.0-24.0 | WATCH | -0.097 | -3.41 | -0.05 |  |
| KP025.0 | 25.0-26.0 | WATCH | -0.1 | -4.98 | 0.0 |  |
| KP026.0 | 26.0-27.0 | WATCH | -0.081 | -3.61 | -0.014 |  |
| KP027.0 | 27.0-27.438 | WATCH | -0.059 | -2.56 | -0.012 |  |

## Ground Boots records in the strip
air x1, general x1, ground_truth x2, road_damage x1 across 3 segments. Public sample: positions, type and date only; notes, photos and times are in full packs.

## Imagery used per year
| Year | scenes | dates |
|---|---|---|
| 2019 | 16 | 2019-07-21, 2019-07-21, 2019-07-26, 2019-07-26, 2019-07-29, 2019-07-29, 2019-08-03, 2019-08-05, 2019-08-05, 2019-08-08, 2019-08-08, 2019-08-15, 2019-08-20, 2019-08-20, 2019-08-28, 2019-08-28 |
| 2020 | 15 | 2020-07-28, 2020-07-30, 2020-07-30, 2020-08-02, 2020-08-02, 2020-08-04, 2020-08-04, 2020-08-09, 2020-08-12, 2020-08-12, 2020-08-17, 2020-08-19, 2020-08-19, 2020-08-24, 2020-08-24 |
| 2021 | 20 | 2021-07-03, 2021-07-08, 2021-07-13, 2021-07-13, 2021-07-15, 2021-07-15, 2021-07-18, 2021-07-18, 2021-07-20, 2021-07-20, 2021-07-25, 2021-07-28, 2021-07-28, 2021-07-30, 2021-07-30, 2021-08-12, 2021-08-12, 2021-08-14, 2021-08-29, 2021-08-29 |
| 2022 | 16 | 2022-07-15, 2022-07-15, 2022-07-20, 2022-07-23, 2022-07-28, 2022-07-28, 2022-08-07, 2022-08-07, 2022-08-09, 2022-08-09, 2022-08-12, 2022-08-12, 2022-08-14, 2022-08-14, 2022-08-17, 2022-08-17 |
| 2023 | 16 | 2023-07-08, 2023-07-08, 2023-07-15, 2023-07-20, 2023-07-23, 2023-07-23, 2023-07-25, 2023-08-02, 2023-08-02, 2023-08-04, 2023-08-14, 2023-08-14, 2023-08-27, 2023-08-27, 2023-08-29, 2023-08-29 |
| 2024 | 12 | 2024-07-07, 2024-07-07, 2024-07-09, 2024-07-09, 2024-07-17, 2024-07-24, 2024-07-24, 2024-08-01, 2024-08-01, 2024-08-23, 2024-08-31, 2024-08-31 |
| 2025 | 12 | 2025-07-04, 2025-07-04, 2025-07-07, 2025-07-07, 2025-07-29, 2025-08-21, 2025-08-21, 2025-08-23, 2025-08-23, 2025-08-26, 2025-08-26, 2025-08-28 |
| 2026 | 12 | 2026-07-07, 2026-07-07, 2026-07-14, 2026-07-22, 2026-07-22, 2026-07-29, 2026-08-06, 2026-08-06, 2026-08-21, 2026-08-21, 2026-08-26, 2026-08-26 |

## Contents
| Path | What |
|---|---|
| `segments/segments.csv` | one row per segment: KP, status, latest NDVI/NDMI, baseline mean/sd, triggers |
| `segments/segments.geojson` | segment strips as polygons for QGIS/ArcGIS |
| `segments/results.json` | full rule output per segment, incl. every season composite |
| `segments/history.json` | every per-scene, per-segment measurement (cloud/water/valid fractions, NDVI, NDMI) |
| `centreline.geojson` | the centreline as supplied |
| `ground/ground_boots.*` | Ground Boots field records inside the strip |
| `maps/status.png`, `maps/ndvi_change.png` | segments over Esri World Imagery |
| `provenance.json` | scene IDs, STAC source, thresholds, code hashes |
| `MANIFEST.sha256` | SHA-256 of every file; the pack hash at the bottom fixes the whole pack |

## Verify
`python3 verify_pack.py <this>.zip` recomputes every file hash and the pack hash. Change one byte anywhere and it fails.

Contains modified Copernicus Sentinel data (ESA). Basemap: Esri World Imagery.
