## 3 Materials and Methods
### Plant and Image Selection  
For all satellite imagery, a region of interest (ROI) was produced for each power plant by setting an outer boundary that envelops the plant itself, all associated facilities, and any other affected areas of interest. Based on this ROI, we restricted the training data to optimize for both modelability and impact:  
1. Plant selection. The first set of filters was based on the capacity of the plant and whether it was using mostly NDT or FGD technology at the time: * Coal must account for at least 50% of the plant's operating capacity. * For NDT models, \(\geq\)70% of the plant's cooling was NDT. * For FGD models, \(\geq\)90% of total generation and 100% of coal capacity was associated with wet FGD. * At least one NDT tower or FGD-enabled flue stack has been annotated in OpenStreetMap or in our in-house annotations database. * Capacity must be at least 500 MW. * Exclude from training any plants with incomplete or erroneous generation and/or retirement date, for example, failure to report generation for operating units, reporting generation several months past retirement, or insufficient or inconsistently reported generation data. This criterion is applicable to training only. * Because our modeling approach assumes that plants with wet FGD always run their pollution controls, we removed from training any operational plants that repeatedly exhibited sporadic or no visible FGD usage when the plant was reported \"on\". For inference, this is harder to assess in the absence of reported generation data. We flagged operational plants with FGD where FGD plumes were never detected under the expected plume-favorable weather conditions (detailed later in this section) by our classification models, nor observed upon the manual inspection of 100 random images. We also flagged plants that exhibited other signals of operating (i.e., NDT plumes) with no FGD signal. There are two primary reasons for which an operational plant may fail to exhibit an FGD vapor plume signal when generating electricity under the appropriate temperature and humidity conditions:
* Our power plant database has incorrect information suggesting that the power plant has a \"wet\" process when it is actually \"dry\". This is possible for both NDT and FGD as either can be a \"wet\" or \"dry\" process; generally \"dry\" is more common in arid climates to conserve water. * The power plant fails to run its SOx pollution control equipment (the flue gas desulfurization, FGD), so there is no FGD plume. Note that this is only relevant for FGD plumes, not NDT, because some type of cooling is necessary to operate a power plant, whereas pollution controls are not strictly necessary to operate (rather, they represent additional requirements set by clean air regulations). For inference on NDT plants, these criteria were relaxed by applying our models to all the plants that met the following criteria every year: a total capacity of at least 50 MW and any positive amount of NDT capacity, regardless of fuel type. Despite the loosened criteria, the vast majority of plants in our external validation sets for both electricity generation and emissions burn >50% coal. 2. Image selection. We also filtered based on the characteristics of each satellite image: * Our FGD and NDT annotations are fully contained within the satellite image. * The cloud mask over the plant indicated <20% cloud coverage. This threshold is set relatively high to avoid falsely excluding images containing large plumes, which are easily misclassified as clouds. * For PlanetScope, we used the post-2018 UDM2 bands to keep only images with <80% heavy haze. * For all PlanetScope images, we calculated the mean brightness and developed a cloudiness score based on HOT, whiteness, and NDVI, respectively, to filter out excessively dark or cloudy images. * Images with known data quality issues were discarded, e.g., exhibiting plumes when generation has been zero for at least an hour. Appendix A.4 details the scenarios in which we excluded images due to quality issues.