Power plant capacity factor estimation from cooling tower plume frequency analysis
Wet cooling towers emit visible condensate plumes only when a plant is generating heat. Counting plume-present scenes across a Sentinel-2 or Planet time series produces a statistically grounded capacity-factor proxy, provided ambient temperature and humidity corrections are applied.
Sensors
- Sentinel-2 MSI: 10 m resolution in visible bands, 5-day revisit at the equator (2-3 days at mid-latitudes with both satellites). Free archive from 2015. Sufficient spatial resolution to resolve individual cooling tower cells at most large thermal plants. Cloud cover is the primary data-loss mechanism.
- Planet PlanetScope: 3 m resolution, near-daily revisit globally. Dramatically increases the number of cloud-free observations per month compared with Sentinel-2, which matters for statistical robustness. Requires a commercial licence.
- Landsat 8/9 OLI: 30 m panchromatic and multispectral, 16-day revisit per satellite (8-day combined). Lower spatial resolution makes it marginal for small tower footprints but the archive extends to 1972, enabling long-run baseline construction. Free and open.
- Planet SkySat: 50 cm resolution, taskable. Useful for confirming plume attribution to a specific tower cell rather than an adjacent source, and for validating automated plume detections from coarser sensors. Not suited to high-frequency time series on cost grounds.
What a condensate plume actually tells you
A wet cooling tower works by evaporating a fraction of its circulating water into the air stream. When warm, humid exhaust air meets cooler ambient air above the tower throat, water vapour condenses into a visible white plume. The physics is straightforward: no heat rejection, no plume. A plant that is shut down, or one whose cooling demand has fallen to near zero, produces nothing visible.
That binary signal, plume or no plume, is detectable in any optical sensor with enough resolution to distinguish the tower footprint from its surroundings. At 10 m, Sentinel-2 resolves the plume shadow as well as the plume itself, which can help on high-sun passes where the plume is optically thin. The limitation is that plume visibility also depends on ambient dew-point temperature and relative humidity, independent of plant output. On a warm, humid summer afternoon, a plant running at 60 % load may show no plume at all because the exhaust air cools to ambient before condensation occurs. On a cold, dry winter morning, the same plant at 30 % load may produce a plume kilometres long.
Converting observation counts into a capacity-factor proxy
The core method is straightforward to describe and genuinely difficult to execute well. For each cloud-free observation in a time series, a human analyst or an automated classifier labels each cooling tower cell as plume-present or plume-absent. The fraction of plume-present observations over a rolling window, typically 30 or 90 days, becomes the raw plume frequency. That frequency is then treated as a proxy for the fraction of time the plant was generating heat, which is structurally equivalent to a capacity factor.
The correction step is where most implementations diverge. The standard approach uses co-located ERA5 reanalysis data or local meteorological station records to estimate the condensation threshold for each observation. ERA5 provides hourly 2 m temperature and dew-point at roughly 31 km grid spacing, which is adequate for most sites. For each scene, an analyst computes whether ambient conditions would have suppressed a visible plume even at full load. Observations taken under suppression-prone conditions are either excluded from the denominator or down-weighted. Published academic work on this method, including studies applied to Chinese coal fleets using Landsat and Sentinel-2 archives, typically reports mean absolute errors in the range of 8 to 15 percentage points against reported generation data, depending on revisit frequency and the quality of the meteorological correction.
One limit deserves plain statement: the method cannot distinguish a plant running at 50 % load from one cycling between full load and shutdown within the same observation window. The plume is a heat-rejection signal, not a megawatt meter. It tells you the plant was operating; it cannot tell you how hard.
Sensor choice shapes statistical confidence, not just resolution
At 5-day revisit, Sentinel-2 delivers roughly six cloud-free observations per month at a temperate mid-latitude site with average cloud cover. Six observations is a thin statistical basis for a monthly capacity-factor estimate. Planet PlanetScope's near-daily revisit can push usable observations to 15 or 20 per month at the same site, which materially narrows the confidence interval on the plume-frequency estimate.
The practical recommendation is to use Sentinel-2 as the backbone of a multi-year archive, given its free access and consistent radiometric calibration, and to add PlanetScope tasking for the most recent 90-day window where timeliness matters to an investment or trading decision. Landsat extends the baseline to the 1990s for plants that existed then, which is useful for establishing a pre-policy-change operating pattern. SkySat is best reserved for one-off validation passes rather than routine monitoring.
Where the method breaks and what to do about it
Several failure modes are worth naming before a buyer commits to this approach. First, dry cooling towers, used at water-scarce sites, produce no visible plume regardless of operating status. The method simply does not apply to them. Second, plants with hybrid cooling systems, which switch between wet and dry modes seasonally, require a site-specific configuration model to interpret plume absence correctly. Third, large industrial facilities sometimes co-locate multiple heat sources near a power plant, making automated plume attribution ambiguous at coarser resolutions. SkySat or aerial imagery can resolve attribution, but adds cost.
Cloud cover is the dominant practical constraint. Sites in tropical or maritime climates, where cloud frequency exceeds 70 % of days, may yield so few usable observations per month that the plume-frequency estimate carries a confidence interval wider than the signal itself. In those cases, the honest answer is that optical plume analysis is not the right primary method. A thermal infrared approach, covered on a separate page in this library, may perform better because it does not depend on visible condensate.
Finally, the method is retrospective. Even with daily Planet tasking, there is an irreducible latency between scene acquisition, cloud screening, plume classification and meteorological correction. For a 30-day rolling estimate, the minimum practical latency is 24 to 48 hours after the most recent observation. Real-time generation data it is not.
Building an intelligence product from plume frequency
The analytic output that matters to most buyers is not a plume-frequency number but a deviation from a site-specific baseline. A plant that has historically operated at 70 % plume frequency over the past three years and is now showing 30 % over the past 90 days is telling a story worth investigating, whether that story is fuel supply disruption, regulatory curtailment, demand-side weakness, or scheduled maintenance.
Satellize runs this kind of deviation analysis on open Sentinel and Landsat archives, adding commercial tasking where a client needs higher temporal resolution. The Tonga crop-estimation programme demonstrated the same underlying logic applied to agricultural output, which is that a statistical model built on repeated satellite observations can extract a quantitative signal from what looks, at first glance, like a qualitative image.
A buyer commissioning this analysis should expect to specify a target plant list, a baseline period of at least 12 months, and a preferred confidence interval. The output is typically a time-series chart of monthly plume frequency with meteorological correction applied, a flagging rule for deviations beyond a set threshold, and a plain-language commentary on likely causes. That is a tractable, auditable product. It is not a generation forecast.
Typical figures
| Spatial resolution (primary sensor) | 10 m (Sentinel-2 MSI visible bands); 3 m (PlanetScope); 30 m (Landsat 8/9 OLI) |
| Revisit cadence | 2-5 days (Sentinel-2 at mid-latitudes); near-daily (PlanetScope); 8-16 days (Landsat) |
| Typical cloud-free observations per month (temperate site) | 4-8 (Sentinel-2); 12-22 (PlanetScope); 1-4 (Landsat) |
| Spectral bands used | Visible (Red, Green, Blue) for plume detection; NIR for shadow confirmation |
| Meteorological correction input | ERA5 reanalysis: 2 m temperature and dew-point, hourly, ~31 km grid; or local station data |
| Minimum detectable tower footprint | Approximately 20-30 m diameter at Sentinel-2 resolution; smaller cells require PlanetScope or SkySat |
| Reported method accuracy (published studies) | Mean absolute error 8-15 percentage points against reported generation, depending on revisit and met-correction quality |
| Archive depth | Sentinel-2 from 2015; Landsat from 1972 (30 m); PlanetScope from 2016 |
| Analysis latency | 24-48 hours minimum after most recent observation for a rolling 30-day estimate |
| Delivery format | Time-series CSV, GIS polygon layer (plume extent), PDF or web-dashboard report with deviation flags |
Analytics Satellize can run
| Monthly plume-frequency time series | Binary plume classification per cloud-free scene using supervised or threshold-based optical classifier; ERA5-corrected denominator | CSV and chart showing corrected plume frequency by month per plant, with 90 % confidence interval |
| Capacity-factor proxy estimate | Plume frequency scaled against site-specific condensation-threshold model derived from ERA5 temperature and humidity profiles | Monthly capacity-factor proxy figure per plant, with stated uncertainty band and correction methodology note |
| Operating-status deviation alert | Rolling 90-day plume frequency compared against 24-month site baseline; flag triggered when deviation exceeds user-defined threshold (e.g. 20 percentage points) | Email or API alert with scene thumbnail, deviation magnitude, and plain-language commentary |
| Multi-plant fleet utilisation dashboard | Aggregated plume-frequency estimates across a user-specified plant list, ranked by deviation from baseline | Web dashboard updated on each new cloud-free observation; exportable to Excel or GIS |
| Meteorological suppression audit | Per-observation condensation-threshold calculation; classification of each scene as suppression-probable, suppression-possible, or suppression-unlikely | Annotated observation log showing which scenes were excluded or down-weighted and why |
| Long-run baseline construction from Landsat archive | Plume classification on Landsat 8/9 OLI 30 m imagery back to 2013 (or Landsat 5/7 for earlier periods at reduced reliability); ERA5 back-correction applied | Annual capacity-factor proxy series for target plant, suitable for pre/post policy-change comparison |
Who does the work
We can get this done for you. Satellize runs its own analyst desk and a strong science team. You do not buy a data feed and work out what it means; our people source the imagery, run the analysis described on this page, and hand you the answer with its confidence limits stated. Discuss this requirement.