Environmental engineer working where satellite remote sensing, hydrology and machine learning meet. I build Earth-observation workflows in Google Earth Engine and Python: mapping surface water and wetlands, tracking change over decades, and turning the results into decision support for water management.
- 🛰️ Focus: wetland and surface-water change, land-cover classification, change detection, water-allocation modelling
- 🌍 Live demo: Global wetland water-area trends, 1984–2025, an interactive map of 40 years of Landsat trends for ~600 lakes and wetlands
- 📄 Latest paper: Scenario-driven decision support system for assessing water balance, Journal of Hydrology (2026)
- 🔎 Peer reviewer for Journal of Environmental Management, Agricultural Water Management and Journal of Hydrology
| Tool | What it does | Stack |
|---|---|---|
| gee-no2-station-tracker | Sentinel-5P tropospheric NO₂ time series at air-quality stations, with charts and CSV export | Earth Engine JS |
| gee-cropland-dynamics | 30 m cropland gain / loss / stable maps (2003–2019) with area statistics | Earth Engine JS |
| gee-station-temperature-timeseries | Daily ERA5-Land temperature (mean, min, max) at many stations as one tidy CSV | Earth Engine JS |
| gee-elevation-cross-section | Terrain profiles every n metres along any line from SRTM or Copernicus DEM | Earth Engine JS |
| gee-wetland-water-rf | Landsat Random Forest mapping of open water in lakes and wetlands, with accuracy assessment and a water-area series since 1984 | Earth Engine JS |
| gee-air-quality-toolkit | Monthly NO₂, SO₂, CO, O₃, HCHO (Sentinel-5P) and AOD (MODIS) for a region and its stations in one tidy CSV | Earth Engine JS |
| gee-lake-chlorophyll | Sentinel-2 NDCI chlorophyll-a and algal-bloom monitoring for lakes, compared with MODIS-Aqua | Earth Engine JS |
| gee-basin-hydroclimate | Monthly precipitation, ET, temperature and GRACE water storage averaged over any river basin | Earth Engine JS |
| gee-landsat-timelapse | Animated 40-year Landsat timelapse (GIF) of any lake or wetland with the shoreline traced | Earth Engine JS |
| era5-pressure-level-downloader | Command-line downloader for ERA5 monthly pressure-level data from the Climate Data Store | Python |
| raster-point-sampler | Sample a stack of rasters at points into one Excel / CSV / GeoPackage table | Python |
| gee-water-resources-course | Six-lesson Earth Engine course for hydrology students: water frequency, downscaling, trend tests | Earth Engine JS · teaching |
If one of these tools saves you time, a ⭐ on the repository helps others find it.
