How evandroct/mdpi-nrt-forest-monitoring works
This repository reproduces selective-logging monitoring from source-data preparation through model training, inference, temporal filtering, and evaluation. The documented main route starts with the Zenodo corpora, pretrains an ST-MAE, fits leave-one-monitoring-unit-out soft-label regressors, then evaluates detection filters and their outputs. Separate scripts rebuild the upstream corpora from DETER-derived ROIs and HLS imagery. The graph retains README-documented evaluation branches; unsampled scripts are represented by their exact paths, with relationships included only where the README or shown source supports them.
Main entry points: build_dense_pred_variant.py Dense predictions · model.py ST-MAE model · train_classifier.py Regressor training · train.py Pretraining
Components 33
Corpus rebuilding
- ROI candidates
01_rois/build_roi_candidates.py - Eligibility scan
02_download/scan_eligibility.py - HLS acquisition
02_download/hls_stac_download.py - GeoZarr assembly
03_cubes/build_geozarr_datacubes.py - Shared eligibility
common/eligibility.py - Record download
00_data/download_record.py
Foundation model
- Pretraining dataset
04_pretraining/dataset.py - ST-MAE model
04_pretraining/model.py - Pretraining
04_pretraining/train.py - Training curriculum
04_pretraining/recipes/train_extend.py
Downstream regression
- Crop caches
06_regressor/build_caches.py - Soft-label dataset
common/dataset_classifier.py - Classifier head
common/classifier_head.py - Regressor training
06_regressor/train_classifier.py - LOO-CV orchestration
06_regressor/loocv_chain.py - OOF aggregation
06_regressor/agg_oof.py
Prediction products
- Raster inference
05_inference/predict_geotiffs.py - Index VRTs
05_inference/make_indices_vrts.py
Detection evaluation
- Dense predictions
07_detector/build_dense_pred_variant.py - Kernel sweep
07_detector/sweep_kernels.py - Nested evaluation
07_detector/nested_sweep.py - Nested results
07_detector/make_nested_tables.py - Negative test
07_detector/negative_test/evaluate_targets.py - Target selection
07_detector/negative_test/select_targets.py - Target scoring
07_detector/negative_test/score_targets.py - DETER survey
07_detector/deter_alerts/deter_survey.py - Alert tables
07_detector/deter_alerts/make_deter_tables.py - MU numbering
07_detector/paper_mu_numbers.py - Kernel summaries
07_detector/paper_mu_numbers.py
Other components
- Pipeline operator
- Zenodo record
- DETER alerts
- HLS imagery
Connections 45
- Pipeline operator → Record download: fetch record
README.md - Zenodo record → Record download: provides archives
README.md - Pipeline operator → ROI candidates: rebuild corpora
README.md - DETER alerts → ROI candidates: derives ROIs
README.md - ROI candidates → Eligibility scan: screens candidates
README.md - Eligibility scan → Shared eligibility: uses rules
02_download/scan_eligibility.py - Pipeline operator → HLS acquisition: acquire imagery
README.md - HLS imagery → HLS acquisition: supplies scenes
README.md - HLS acquisition → GeoZarr assembly: assembles imagery
README.md - Pipeline operator → Pretraining: train foundation
README.md - Pretraining dataset → Shared eligibility: uses rules
04_pretraining/dataset.py - Pretraining → Pretraining dataset: loads samples
04_pretraining/train.py - Pretraining → ST-MAE model: trains model
04_pretraining/train.py - Training curriculum → Pretraining: launches stages
README.md - Pipeline operator → LOO-CV orchestration: run cross-validation
README.md - LOO-CV orchestration → Regressor training: runs folds
README.md - Pipeline operator → Crop caches: build caches
README.md - Crop caches → Soft-label dataset: prepares variants
06_regressor/build_caches.py - Regressor training → Soft-label dataset: loads labels
06_regressor/train_classifier.py - Regressor training → ST-MAE model: loads trunk
06_regressor/train_classifier.py - Regressor training → Classifier head: fits head
06_regressor/train_classifier.py - Pipeline operator → OOF aggregation: aggregate metrics
README.md - Pipeline operator → Raster inference: run inference
README.md - Raster inference → ST-MAE model: loads checkpoint model
05_inference/predict_geotiffs.py - Pipeline operator → Index VRTs: create views
05_inference/make_indices_vrts.py - Index VRTs → Raster inference: reads prediction rasters
05_inference/make_indices_vrts.py - Pipeline operator → Dense predictions: build dense output
README.md - Dense predictions → ST-MAE model: uses trunk
07_detector/build_dense_pred_variant.py - Dense predictions → Classifier head: uses classifier
07_detector/build_dense_pred_variant.py - Dense predictions → Soft-label dataset: uses dataset logic
07_detector/build_dense_pred_variant.py - Pipeline operator → Kernel sweep: search filters
README.md - Kernel sweep → Dense predictions: reads predictions
07_detector/sweep_kernels.py - Pipeline operator → Nested evaluation: evaluate nested folds
README.md - Nested evaluation → Kernel sweep: uses kernels
07_detector/nested_sweep.py - Pipeline operator → Nested results: summarize nested results
README.md - Nested results → MU numbering: imports numbering
07_detector/make_nested_tables.py - Pipeline operator → Target selection: select test targets
README.md - Pipeline operator → Negative test: evaluate negatives
README.md - Negative test → Kernel sweep: uses filter kernels
07_detector/negative_test/evaluate_targets.py - Target scoring → ST-MAE model: runs trunk
07_detector/negative_test/score_targets.py - Target scoring → Classifier head: scores with head
07_detector/negative_test/score_targets.py - Pipeline operator → DETER survey: survey alert periods
README.md - Pipeline operator → Alert tables: build alert tables
README.md - Alert tables → MU numbering: imports numbering
07_detector/deter_alerts/make_deter_tables.py - Pipeline operator → Kernel summaries: report kernel metrics
README.md