# spaceml-org/fireclr-wildfires architecture

> Architecture diagram of the GitHub repository spaceml-org/fireclr-wildfires, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-10-01). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/spaceml-org/fireclr-wildfires
- Repository: https://github.com/spaceml-org/fireclr-wildfires

## Overview

FireCLR is a research workflow for self-supervised wildfire change detection from four-band satellite imagery. Users prepare image scenes as tiles, train a SimCLR-based encoder, then compare pre- and post-fire representations to produce cosine-distance maps and evaluate them against annotated burn-severity labels. The graph includes the sampled model and training utilities plus the README-documented preprocessing and downstream stages. Notebook internals were not sampled, so links to their detailed runtime components are left unasserted.

Main entry points: [`models/simclr.py`](https://github.com/spaceml-org/fireclr-wildfires/blob/main/models/simclr.py) (SimCLR trainer), [`notebooks/preprocessing/Preparing_Training_Data_S2.ipynb`](https://github.com/spaceml-org/fireclr-wildfires/blob/main/notebooks/preprocessing/Preparing_Training_Data_S2.ipynb) (Training tile preparation), [`notebooks/preprocessing/Preparing_Val_Data.ipynb`](https://github.com/spaceml-org/fireclr-wildfires/blob/main/notebooks/preprocessing/Preparing_Val_Data.ipynb) (Validation tile preparation), [`FireCLR_Downstream_CD_S2.ipynb`](https://github.com/spaceml-org/fireclr-wildfires/blob/main/FireCLR_Downstream_CD_S2.ipynb) (Downstream inference notebooks)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_prep["Data preparation"]
  node_training_prep["Training tile preparation"]
  node_validation_prep["Validation tile preparation"]
  node_training_data["Training tile loader<br/>[load_data.py]"]
end

subgraph group_training["Contrastive training"]
  node_view_generator["View generation"]
  node_augmentations["Image augmentations<br/>[augmentation.py]"]
  node_trainer["SimCLR trainer<br/>[simclr.py]"]
  node_fireclr["FireCLR encoder<br/>[cnn_simclr.py]"]
  node_cnn["CNN backbone<br/>[simple_cnn.py]"]
  node_checkpoint_utils["Checkpoint and metrics<br/>[save_models.py]"]
  node_training_workflow["Sensor training notebooks"]
end

subgraph group_inference["Change detection"]
  node_downstream_workflow["Downstream inference notebooks"]
  node_distance_map["Cosine distance maps"]
end

subgraph group_evaluation["Validation"]
  node_validation_metrics["Burn severity evaluation<br/>[validation.py]"]
  node_validation_workflow["Validation notebooks"]
end

node_user(("Research user"))
node_scene["Satellite scenes"]
node_annotations["Burn severity labels"]

node_user -->|"prepares tiles"| node_training_prep
node_scene -->|"provides scenes"| node_training_prep
node_user -->|"prepares scenes"| node_validation_prep
node_scene -->|"provides scenes"| node_validation_prep
node_training_prep -->|"prepares training data"| node_training_workflow
node_training_workflow -.->|"runs training"| node_trainer
node_training_data -.->|"transforms samples"| node_view_generator
node_view_generator -.->|"applies transforms"| node_augmentations
node_trainer -->|"encodes batches"| node_fireclr
node_fireclr -->|"delegates encoding"| node_cnn
node_trainer -->|"saves checkpoints"| node_checkpoint_utils
node_user -->|"runs inference"| node_downstream_workflow
node_validation_prep -->|"prepares validation tiles"| node_downstream_workflow
node_downstream_workflow -->|"produces distance maps"| node_distance_map
node_distance_map -->|"evaluates predictions"| node_validation_workflow
node_annotations -->|"supplies labels"| node_validation_workflow
node_validation_workflow -.->|"computes metrics"| node_validation_metrics

click node_training_prep "https://github.com/spaceml-org/fireclr-wildfires/blob/main/notebooks/preprocessing/Preparing_Training_Data_S2.ipynb"
click node_validation_prep "https://github.com/spaceml-org/fireclr-wildfires/blob/main/notebooks/preprocessing/Preparing_Val_Data.ipynb"
click node_training_data "https://github.com/spaceml-org/fireclr-wildfires/blob/main/utils/load_data.py"
click node_view_generator "https://github.com/spaceml-org/fireclr-wildfires/blob/main/utils/ContrastiveLearning.py"
click node_augmentations "https://github.com/spaceml-org/fireclr-wildfires/blob/main/utils/augmentation.py"
click node_trainer "https://github.com/spaceml-org/fireclr-wildfires/blob/main/models/simclr.py"
click node_fireclr "https://github.com/spaceml-org/fireclr-wildfires/blob/main/models/cnn_simclr.py"
click node_cnn "https://github.com/spaceml-org/fireclr-wildfires/blob/main/models/simple_cnn.py"
click node_checkpoint_utils "https://github.com/spaceml-org/fireclr-wildfires/blob/main/utils/save_models.py"
click node_training_workflow "https://github.com/spaceml-org/fireclr-wildfires/blob/main/Mesa_FireCLR_Training_S2.ipynb"
click node_downstream_workflow "https://github.com/spaceml-org/fireclr-wildfires/blob/main/FireCLR_Downstream_CD_S2.ipynb"
click node_distance_map "https://github.com/spaceml-org/fireclr-wildfires/blob/main/notebooks/downstream_task/S2_Downstream_validation.ipynb"
click node_validation_metrics "https://github.com/spaceml-org/fireclr-wildfires/blob/main/notebooks/downstream_task/validation.py"
click node_validation_workflow "https://github.com/spaceml-org/fireclr-wildfires/blob/main/notebooks/downstream_task/S2_Downstream_validation.ipynb"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_training_prep,node_validation_prep,node_training_data,node_user toneBlue
class node_view_generator,node_augmentations,node_trainer,node_fireclr,node_cnn,node_checkpoint_utils,node_training_workflow toneAmber
class node_downstream_workflow,node_distance_map toneMint
class node_validation_metrics,node_validation_workflow toneRose
class node_scene,node_annotations toneIndigo
```

## Components

### Data preparation

- [Training tile preparation](https://github.com/spaceml-org/fireclr-wildfires/blob/main/notebooks/preprocessing/Preparing_Training_Data_S2.ipynb): `notebooks/preprocessing/Preparing_Training_Data_S2.ipynb`
- [Validation tile preparation](https://github.com/spaceml-org/fireclr-wildfires/blob/main/notebooks/preprocessing/Preparing_Val_Data.ipynb): `notebooks/preprocessing/Preparing_Val_Data.ipynb`
- [Training tile loader](https://github.com/spaceml-org/fireclr-wildfires/blob/main/utils/load_data.py): `utils/load_data.py`

### Contrastive training

- [View generation](https://github.com/spaceml-org/fireclr-wildfires/blob/main/utils/ContrastiveLearning.py): `utils/ContrastiveLearning.py`
- [Image augmentations](https://github.com/spaceml-org/fireclr-wildfires/blob/main/utils/augmentation.py): `utils/augmentation.py`
- [SimCLR trainer](https://github.com/spaceml-org/fireclr-wildfires/blob/main/models/simclr.py): `models/simclr.py`
- [FireCLR encoder](https://github.com/spaceml-org/fireclr-wildfires/blob/main/models/cnn_simclr.py): `models/cnn_simclr.py`
- [CNN backbone](https://github.com/spaceml-org/fireclr-wildfires/blob/main/models/simple_cnn.py): `models/simple_cnn.py`
- [Checkpoint and metrics](https://github.com/spaceml-org/fireclr-wildfires/blob/main/utils/save_models.py): `utils/save_models.py`
- [Sensor training notebooks](https://github.com/spaceml-org/fireclr-wildfires/blob/main/Mesa_FireCLR_Training_S2.ipynb): `Mesa_FireCLR_Training_S2.ipynb`

### Change detection

- [Downstream inference notebooks](https://github.com/spaceml-org/fireclr-wildfires/blob/main/FireCLR_Downstream_CD_S2.ipynb): `FireCLR_Downstream_CD_S2.ipynb`
- [Cosine distance maps](https://github.com/spaceml-org/fireclr-wildfires/blob/main/notebooks/downstream_task/S2_Downstream_validation.ipynb): `notebooks/downstream_task/S2_Downstream_validation.ipynb`

### Validation

- [Burn severity evaluation](https://github.com/spaceml-org/fireclr-wildfires/blob/main/notebooks/downstream_task/validation.py): `notebooks/downstream_task/validation.py`
- [Validation notebooks](https://github.com/spaceml-org/fireclr-wildfires/blob/main/notebooks/downstream_task/S2_Downstream_validation.ipynb): `notebooks/downstream_task/S2_Downstream_validation.ipynb`

### Other components

- **Research user**
- **Satellite scenes**
- **Burn severity labels**

## Connections

- Research user → Training tile preparation: prepares tiles (evidence: `README.md`)
- Satellite scenes → Training tile preparation: provides scenes (evidence: `README.md`)
- Research user → Validation tile preparation: prepares scenes (evidence: `README.md`)
- Satellite scenes → Validation tile preparation: provides scenes (evidence: `README.md`)
- Training tile preparation → Sensor training notebooks: prepares training data (evidence: `README.md`)
- Sensor training notebooks → SimCLR trainer: runs training
- Training tile loader → View generation: transforms samples
- View generation → Image augmentations: applies transforms
- SimCLR trainer → FireCLR encoder: encodes batches (evidence: `models/simclr.py`)
- FireCLR encoder → CNN backbone: delegates encoding (evidence: `models/cnn_simclr.py`)
- SimCLR trainer → Checkpoint and metrics: saves checkpoints (evidence: `models/simclr.py`)
- Research user → Downstream inference notebooks: runs inference (evidence: `README.md`)
- Validation tile preparation → Downstream inference notebooks: prepares validation tiles (evidence: `README.md`)
- Downstream inference notebooks → Cosine distance maps: produces distance maps (evidence: `README.md`)
- Cosine distance maps → Validation notebooks: evaluates predictions (evidence: `README.md`)
- Burn severity labels → Validation notebooks: supplies labels (evidence: `README.md`)
- Validation notebooks → Burn severity evaluation: computes metrics
