CoolFace
Modelpublic

KPLabs/TerraMind-HYPERVIEW

sourceHugging Faceupdated 7mo agoView on Hugging Face
0likes
Model Card

FAST-EO Use Case 4 - Estimation of Soil Properties

This repository provides a training and evaluation pipeline for soil-property regression (P, K, Mg, pH) on Hyperview data using Terratorch and the terramind_v1_base backbone.

Overview

The goal of this use case is to fine-tune TerraMind-Base for predicting soil properties from remote-sensing inputs. The codebase supports multiple dataset splits (including external test splits) and multiple configuration variants (full vs. small vs. big vs. intuition/enmap evaluation).

Repository structure

  • —configs/
  • —Terratorch training/inference configs.
  • —Decoder variants: UNetDecoder, UperNetDecoder.
  • —Split/size variants: none (full), small, big, i1.
  • —datasets/
  • —hyperview_dataset.py: dataset with split support:
  • —test, test_dat, test_intuition, test_enmap
  • —size filters: only_11x11, exclude_11x11
  • —hyperview_datamodule.py: Lightning DataModule and transforms.
  • —callback_hooks/
  • —loss_logging_callback.py: epoch-level loss logging callback.
  • —prepare_submission.py
  • —checkpoint inference and export of submission.csv and metrics.
  • —hyperview_subimssion.py
  • —baseline, class mapping, and evaluation helpers.
  • —hybrid_models.ipynb
  • —notebook for hybrid evaluation and ranking of full/small/big submission combinations.

Configuration rules

In each config, set dataset and label paths correctly:

  • —data.init_args.data_root
  • —data.init_args.label_train_path
  • —data.init_args.label_test_path

Supported splits

Training is supported on standard Hyperview:

  • —full (test_data)
  • —small (11x11 only)
  • —big (excluding 11x11)

Testing/evaluation is supported on:

  • —Hyperview full
  • —Hyperview small
  • —Hyperview big
  • —test_dat
  • —test_intuition (intuition1)
  • —test_enmap

For test_enmap, aoi is mandatory.

Training

UperNet (default)

bash
terratorch fit -c configs/terramind_v1_base_hyperview_upernet_none.yaml

UperNet small (11x11 only)

bash
terratorch fit -c configs/terramind_v1_base_hyperview_upernet_none_small.yaml

UperNet big (excluding 11x11)

bash
terratorch fit -c configs/terramind_v1_base_hyperview_upernet_none_big.yaml

UperNet intuition split

bash
terratorch fit -c configs/terramind_v1_base_hyperview_upernet_none_i1.yaml

UNet

bash
terratorch fit -c configs/terramind_v1_base_hyperview_unet_none.yaml

End-to-end script

Run the full train+test pipeline with:

bash
./run_train_test.sh

The script executes, in order:

  • —train upernet_none and generate submissions/upernet_none
  • —train upernet_none_small and generate submissions/upernet_none_small
  • —train upernet_none_big and generate submissions/upernet_none_big
  • —train unet_none and generate submissions/unet_none
  • —evaluate upernet_none_i1 using configs/terramind_v1_base_hyperview_upernet_none_i1.yaml
  • —run external-model evaluations for:
  • —upernet_none_external
  • —upernet_none_i1_external
  • —upernet_none_enmap_20231109T101043Z_external
  • —upernet_none_enmap_20231109T101043Z

Submission generation

bash
python3 prepare_submission.py   --model_dir runs/terratorch_hyperview_upernet_none   --config configs/terramind_v1_base_hyperview_upernet_none.yaml   --output_dir submissions/upernet_none

Example for small:

bash
python3 prepare_submission.py   --model_dir runs/terratorch_hyperview_upernet_none_small   --config configs/terramind_v1_base_hyperview_upernet_none_small.yaml   --output_dir submissions/upernet_none_small

Example for big:

bash
python3 prepare_submission.py   --model_dir runs/terratorch_hyperview_upernet_none_big   --config configs/terramind_v1_base_hyperview_upernet_none_big.yaml   --output_dir submissions/upernet_none_big

Example for test_intuition:

bash
python3 prepare_submission.py   --model_dir runs/terratorch_hyperview_upernet_none   --config configs/terramind_v1_base_hyperview_upernet_none_i1.yaml   --output_dir submissions/upernet_none_i1