From 9000818f67a799ed3ab458782973a8872d9dac7a Mon Sep 17 00:00:00 2001 From: John Bollenbacher Date: Tue, 11 Mar 2025 09:52:34 -0400 Subject: [PATCH] Add basic QC of v3 emis data --- gch4i/utils.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/gch4i/utils.py b/gch4i/utils.py index 144a8eb..0f8fb40 100644 --- a/gch4i/utils.py +++ b/gch4i/utils.py @@ -1010,11 +1010,30 @@ def us_state_to_abbrev(state_name: str) -> str: ) -def QC_flux_emis(v3_data, SOURCE_NAME, v2_name) -> None: +def QC_flux_emis(v3_data, SOURCE_NAME, v2_name=None) -> None: """ Function to compare and plot the difference between v2 and v3 for each year of the raster data for each sector. """ + + # Check for expected years + from config import (min_year, max_year) + actual_years = set(v3_data.time.values.astype(int)) + expected_years = set(range(min_year, max_year + 1)) + missing_years = expected_years - actual_years + if missing_years: + Warning(f"Missing years in v3 data for {SOURCE_NAME}: {sorted(missing_years)}") + + # Check for negative values + for year in v3_data.time: + year_val = int(year.values) + v3_arr = np.flip(v3_data.sel(time=year).values, 0) + neg_count = np.sum(v3_arr < 0) + if neg_count > 0: + neg_percent = (neg_count / v3_arr.size) * 100 + Warning(f"Source {SOURCE_NAME}, Year {year_val} has {neg_count} negative values ({neg_percent:.2f}% of cells)") + + # compare against v2 values, if v2_data exists if v2_name is None: Warning(f"there is no v2 raster data to compare against v3 for {SOURCE_NAME}!") else: