This project supports public authorities with actionable geospatial insights
for Bucharest, focusing on urban heat islands, green space distribution, and
environmental challenges.
It combines GIS workflows (QGIS) and machine learning to analyze satellite data
and propose solutions for urban planning.

Urban heat map of Bucharest highlighting high-temperature zones
- Map urban heat islands (UHI) using satellite thermal data.
- Analyze green space distribution and urban expansion.
- Assess air quality using satellite-derived proxies.
- Provide recommendations for green infrastructure.
- Landsat 8/9: Thermal band for surface temperature.
- Sentinel-2: NDVI for vegetation analysis.
- Sentinel-5P: NO2 for air quality proxy.
-
Urban Heat Island Mapping
- Extract thermal band (B10) from Landsat.
- Calculate radiance and brightness temperature.
- Visualize heatmap in QGIS.
-
NDVI and Green Space Analysis
- Calculate NDVI from Sentinel-2 bands.
- Classify vegetation health (NDVI > 0.3 == good).
- Overlay hot zones and poor vegetation to identify areas needing greening.
-
Population Density and Air Quality
- Integrate population density and NO2 layers.
- Correlate with heat and vegetation maps.
-
Export Layers
- Save processed layers as GeoTIFFs for further analysis.
- Predict land surface temperature using satellite-derived features.
- Analyze feature importance for urban heat mitigation.
- Exported multi-band GeoTIFF from GEE containing NDVI, NO2, vegetation, and LST for Bucharest.
- Uploaded GeoTIFF to Google Drive for analysis in Colab.
-
Data Loading
- Read GeoTIFF using
rasterio. - Extract features (NDVI, NO2, vegetation) and target (LST).
- Read GeoTIFF using
-
Preprocessing
- Reshape data so each pixel is a sample.
- Remove missing values.
-
Model Training
- Split data into train/test sets.
- Train Random Forest regressor to predict LST.
-
Evaluation
- Calculate MAE, RMSE, and R2.
- Visualize observed vs. predicted temperatures.
-
Spatial Mapping
- Predict temperature for all pixels.
- Visualize predicted temperature map and overlay vegetation zones.
-
Export Results
- Save predicted temperature map as GeoTIFF for GIS use.
- Plot feature importance.
- Loads the administrative boundary for Bucharest from the GAUL dataset.
- Loads pre-processed NDVI, NO2, and vegetation layers from GEE assets.
- Computes Land Surface Temperature (LST) from Landsat 9 thermal band (ST_B10), averaged over the summer months of 2024.
- Clips all layers to the Bucharest boundary.
- Stacks NDVI, NO2, vegetation, and LST bands into a single multi-band image.
- Casts all bands to Float32 for compatibility.
- Visualizes each layer for sanity check in the GEE map viewer.
- Exports the stacked image as a GeoTIFF to Google Drive for use in Colab.
Purpose:
- This script generates the multi-band GeoTIFF containing all relevant features (NDVI, NO2, vegetation, LST) for Bucharest.
- The exported file serves as the input for the machine learning analysis.
- Open the script in the GEE Code Editor.
- Run the script to process and export the data.
- Download the exported GeoTIFF from Google Drive and upload to Colab.
-
QGIS Analysis:
- Follow the workflow steps above using QGIS and the provided satellite layers.
-
GEE Data Export:
- Use the provided GEE script to export the required GeoTIFF.
-
Colab ML Analysis:
- Open the Colab notebook.
- Mount Google Drive and update file paths as needed.
- Run all cells to reproduce the analysis and results.
- QGIS (latest version)
- Google Earth Engine account
- Google Colab (Python 3)
- Python libraries: rasterio, scikit-learn, matplotlib, pandas
- Integrate population density data to further analyze the relationship between urban heat islands, green space distribution, and demographic patterns, enabling more targeted recommendations for urban planning and environmental interventions.