// geo core

GIS and environmental data analysis

Flood hazard models, hydrology, water quality analysis and report-ready maps, built with Python and QGIS.

// services

What I do with data and maps

Hazard and exposure mapping

A map-based model of where hazard is highest and how many people it touches, with the method written down.

Enquire →

Hydrology and water network analysis

Design flows, synthetic river records or pipe network results that you can check against a reference tool.

Enquire →

Water quality and environmental data analysis

Quality indices, correlation and cluster analysis of your sample data, with figures ready for a report.

Enquire →

Report-ready site and geologic maps

Location, study area and geologic maps with a cross-section, built from your survey coordinates and open data.

Enquire →

// selected work

Models, tools and live demos

Python and QGIS tools with open code on GitHub, three of them with live demos.

Flood risk · Streamlit app

Lagos Flood Hazard Explorer

A flood hazard and population exposure model for Lagos State: a 30 m hazard index, residents counted per hazard zone and per local government area, and seven precomputed rainfall scenarios.

  • Combines eight terrain, rainfall, runoff and land cover factors with AHP weights.
  • Classifies land cover from Sentinel-2 with a Random Forest trained on ESA WorldCover.
  • Four-tab app: hazard map, point query, exposure by LGA and rainfall scenarios.
  • Python
  • Rasterio
  • GeoPandas
  • QGIS and GRASS
  • Streamlit

Site and geologic maps · Python tool

Geo Map Generator

Turns a small borehole survey (a GPS export with a few stations) into three 300 DPI report figures: a location map, a study area map on satellite imagery with contours, and a geologic map with an A to A' cross-section.

  • Built on open data (Copernicus DEM, OpenStreetMap, geoBoundaries, Esri imagery) and runs on the Python that ships with QGIS, with no GIS GUI.
  • UTM zone, label placement, section scaling, legends and captions are worked out from the data.
  • The example site uses synthetic boreholes, and every map says so.
  • Python
  • GeoPandas
  • Rasterio
  • Contextily
  • Matplotlib
  • QGIS

Stochastic hydrology · Streamlit app

Hydrology Forecaster

Fits an ARIMA model to a monthly river-discharge record and generates synthetic records of any length, then reads design flows for 2 to 500 year return periods from them.

  • Case study: the Hadejia River in Jigawa State, Nigeria, with a humid subtropical basin in Alabama as a control.
  • Estimation, diagnostics and simulation are written from scratch on NumPy, SciPy and pandas.
  • Simulates 1,000 years across 50 traces in about 0.4 s.
  • Python
  • NumPy
  • SciPy
  • pandas
  • Streamlit
Live demo: Hydrology Forecaster (opens in a new tab)

Free hosting: the first load can take up to a minute while the app wakes up.

Code on GitHub: Hydrology Forecaster (opens in a new tab)

Water distribution · Flask app

Pipe Network Analysis

A steady-state water distribution network solver using the Nodal Head Correction Method (Newton-Raphson with a sparse Jacobian), with an interactive web app.

  • Validated against EPANET: the largest head error across the test networks is about 0.003%.
  • Cross-checked by hand on the small network with the Hardy Cross method.
  • Tested on networks from 4 to 122 nodes.
  • Python
  • SciPy
  • Flask
  • WNTR
Live demo: Pipe Network Analysis (opens in a new tab)

Free hosting: the first load can take up to a minute while the app wakes up.

Code on GitHub: Pipe Network Analysis (opens in a new tab)

Environmental data · Python package

Water Quality Analysis

A Python package (wqtools) that computes the Water Quality Index and Water Pollution Index and runs the standard multivariate workflow on heavy metal data.

  • Pearson correlation with p-values, K-means with elbow and silhouette checks, factor analysis with KMO and Bartlett tests, and dendrograms.
  • Ships with the 38 samples from a published study of University of Benin campus water, so every figure regenerates with one command.
  • Runs on your own sample tables from the command line.

Earlier studies

Earlier machine learning and computer vision work.

Machine learning · Geospatial · Pilot

Lagos flood hotspots

Predicts flood-prone zones in Lagos from elevation, rainfall, land cover and population rasters aligned to a 40 m grid, with a Random Forest classifier. It reaches 98.2% overall accuracy on a held-out test set of about 596,000 pixels (73% recall and 99% precision on flooded pixels) and writes QGIS-ready probability and risk-class maps. It is a pilot built on a single flood label layer, so it shows the workflow and the relative influence of rainfall, terrain and population, not an operational forecast.

  • Python
  • scikit-learn
  • rasterio
  • QGIS
  • SRTM
  • CHIRPS

Deep learning · Computer vision

Rock and mineral identification

Classifies more than 13,000 rock and mineral photos into specific rock types and into the three geological families at once, using a MobileNetV2 model with two output heads, two-phase transfer learning and a weighted loss for rare classes. Rock family accuracy is about 65 to 67%. Exact rock name is about 39 to 41% top-1 and 58 to 59% top-3 across many classes.

  • Python
  • TensorFlow
  • Keras
  • MobileNetV2
  • Transfer learning

// spatial analysis

GIS Maps

Practice projects in QGIS and ArcGIS Pro. Select a map to view it full size.

Map Of Nasarawa State, Nigeria

A QGIS practice project visualizing elevation, road networks, major settlements, and point-to-point routes across Nasarawa State.

Kwara State, Nigeria

This QGIS map of Kwara State highlights elevation, settlements, key roads, and route connections, created to practice layout design.

Map of Kabul, Afghanistan

Developed using ArcGIS Pro, this map features airports, schools, parks, police and fire stations, settlements, and road networks.

// start a project

Have a project in mind?

Send a short description of the problem, your timeline and a budget range if you have one. I reply by email.

Email info@jubemi.com or use the form. Tell me what you need built or analysed, and by when.

Prefer to talk first? Book a call.

I use your details only to reply to you. The form is processed by Web3Forms.