Bhargav Chintam

Geospatial analysis portfolio: six end-to-end projects built with QGIS and Python. Each one runs on one command, ships an interactive web map and a Streamlit dashboard, and includes QGIS styles and a Processing Toolbox script.

QGIS 3.28+ / PyQGISGeoPandasRasterioscikit-learnNetworkX / OSMnxStreamlitFoliumLandsat 8/9Sentinel-2
6projects, 6 domains
158automated tests (CI)
6QGIS Processing scripts
22QGIS .qml styles
< 10 sper demo run

Projects

Click a title for the full write-up (method, formulas, real data sources). The interactive maps open directly in the browser. Numbers shown are the actual output of each project's demo run (synthetic scene, seed 42).

Urban heat island analysis overview
Urban planning

Urban Heat Island Analysis

Landsat 8/9 thermal band to land surface temperature, UHI intensity classes, land-cover correlation and a Mitigation Priority Index that tells planners where trees and cool roofs help most.

Mean LST 43.2 C, max 55.4 C. LST vs impervious surface r = 0.82. 378 ha flagged high priority.
Single-channel LSTNDVI emissivityZonal statsWeighted index
Flood risk assessment overview
Hydrology and emergency planning

Multi-Criteria Flood Risk Assessment

Priority-flood DEM conditioning, D8 flow and TWI, a seven-criteria AHP hazard model, socio-economic vulnerability and a composite risk index with 10 to 500 year scenarios.

7.0 % of the area High or Very High risk, 10,202 residents exposed, 3 of 25 critical facilities at risk. AHP CR = 0.011.
Priority floodD8 / TWIAHPRisk matrix
Crop health monitoring overview
Precision agriculture

Multi-Temporal Crop Health Monitoring

A full Sentinel-2 season: cloud masking, five vegetation indices, double-logistic phenology fitting, stress anomaly detection and per-field health reports for growers and agronomists.

14 scenes, peak NDVI 0.81 at day 207, 2.7 % stressed area in 7 clusters, all 4 nitrogen-stressed fields caught by NDRE.
Sentinel-2 L2APhenologyIsolation ForestZonal stats
Healthcare access analysis overview
Public health and network analysis

Healthcare Accessibility and Site Selection

Road-network travel times, drive-time isochrones, two-step floating catchment accessibility scores, underserved block detection and a greedy maximal-coverage model for placing new facilities.

89.3 % of residents within 15 min of a hospital, 100 % after two proposed sites. 101,714 underserved people located.
DijkstraIsochrones2SFCAFacility location
Forest change detection overview
Forestry and environment

Forest Change Detection

Two-date Sentinel-2 Random Forest classification, post-classification change combined with dNBR, minimum-mapping-unit filtering, loss polygons and a full accuracy assessment.

44.8 ha of forest loss (3.2 %, 0.63 % per year) in 29 patches, 87 % within 500 m of roads. OA 0.98, kappa 0.97.
Random ForestdNBRChange detectionKappa
Solar site suitability overview
Energy and infrastructure

Utility-Scale Solar Site Suitability

Terrain derivatives, standardized criterion curves, AHP weights, hard constraint masks and a weighted overlay that yields ranked candidate parcels with MW and GWh estimates.

10 candidate sites, 1,911 MW developable, best site 549 MW. 35 % of the area excluded by constraints. AHP CR = 0.013.
Slope / aspectAHPConstraintsSite ranking

Run any project yourself

No accounts, no downloads. Each demo builds a realistic georeferenced synthetic scene, runs the real pipeline code and writes rasters, vectors, figures and a web map.

git clone https://github.com/bhargavchintam/qgis-geospatial-projects.git
cd qgis-geospatial-projects/flood-risk-assessment   # or any other project
pip install -r requirements.txt
python demo.py              # 2 to 10 seconds
streamlit run app.py        # interactive dashboard
python -m pytest tests -q   # tests

To use real data, point each project's config.yaml at your own rasters and vectors. Every README lists the public sources (USGS, Copernicus, NOAA, NLCD, Census, OpenStreetMap, NREL, HIFLD).

Skills shown across the portfolio

Grouped by what a GIS or geospatial data role usually asks for.

Raster analysis

Land surface temperature, topographic wetness index, slope, aspect, hillshade, weighted overlays, zonal statistics, connected-component filtering.

Vector and network analysis

Road graphs from lines, multi-source Dijkstra, isochrone polygons, 2SFCA accessibility, spatial joins, greedy facility location.

Remote sensing

Landsat 8/9 Collection 2 thermal, Sentinel-2 L2A with SCL cloud masks, 10 m / 20 m resampling, NDVI, EVI, SAVI, NDRE, NDWI, NBR, phenology fitting.

Machine learning on spatial data

Random Forest land cover, Isolation Forest and LOF anomalies, stratified sampling, confusion matrix, overall accuracy, kappa, producer's and user's accuracy.

Multi-criteria decision analysis

AHP pairwise matrices, consistency ratio, sensitivity analysis, criterion standardization curves, constraint mapping.

QGIS integration

Processing Toolbox algorithms (QgsProcessingAlgorithm), .qml symbology for rasters and vectors, PyQGIS, GDAL.

Engineering practice

Config-driven pipelines, synthetic data generators, 158 pytest tests, GitHub Actions CI, Streamlit apps, Folium web maps, clean READMEs with reproducible numbers.