# vijay-varadarajan/geospatial-analysis architecture

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

- Interactive diagram: https://gitdiagram.com/vijay-varadarajan/geospatial-analysis
- Repository: https://github.com/vijay-varadarajan/geospatial-analysis

## Overview

This is a geospatial analysis workflow for assessing healthcare access across Indian regions. The notebook-style Python script selects a region, obtains population and boundary data, maps population and hospitals, requests hospital driving isochrones, computes population reached, and renders an access map saved as HTML. The README also describes regional map outputs and external data/API sources. The main script excerpt supports the central calls; some preprocessing and output details are omitted, so those links are not inferred.

Main entry points: [`IndiaGeoAnalysis.py`](https://github.com/vijay-varadarajan/geospatial-analysis/blob/main/IndiaGeoAnalysis.py) (Regional analysis), [`Access_analysis_result_maps`](https://github.com/vijay-varadarajan/geospatial-analysis/tree/main/Access_analysis_result_maps) (Regional HTML maps)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_data["Spatial Data"]
  node_population[("Population data")]
  node_boundaries[("Admin boundaries")]
  node_hospital_lookup["Hospital lookup"]
end

subgraph group_analysis["Access Analysis"]
  node_workflow["Regional analysis"]
  node_region["Region selection"]
  node_population_aoi["Population AOI"]
  node_hospital_aoi["Hospitals in region"]
  node_isochrones["Driving isochrones"]
  node_access_counts["Population access counts"]
end

subgraph group_visual["Maps and Results"]
  node_population_map["Population map"]
  node_access_map["Access map"]
  node_html_results["Regional HTML maps"]
end

node_analyst(("Analyst"))
node_overpass{{"Overpass API"}}
node_openrouteservice{{"OpenRouteService"}}

node_analyst -->|"runs analysis"| node_workflow
node_workflow -->|"loads"| node_population
node_workflow -->|"downloads"| node_boundaries
node_workflow -->|"selects"| node_region
node_workflow -->|"clips population"| node_population_aoi
node_population_aoi -->|"filters"| node_population
node_workflow -->|"renders"| node_population_map
node_workflow -->|"queries"| node_hospital_lookup
node_hospital_lookup -->|"requests hospitals"| node_overpass
node_workflow -->|"filters hospitals"| node_hospital_aoi
node_hospital_lookup -->|"supplies locations"| node_hospital_aoi
node_workflow -->|"requests areas"| node_isochrones
node_isochrones -->|"requests drive reach"| node_openrouteservice
node_hospital_aoi -->|"provides hospitals"| node_isochrones
node_workflow -->|"computes access"| node_access_counts
node_access_counts -->|"tests coverage"| node_population_aoi
node_access_counts -->|"uses polygons"| node_isochrones
node_workflow -->|"renders access"| node_access_map
node_access_map -->|"saves map"| node_html_results
node_analyst -->|"views maps"| node_html_results

click node_workflow "https://github.com/vijay-varadarajan/geospatial-analysis/blob/main/IndiaGeoAnalysis.py"
click node_population "https://github.com/vijay-varadarajan/geospatial-analysis/blob/main/IndiaGeoAnalysis.py"
click node_boundaries "https://github.com/vijay-varadarajan/geospatial-analysis/blob/main/IndiaGeoAnalysis.py"
click node_region "https://github.com/vijay-varadarajan/geospatial-analysis/blob/main/IndiaGeoAnalysis.py"
click node_population_aoi "https://github.com/vijay-varadarajan/geospatial-analysis/blob/main/IndiaGeoAnalysis.py"
click node_population_map "https://github.com/vijay-varadarajan/geospatial-analysis/blob/main/IndiaGeoAnalysis.py"
click node_hospital_lookup "https://github.com/vijay-varadarajan/geospatial-analysis/blob/main/IndiaGeoAnalysis.py"
click node_hospital_aoi "https://github.com/vijay-varadarajan/geospatial-analysis/blob/main/IndiaGeoAnalysis.py"
click node_isochrones "https://github.com/vijay-varadarajan/geospatial-analysis/blob/main/IndiaGeoAnalysis.py"
click node_access_counts "https://github.com/vijay-varadarajan/geospatial-analysis/blob/main/IndiaGeoAnalysis.py"
click node_access_map "https://github.com/vijay-varadarajan/geospatial-analysis/blob/main/IndiaGeoAnalysis.py"
click node_html_results "https://github.com/vijay-varadarajan/geospatial-analysis/tree/main/Access_analysis_result_maps"

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_population,node_boundaries,node_hospital_lookup toneBlue
class node_workflow,node_region,node_population_aoi,node_hospital_aoi,node_isochrones,node_access_counts toneAmber
class node_population_map,node_access_map,node_html_results,node_overpass,node_openrouteservice toneMint
class node_analyst toneIndigo
```

## Components

### Spatial Data

- [Population data](https://github.com/vijay-varadarajan/geospatial-analysis/blob/main/IndiaGeoAnalysis.py): `IndiaGeoAnalysis.py`
- [Admin boundaries](https://github.com/vijay-varadarajan/geospatial-analysis/blob/main/IndiaGeoAnalysis.py): `IndiaGeoAnalysis.py`
- [Hospital lookup](https://github.com/vijay-varadarajan/geospatial-analysis/blob/main/IndiaGeoAnalysis.py): `IndiaGeoAnalysis.py`

### Access Analysis

- [Regional analysis](https://github.com/vijay-varadarajan/geospatial-analysis/blob/main/IndiaGeoAnalysis.py): `IndiaGeoAnalysis.py`
- [Region selection](https://github.com/vijay-varadarajan/geospatial-analysis/blob/main/IndiaGeoAnalysis.py): `IndiaGeoAnalysis.py`
- [Population AOI](https://github.com/vijay-varadarajan/geospatial-analysis/blob/main/IndiaGeoAnalysis.py): `IndiaGeoAnalysis.py`
- [Hospitals in region](https://github.com/vijay-varadarajan/geospatial-analysis/blob/main/IndiaGeoAnalysis.py): `IndiaGeoAnalysis.py`
- [Driving isochrones](https://github.com/vijay-varadarajan/geospatial-analysis/blob/main/IndiaGeoAnalysis.py): `IndiaGeoAnalysis.py`
- [Population access counts](https://github.com/vijay-varadarajan/geospatial-analysis/blob/main/IndiaGeoAnalysis.py): `IndiaGeoAnalysis.py`

### Maps and Results

- [Population map](https://github.com/vijay-varadarajan/geospatial-analysis/blob/main/IndiaGeoAnalysis.py): `IndiaGeoAnalysis.py`
- [Access map](https://github.com/vijay-varadarajan/geospatial-analysis/blob/main/IndiaGeoAnalysis.py): `IndiaGeoAnalysis.py`
- [Regional HTML maps](https://github.com/vijay-varadarajan/geospatial-analysis/tree/main/Access_analysis_result_maps): `Access_analysis_result_maps`

### Other components

- **Analyst**
- **Overpass API**
- **OpenRouteService**

## Connections

- Analyst → Regional analysis: runs analysis (evidence: `README.md`)
- Regional analysis → Population data: loads (evidence: `README.md`)
- Regional analysis → Admin boundaries: downloads (evidence: `IndiaGeoAnalysis.py`)
- Regional analysis → Region selection: selects (evidence: `IndiaGeoAnalysis.py`)
- Regional analysis → Population AOI: clips population (evidence: `IndiaGeoAnalysis.py`)
- Population AOI → Population data: filters (evidence: `IndiaGeoAnalysis.py`)
- Regional analysis → Population map: renders (evidence: `IndiaGeoAnalysis.py`)
- Regional analysis → Hospital lookup: queries (evidence: `IndiaGeoAnalysis.py`)
- Hospital lookup → Overpass API: requests hospitals (evidence: `README.md`)
- Regional analysis → Hospitals in region: filters hospitals (evidence: `IndiaGeoAnalysis.py`)
- Hospital lookup → Hospitals in region: supplies locations (evidence: `IndiaGeoAnalysis.py`)
- Regional analysis → Driving isochrones: requests areas (evidence: `IndiaGeoAnalysis.py`)
- Driving isochrones → OpenRouteService: requests drive reach (evidence: `IndiaGeoAnalysis.py`)
- Hospitals in region → Driving isochrones: provides hospitals (evidence: `IndiaGeoAnalysis.py`)
- Regional analysis → Population access counts: computes access (evidence: `IndiaGeoAnalysis.py`)
- Population access counts → Population AOI: tests coverage (evidence: `IndiaGeoAnalysis.py`)
- Population access counts → Driving isochrones: uses polygons (evidence: `IndiaGeoAnalysis.py`)
- Regional analysis → Access map: renders access (evidence: `IndiaGeoAnalysis.py`)
- Access map → Regional HTML maps: saves map (evidence: `IndiaGeoAnalysis.py`)
- Analyst → Regional HTML maps: views maps (evidence: `README.md`)
