since Feb 2024 vs the two years before, swell-adjusted
1984–2026
open-beach controls, 1984–2026
waterline (median σ)
The question this page is built around is the owner's, sharpened: has human shoreline modification changed the morphology that creates La Saladita's wave, beyond what storms and natural variability explain? This season palms at the waterline fell over in a storm, and hotels and restaurants have put down boulders, rock walls and decks on concrete pillars. The worry is that armouring starves the beach, changes the bottom and changes the wave.
Satellites cannot see the sea floor in a turbid, foamy surf zone, and they cannot measure a wave's peel angle or how long a section runs. What they can measure, every few days since 1984, is where the water meets the sand, and since 2015 where the whitewater sits. So this page keeps two things apart, as the sealed design asks: beach state (waterline position, beach width, storm steps and recovery) and surf-break state (the position of the whitewater at the point, adjusted for the swell). There is no combined index. Detection comes first — is anything changing? — and only then the question of what caused it.
Every claim carries an evidence level from the sealed ladder: E0 observation, E1 association, E2 timing consistent with a cause, E3 counterfactual support (dated treatment, passed placebos), E4 physical mechanism measured, E5 the wave itself shown to change, E6 replication. For the shoreline this satellite record can reach E3–E4 at most, and only once wall dates exist. It cannot reach E5. Nothing here says a wall "changed the wave".
Allowing for the swell, the whitewater at the point shows no detectable shift
Adjusted for swell, wind and tide, the whitewater edge at the point sits +7.8 m farther out since February 2024 than from October 2021 to January 2024 (95% interval −10.0 to +16.2 m): no detectable shift.
131 Sentinel-2 images from October 2021 to September 2026 show whitewater at the point and pass the image screen: one image per acquisition (ESA re-issued many scenes when it reprocessed the archive; the latest processing is kept), and no sun glint, haze or cloud over the surf zone or the water just beyond it. Glint matters here because it is more common after 2024 (about half the images, against about a third before) and it brightens the sea enough to push the detected foam edge seaward. Without the screen, 255 images give +8.7 m (−9.3 to +18.9); a looser glint threshold gives +8.0 m (−13.8 to +21.7). Every version is not detected. The seaward edge of the foam is regressed on a step at 1 February 2024 plus the swell at the overpass hour from the Météo-France wave model at the grid point nearest the break (height, height squared, mean period, direction), wind and the site tide; the interval comes from resampling whole calendar years. Swell is not taken from ERA5 across 2024: its wave record steps down on 1 February 2024, about 9% lower wave height and 0.5 s shorter mean period at the offshore node, against two independent wave models (Météo-France and DWD) that agree with each other across that date. Three NDBC buoys off California show ERA5 is the product that moved, and the step appears from the equator to California. Over the full Sentinel-2 record, 2015–2026, with ERA5 adjusted for the step and before the image screen, the shift is about +14 m (permutation over years p = 0.089). Half-year effects range from −25 m to +23 m with no lasting shift.
What this means for detection: a test that uses the year as its unit cannot call a single post-event year significant until there are 19 reference years of Sentinel-2 images, around 2034; with three recent years against five, a shift of about 28–40 m is needed for 80% power. Satellites alone cannot see a moderate change at the break for about a decade. A measured baseline of the bottom now is what makes a change detectable.
The break held its line; the north end of the cove did not
Over forty years the cove as a whole moved −0.10 m/yr (−0.29 to +0.08) and the open beaches on either side −0.14 and −0.13 m/yr: no trend beyond the noise. The frontages of Deck 1, Wall 1 and Wall 2 retreated −0.62 to −0.70 m/yr, and so did the unarmoured stretch just north-west of them (−0.48 m/yr).
About 28 m of retreat in front of Wall 1 and Wall 2 since the mid-1980s, well above twice the per-image noise. Because the neighbouring unarmoured reach to the north-west retreated too, this is a property of the north end of the cove (the creek enters about 300 m to the south) and not by itself evidence that the walls caused it. The walls were most likely built because this stretch was retreating (the selection hypothesis, H3, below).
| Reach | Transects | Rate 1984–2026 (m/yr) | 95% MC interval | Rate 2016–2026, S2 (m/yr) | 95% MC interval |
|---|---|---|---|---|---|
| The cove (the break, south point to the creek) | 23 | −0.10 | −0.29 to +0.08 | −0.04 | −0.84 to +0.72 |
| Inside section below the creek | 9 | +0.28 | −0.06 to +0.54 | −0.18 | −1.15 to +0.83 |
| Wall 1 frontage (rock armouring reported) | 4 | −0.70 | −0.90 to −0.50 | −0.30 | −1.21 to +0.70 |
| Wall 2 frontage (rock armouring reported) | 5 | −0.70 | −0.89 to −0.50 | −0.25 | −1.23 to +0.75 |
| Deck 1 (deck on pillars reported) | 3 | −0.62 | −0.83 to −0.41 | −0.78 | −1.85 to +0.29 |
| Deck 2 (deck on pillars reported) | 5 | −0.39 | −0.65 to −0.16 | −0.75 | −1.87 to +0.26 |
| Wall 3 (wall reported, summer 2026) | 5 | −0.31 | −0.51 to −0.14 | +0.27 | −0.61 to +1.11 |
| Unarmoured, 0.45–1.15 km NW of the cove | 15 | −0.48 | −0.66 to −0.30 | +0.09 | −0.68 to +0.89 |
| Unarmoured control, ≥ 2.2 km NW | 29 | −0.13 | −0.31 to +0.05 | +0.51 | −0.36 to +1.27 |
| Unarmoured control, 1.5–3 km SE (toward Troncones) | 31 | −0.14 | −0.32 to +0.04 | −0.06 | −0.85 to +0.75 |
Rates are Theil–Sen slopes of annual medians; intervals come from 1,000 Monte Carlo draws of tide error, slope, wave setup and georegistration with images resampled within each year. Ten-year Sentinel-2 rates have wide intervals: ten points of a seasonal, storm-kicked series cannot pin a rate below about ±0.7 m/yr.
Storm steps are small next to the noise, and the record sees them late
None of the 10 energetic events and tropical cyclones since 2016 (below the site's 99th percentile of wave power) moved any reach's median waterline by more than twice its uncertainty in the first clear image after it. Latest image, 2026-09-10: the cove −6.3 m, Wall 1 −1.8 m, the far-NW control −13.0 m against their 2026 dry-season median: wet-season lows, and larger at the open-beach control than in the cove.
Clouds hide the coast through most of the rainy season, so the first clear image after a storm often comes weeks later, after part of the recovery. No reach had an eroding step beyond the noise with images after it, so no recovery time can be fitted and armoured-versus-control recovery cannot be compared from these events. The 26 events since 2016 above the site's 99th percentile of daily wave power (39.6 kW/m, ERA5), which include the largest tropical-cyclone swells, are reserved for a separately sealed comparable-event test and are not analysed here; neither are images acquired from 21 September 2026 on.
| Event (start · storm) | Peak wave power (kW/m) | Walls 1+2 (m) | Cove (m) | Controls (m) | Wall 3 (m) |
|---|---|---|---|---|---|
| 2017-09-12 · Max, Norma | 31.7 | −11.2 | −5.9 | −4.9 | — |
| 2017-10-05 · southern swell | 38.2 | −3.1 | −4.6 | −7.1 | −10.8 |
| 2019-09-29 · Narda | 28.8 | −2.8 | −3.5 | −7.8 | −14.1 |
| 2020-07-07 · Cristina | 27.8 | −1.4 | −1.6 | +1.8 | +7.3 |
| 2020-09-29 · Marie | 26.9 | −3.0 | +0.2 | −4.3 | −4.3 |
| 2021-08-17 · southern swell | 35.7 | −8.8 | −1.5 | −1.4 | −3.0 |
| 2022-10-22 · Roslyn | 26.0 | −4.4 | +1.9 | −6.7 | −2.1 |
| 2023-06-30 · Beatriz | 26.1 | +3.2 | +6.4 | +8.9 | +10.4 |
| 2023-09-03 · Jova | 28.7 | −0.5 | −0.5 | −3.2 | −4.9 |
| 2023-10-20 · Norma | 29.2 | +0.6 | −0.4 | −2.5 | +1.8 |
Step = first clear Sentinel-2 image within 30 days after the event minus the median of images in the 45 days before; * = larger than twice that reach’s uncertainty. Events: ERA5 daily wave power above its 1979–2026 95th percentile (top 40% of those) or a HURDAT2 tropical cyclone within 800 km, excluding days above the 99th percentile.
What the satellites can say about the armouring, and what they need from you
Against ten unarmoured transects chosen for similar orientation, seasonality and storm response, the Walls 1+2 frontage lost −0.49 m/yr more (−0.60 to −0.37) over 1984–2026; the sealed placebo test cannot be run: its correlation cluster is the north end of the cove itself and holds no eligible unarmoured site of the same width (k = 0). Within the Sentinel-2 years the gap stopped widening after about 2021.
That is the pattern the selection hypothesis predicts — the stretch was retreating before anyone armoured it — and also the pattern of a wall that holds the line once built (the gap's rate went from −2.10 to +0.83 m/yr around 2021; the hinge beats a straight line by leave-one-year-out error only narrowly). Without the date each wall went in, the two cannot be told apart. No event study has been run for Wall 1, Wall 2, Deck 2 or Deck 1, on purpose: the sealed rule (A1) fixes each date from dated imagery before anyone looks at the outcome.
| Site | Gap vs similar controls 1984–2026 (m/yr) | 95% CI | Placebo p exact (k sites) | Gap 2016–2026, S2 (m/yr) | 95% CI (year blocks) | Placebo p exact (k) | Synthetic-control pre-fit RMSE (m) |
|---|---|---|---|---|---|---|---|
| Walls 1+2 (wall) | −0.49 | −0.60 to −0.37 | — (k = 0) | −0.25 | −1.02 to +0.29 | — (k = 0) | 4.4 |
| Deck 1 (deck) | −0.46 | −0.72 to −0.29 | 0.500 (k = 1†) | −0.87 | −1.36 to −0.37 | 0.500 (k = 1†) | 6.3 |
| Deck 2 (deck) | −0.20 | −0.71 to +0.04 | — (k = 0) | −0.86 | −2.57 to +0.61 | — (k = 0) | 12.2 |
| Wall 3 (wall) | −0.15 | −0.25 to −0.06 | 0.278 (k = 17†) | −0.26 | −0.66 to +0.32 | 0.611 (k = 17†) | 1.4 |
Gap = the site's annual waterline minus the mean of ten similarity-matched unarmoured transects (negative = the site lost ground relative to them). Placebo p = (1 + number of same-width unarmoured sites in the same correlation cluster with a gap at least as large) ÷ (1 + k). † = fewer than the 19 sites the sealed rule asks for: the cove's own cluster is small, and widening the area would add open-beach transects from other clusters, not more sites like these. The held-line screen (a transect that stops retreating while its neighbours keep going, 2017–19 to 2024–26) flags no transect; 4 transects retreat faster than their neighbours (T008, T052, T149, T150).
Wall 3 sits about 1.4 km north-west of the cove, downdrift of the break: the net longshore drift on this coast runs NW (ERA5 wave angles against the local shoreline; the lagoon outlet south-east of the break is deflected north-westward on the dry-season images). If that holds, a wall there cannot starve the break of sand; an updrift wall could. It is not settled: another reading of the sediment evidence gives a weak net drift to the south-east with seasonal reversal, and the field survey is what decides it.
With the owner-reported date (summer 2026, provisional until a dated image brackets it) there are 3 clear images after it; Wall 3 minus its controls moved +2.6 m (−2.7 to +7.9), inside what fake dates 3–5 years earlier produce. A before/after-control test there can detect a change of about 6.7 m now, 3.1 m by September 2027 and 2.4 m by September 2028. The smallest effect worth acting on is fixed in advance (A2) at the larger of 2 m and twice the per-transect uncertainty, so even two more years only just reach it. The lagged cross-correlation of transect anomalies shows no alongshore propagation at monthly resolution (89% of transect pairs peak at zero lag), so the drift direction rests on wave angles and the outlet, not on a travelling signal.
Deck 2 and Deck 1 are a separate exposure class: pile-supported decks scour locally and fix the back of the beach only once retreat reaches them; they block little sand alongshore.
Their transects are labelled and kept out of both the wall group and the control pool (so are 300 m on either side of every named property). Deck 1 retreats like Wall 1 next door; Deck 2, on the inside of the cove, is noisy (its waterline switches between sand and rock).
With the conservative per-image error (15.5 m) and about 10 independent clear months a year, a single transect can show a wall effect of about 17.9 m or more within two years of a dated build; averaging five transects along a frontage brings that to about 6.3 m (Walls 1+2) — and the sealed smallest-effect-of-interest is 2 m or twice the per-transect uncertainty, whichever is larger.
So: the forty-year retreat at the north end of the cove (about 28 m) is well above what the record can see; a wall's placement footprint of a few metres, the first years of end scour, or a change in beach width of a few metres are below it. Dry-beach width (waterline minus vegetation line, Sentinel-2) changed from 2017–19 to 2024–26 by +0.4 m at Walls 1+2 relative to controls, +7.7 m at Wall 3 (the vegetation line there moved inland, which clearing for construction would also do), −6.0 m at Deck 1 and −4.2 m at Deck 2. The placement loss each wall causes simply by occupying beach (Dugan & Hubbard 2010) is W = (crest height − toe height) ÷ tan(face slope) + toe apron, per metre of wall; it can be set against these numbers as soon as toe and crest heights are known. Survey lines every 10 m out to 100 m beyond each wall end are in the data file for the field survey: end scour (Griggs 2010) is the best-documented wall footprint, and at 10 m pixels the satellites cannot resolve it.
How to give us the ground truth the satellites cannot
- Wall and deck dates. For each structure: when work started and finished, where it begins and ends along the beach, how long it is, what it is made of, and — if anyone knows — the elevation of its toe and crest. A dated photo is worth more than a remembered year. Send them through Beach Watch.
- Fixed-point photos (CoastSnap-style). Same spot, same framing, as often as you like — from the top of the point looking down the line, and from in front of Wall 1 looking north. Phone photos from a fixed post become shoreline measurements.
- Beach profiles on satellite days. A walked GPS/RTK profile (or a drone survey) along a few of these transects, within an hour of a Sentinel-2 overpass, is what validates every number on this page. Next overpasses (local time, about 11:08–11:17): 2026-09-30, 2026-10-02, 2026-10-05, 2026-10-10, 2026-10-12, 2026-10-15, 2026-10-20, 2026-10-22, 2026-10-25, 2026-10-30.
- A baseline survey of the bottom. The sea floor at the point cannot be measured from space and cannot be measured retroactively. A single echo-sounder or drone-photogrammetry survey now is the only way a later change in the bottom — the thing that would actually change the wave — can ever be shown.
What this record cannot show
- The sea floor: no bathymetry — the surf zone is too turbid and foamy for satellite-derived depths.
- The wave: no peel angle, no section length, no ride length, no wave height at the point. Foam position is a proxy for where breaking happens, not for how the wave breaks.
- The walls themselves: at 10–30 m pixels a boulder revetment, a rock point and a sand beach can all hold a waterline. Where and when structures were built has to come from the ground or from dated high-resolution imagery.
- Changes smaller than about twice the uncertainty: roughly 30 m for a single image (conservative σ), a few metres for multi-year medians of many transects.
Every waterline carries its own error bar
Each shoreline is corrected to mean sea level by (tide + wave setup) ÷ beach slope. Setup follows Stockdon et al. (2006) with ERA5 wave height and mean period Tm at the image date, split by wave regime because one coefficient is biased on steep, coarse beaches (Atkinson et al. 2017): the waterline's own response gives groundswell 0.46 (measured); cyclone swell 0.68 (measured); mixed / wind sea 0.35 (Stockdon default). The effective slope comes from the waterline's response to tide: tanβ ≈ 0.046 (Sentinel-2 tide coefficient -21.5 ± 1.5 m per m), by region × season where they differ. Median parts of one waterline's σ: tide 1.5 m, slope 0.4 m, setup 1.4 m, swash 5.2 m, georegistration 8.0 m, whitewater at the waterline 1.7 m, extraction 2.0 m — 9.8 m in all. That internal figure is too optimistic: benchmarks on high-energy beaches put single-image errors at 15–30 m (Vos et al. 2023), foam can push the line tens of metres seaward (Vos et al. 2019), and a steep reef-lined analogue detected the right waterline only about half the time from Landsat and Sentinel-2 (Mikkelsen et al. 2026). So every number here uses a conservative σ that adds a 12 m method floor: median 15.5 m, 10th–90th percentile 14.1–18.3 m. Here, images with whitewater beyond the waterline (84% of Sentinel-2 transect-images) read −0.3 m different from those without — no measurable foam bias in this data, which the method floor covers anyway. Scatter is larger within 200 m of the creek and the lagoon outlet (turbid water) than 1 km away. None of this has been checked against a ground survey.
| Condition | Robust SD of waterline scatter (m) | Transect-images |
|---|---|---|
| Wave height (ERA5) · <1.0 m | 4.8 | 13,359 |
| Wave height (ERA5) · 1.0–1.5 m | 5.4 | 76,428 |
| Wave height (ERA5) · 1.5–2.0 m | 5.9 | 18,895 |
| Wave height (ERA5) · ≥2.0 m | 6.7 | 2,172 |
| Season · Dec–Feb | 4.9 | 39,930 |
| Season · Mar–May | 5.7 | 33,492 |
| Season · Jun–Aug | 7.2 | 13,801 |
| Season · Sep–Nov | 5.2 | 23,631 |
| Tide at overpass · < −0.15 m | 5.5 | 23,674 |
| Tide at overpass · −0.15 to +0.15 m | 5.2 | 73,829 |
| Tide at overpass · > +0.15 m | 6.6 | 13,351 |
| Sensor · S2 | 6.0 | 48,480 |
| Sensor · L5 | 5.3 | 20,609 |
| Sensor · L7 | 5.7 | 4,681 |
| Sensor · L8 | 4.9 | 24,866 |
| Sensor · L9 | 4.8 | 12,218 |
| Distance from creek / lagoon outlet · < 200 m | 6.4 | 9,765 |
| Distance from creek / lagoon outlet · 200–500 m | 6.0 | 21,763 |
| Distance from creek / lagoon outlet · 500–1000 m | 5.3 | 24,285 |
| Distance from creek / lagoon outlet · ≥ 1000 m | 5.2 | 55,041 |
| Sentinel-2 · whitewater beyond the waterline | 6.0 | 40,832 |
| Sentinel-2 · no whitewater | 5.8 | 7,648 |
Per-image waterline noise is about 6.8 m (Sentinel-2) and 6.7 m (Landsat) as a standard deviation around each transect's running median; no change smaller than about twice that is reported as a change.
The satellite waterline is the instantaneous land/water edge (wet sand, swash and foam included), not a surveyed contour. Tide and wave setup (Stockdon et al. 2006) are corrected; run-up/swash is carried as uncertainty, not removed.
The effective beach slope (tanβ ≈ 0.046, estimated from Sentinel-2 (tide coefficient of the rolling-residual regression)) comes from the waterline's own response to tide at overpass. Overpasses fall at about 10:30–11:10 local, so the tide sampled is a narrow slice (SD 0.155 m). None of this is validated against ground surveys yet: that needs RTK profiles taken on Sentinel-2 overpass days.
Cloud cover makes the record dry-season heavy (November–May); wet-season storms are seen after the fact, often weeks later.
Landsat 5/7 geolocation is good to roughly half a pixel (~15 m) scene to scene; the 1984–2014 part of the long record is noisier than the Sentinel-2 part, and SLC-off Landsat 7 stripes (2003–2022) remove transects on many dates.
At 10–30 m a boulder revetment, a sand beach and a rock point can all hold a waterline; the imagery cannot say which is which. Wall locations and dates must come from the ground or from dated high-resolution imagery.
Property positions are Google Maps place pins (±30 m); Wall 1 and Wall 2 pins are ~12 m apart, so their frontages share transects until the owner marks the boundaries.
Nothing here measures the sea floor. The surf zone is too turbid and too foamy for satellite-derived bathymetry; a changed bottom would show only indirectly, as a moved breaker line.
Sources and method
Approach: CoastSat-style shoreline extraction (Vos, Splinter, Harley, Simmons & Turner 2019, Environmental Modelling & Software 122:104528), re-implemented on Microsoft Planetary Computer cloud-optimised imagery with windowed reads of a 5.8 × 7.2 km box.
- Planetary Computer STAC: sentinel-2-l2a tile 14QKE (2015–2026) and landsat-c2-l2 (Landsat 5/7/8/9, 1984–2026), scenes with tile cloud cover ≤ 70%; windowed COG reads of a 5.8 × 7.2 km box only
- cloud/shadow: S2 SCL classes 3, 8, 9, 10; Landsat QA_PIXEL bits 1–4; blobs < 0.5 ha dropped (whitewater and wet sand are often mislabelled cloud), then dilated 1 px; scenes with > 60% of the box bad skipped
- MNDWI = (green − SWIR1)/(green + SWIR1); Otsu threshold on the clear pixels within 200 m of the reference shoreline; marching-squares contour at that threshold
- 151 shore-normal transects, 1 km long, every 50 m and every 25 m over the named frontages, normals from a 200 m-smoothed median shoreline; shoreline = median chainage of contour points within 10 m (S2) / 18 m (Landsat) of the transect; rejected if their IQR > 25 m / 45 m or if the transect is cloudy
- image kept if ≥ 80% of transects valid; per-transect points > 3 scaled MADs (floor 5 m) from an 11-image rolling median removed
- water level: tide from the site harmonic model at each image time (UTC) plus Stockdon (2006) setup from ERA5 Hs/Tm; effective slope from a Huber regression of the waterline’s rolling-median residual on tide and √(H0L0), by region × season where they differ; shift = (tide + setup)/tanβ
- Landsat put on the S2 datum by the median L − S2 difference on images ≤ 3 days apart; results also reported Landsat-only, S2-only and for a high-quality subset (Landsat 7 SLC-off excluded)
- rates: Theil–Sen on annual medians (years with ≥ 3 clear shorelines); 95% intervals from 1,000 Monte Carlo draws (tide, slope, setup coefficient, georegistration) with images bootstrapped within years; trend forms (linear, hinge, spline) compared by leave-one-year-out error
- storms: ERA5 events above the local p95 of daily peak power, with integrated power, duration, direction, period, antecedent energy and longshore component; TC vs southern-swell regimes from HURDAT2; step = first clear S2 image ≤ 30 days after minus the 45-day pre-event median; recovery E(τ) = E0·exp(−τ/τr)
- walls and decks: controls chosen by pre-treatment similarity within correlation clusters of transect anomalies; synthetic controls; placebo reaches in space and fake dates in time; flank contrasts both sides; exposure surface E = [L/(L+d)]·side·activation
- vegetation line: most seaward NDVI > 0.3 landward of the waterline; beach width = waterline − vegetation line
- Wave setup (Stockdon et al. 2006, Coastal Engineering 53:573–588): ⟨η⟩ = 0.35 βf (H0 L0)^½ with ERA5 daily Hs and Tm; swash S = (H0 L0 (0.563 βf² + 0.004))^½ carried as uncertainty.
- Whitewater: pixels brighter than open water in the same image by 0.04 in NIR and in mean visible reflectance (0.03 and 0.05 as sensitivity), clouds separated from foam by SWIR; seaward edge of the largest foam band on each transect (gaps ≤ 60 m bridged). Forcing at overpass: Open-Meteo archive, ERA5 ocean waves (cell 17.5°N 102.0°W) and ERA5 10 m wind; tide from the site model. Matching: nearest neighbour within 0.75 SD on every covariate, with replacement; period contrasts read by exact permutation of years.
- Designs: sealed centrally in the natural-experiment ledger (shoreline_H1–H6, shoreline_A0–A5, wave_D0–D2) before these results were seen; this page reports the computed inputs and does not grade them.
Script and artifact: scripts/analyze_shoreline.py → functions/api/_findings_shoreline.js (export FINDINGS_SHORELINE, served at /api/findings-shoreline): transects with coordinates, per-transect and per-reach rates with Monte Carlo intervals, annual medians, storm events and responses, the whitewater analysis, controls, synthetic controls, placebos, the exposure surface and the owner table. Page: scripts/build_shoreline_pages.py. Imagery is read on the fly and never stored in the repository.
Sources: Microsoft Planetary Computer STAC: sentinel-2-l2a, landsat-c2-l2 (USGS Collection 2 Level-2); ERA5-Wave hourly waves at the nearest offshore node (17.5°N, 102.0°W), reduced to daily (Copernicus Climate Change Service); HURDAT2 NE Pacific 1949–2025 (NOAA NHC); La Saladita harmonic tide model (UHSLC Zihuatanejo gauge 687); Google Maps place records for the property pins.
Analysis run: 27 September 2026.
Cite as: “Is the wave at La Saladita changing? Satellite shorelines 1984–2026 and whitewater 2015–2026”, La Saladita Field Guide, lasaladita.com/findings/shoreline/, 2026-09-27.