# varunnaikr/satellite-soil-moisture-fusion-ml architecture

> Architecture diagram of the GitHub repository varunnaikr/satellite-soil-moisture-fusion-ml, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/varunnaikr/satellite-soil-moisture-fusion-ml
- Repository: https://github.com/varunnaikr/satellite-soil-moisture-fusion-ml

## Overview

This is a small soil-moisture fusion script: it loads SMAP, Sentinel, and NDVI arrays, builds pixel-level features and a weighted target, trains and applies a gradient-boosting regressor, then visualizes and saves the fused array. The README provides no further capability details; the workflow is based on the single sampled source file.

Main entry points: [`fusion.py`](https://github.com/varunnaikr/satellite-soil-moisture-fusion-ml/blob/main/fusion.py) (Fusion workflow), [`smap.npy`](https://github.com/varunnaikr/satellite-soil-moisture-fusion-ml/blob/main/smap.npy) (SMAP input), [`sentinel.npy`](https://github.com/varunnaikr/satellite-soil-moisture-fusion-ml/blob/main/sentinel.npy) (Sentinel input), [`ndvi.npy`](https://github.com/varunnaikr/satellite-soil-moisture-fusion-ml/blob/main/ndvi.npy) (NDVI input)

## Diagram (Mermaid)

```mermaid
flowchart TD

node_user(("User"))
node_fusion_script["Fusion workflow<br/>[fusion.py]"]
node_smap_input["SMAP input<br/>[smap.npy]"]
node_sentinel_input["Sentinel input<br/>[sentinel.npy]"]
node_ndvi_input["NDVI input<br/>[ndvi.npy]"]
node_features_target["Features and target<br/>[fusion.py]"]
node_regressor["Gradient boosting"]
node_fused_array["Fused array<br/>[fusion.py]"]
node_visualization["Plots and comparisons<br/>[fusion.py]"]
node_output_file["Fused output<br/>[fused.npy]"]

node_user -->|"runs"| node_fusion_script
node_fusion_script -->|"reads"| node_smap_input
node_fusion_script -->|"reads"| node_sentinel_input
node_fusion_script -->|"reads"| node_ndvi_input
node_fusion_script -->|"derives"| node_features_target
node_features_target -->|"trains"| node_regressor
node_fusion_script -->|"predicts"| node_regressor
node_regressor -->|"returns predictions"| node_fused_array
node_fusion_script -->|"plots"| node_visualization
node_fusion_script -->|"saves"| node_output_file

click node_fusion_script "https://github.com/varunnaikr/satellite-soil-moisture-fusion-ml/blob/main/fusion.py"
click node_smap_input "https://github.com/varunnaikr/satellite-soil-moisture-fusion-ml/blob/main/smap.npy"
click node_sentinel_input "https://github.com/varunnaikr/satellite-soil-moisture-fusion-ml/blob/main/sentinel.npy"
click node_ndvi_input "https://github.com/varunnaikr/satellite-soil-moisture-fusion-ml/blob/main/ndvi.npy"
click node_features_target "https://github.com/varunnaikr/satellite-soil-moisture-fusion-ml/blob/main/fusion.py"
click node_fused_array "https://github.com/varunnaikr/satellite-soil-moisture-fusion-ml/blob/main/fusion.py"
click node_visualization "https://github.com/varunnaikr/satellite-soil-moisture-fusion-ml/blob/main/fusion.py"
click node_output_file "https://github.com/varunnaikr/satellite-soil-moisture-fusion-ml/blob/main/fused.npy"

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_user toneBlue
class node_fusion_script,node_smap_input,node_sentinel_input,node_ndvi_input,node_features_target,node_fused_array,node_visualization,node_output_file toneTeal
class node_regressor toneIndigo
```

## Components

### Other components

- **User**
- [Fusion workflow](https://github.com/varunnaikr/satellite-soil-moisture-fusion-ml/blob/main/fusion.py): `fusion.py`
- [SMAP input](https://github.com/varunnaikr/satellite-soil-moisture-fusion-ml/blob/main/smap.npy): `smap.npy`
- [Sentinel input](https://github.com/varunnaikr/satellite-soil-moisture-fusion-ml/blob/main/sentinel.npy): `sentinel.npy`
- [NDVI input](https://github.com/varunnaikr/satellite-soil-moisture-fusion-ml/blob/main/ndvi.npy): `ndvi.npy`
- [Features and target](https://github.com/varunnaikr/satellite-soil-moisture-fusion-ml/blob/main/fusion.py): `fusion.py`
- **Gradient boosting**
- [Fused array](https://github.com/varunnaikr/satellite-soil-moisture-fusion-ml/blob/main/fusion.py): `fusion.py`
- [Plots and comparisons](https://github.com/varunnaikr/satellite-soil-moisture-fusion-ml/blob/main/fusion.py): `fusion.py`
- [Fused output](https://github.com/varunnaikr/satellite-soil-moisture-fusion-ml/blob/main/fused.npy): `fused.npy`

## Connections

- User → Fusion workflow: runs
- Fusion workflow → SMAP input: reads
- Fusion workflow → Sentinel input: reads
- Fusion workflow → NDVI input: reads
- Fusion workflow → Features and target: derives
- Features and target → Gradient boosting: trains
- Fusion workflow → Gradient boosting: predicts
- Gradient boosting → Fused array: returns predictions
- Fusion workflow → Plots and comparisons: plots
- Fusion workflow → Fused output: saves
