Inspiration

Under the Clean Air Act Title V, industrial environmental compliance suffers from a fundamental structural asymmetry: regulatory enforcement relies on industrial self-reporting (the State of Texas Electronic Emissions Reporting System, or TCEQ STEERS), while physical ambient monitoring networks (EPA Air Quality System and State Continuous Ambient Monitoring Stations, or CAMS) continuously measure actual atmospheric chemical exposure.

When industrial facilities experience "upset" emissions during startup, shutdown, or malfunction (SSM) procedures, operators retain broad statutory latitude to classify unpermitted chemical releases as "de minimis" or claim affirmative defense exemptions. Consequently, fenceline communities frequently endure hazardous episodic spikes of carcinogenic Volatile Organic Compounds (Benzene, 1,3-Butadiene) and acid gases ((\text{SO}_2, \text{H}_2\text{S})) that leave no trace in regulatory incident databases. Regulatory agencies typically operate on an 18-to-24 month administrative backlog before cross-referencing monitoring data with facility records.

We built PlumePrint to eliminate this enforcement latency. PlumePrint is an open-source, deterministic forensic framework that systematically reconciles these "Two Ledgers"—reconstructing atmospheric transport vectors from continuous ground telemetry to isolate unrecorded industrial releases and automatically synthesizing legally actionable public records petitions under the Texas Public Information Act (§552) and Federal FOIA.

PlumePrint Dual-Ledger Synchronization Timeline


What it does

PlumePrint ingests continuous hourly ambient monitoring data, meteorological boundary-layer observations, and statutory industrial incident filings across Texas industrial corridors to perform deterministic, auditable attribution.

  1. Episodic Excursion Detection: The engine decomposes continuous chemical time series (C_k(t)) into a rolling 24-hour background baseline (B_k(t) = \text{median}{24\text{h}}(C_k(t))) and isolates statistically significant episodic excursions: $$C_k(t) - B_k(t) \ge 3\sigma_k \quad \land \quad C_k(t) \ge C{\text{threshold}}(k)$$

  2. Eulerian Advection Vector Inversion: For any detected excursion, PlumePrint evaluates the planetary boundary layer wind velocity (\bar{u}(t)) and meteorological wind direction (\theta_{\text{wind}}(t)). It projects a conservative (45^\circ) atmospheric upwind acceptance cone ((\Delta\theta \le 22.5^\circ)) from the receptor coordinates (\mathbf{x}R) toward candidate industrial emitters (\mathbf{x}{S_i}): $$\Delta\theta(R, S_i, t) = \left| \left( \theta_{\text{bearing}}(R, S_i) - \theta_{\text{wind}}(t) + 180^\circ \right) \pmod{360^\circ} - 180^\circ \right|$$ It calculates physical transport delay (\tau) accounting for advection travel time: $$\tau(R, S_i) = \frac{d(R, S_i)}{\bar{u}(t) \cdot \cos(\Delta\theta)}$$

Atmospheric Upwind Spatial Cone Geometry

  1. Deterministic Classification DAG: Candidate facilities are routed through a strict, transparent finite-state decision tree, assigning mutually exclusive verdicts:
    • EXPLAINED_BY_REPORT: Physical upwind alignment corroborates an active self-reported STEERS filing with matching chemical species.
    • UNEXPLAINED_EXCESS: A statistically significant ambient excursion with unambiguous upwind alignment to an industrial source, but zero corresponding regulatory filings.
    • MULTI_SOURCE_CONFLUENCE: Multiple permitted facilities concurrently situated within the active upwind advection cone.
    • BACKGROUND_ELEVATION: Regional elevation lacking local point-source alignment.

Deterministic Episode Verdict Decision Tree

  1. Multi-Factor Forensic Scoring: Attribution certainty is quantified by a bounded composite score (S_{\text{forensic}} \in [0.0, 1.0]): $$S_{\text{forensic}} = 0.35 S_{\text{spatial}} + 0.25 S_{\text{temporal}} + 0.25 S_{\text{chemical}} + 0.15 S_{\text{regulatory}}$$

  2. Automated Statutory Records Petition Generator: For every unexplained episode, PlumePrint automatically compiles an evidentiary package and generates a formal public records request under the Texas Public Information Act (Tex. Gov't Code § 552) and 5 U.S.C. § 552. The petition injects the target plant's Regulated Entity Number (RN), Title V permit ID, exact transport window, and specific operating units (flares, crude distillation, fluid catalytic crackers) to demand raw CEMS and operating logs.

PlumePrint Interactive 45-Degree Upwind Advection Cone


How we built it

PlumePrint is engineered as an institutional-grade, zero-dependency analytical platform:

  • Analytical Core (Python 3.11): Vectorized geospatial pipelines using NumPy and Pandas to process multi-year, multi-station datasets across Texas City, Port Arthur, and Big Spring (8,760 operating hours per site in CY 2023). Great-circle distances are computed via Haversine and converted to planar UTM projections for meter-accurate distance scaling.
  • Data Harmonization Pipeline: Hermetic ingestion modules for EPA AQS REST API, TCEQ STEERS web databases (parsing semi-structured HTML, PDF, and CSV incident reports), and NOAA Integrated Surface Database (ISD) boundary-layer wind observations.
  • Frontend & Visualization (Next.js 15, React 19, TypeScript): A zero-external-dependency static web application. Features custom SVG and Canvas dual-ledger timeline charts, real-time polar wind rose renderers, and interactive geographic coordinate mappers projecting dynamic (45^\circ) spatial cones directly onto regional fenceline layouts.
  • Static Edge Architecture: Compiled to 510 static HTML/JS pages (next export) that run completely client-side. The entire analytical suite and all case files can be served locally or via edge CDN without requiring external map tile keys or runtime database connections.

System Architecture


Challenges we ran into

  1. Reconciling Discrete Regulatory Events with Continuous Physical Time Series: Self-reported STEERS filings record event durations ranging from 30 minutes to multiple days, whereas ambient monitors record discrete 1-hour or 5-minute averages. We resolved this by formulating dynamic synchronization windows (t_{\text{episode}} \pm (\tau + \delta t)), where transport delay (\tau) is continuously adjusted for instantaneous wind speed.
  2. Dense Point-Source Clustering: In complex petrochemical hubs like Texas City, multiple major facilities (Marathon, Valero, INEOS) operate within close proximity. Differentiating single-source attribution from multi-source confluence required implementing strict angular cone boundaries ((\pm 22.5^\circ)) and exponential spatial distance decay penalties ((d_{\text{scale}} = 10.0\text{ km})).
  3. Decoupling Client-Side Formatters: During Next.js static page compilation, standard node filesystem imports in shared utilities caused Webpack bundling failures in client components. We re-engineered the architecture to isolate pure TypeScript formatting primitives from node data loaders, achieving 100% clean builds across 510 static routes.

Accomplishments that we're proud of

  • Uncovered a 58.3% Unrecorded Exceedance Rate: In our full calendar year 2023 evaluation of the Texas City industrial corridor (CAMS 601), PlumePrint identified 114 ambient monitor exceedances against only 48 self-reported industrial filings. 28 major toxic episodes occurred with confirmed upwind petrochemical alignment but zero regulatory self-reports.
  • 100% Deterministic & Legally Grounded: Avoided opaque or probabilistic machine learning models. Every calculation is derived from basic fluid dynamics, geometry, and public governmental records, producing auditable evidence admissible in administrative law hearings.
  • Exhaustive Automated Verification: Maintains 24/24 passing Python unit tests (pytest), 35/35 passing TypeScript unit tests (vitest), and a 0-error Next.js production build.

Texas City 2023 Two-Ledgers Discrepancy


What we learned

  • The Magnitude of the Regulatory Reporting Void: State environmental compliance monitoring currently operates with massive blind spots. Over half of all monitored chemical excursions near heavy industry go unrecorded in official self-reporting systems due to statutory threshold loopholes.
  • The Power of Deterministic Inversion: Conservative physical geometric models ((45^\circ) spatial cones, transport delay integration) provide far higher investigative credibility and legal defensibility than unconstrained statistical regression models.

What's next for PlumePrint

  • Orbital Remote Sensing Integration: Integrating Sentinel-5P TROPOMI tropospheric column rasters ((\text{NO}_2, \text{CH}_4, \text{SO}_2)) to validate high-altitude flaring plumes against ground-level fenceline monitors.
  • Geographic Expansion: Deploying pipelines across the Louisiana Industrial Corridor ("Cancer Alley") and Ohio River Valley petrochemical facilities.
  • Direct Regulatory Filing API: Enabling one-click automated submission of Texas Public Information Act petitions directly to the TCEQ Open Records Section via secure electronic portals.

Built With

Share this project:

Updates

Submission history