WellWatch
Abandoned Oil Well Monitoring & AI Triage Pipeline
Let's get one thing straight: the United States is at a pivotal point in its environmental history. If we as a people do not start prioritizing the prevailing environmental issues that threaten to plague our planet and succumb our societies, there will be no future generations to regret these mistakes.
When we discuss these environmental issues, however, we end up missing some incredibly key topics. We here at WellWatch want to bring attention to what we believe to be the worst of them all: abandoned wells.
The Problem
In our research of prevalent environmental issues, we have become increasingly fascinated and disturbed by the distinct lack of work being done to account for the over 3 million documented abandoned oil and gas wells across the mainland United States, with potentially millions more left unregistered due to being created before regulatory compliance was mandated.
These wells pose major issues with regards to greenhouse gas emissions. The methane they leak, drip by drip, every minute, is over 80x more potent than CO₂ when left to linger in the atmosphere for 20 years.
A vast amount of these wells sit in close proximity to small town communities, water sources, agricultural land, and distinct regional forests. And yet the regulatory agencies assigned with protecting these environments either lack the tools or the resolve to properly monitor these wells and act on them at scale.
What WellWatch Does
WellWatch is an environmental monitoring platform built for one thing: finding the abandoned oil and gas wells that are actively failing and getting crews there before it gets worse.
WellWatch pulls in real-time IoT sensor data, cross-references it against closing histories, and runs it through a Gemini AI triage pipeline so local environmental agencies stop drowning in data and start focusing on what actually matters: remediation, dispatch, and action.
It ingests multi-source sensor and satellite data, stores it in a cloud data warehouse, and runs an AI triage pipeline to score every well by risk level. In doing so, it automatically generates capping instructions and crew dispatch recommendations for the highest-priority sites, handling the difficult task these agencies face in determining the size of a given threat and how much manpower and resources to delegate.
System Architecture
WellWatch is organized into five layers:
Layer 01 - Data Ingestion
- IoT Sensor Simulator - A Python script generates realistic time-series telemetry (CH₄ ppm, pressure, temperature delta, subsidence, battery & signal health) and simulates dropout events.
- PA DEP Well Registry - GeoJSON data of abandoned wells sourced from the Pennsylvania DEP via PASDA, loaded with coordinates, well status, formation, and operator metadata.
- NASA EMIT Satellite - Hyperspectral methane point-source detections from NASA's EMIT instrument, queried on-demand to confirm ground-sensor anomalies from orbit.
Layer 02 - Storage (Snowflake)
- WELLS - Master registry keyed by API number, with geospatial columns, EPA risk baselines, and plug/spud dates.
- SENSOR_READINGS - Time-series IoT telemetry clustered by
(API_NUMBER, hour)for efficient range queries. - AI_TRIAGE_RESULTS - One row per triage run, storing risk score, reasoning, recommended action, capping procedures, crew estimates, and satellite confirmation status.
Layer 03 - AI Triage (Gemini)
- Risk Scoring - Gemini 1.5 Pro receives structured sensor context per well and returns a JSON payload with a 0–100 risk score, risk category, reasoning chain, and next recommended action.
- Capping Instruction Generation - For dispatched wells, Gemini generates step-by-step capping procedures tailored to well diameter, depth, casing age, pressure readings, and proximity to populated areas.
- Satellite Confirmation - Cross-references NASA EMIT methane plume detections with ground sensor readings, setting
SATELLITE_CONFIRMEDandEMIT_PPBfields in triage results.
Layer 04 - Backend API (Python)
- FastAPI Server - REST endpoints for well data, sensor history, triage runs, and dashboard aggregates. Connects to Snowflake via
snowflake-connector-python. - Triage Orchestrator - Scheduled or on-demand runner that pulls the latest sensor window per well, calls the Gemini API, and writes results back to Snowflake. Handles batching and error recovery.
- Snowflake Connector - Manages connection pooling, parameterized queries, and bulk inserts for sensor data via the
snowflake-connector-pythonSDK.
Layer 05 - Frontend (React)
- Interactive Well Map - Color-coded markers by risk level using Mapbox GL / Leaflet. Clicking a well surfaces its sensor history, triage results, and satellite overlay. Supports filtering by state, county, and risk level.
- Agency Dashboard - Aggregate metrics including total wells monitored, active alerts, a methane debt ticker, and crew dispatch status. Visualized with Recharts / Chart.js.
- Alert & Dispatch Panel - Real-time alert feed for high-risk wells with one-click dispatch, AI-generated capping instructions, crew size estimates, and projected repair timelines.
Tech Stack
| Layer | Technologies |
|---|---|
| Data Ingestion | Python, Faker, NumPy, GeoJSON, MapLibre |
| Storage | Snowflake |
| AI / ML | Gemini 1.5 Pro, Prompt Engineering, Gemini Vision |
| Backend | Python, FastAPI, APScheduler, snowflake-connector-python |
| Frontend | React, Mapbox GL / Leaflet, Recharts / Chart.js, WebSocket |
Built With
- connector-for-python
- fastapi
- geminiapi
- google-genai-sdk
- hivemq-cloud
- html/css
- javascript
- mapbox-gl-js
- mqtt
- paho
- pydantic
- python
- snowflake
- sql
- uvicorn
Log in or sign up for Devpost to join the conversation.