TCEQ Permit Geowatcher
Interactive environmental data explorer mapping TCEQ permits, outfalls, monitoring stations, and superfund sites across Texas.
The Problem
Texas environmental permit data is scattered across multiple Texas Commission on Environmental Quality (TCEQ) systems, ArcGIS REST endpoints, and Portable Document Format (PDF) filings that don't talk to each other. If you're an environmental consultant, a concerned citizen near an industrial facility, or a civil engineer scoping a project site, answering basic questions — "What permits exist within 5 miles of this location?" or "Which outfalls discharge into this watershed?" — requires manually querying multiple databases and cross-referencing results on separate maps. There's no unified spatial view of Texas environmental infrastructure.
The regulatory landscape is complex enough without the data access problem making it worse. I wanted to build the tool I'd want if I were doing environmental due diligence: one map, all the layers, with the ability to drill into any permit or facility and see its full history.
What I Built
TCEQ Permit Geowatcher is an interactive geospatial explorer that pulls environmental data from TCEQ's ArcGIS REST Application Programming Interfaces (APIs) and renders it on a single Leaflet map with filterable layers for permits, discharge outfalls, monitoring stations, and superfund sites.
Plugin Architecture
The system uses a plugin-based connector architecture — each data source (TCEQ permits, outfalls, superfund sites, monitoring stations) has its own connector module that normalizes the source data into a common GeoJSON schema. Adding a new data source means writing one connector file without touching the core map or API code. This pattern was directly inspired by the scraper registry I built for OpenChambers, and it's designed to eventually support Environmental Protection Agency (EPA) ECHO, railroad commission data, and other environmental APIs beyond TCEQ.
Map Interface
The frontend renders all data on a Leaflet.js map with layer toggles, spatial queries (radius search, bounding box), and click-to-inspect detail panels. Plotly.js powers supplementary charts — permit type distributions, temporal trends, facility clustering analysis. The goal is to make spatial environmental data as browsable as Google Maps makes road data.
Data Pipeline
The FastAPI backend handles data fetching, caching, and GeoJSON transformation. TCEQ's ArcGIS REST endpoints return paginated results with inconsistent schemas across different feature services, so the connector layer handles pagination, field mapping, and geometry normalization. The API is containerized with Docker for consistent deployment. Planning is complete with a 5-phase implementation document, and the project is ready for Phase 1 build-out.
Tech Stack
Python 3.11+ FastAPI backend, Leaflet.js 1.9 interactive map, Plotly.js charts, TCEQ ArcGIS REST API connectors, GeoJSON spatial data, Docker containerization, plugin-based data connector architecture.
Development Timeline
Feb 2026
Architecture Design
5-phase implementation plan written. Plugin-based connector pattern designed for extensible data sources.
Q2 2026
Phase 1: MVP
Interactive map with TCEQ ArcGIS data layer. County-level choropleth with drill-down.
Q3 2026
Phase 2-3
Analytics panel, data tables, search/sort/export. Additional environmental data connectors.
2026+
Enterprise Features
Auth, Role-Based Access Control (RBAC), audit logging. Embeddable widget for intranet integration.