singularity-energy / open-grid-emissions

Tools for producing high-quality hourly generation and emissions data for U.S. electric grids
MIT License
76 stars 5 forks source link

Update Uncontrolled NOx and SO2 factors #373

Closed grgmiller closed 4 months ago

grgmiller commented 5 months ago

Purpose

This PR was started to add NOx and SO2 factors for boiler configurations in the historical data that were not previously specified. This is part of the effort to improve NOx and SO2 data quality for new historical years from 2005-2018.

Programmatic creation of the factor tables Instead of continuing to manually update these in the table, we add a script to programmatically create the nox and so2 factor reference tables to address https://github.com/singularity-energy/open-grid-emissions/issues/276. This is meant to reduce the risk of typos, ensure consistency in the methodology, and also add transparency to how these factors are created.

Fluidized Bed Boilers As noted by the EIA's Electric Power Annual technical notes, while the uncontrolled emissions factors published by EIA need to be adjusted to account for each plant's operational pollution control equipment, the exception is for fluidized bed boilers:

A special case for removal of SO2 is the fluidized bed boiler, in which the sulfur removal process is integral with the operation of the boiler. The SO2 emission factors shown in Table A.1. for fluidized bed boilers already account for 90 percent removal of SO2 since, in effect, the plant has no uncontrolled emissions of this pollutant.

Previously, we had been applying pollution control efficiency values to adjust so2 emissions from these boilers, which would underestimate emissions. We now do not adjust so2 emissions for this type of boiler since the calculated values already represent controlled emissions. It looks like this may have only affected a small number of plants, since many plants did not report control efficiencies for fluidized bed technologies in EIA-923.

Update default assumed value This PR also includes an important methodological update on the assumptions used for assigning NOx and SO2 factors for boilers with missing boiler configuration data. When boiler configuration data is unknown, we had previously been using the lowest fuel-specific NOx or SO2 factor of any boiler firing type, with the reasoning that this is the minimum amount of emissions that could be expected. This was also the approach that eGRID had used in previous years (looking at more recent versions of eGRID, it looks like they may have abandoned this approach).

However, there are several drawbacks of this approach. For SO2, since the fluidized bed factors are already controlled, this approach would mean generally assuming that the generator is a fluidized bed boiler, which would be applying a special case as the default backstop. In the case of NOx, this could lead to the assumptions of different types of boilers being the standard default. The EIA's default assumption, in the case that boiler information is unavailable, is to assume that the boiler has a dry-bottom firing method falling into the "all other category." We adopt this assumption in this PR, which generally have the effect of increasing NOx and SO2 emissions in these cases. https://github.com/singularity-energy/open-grid-emissions/issues/150

What the code is doing

How is the purpose executed?

Testing

In the notebook, I test for:

Ran pipeline for 2017-2018

Where to look

Usage Example/Visuals

For NOx, there are 80 factors that are different from previous.

image

For SO2, there are 288 factors that are different from the previous factors.

image

Inspecting these differences reveals that they are based on the updated default assumption, and how we treat combustion turbines with a specified boiler firing type. Where previously we had been assigning the combustion turbine factor, we now use the factor associated with the boiler firing type, since these may be associated with HRSG configurations (see: https://www.eia.gov/todayinenergy/detail.php?id=52778)

There are a few configurations for which NOx factors are still missing, but these seem to be anomalies (eg a hydro plant burning oil). This may just be a figment of the test logic I set up and these anomalous configurations may not appear in the real data.

image

Review estimate

20-30 min

Future work

Updating LFG factors: https://github.com/singularity-energy/open-grid-emissions/issues/218 Default factor assumptions: https://github.com/singularity-energy/open-grid-emissions/issues/69

Checklist