Repository navigation
Closed
Labels
in v3Issues marked for inclusion in version 3 release (previously v2.1)Issues marked for inclusion in version 3 release (previously v2.1)
Description
Punts to next version:
- ILCD-formatted process names #323
- Troubleshoot pandas 3 #321
- Add triangular uncertainties to NG LCI
- Update olca_jsonld_writer module with NetlOlca class #319
The remaining tasks for v2.1 include the following:
- Empty Renewable Generation Processes with Low Mix Percentage #331
- The generation mix process, ‘Electricity; at grid; consumption mix - City of Homestead - BA’, has no inputs
- City of Homestead (HST) is an active BA in Florida, so why no generation?
- Affiliated with eGRID facility 665 (MIXED fuel plant).
- City of Homestead (HST) is an active BA in Florida, so why no generation?
These issues are effectively completed (will be closed when PR is submitted/accepted):
- Fix IMP location (assign to Global 'GLO')
- Remove Hawaii FERC region distribution and consumption processes
- To run efficiency filter on OTHF primary fuels? #330
- Use 100.1% upper-bound efficiency
- Tick up the electricity_lci_target_year YAML value from 2025 to 2026
- For the ELCI_2023 and ELCI_2024 models.
- General metadata updates based on internal metadata review #328
- Locations of upstream processes #327
- Correct mis-matches between power plant construction processes linked to US average, where there is regional process #326
- The error is likely caused by naming differences (e.g., “power plant construction - coal_const/ngcc_const - Midcontinent Independent Transmission System Operator, Inc..” has two dots after “Inc” where the power plant process location name only has one: “Midcontinent Independent System Operator, Inc.”)
- Proposed Solution: use the BA map on everything to ensure consistent naming.
- High emissions in Electricity - HYDRO - Midcontinent Independent System Operator, Inc. #324
- Solved via addition to manual_edits.yml (KeyLogicLCA@525b39f)
- Process Indicators of Quality #322
- Metadata for Canadian generation data is lacking #317
- Geothermal dataset contains non-compliant elementary flows #314
- remove zero-quantity flows from geothermal LCI CSV
- resolved all but two land transformation flows (KeyLogicLCA@8563cb0); mostly solved.
- Fix non-fedefl water flows #313
- This may get solved in a future release of fedelemflow (update eLCI.csv mapper file)
- See https://github.com/FLCAC-admin/fedelemflowlist/pull/221/changes
- Clean up trouble matching dictionary for generation mix Construction - FUEL - REGION logging statements #311
- Update inventory data in StEWI through 2023 #275
- Update inventories | Natural Gas #260
- Remove legacy epa affiliation in setup.py #316
- Improve the reference flow name for natural gas through transmission #320
- Unit groups and flow properties out of date in json-ld #315
- Just need to delete old JSON files from data store and have them repopulate.
- DQI scores of 5 for technological correlation in gas plants #304
- Incorporate residual mix accounting #276
- Residual electricity mix KeyLogicLCA/ElectricityLCI#18
- New facility generation residual mix aggregation method KeyLogicLCA/ElectricityLCI#19
- filter out HECO balancing authority
- Sort out why there's a 'Electricity; at grid; generation mix - Hawaiian Electric Co Inc' with no fuel processes in its exchange table
- Correct residual mix processes exchange table internal IDs (residual process creation needs called before the post-processing step that does the internal ID correction)
- Add missing pytz to dependencies (removed from fedelemflowlist >1.3)
- Fix EIA T&D links
- Fix nuclear power source URL (VUE Librarian to respond about broken DOI/OSTI links)
- Fix nuclear power upstream process description (replace “power plant emissions” with “power plant operations”)
Metadata
Metadata
Assignees
Labels
in v3Issues marked for inclusion in version 3 release (previously v2.1)Issues marked for inclusion in version 3 release (previously v2.1)
Activity
update sources; addresses NETL-RIC#325
correct inline URL refs; addresses NETL-RIC#325
correct nuclear upstream description; addresses NETL-RIC#325
update eLCI ref; addresses NETL-RIC#325
remove zero flow amounts from LCI; addresses NETL-RIC#261, NETL-RIC#325
update documentation; add error handling; addresses NETL-RIC#325, NET…
documentation; addresses NETL-RIC#325
documentation updates; addresses NETL-RIC#325
documentation updates; addresses NETL-RIC#325
update main; addresses NETL-RIC#325
clean up inline comments; addresses NETL-RIC#325
update inline comment; addresses NETL-RIC#325
New Canada generation process metadata; addresses NETL-RIC#317, NETL-…
tick up inventory years; addreses NETL-RIC#325
add fuel category code names; addresses NETL-RIC#325
remove HECO from generation mix; addresses NETL-RIC#325
remove HI from consumption & distribution; addresses NETL-RIC#325
dt-woods commentedon Mar 24, 2026
Renewable Generation Without Inputs
In the 2023 baseline, there are three:
For biomass, the empty inputs for Los Angeles biomass generation is the same as in 2022. It was not found in the 2016 baseline (the facility was considered MIXED), and it was not found in the 2020 or 2021 baselines ((facility is absent). The only data available for this facility is the AP42; hence, no inputs.
Looking at solar:
Notably, there is one plant (66068) listed in 'Associated Electric Cooperative, Inc.' that is labeled as a solar power plant, which is found in the AMPD data set, but not in NETL's solar LCI.
Remaining questions:
facilities_w_fuel_regionlooks across generation years)?For question 2, we look at individual years:
So it's only found in the current generation year (i.e., 2023). Notably, the NETL solar LCI is based on 2020 generation data, which does not include plant 66068.
Let's look at all other sources of facility-level emissions:
It turns out that ap42 is the only instance of this plant.
Looking at the 2020, 2021 and 2022 baselines, there are input exchanges including construction for SOLAR generation in AECI.
So what changed in 2023?
Let's check WIND.
So there is just one facility. Let's see what year it's associated with.
This is strange. The facility was a solar-dominated plant up to 2020, then switched to wind-dominate power (in 2021).
Let's look at NETL's wind LCI:
It's not there (it's based on 2020 generation, when the plant was still solar).
Let's see if any other emissions exist for this plant:
Nope. Just AMPD. If we look at the 2021 and 2022 baselines, we see also the empty inputs associated with WIND generation for CPLE. There is no WIND generation for CPLE in 2020 (the one facility is labeled SOLAR).
It's clear now the mismatch between regions and fuel generation and it's caused by a single facility.
The remaining question is why construction is not applied to these regions as an upstream flow. It should be handled in
olcaschema_genprocessin generation.py, which is wrapped bywrite_gen_fuel_database_to_dictin __init__.py, which is called duringrun_generationin main.pyActually, at this stage, we're just moving upstream processes into provider locations. Looking through the generation processes, it's all at the power plant level and there's no wind construction at all for Duke.
So we need to go back to upstream_dict.py, which is wrapped by
write_upstream_process_database_to_dictin __init__.py.At this point, I'm thinking the issue is when (1) we have a renewable generation process (e.g., WIND) and (2) there is no construction upstream process. This type of check can only be accomplished when both generation data and upstream processes are together.
So back to
olcaschema_genprocess!The missing construction could be added with something like this:
dt-woods commentedon Mar 25, 2026
Testing the implementation above. It turns out there are five renewable generation processes in 2023 with no construction:
dt-woods commentedon Mar 25, 2026
Consumption Mix with No Generation
The culprit is "Electricity; at grid; consumption mix - City of Homestead - BA," which has consumption and distribution mixes, but no generation mix.
Let's look at the generation data used to create the generation mix (i.e.,
get_generation_mix_process_dfin __init__.py):No Homestead. This was confirmed also by looking at the unique list of BA areas (the Subregion column).
What facility are we dealing with?
In 2016, this facility was a natural gas powered plant. By 2020, it switched to a DFO-based MIXED fuel facility. In 2023, it's a natural gas powered MIXED fuel facility. The percent from designated fuel category (NG) is quite low: 0.94%, and is progressively getting smaller (i.e., 45% in 2021, 0.98% in 2022, 0.94% in 2023). The at-grid consumption mix for 2016 baseline is purely from Homestead generation mix, which only has GAS generation.
In 2020, City of Homestead's at-grid consumption mix was entirely made up of trades (e.g., with Southern Company Services, Duke Energy Carolinas, Florida Power & Light Co., JEA, Seminole Electric Cooperative, and Southeastern Power Admin). There was no at-grid generation for Homestead.
In 2021 and 2022, no generation and the at-grid consumption mix for Homestead is empty.
It looks like trade data kept it alive in 2020.
What happened to facility 665?
It's there, but has negative net generation, so it gets filtered from our facility list.
Let's look at the trading data.
We see HST in the ba_cols list.
Note that
_read_bahas a hard-coded fix to drop HECO (Hawaiian balancing authority).There's 410 MWh of net generation for HST for 2023.
So HST does not show up in EIA, where we saw it had negative generation. This makes sense since this method employs the same facility filters.
The 410 is still there for HST.
There are definitely trades happening to/from HST.
Who with?
Okay, so only trades with Florida Light & Power.
Hmm. The trades appear to disappear during the pivot.
Let's dig into the trade pivot.
There are 723 rows with HST trading.
There are still 723 rows with HST. Removes mainly states.
Creating the to/from perspectives:
Something doesn't look right here. The "1_2" fields do not align with the "2_1" fields.
Maybe try sorting the BAA names to better align them.
Nope. These data frames do not line up (one BA trading with another does not guarantee that the other BA trades with the first).
How to correctly join these two data frames?
Now we see the 'AECI-TVA' exchange (Exchange_1_2) is on the same line as the 'TVA-AECI' trade (Exchange_2_1), the latter being filled in with the code above since this exchange did not show up in the BA-to-BA trades data.
We can continue!
Back at
df_trade_pivot, we see:Skipping ahead, we see that HST now has quite a slew of import location:
dt-woods commentedon Mar 25, 2026
Implemented the fix in trading, and we have new trades for HST!
minor tweaks associated with NETL-RIC#331
README update, new TOML, uptick v3, add author
update archive background data method; addresses NETL-RIC#325
tick up version to 3; addresses NETL-RIC#325