# sahniaditya007/sar-isro architecture

> Architecture diagram of the GitHub repository sahniaditya007/sar-isro, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sahniaditya007/sar-isro
- Repository: https://github.com/sahniaditya007/sar-isro

## Overview

SAR-ISRO combines a React upload interface and Flask colorization API with separate image-analysis scripts. In the documented web workflow, a user uploads a SAR image, the backend enhances and colorizes it, then returns a PNG for display. The README also documents depth estimation, classification, zero-shot classification, segmentation, and basic processing as model capabilities; they are not wired into the web API in the sampled code. Their paths are supported by the README and tree, but their internal calls were not inspected.

Main entry points: [`sar-image-colorizer/src/components/ImageUpload.js`](https://github.com/sahniaditya007/sar-isro/blob/main/sar-image-colorizer/src/components/ImageUpload.js) (Image upload), [`app.py`](https://github.com/sahniaditya007/sar-isro/blob/main/app.py) (Flask API), [`sar-image-colorizer/src/App.js`](https://github.com/sahniaditya007/sar-isro/blob/main/sar-image-colorizer/src/App.js) (App shell), [`sar-image-colorizer/src/index.js`](https://github.com/sahniaditya007/sar-isro/blob/main/sar-image-colorizer/src/index.js) (React entry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web interface"]
  node_react_entry["React entry<br/>[index.js]"]
  node_app_shell["App shell<br/>[App.js]"]
  node_image_upload["Image upload<br/>[ImageUpload.js]"]
end

subgraph group_api["Colorization API"]
  node_flask_api["Flask API<br/>[app.py]"]
  node_decode["Decode grayscale<br/>[app.py]"]
  node_enhance["Contrast enhancement<br/>[app.py]"]
  node_colorize["Color mapping<br/>[app.py]"]
  node_blend["Image blending<br/>[app.py]"]
  node_encode["PNG response<br/>[app.py]"]
end

subgraph group_models["AI model tools"]
  node_depth_model["Depth estimation<br/>[AImodel.py]"]
  node_basic_processing["Basic processing<br/>[basic.py]"]
  node_classification["Image classification<br/>[classification.py]"]
  node_zero_shot["Zero-shot classification"]
  node_segmentation["Image segmentation<br/>[segmentation.py]"]
end

node_user(("Image user"))

node_user -->|"selects and uploads"| node_image_upload
node_react_entry -->|"renders"| node_app_shell
node_app_shell -->|"renders"| node_image_upload
node_image_upload -->|"POSTs image"| node_flask_api
node_flask_api -->|"calls processing"| node_decode
node_decode -->|"returns grayscale"| node_enhance
node_enhance -->|"passes equalized image"| node_colorize
node_colorize -->|"provides mapped image"| node_blend
node_blend -->|"provides combined image"| node_encode
node_encode -->|"returns PNG"| node_flask_api
node_flask_api -->|"sends image response"| node_image_upload
node_image_upload -->|"displays result"| node_user

click node_react_entry "https://github.com/sahniaditya007/sar-isro/blob/main/sar-image-colorizer/src/index.js"
click node_app_shell "https://github.com/sahniaditya007/sar-isro/blob/main/sar-image-colorizer/src/App.js"
click node_image_upload "https://github.com/sahniaditya007/sar-isro/blob/main/sar-image-colorizer/src/components/ImageUpload.js"
click node_flask_api "https://github.com/sahniaditya007/sar-isro/blob/main/app.py"
click node_decode "https://github.com/sahniaditya007/sar-isro/blob/main/app.py"
click node_enhance "https://github.com/sahniaditya007/sar-isro/blob/main/app.py"
click node_colorize "https://github.com/sahniaditya007/sar-isro/blob/main/app.py"
click node_blend "https://github.com/sahniaditya007/sar-isro/blob/main/app.py"
click node_encode "https://github.com/sahniaditya007/sar-isro/blob/main/app.py"
click node_depth_model "https://github.com/sahniaditya007/sar-isro/blob/main/AI-Models/AImodel.py"
click node_basic_processing "https://github.com/sahniaditya007/sar-isro/blob/main/AI-Models/basic.py"
click node_classification "https://github.com/sahniaditya007/sar-isro/blob/main/AI-Models/classification.py"
click node_zero_shot "https://github.com/sahniaditya007/sar-isro/blob/main/AI-Models/zeroshotClassification.py"
click node_segmentation "https://github.com/sahniaditya007/sar-isro/blob/main/AI-Models/segmentation.py"

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_react_entry,node_app_shell,node_image_upload,node_user toneBlue
class node_flask_api,node_decode,node_enhance,node_colorize,node_blend,node_encode toneAmber
class node_depth_model,node_basic_processing,node_classification,node_zero_shot,node_segmentation toneMint
```

## Components

### Web interface

- [React entry](https://github.com/sahniaditya007/sar-isro/blob/main/sar-image-colorizer/src/index.js): `sar-image-colorizer/src/index.js`
- [App shell](https://github.com/sahniaditya007/sar-isro/blob/main/sar-image-colorizer/src/App.js): `sar-image-colorizer/src/App.js`
- [Image upload](https://github.com/sahniaditya007/sar-isro/blob/main/sar-image-colorizer/src/components/ImageUpload.js): `sar-image-colorizer/src/components/ImageUpload.js`

### Colorization API

- [Flask API](https://github.com/sahniaditya007/sar-isro/blob/main/app.py): `app.py`
- [Decode grayscale](https://github.com/sahniaditya007/sar-isro/blob/main/app.py): `app.py`
- [Contrast enhancement](https://github.com/sahniaditya007/sar-isro/blob/main/app.py): `app.py`
- [Color mapping](https://github.com/sahniaditya007/sar-isro/blob/main/app.py): `app.py`
- [Image blending](https://github.com/sahniaditya007/sar-isro/blob/main/app.py): `app.py`
- [PNG response](https://github.com/sahniaditya007/sar-isro/blob/main/app.py): `app.py`

### AI model tools

- [Depth estimation](https://github.com/sahniaditya007/sar-isro/blob/main/AI-Models/AImodel.py): `AI-Models/AImodel.py`
- [Basic processing](https://github.com/sahniaditya007/sar-isro/blob/main/AI-Models/basic.py): `AI-Models/basic.py`
- [Image classification](https://github.com/sahniaditya007/sar-isro/blob/main/AI-Models/classification.py): `AI-Models/classification.py`
- [Zero-shot classification](https://github.com/sahniaditya007/sar-isro/blob/main/AI-Models/zeroshotClassification.py): `AI-Models/zeroshotClassification.py`
- [Image segmentation](https://github.com/sahniaditya007/sar-isro/blob/main/AI-Models/segmentation.py): `AI-Models/segmentation.py`

### Other components

- **Image user**

## Connections

- Image user → Image upload: selects and uploads
- React entry → App shell: renders
- App shell → Image upload: renders
- Image upload → Flask API: POSTs image
- Flask API → Decode grayscale: calls processing
- Decode grayscale → Contrast enhancement: returns grayscale
- Contrast enhancement → Color mapping: passes equalized image
- Color mapping → Image blending: provides mapped image
- Image blending → PNG response: provides combined image
- PNG response → Flask API: returns PNG
- Flask API → Image upload: sends image response
- Image upload → Image user: displays result
