GlacioLens-GLB-v1
Multimodal glacial lake mapping with spatial refinement and reproducible evaluation
GlacioLens maps glacial lakes from optical/SAR imagery and physical elevation using a fine-tuned TerraMind-Large encoder, UPerNet decoder and a custom spatial refinement pathway. The system is designed to improve small-lake recovery and shoreline delineation on the original image grid.
87.84% two-class mIoU · 76.76% lake IoU · 1,913 recorded GLB TEST tiles
Results · Reproduce results · Try real examples · Model weights · Method
Selected successful examples: large, clear and small lakes, using original released-model predictions. Illustrative selections, not a statistical sample. Imagery and labels: Glacial-Lake-Bench, CC BY 4.0.
Rendering and provenance
Native 256 × 256 context is preserved, with matching small-lake crops in all columns. RGB uses stored Red/Green/Blue slots 2/1/0 and a per-band 2nd–98th percentile display stretch. See the case IDs, exact counts, crop coordinates and hashes, portable renderer, and dataset/provider attribution. Difficult-case evidence remains in the results guide.
What I built
- Multimodal integration and fine-tuning. Fine-tuned a ~319M-parameter TerraMind-Large/UPerNet system combining optical imagery, stored SAR channels and physical elevation.
- Custom spatial refinement. Built a compact 57,249-parameter residual pathway that combines local image detail with live decoder features during the same forward pass.
- Task-specific training. Integrated small-object and hard-negative objectives with fixed supplementary sampling for glacial lake segmentation.
- Reproducible evaluation and inference. Released model weights, a GeoTIFF prediction CLI, an exact three-case input/output example, and CPU tools that rebuild the measured comparison tables from public saved masks.
Engineering decisions and contribution details. TerraMind and UPerNet are credited upstream architectures; this project integrates and adapts them for the task.
Results
GlacioLens-GLB-v1 scores 87.84% two-class mIoU on GLB TEST, above all 15 GLB scores reported in Cryo-Bench v5, Table VIII-B. The highest reported comparator is TerraMind at 83.97%, a difference of +3.87 percentage points.
| Evaluation population | Tiles / observations | Two-class mIoU | Lake IoU |
|---|---|---|---|
| GLB validation | 1,912 | 88.59% | 78.26% |
| GLB test | 1,913 | 87.84% | 76.76% |
| Dependent GLBC stress cohort | 1,105 | 83.75% | 69.06% |
Small lakes and boundaries
| Measure on the same recorded TEST tiles | Released frozen-encoder TerraMind | GlacioLens | Change |
|---|---|---|---|
| Boundary F1 | 64.22% | 74.23% | +10.01 pp |
| Tiny targets reaching at least 50% ground-truth coverage | 20 / 275 | 143 / 275 | +123 targets |
Tiny targets are complete 16–63-pixel ground-truth objects. Coverage measures the fraction of each target covered by the prediction. Detailed results include object F1, other references, false-detection tradeoffs and uncertainty intervals.
The published-score comparison uses additional DEM input and a different training recipe. Small-lake and boundary comparisons use the released frozen-encoder TerraMind reference. See the results guide for evaluation details.
Try GlacioLens
git clone https://github.com/AliSajedifar/GlacioLens.git
cd GlacioLens
Reproduce the results on CPU
Rebuild the four measured TEST comparisons and their uncertainty intervals from the published masks. No checkpoint, satellite download or GPU is needed. Prerequisite: Python 3.11+. Use a separate CPU Python environment and run these commands from the repository root:
python -m pip install -e .
python -m pip install numpy==2.3.5 scipy==1.17.0
python tools/reproduce_results.py --output artifacts/reproduced_results
The results reproduction guide describes the masks, exact group mapping, metric/bootstrap settings and generated tables.
Run the three-case example
Recorded NVIDIA L4 setup
The three-case example guide supplies exact original image/DEM/support files, an ordered manifest and expected masks. It covers the verified download, checkpoint, recorded L4 installation, prediction and output comparison.
Download, input checks and output comparison run on CPU; model inference uses the recorded NVIDIA L4 environment. The example preserves the qualified order and batches. L4 availability or free access is not guaranteed. For your own imagery, follow the inference guide.
The example archive is 6.61 MB; data notices retain GLB CC BY 4.0 and the applicable Copernicus GLO-30 terms. The checkpoint is a separate 1.28 GB download.
Checkpoint download and exact identity
Download the checkpoint
The checkpoint-bearing immutable revision is bc65beeff3604d51e2242cb51536d5b51ff702f3. The public file size and LFS SHA256 match the original selected checkpoint; no authentication is required for download.
With the official Hugging Face CLI installed:
hf download MaxiWb/glaciolens-glb-v1 glaciolens-glb-v1.ckpt --revision bc65beeff3604d51e2242cb51536d5b51ff702f3 --local-dir user_assets
Direct immutable checkpoint download. Verify its SHA256 against the exact identity below before prediction.
After installing the recorded scientific stack and preparing the manifest as described in the inference guide, run:
glacial-lake predict --checkpoint user_assets/glaciolens-glb-v1.ckpt --manifest input_manifest.json --output-dir p56_outputs
The CLI validates frozen resources, manifest/raster geometry, complete support and output paths before constructing the predictor. The lightweight CPU quickstart is a separate synthetic saved-mask exercise and does not require model execution.
Exact checkpoint
Technical identity: P56 EMA12 / step 11,484, seed 234, trained for 24 epochs / 22,968 updates; inference package P56-native-r1.
- File:
glaciolens-glb-v1.ckpt - Bytes: 1,280,672,641
- File SHA256:
19bcdaa9f925da61ecc46aab755b265960c632aacdec582bd3050a6b84bd4230 - Retained named-state SHA256:
902ef093300c15d95a7a27fd3771be27c25b7aeae0a0e9ed47b3486025f7345c - This is the original selected inference checkpoint, not the final optimizer-resume state; no tensor conversion or reserialization was performed for delivery.
- P53-native-r1 is a distinct historical EMA13 release.
The graph contains 319,492,514 trainable parameters, including 57,249 in the spatial path. Full VAL1912 at EMA epochs 3–24 selected the state by strict pooled two-class mIoU improvement, with earliest exact ties; selection was locked before TEST1913 and then GLBC1105. Recorded recipe and identity.
Input contract, recorded execution and qualification details
Inputs and custom inference
This checkpoint uses the project's custom CLI/API. It does not provide a Transformers AutoModel interface or standard RGB inference widget.
Inputs are registered 11-band 256×256 native rasters: zero-based slots 0,1,2,3,4,5,9,10 supply six optical and two stored SAR channels. The SAR slots are not physically verified as VV/VH. Frozen TRAIN statistics normalize the stored-value domain. Additional physical DEM is Copernicus GLO-30 DSM, EGM2008, bilinearly aligned to the native grid; finite metres are normalized in float64 by (metres - 651.663) / 928.168 then cast to float32. DEM enters both encoder and spatial branch.
Every image/DEM pixel must have genuine valid support, with a usability mask equal to 1 everywhere. Incomplete coverage is rejected. Training zero-fill behavior does not qualify missing-data inference; labels are not inputs. See target-free input preparation and the native-inference guide.
The recorded execution uses FP32 parameters, CUDA BF16 forwards and logit >= 0 for lake. Consecutive manifest rows form physical pairs, with a true odd final singleton. Other devices, batch contexts, sensors, sizes, incomplete inputs and arbitrary geographic transfer remain unqualified.
Three-case execution details
Download the verified example (6,608,007 bytes), immutable revision f9d9eab60fba1c7dd023cfcfd1cb51a4da53dd2c; SHA256 d936c393f827665f04f0fc55c47cc7a0fb9ba7d7d707fa53f31bebebe8a49661. It contains the exact original nine image/DEM/usability TIFFs, ordered manifest, three retained prediction masks and attribution/identity records. No training labels or weights are inside this small archive.
Follow the source guide, including the unchanged checkpoint and recorded strict L4 installation route. From the source root, obtain and preflight the example:
python tools/native_demo.py download
python tools/native_demo.py preflight
With the recorded L4 environment ready, run the original ordered three-case job in a fresh process:
glacial-lake predict --checkpoint user_assets/glaciolens-glb-v1.ckpt --manifest examples/native_demo/inputs.json --output-dir example_output/native_demo
python tools/native_demo.py compare --output-dir example_output/native_demo
Keep physical batches [2,1] and original TEST order 0/1/1912; expected lake pixels are 2380/382/11472. The output directory must be new. L4 availability or free access is not guaranteed. Delivery, original input/normalized-array/grid hashes and retained output masks were checked on CPU; no new model execution is claimed. GLB CC BY 4.0 and Copernicus GLO-30 adapted-data notices remain separate from Apache-2.0 for code and weights.
Qualification and publication scope
Full P56 evaluation is separate from the original P61 software-interface check. The installed CLI on NVIDIA L4 used original TEST indices 0/1/1912, batches [2,1], three views and two model calls. All three masks matched retained P56 masks exactly, with unchanged named state and original GeoTIFF geometry. Later P63 setup/preflight/Git maintenance was CPU-verified; the current complete source snapshot was not newly executed on L4. Publishing these original bytes adds no new inference or benchmark qualification. A portable full preparation/training launcher is not supplied.
Research scope
Results reflect one final seed on the recorded GLB split, with historical development exposure. See the model card for the full evaluation protocol and generalization scope. A portable end-to-end training launcher is not yet supplied.
Evaluation scope and historical comparisons
One final seed, historical TEST exposure, shared acquisitions/aliases, and dependent GLBC observations limit independent geographic claims. The fixed supplementary plan was shared with development, and internal paired uncertainty intervals include zero. P56 regressed against historical P53/P54 by 0.6537 percentage points in TEST two-class mIoU and 1.6944 points on GLBC. False-detection tradeoffs and large/border extent losses against some internal systems remain documented in the detailed results.
The paper comparison is descriptive and unpaired; it does not isolate the contribution of one architectural change. Exact ordered split IDs, available raw-source hashes, supported alias annotations and the accepted materialized supplementary pool/plan are now public and CPU-verifiable. The small qualified inference example is available above; complete training inputs/DEM and a qualified portable full-training harness remain separate requirements.
License, data and attribution
Created and maintained by Ali Sajedifar.
The maintainer explicitly licenses these selected P56 weights under Apache-2.0, independently of the source license. See LICENSE and THIRD_PARTY_NOTICES.md. The base initializer is IBM/ESA TerraMind-1.0-large, whose model card declares Apache-2.0. TerraMind and UPerNet are upstream architectures; this project integrates and adapts them through TerraTorch. Upstream source fingerprints and pinned dependency provenance remain in the source repository.
The linked qualitative figure and dataset-derived split/source/sampling metadata retain CC BY 4.0 attribution. The Zenodo dataset record credits Saurabh Kaushik, Beth Tellman, Ian Howat, Umesh Haritashya and Lalit Maurya; the dataset paper is by the first four authors. The separate three-case example archive includes original qualified GLB image/DEM/usability inputs and retained predictions, with data notices. Complete raw datasets are not bundled. Copernicus GLO-30 and adapted products retain their product terms and required attribution. Weight licensing does not relicense any dataset or external library. Licensing scope and citation guidance.
Model tree for MaxiWb/glaciolens-glb-v1
Base model
ibm-esa-geospatial/TerraMind-1.0-large