From 580af9e3e120795a52385c88831072ced12e4aad Mon Sep 17 00:00:00 2001 From: scoss Date: Wed, 3 Dec 2025 15:03:13 -0500 Subject: [PATCH 1/3] fix hivdi commented out and generation of consensus, now uses flpe --- validation_confluence.py | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/validation_confluence.py b/validation_confluence.py index 5355948..8ae1aec 100644 --- a/validation_confluence.py +++ b/validation_confluence.py @@ -315,17 +315,19 @@ def read_flpe_data(self,flpe_dir): "hivdi":"reach/Q", "momma":"Q", "sad":"Qa", - "sic4dvar":"Q_da", + "sic4dvar":"Q_da", + "consensus":"consensus_q", } flpe_file_metroman = f"{flpe_dir}/{'metroman'}/{self.reach_id}_metroman.nc" flpe_file_neobam = f"{flpe_dir}/{'geobam'}/{self.reach_id}_geobam.nc" - # flpe_file_hivdi = f"{flpe_dir}/{'hivdi'}/{self.reach_id}_h2ivdi.nc" + flpe_file_hivdi = f"{flpe_dir}/{'hivdi'}/{self.reach_id}_h2ivdi.nc" flpe_file_momma = f"{flpe_dir}/{'momma'}/{self.reach_id}_momma.nc" flpe_file_sad = f"{flpe_dir}/{'sad'}/{self.reach_id}_sad.nc" flpe_file_sic4dvar = f"{flpe_dir}/{'sic4dvar'}/{self.reach_id}_sic4dvar.nc" + flpe_file_consensus = f"{flpe_dir}/{'consensus'}/{self.reach_id}_consensus.nc" try: flpe_mm = Dataset(flpe_file_metroman, 'r') except: @@ -350,6 +352,10 @@ def read_flpe_data(self,flpe_dir): flpe_si = Dataset(flpe_file_sic4dvar, 'r') except: flpe_si=-9999 + try: + flpe_co = Dataset(flpe_file_consensus, 'r') + except: + flpe_co=-9999 flpe_data = {} @@ -392,18 +398,25 @@ def read_flpe_data(self,flpe_dir): conlen=len(flpe_data["sic4dvar"]) flpe_si.close() + if flpe_co==-9999: + flpe_data["consensus"]=-9999 + else: + flpe_data["consensus"] = flpe_si[convention_dict["consensus"]][:].filled(np.nan) + conlen=len(flpe_data["consensus"]) + flpe_si.close() + if conlen > 0: - #create pre-offline consensus - ALLQ=np.full((len(flpe_data.keys()), conlen), np.nan) - for row in range(len(flpe_data.keys())): - ALGv=flpe_data[list(flpe_data.keys())[row]] - if np.size(ALGv)==conlen: - ALGv[ALGv<0]=np.nan - ALLQ[row,:]=ALGv + # #create pre-offline consensus + # ALLQ=np.full((len(flpe_data.keys()), conlen), np.nan) + # for row in range(len(flpe_data.keys())): + # ALGv=flpe_data[list(flpe_data.keys())[row]] + # if np.size(ALGv)==conlen: + # ALGv[ALGv<0]=np.nan + # ALLQ[row,:]=ALGv - consensus=np.nanmedian(ALLQ,axis=0) - flpe_data["consensus"]=consensus + # consensus=np.nanmedian(ALLQ,axis=0) + # flpe_data["consensus"]=consensus if self.is_flpe_valid(flpe_data): From d44199cd248c668389fa581565296dba3e45ea6c Mon Sep 17 00:00:00 2001 From: scoss Date: Wed, 3 Dec 2025 18:03:05 -0500 Subject: [PATCH 2/3] linked sos_read commented out --- validation_confluence.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/validation_confluence.py b/validation_confluence.py index 8ae1aec..8ded55e 100644 --- a/validation_confluence.py +++ b/validation_confluence.py @@ -37,7 +37,7 @@ # Local imports from val.validation import stats -from sos_read.sos_read import download_sos +#from sos_read.sos_read import download_sos # Third-party imports from netCDF4 import Dataset, stringtochar,chartostring From 08e843dcbd8de1966cf1d3c3f4f641d72c7fbeb2 Mon Sep 17 00:00:00 2001 From: scoss Date: Wed, 3 Dec 2025 18:57:44 -0500 Subject: [PATCH 3/3] tested offline and uncomented needed import for online run --- validation_confluence.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/validation_confluence.py b/validation_confluence.py index 8ded55e..90fa6cb 100644 --- a/validation_confluence.py +++ b/validation_confluence.py @@ -37,7 +37,7 @@ # Local imports from val.validation import stats -#from sos_read.sos_read import download_sos +from sos_read.sos_read import download_sos #this import does not work on a singularity container adn must be commented out to run offline # Third-party imports from netCDF4 import Dataset, stringtochar,chartostring @@ -962,7 +962,8 @@ def run_validation(): if sos_bucket: gage_dir = TMP_DIR else: - gage_dir = INPUT_DIR.joinpath("sos") + #gage_dir = INPUT_DIR.joinpath("sos") + gage_dir = INPUT.joinpath("sos") vc = ValidationConfluence(reach_data, FLPE, MOI, OFFLINE, INPUT, OUTPUT, run_type, gage_dir) vc.validate()