# rishat8903/nasa-space-apps-delta-pulse architecture

> Architecture diagram of the GitHub repository rishat8903/nasa-space-apps-delta-pulse, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/rishat8903/nasa-space-apps-delta-pulse
- Repository: https://github.com/rishat8903/nasa-space-apps-delta-pulse

## Overview

Delta Pulse is a Bangladesh flood-monitoring geospatial application backed by a Python satellite-processing pipeline. Its principal workflow selects NISAR-covered study areas, acquires and preprocesses radar and ancillary data, derives flood and crop products, estimates human and agricultural exposure, validates results against other sensors, and presents maps and Change Radio sonification in the web app. The graph follows documented and excerpted relationships; some export-to-interface wiring and unsampled frontend capabilities are supported only at the README level.

Main entry points: [`delta-pulse/pipeline/01b_fetch_ancillary.py`](https://github.com/rishat8903/nasa-space-apps-delta-pulse/blob/main/delta-pulse/pipeline/01b_fetch_ancillary.py) (Ancillary fetch), [`delta-pulse/pipeline/03_water.py`](https://github.com/rishat8903/nasa-space-apps-delta-pulse/blob/main/delta-pulse/pipeline/03_water.py) (Flood dynamics), [`delta-pulse/pipeline/07_export_web.py`](https://github.com/rishat8903/nasa-space-apps-delta-pulse/blob/main/delta-pulse/pipeline/07_export_web.py) (Web export), [`delta-pulse/pipeline/01_fetch.py`](https://github.com/rishat8903/nasa-space-apps-delta-pulse/blob/main/delta-pulse/pipeline/01_fetch.py) (NISAR fetch)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_acquisition["Coverage and acquisition"]
  node_coverage["AOI coverage<br/>[00_coverage.py]"]
  node_nisar["NISAR fetch<br/>[01_fetch.py]"]
  node_ancillary["Ancillary fetch"]
end

subgraph group_analysis["Radar analysis"]
  node_preprocess["Radar preprocessing<br/>[02_preprocess.py]"]
  node_water["Flood dynamics<br/>[03_water.py]"]
  node_paddy["Paddy phenology<br/>[04_paddy.py]"]
end

subgraph group_assessment["Impact and validation"]
  node_impact["Exposure estimates<br/>[05_impact.py]"]
  node_validation["Sensor validation<br/>[06_validate.py]"]
end

subgraph group_presentation["Web experience"]
  node_export["Web export<br/>[07_export_web.py]"]
  node_webapp["Interactive observatory<br/>[app.js]"]
  node_web_data[("Web data")]
  node_map_overlays["Map overlays"]
end

node_user(("User"))
node_asf{{"NASA ASF"}}
node_data_sources{{"Ancillary data sources"}}

node_user -->|"explores maps"| node_webapp
node_coverage -->|"queries scenes"| node_asf
node_coverage -->|"provides coverage catalog"| node_nisar
node_nisar -->|"streams radar data"| node_asf
node_ancillary -->|"downloads datasets"| node_data_sources
node_nisar -->|"provides raw cubes"| node_preprocess
node_ancillary -->|"provides JRC and land cover"| node_water
node_preprocess -->|"provides processed radar"| node_water
node_preprocess -->|"provides radar time series"| node_paddy
node_ancillary -->|"provides cropland mask"| node_paddy
node_water -->|"provides flood masks"| node_impact
node_ancillary -->|"provides population and boundaries"| node_impact
node_water -->|"provides water products"| node_validation
node_ancillary -->|"provides comparison sensors"| node_validation
node_export -->|"writes summaries"| node_web_data
node_export -->|"writes overlays"| node_map_overlays
node_export -->|"serves maps and results"| node_webapp
node_webapp -->|"renders overlays"| node_map_overlays

click node_coverage "https://github.com/rishat8903/nasa-space-apps-delta-pulse/blob/main/delta-pulse/pipeline/00_coverage.py"
click node_nisar "https://github.com/rishat8903/nasa-space-apps-delta-pulse/blob/main/delta-pulse/pipeline/01_fetch.py"
click node_ancillary "https://github.com/rishat8903/nasa-space-apps-delta-pulse/blob/main/delta-pulse/pipeline/01b_fetch_ancillary.py"
click node_preprocess "https://github.com/rishat8903/nasa-space-apps-delta-pulse/blob/main/delta-pulse/pipeline/02_preprocess.py"
click node_water "https://github.com/rishat8903/nasa-space-apps-delta-pulse/blob/main/delta-pulse/pipeline/03_water.py"
click node_paddy "https://github.com/rishat8903/nasa-space-apps-delta-pulse/blob/main/delta-pulse/pipeline/04_paddy.py"
click node_impact "https://github.com/rishat8903/nasa-space-apps-delta-pulse/blob/main/delta-pulse/pipeline/05_impact.py"
click node_validation "https://github.com/rishat8903/nasa-space-apps-delta-pulse/blob/main/delta-pulse/pipeline/06_validate.py"
click node_export "https://github.com/rishat8903/nasa-space-apps-delta-pulse/blob/main/delta-pulse/pipeline/07_export_web.py"
click node_webapp "https://github.com/rishat8903/nasa-space-apps-delta-pulse/blob/main/delta-pulse/web/src/app.js"
click node_web_data "https://github.com/rishat8903/nasa-space-apps-delta-pulse/tree/main/delta-pulse/web/data"
click node_map_overlays "https://github.com/rishat8903/nasa-space-apps-delta-pulse/tree/main/delta-pulse/web/images/overlays"

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_coverage,node_nisar,node_ancillary,node_user toneBlue
class node_preprocess,node_water,node_paddy toneAmber
class node_impact,node_validation toneMint
class node_export,node_webapp,node_web_data,node_map_overlays toneRose
class node_asf,node_data_sources toneIndigo
```

## Components

### Coverage and acquisition

- [AOI coverage](https://github.com/rishat8903/nasa-space-apps-delta-pulse/blob/main/delta-pulse/pipeline/00_coverage.py): `delta-pulse/pipeline/00_coverage.py`
- [NISAR fetch](https://github.com/rishat8903/nasa-space-apps-delta-pulse/blob/main/delta-pulse/pipeline/01_fetch.py): `delta-pulse/pipeline/01_fetch.py`
- [Ancillary fetch](https://github.com/rishat8903/nasa-space-apps-delta-pulse/blob/main/delta-pulse/pipeline/01b_fetch_ancillary.py): `delta-pulse/pipeline/01b_fetch_ancillary.py`

### Radar analysis

- [Radar preprocessing](https://github.com/rishat8903/nasa-space-apps-delta-pulse/blob/main/delta-pulse/pipeline/02_preprocess.py): `delta-pulse/pipeline/02_preprocess.py`
- [Flood dynamics](https://github.com/rishat8903/nasa-space-apps-delta-pulse/blob/main/delta-pulse/pipeline/03_water.py): `delta-pulse/pipeline/03_water.py`
- [Paddy phenology](https://github.com/rishat8903/nasa-space-apps-delta-pulse/blob/main/delta-pulse/pipeline/04_paddy.py): `delta-pulse/pipeline/04_paddy.py`

### Impact and validation

- [Exposure estimates](https://github.com/rishat8903/nasa-space-apps-delta-pulse/blob/main/delta-pulse/pipeline/05_impact.py): `delta-pulse/pipeline/05_impact.py`
- [Sensor validation](https://github.com/rishat8903/nasa-space-apps-delta-pulse/blob/main/delta-pulse/pipeline/06_validate.py): `delta-pulse/pipeline/06_validate.py`

### Web experience

- [Web export](https://github.com/rishat8903/nasa-space-apps-delta-pulse/blob/main/delta-pulse/pipeline/07_export_web.py): `delta-pulse/pipeline/07_export_web.py`
- [Interactive observatory](https://github.com/rishat8903/nasa-space-apps-delta-pulse/blob/main/delta-pulse/web/src/app.js): `delta-pulse/web/src/app.js`
- [Web data](https://github.com/rishat8903/nasa-space-apps-delta-pulse/tree/main/delta-pulse/web/data): `delta-pulse/web/data`
- [Map overlays](https://github.com/rishat8903/nasa-space-apps-delta-pulse/tree/main/delta-pulse/web/images/overlays): `delta-pulse/web/images/overlays`

### Other components

- **User**
- **NASA ASF**
- **Ancillary data sources**

## Connections

- User → Interactive observatory: explores maps (evidence: `README.md`)
- AOI coverage → NASA ASF: queries scenes (evidence: `delta-pulse/pipeline/00_coverage.py`)
- AOI coverage → NISAR fetch: provides coverage catalog (evidence: `delta-pulse/pipeline/01_fetch.py`)
- NISAR fetch → NASA ASF: streams radar data (evidence: `delta-pulse/pipeline/01_fetch.py`)
- Ancillary fetch → Ancillary data sources: downloads datasets (evidence: `delta-pulse/pipeline/01b_fetch_ancillary.py`)
- NISAR fetch → Radar preprocessing: provides raw cubes (evidence: `delta-pulse/pipeline/02_preprocess.py`)
- Ancillary fetch → Flood dynamics: provides JRC and land cover (evidence: `delta-pulse/pipeline/03_water.py`)
- Radar preprocessing → Flood dynamics: provides processed radar (evidence: `delta-pulse/pipeline/03_water.py`)
- Radar preprocessing → Paddy phenology: provides radar time series (evidence: `delta-pulse/pipeline/04_paddy.py`)
- Ancillary fetch → Paddy phenology: provides cropland mask (evidence: `delta-pulse/pipeline/04_paddy.py`)
- Flood dynamics → Exposure estimates: provides flood masks (evidence: `delta-pulse/pipeline/05_impact.py`)
- Ancillary fetch → Exposure estimates: provides population and boundaries (evidence: `delta-pulse/pipeline/05_impact.py`)
- Flood dynamics → Sensor validation: provides water products (evidence: `delta-pulse/pipeline/06_validate.py`)
- Ancillary fetch → Sensor validation: provides comparison sensors (evidence: `delta-pulse/pipeline/06_validate.py`)
- Web export → Web data: writes summaries (evidence: `delta-pulse/pipeline/07_export_web.py`)
- Web export → Map overlays: writes overlays (evidence: `delta-pulse/pipeline/07_export_web.py`)
- Web export → Interactive observatory: serves maps and results (evidence: `README.md`)
- Interactive observatory → Map overlays: renders overlays (evidence: `delta-pulse/web/src/app.js`)
