Skip to content
OnlyProjects
M.Sc · Data ScienceFor educational purposes only
Code included

Groundwater Level Trend Analysis and Depletion Assessment for Tamil Nadu Districts (CGWB Open Data, Python)

Mann-Kendall trends, Sen's slopes and a depletion dashboard for CGWB observation wells, built entirely on open data

Mapped to your syllabusUniversity of Madras PG CBCS · Project · Semester 4

Overview

1 min read

Groundwater Level Trend Analysis and Depletion Assessment for Tamil Nadu Districts is an M.Sc data-science project that turns the Central Ground Water Board's open well-monitoring records into an early-warning view of aquifer stress.

CGWB and state groundwater agencies measure water levels in thousands of observation wells across India every quarter — January, May, August and November — and publish the records as depth in metres below ground level (mbgl) through the India-WRIS portal. This project ingests those records for Tamil Nadu, cleans and standardises them, and then answers three questions with proper statistics: which wells show a statistically significant long-term decline, how fast is the water table falling, and what does the near future look like?

The analysis engine applies the non-parametric Mann-Kendall test with Sen's slope estimator — the standard tools for skewed environmental series — separately for pre-monsoon and post-monsoon levels, so that seasonal rainfall recharge is not misread as depletion. A forecasting module fits Holt-Winters and SARIMA models to stations with long records and validates them on held-out seasons. A Streamlit dashboard maps every station's trend category (rising, stable, falling), supports drill-down and exports the tables a dissertation chapter needs.

Everything runs in Python on a laptop: pandas for wrangling, SQLite as the analysis store, pymannkendall and statsmodels for statistics, Streamlit for the interface. The data is free, the methods are examinable, and the question matters to every panchayat in the state.

Relevant for
Tamil Nadu
Level
Intermediate · 20 weeks · solo
Common at
University of Madras, Bharathiar University
Updated
Oct 2026

Syllabus alignment

University of Madras · PG CBCS

Project · Semester 4 · 2 credits · 100 = 20 internal (best 2 of 3 presentations) + 60 report + 20 viva

Subjects this project applies
  • Data Mining
  • Machine Learning
  • Statistical Methods
  • Python Programming (Lab)
  • Database Management Systems
How it is evaluated

See your department's project guidelines.

Also fits: Bharathiar University M.Sc CS 2023-24.

What's in the box

11 parts · 5 free · 2 previewed · 4 unlock for ₹2,000

Problem & synopsis

5 min read

Problem statement

District administrations and panchayats in Tamil Nadu make borewell, tank and cropping decisions without a current, trustworthy picture of groundwater behaviour. CGWB's four-yearly resource assessment gives district averages, but the underlying observation-well measurements — which show where levels are actually falling, how fast, and since when — remain locked in quarterly downloads that almost nobody processes.

Analyses that do exist often compare unlike with unlike: pre-monsoon depths against post-monsoon depths, or raw depths whose seasonal recharge signal swamps the long-term movement. There is a need for a reproducible, statistically sound pipeline that ingests the official open data, tests every station's series for significant trend with methods appropriate for environmental data, separates seasonal behaviour from long-term change, validates any forecast on data the model has not seen, and presents results so that a district officer — not just a statistician — can act on them.

Synopsis

Abstract

Tamil Nadu depends on groundwater for more than half of its water use, yet district planning still quotes the CGWB's four-yearly resource assessment instead of watching the observation-well record continuously. This project builds a reproducible analysis pipeline over the CGWB water-level records published through India-WRIS, quantifies long-term trends for every monitoring well in the state, and presents the results as a dashboard that a non-specialist can read and act on.

Introduction

India's groundwater agencies measure thousands of observation wells four times a year. The measurements are public, but they arrive as downloads that must be joined, unit-checked and de-duplicated before any statistics make sense; few student projects — and few district offices — ever do that work. The result is that a panchayat asking "is our aquifer falling, and how fast?" has no easy, current answer.

Existing system and gap

Published groundwater studies for India typically (a) analyse one district for one season, (b) report a correlation without testing its significance, or (c) mix pre-monsoon and post-monsoon readings in one series, contaminating the long-term trend with seasonal recharge. CGWB's Dynamic Ground Water Resources assessment is authoritative but coarse — district-level, four-yearly, and modelled rather than measured. The gap this project fills: a state-wide, per-station, season-aware trend analysis with documented data cleaning, non-parametric significance testing and an honest holdout evaluation of the forecasts, delivered as reusable code instead of a single static report.

Proposed system

  • Data: quarterly water-level records (mbgl) for Tamil Nadu stations downloaded from India-WRIS, with station metadata (district, block, well type, coordinates).
  • Cleaning: strict QC — station-code harmonisation, duplicate removal, unit and outlier checks (a depth of 0.2 m or 400 m is a recording error, not an aquifer), and documented gaps.
  • Trend analysis: Mann-Kendall tests and Sen's slopes per station and season; district roll-ups ranking blocks by median slope.
  • Forecasting: Holt-Winters and SARIMA fits for stations with long records, validated on the last four held-out seasons with MAE in metres against a naive baseline.
  • Interface: a Streamlit dashboard with a station map, trend categories, forecast plots and CSV export.

Feasibility study

  • Technical: every component is open source and runs on 8 GB of RAM; a state's quarterly records are a few hundred thousand rows, comfortably within SQLite's range.
  • Economic: zero licence cost; the data is published by a government agency for public use with attribution.
  • Operational: the dashboard needs no server — it runs locally, and the same code can be pointed at any other state, which makes the work genuinely reusable beyond this report.

Objectives

  1. 01Acquire quarterly CGWB water-level records for Tamil Nadu from the India-WRIS portal and build a repeatable ingestion process that archives every download in an immutable raw zone.
  2. 02Implement strict quality control: harmonise station codes, remove duplicates, flag unit errors and physically impossible depths, and record every gap in the series instead of interpolating it silently.
  3. 03Test every station's pre-monsoon and post-monsoon series separately for monotonic trend using the Mann-Kendall test and quantify change with Sen's slope estimator.
  4. 04Rank districts by median Sen's slope and classify stations into rising, stable and falling categories with thresholds fixed in writing before results are seen.
  5. 05Fit Holt-Winters and SARIMA forecasts for stations with sufficiently long records and validate them on held-out seasons against a naive baseline using MAE.
  6. 06Deliver a Streamlit dashboard that maps trend categories, supports station drill-down, shows forecasts with their validation error, and exports the report's tables.
  7. 07Keep the whole study reproducible: ordered scripts, fixed thresholds, a QC log and unit tests for every statistic the conclusions depend on.

Scope

In scope

  • One state (Tamil Nadu); CGWB and state observation wells; quarterly measurements published through India-WRIS.
  • Depth-to-water (mbgl) as the single analysed variable; pre-monsoon and post-monsoon series kept separate throughout.
  • Trend testing (Mann-Kendall family, Sen's slope), district roll-ups, short-horizon forecasting for long-record stations, and a local dashboard.
  • Deliverables: ingestion/QC code, SQLite analysis store, dashboard, dissertation, viva deck.

Out of scope

  • Rainfall-recharge modelling or coupling with CGWB's extraction estimates — noted as future work.
  • Water quality analysis (the same portal hosts it; it would double the cleaning effort).
  • Real-time telemetry ingestion; the project works from periodic manual downloads.
  • Automated alert delivery (SMS/e-mail); alerts appear in the dashboard only.
  • Other states — the code is state-agnostic by design, but the report analyses Tamil Nadu only.

Methodology

Research design: quantitative, secondary-data study with an engineering deliverable (pipeline plus dashboard). All statistics are computed on public aggregate environmental data, so no ethics clearance is required; sources are used with attribution as published.

PhaseWeeksActivitiesOutput
1. Orientation & proposal1–2Literature on Indian groundwater trends; finalise research questions, indicator definitions and thresholdsApproved synopsis
2. Data acquisition3–5Download India-WRIS exports district by district; build the raw zone; first QC passRaw archive + QC log
3. Cleaning & store6–8Station harmonisation, duplicate/outlier handling, SQLite schema, import testsClean analysis tables
4. Trend engine9–12Mann-Kendall + Sen's slope per station and season; district roll-ups; unit testsTrend results + report tables
5. Forecasting13–15Holt-Winters/SARIMA on long-record stations; holdout validation against a naive baselineForecast module + MAE tables
6. Dashboard16–17Streamlit app: map, drill-down, forecast plots, CSV exportWorking dashboard
7. Writing & submission18–20Results chapter, figures, reproducibility re-run, PPT and mock vivaFinal report

Tools and analysis plan: Python 3 with pandas/NumPy for wrangling, pymannkendall for trend tests, statsmodels for forecasting, SQLite as the store, pytest for the statistics. Every transformation is scripted — no manual spreadsheet edits — so the chain reruns from the raw zone in one command. The significance level (α = 0.05) and the slope-category boundaries (m/year) are fixed in the proposal before any results are computed.

Architecture & tech stack

2 diagrams · 7 technologies · 2 min read

  • Python 3 (pandas, NumPy, SciPy)
  • pymannkendall (Mann-Kendall trend tests)
  • statsmodels (SARIMA, Holt-Winters)
  • SQLite (analysis store)
  • Streamlit (dashboard)
  • Matplotlib / Plotly
  • pytest (unit tests)

The system is a three-layer pipeline — acquire, analyse, present — with SQLite as the single source of truth between them.

flowchart TD
  A["India-WRIS / CGWB well-level exports (CSV)"] --> B["Raw zone: immutable archived downloads"]
  B --> C["QC: station codes, units (mbgl), duplicates, impossible depths, gaps"]
  C --> D[("SQLite analysis store")]
  D --> E["Trend engine: Mann-Kendall + Sen's slope per season"]
  D --> F["Forecasting: Holt-Winters / SARIMA per long-record station"]
  D --> G["District roll-up: median slopes, category counts"]
  E --> H["Trend results: z, p, slope, category"]
  F --> I["Holdout validation: MAE vs naive baseline"]
  H --> J["Streamlit dashboard: map, drill-down, forecasts"]
  I --> J
  G --> J
  J --> K["CSV exports for the dissertation"]
erDiagram
  DISTRICT ||--o{ STATION : contains
  STATION ||--o{ READING : "is measured in"
  STATION ||--o| TREND_RESULT : "has one per season"
  STATION ||--o{ FORECAST : "has"
  TREND_RESULT ||--o{ ALERT : "triggers"

  DISTRICT {
    string district_id PK
    string name
  }
  STATION {
    string station_id PK
    string district_id FK
    string well_type
    float latitude
    float longitude
  }
  READING {
    string reading_id PK
    string station_id FK
    string season
    date measured_on
    real depth_mbgl
  }
  TREND_RESULT {
    string result_id PK
    string station_id FK
    string season
    real sens_slope_m_per_year
    real z_statistic
    real p_value
    string trend_label
  }
  FORECAST {
    string forecast_id PK
    string station_id FK
    string horizon
    real predicted_mbgl
    real mae_holdout
  }
  ALERT {
    string alert_id PK
    string station_id FK
    string rule
    string severity
  }

Three design decisions are visible. First, the raw zone is immutable — every portal download is archived unmodified so a changed export format can never silently rewrite history. Second, season is part of the schema, not a filter bolted on later: readings carry a season attribute and trends are computed per season, which is what stops recharge from masquerading as depletion. Third, alert rules (for example, significant falling trend plus forecast exceeding the well's historical maximum depth) live in the database as rules, so the dashboard only renders what the statistics support.

Modules

6 modules

  1. Module 01

    Data acquisition & raw zone

    Downloads India-WRIS ground-water-level exports for each district, stores them unmodified with download dates and checksums, and maintains a manifest so the ingestion step can tell what has already been imported.

  2. Module 02

    Quality control & harmonisation

    Normalises station identifiers across export revisions, drops duplicates, applies range checks on depth (rejecting physically impossible readings), converts units to mbgl, and writes a QC log recording every gap and exclusion.

  3. Module 03

    Trend engine

    Runs the Mann-Kendall test and Sen's slope estimator per station per season over the cleaned series, produces z-statistics, p-values and slopes in m/year, and assigns the rising/stable/falling category from pre-declared thresholds.

  4. Module 04

    Forecasting module

    Fits Holt-Winters and SARIMA models to stations with at least ten years of usable readings, validates them on the final four held-out seasons, reports MAE in metres against a naive last-value baseline, and stores the champion model per station.

  5. Module 05

    District roll-up & alerts

    Aggregates station slopes into district medians and category counts, ranks districts by depletion, and materialises alert rows when a station combines a significant falling trend with a forecast beyond its historical maximum depth.

  6. Module 06

    Streamlit dashboard & exports

    Renders a district map with category colours, a station drill-down with the raw series, trend line and forecast band, a district league table, and one-click CSV export of the trend and forecast tables used in the report.

Slides

12 slides · titles free · bullets, notes and the .pptx unlock

  1. Slide 1

    Groundwater Level Trend Analysis for Tamil Nadu Districts

  2. Slide 2

    Why Groundwater, Why Now

  3. Slide 3

    Problem Statement

  4. Slide 4

    Data: CGWB / India-WRIS

  5. Slide 5

    Existing vs Proposed

  6. Slide 6

    Objectives

  7. Slide 7

    Pipeline Architecture

  8. Slide 8

    Trend Methods: Mann-Kendall + Sen's Slope

  9. Slide 9

    Forecasting & Honest Validation

  10. Slide 10

    Dashboard Demo

  11. Slide 11

    Testing & Reproducibility

  12. Slide 12

    Conclusion & Future Scope

Bullets, speaker notes and the .pptx · ₹2,000

The titles above are the real outline. The rest is what you present from.

Unlock for ₹2,000

Viva questions & answers

3 of 14 answered free · 11 unlock

Read each answer, close it, and say it in your own words. Your viva will ask. Now you'll know.

  1. 01Concept

    Why did you use the Mann-Kendall test instead of ordinary least-squares regression on time?

    Water-level series are non-normal, often autocorrelated and full of outliers from recording errors or dry-well conditions. Mann-Kendall is a rank-based non-parametric test, so it does not assume normality and is robust to outliers and monotonic non-linearity, which makes its significance statement trustworthy for environmental data where OLS assumptions routinely fail.

  2. 02Concept

    What does Sen's slope tell you that the Mann-Kendall z-statistic does not?

    Mann-Kendall only says whether a monotonic trend exists and how significant it is. Sen's slope is the median of pairwise slopes between all data points, giving the rate of change in metres per year plus a confidence interval. So the test answers 'is it falling?', while Sen's slope answers 'how fast?' — the number a district officer actually needs.

  3. 03Concept

    Why do you keep pre-monsoon and post-monsoon series separate?

    The two seasons measure different things: post-monsoon depth includes the monsoon's recharge, pre-monsoon depth is the year's stressed baseline. Pooling them produces a sawtooth series whose 'trend' mostly reflects the measurement calendar rather than the aquifer. Testing each season separately isolates the long-term movement that planning decisions depend on.

+11 more questions, with answers

Try the free ones out loud first. Your examiner will not accept “it's in the PPT”.

Source code & how to run

6 steps · complete source code · unlocks with the project

Unlocks with the project · ₹2,000

6 steps · source code zip

Prerequisites, install, seed data and tests, written for demo day. Plus the complete source.

Unlock for ₹2,000

READMEFIRST

256 words · unlocks with the project

What to change before it goes anywhere near a submission. Skipping it is how the demo fails live.

Unlocks with the project · ₹2,000

256 words · ~1 min read

The checklist of things to rename, re-seed and re-think so the project reads as yours.

Unlock for ₹2,000

Instructions

281 words · unlocks with the project

How to study it, adapt it and walk your examiner through it, step by step.

Unlocks with the project · ₹2,000

281 words · ~1 min read

Report structure, formatting rules and the submission checklist your department will grade.

Unlock for ₹2,000

References

7 sources

  1. India-WRIS Water Data Portal — ground water level monitoring data downloads
  2. Central Ground Water Board — Ground Water Level Monitoring (network and methodology)
  3. Central Ground Water Board — Ground Water Resource Assessment (Dynamic Ground Water Resources of India compilations)
  4. Scientific Data (Nature, 2025) — quality-controlled seasonal groundwater-level dataset for India sourced from CGWB/India-WRIS
  5. pymannkendall — a Python package for the non-parametric Mann-Kendall family of trend tests (PyPI)
  6. statsmodels — time-series analysis (SARIMA, exponential smoothing) documentation
  7. Hipel, K.W. & McLeod, A.I., Time Series Modelling of Water Resources and Environmental Systems, Elsevier

Cite this bundle

OnlyProjects. (2026). Groundwater Level Trend Analysis and Depletion Assessment for Tamil Nadu Districts (CGWB Open Data, Python): M.Sc Data Science project bundle [Educational resource]. https://onlyprojects.online/projects/msc-ds-groundwater-level-trend-cgwb-tamilnadu

Future scope

1 min read

  • Add gridded rainfall as a covariate so falling trends can be discussed against recharge, not just time.
  • Ingest CGWB's Dynamic Ground Water Resources stage-of-extraction tables and test whether measured well trends agree with the four-yearly assessments.
  • Extend the same pipeline to water-quality parameters hosted on the same portal.
  • Convert the dashboard's alert rules into a scheduled e-mail digest for a district office as a deployment exercise.
  • Port the trend engine to a state-agnostic package and benchmark runtime on all-India data.

Keep browsing

Same degree, same syllabus slot, different idea. Pick the one your guide will actually approve.