diff --git a/ATMOSPHERE/online/analysis_input_gen.py b/ATMOSPHERE/online/analysis_input_gen.py index 7ad7100..3bb7522 100644 --- a/ATMOSPHERE/online/analysis_input_gen.py +++ b/ATMOSPHERE/online/analysis_input_gen.py @@ -53,7 +53,7 @@ def argument(): INPUTDIR=addsep(args.inputdir) OUTDIR = addsep(args.outdir) -TL = TimeList.fromfilenames(None, INPUTDIR, "*_an-fv12.00.nc", prefix="", dateformat="%Y%m%d") +TL = TimeList.fromfilenames(None, INPUTDIR, "*_an-fv1[2-9].00.nc", prefix="", dateformat="%Y%m%d") filename=TL.filelist[0] ncIN=netCDF4.Dataset(filename) diff --git a/ATMOSPHERE/online/analysis_input_gen_singleframe.py b/ATMOSPHERE/online/analysis_input_gen_singleframe.py index 0bb36fd..e63c534 100644 --- a/ATMOSPHERE/online/analysis_input_gen_singleframe.py +++ b/ATMOSPHERE/online/analysis_input_gen_singleframe.py @@ -4,7 +4,7 @@ def argument(): parser = argparse.ArgumentParser(description = ''' Generates daily files for OASIM by reading ECMWF file provided by CMCC Valid for analysis file having a single frame - YYYYMMDD-ECMWF---AM0100-MEDATL-bYYYYMMDD_an00-fv12.00.nc analisi at 00 of the same day YYYYMMDD + YYYYMMDD-ECMWF---AM0100-MEDATL-bYYYYMMDD_an00-fv1[2-9].00.nc analisi at 00 of the same day YYYYMMDD ''', formatter_class=argparse.ArgumentDefaultsHelpFormatter ) @@ -48,7 +48,7 @@ def argument(): INPUTDIR=addsep(args.inputdir) OUTDIR = addsep(args.outdir) -TL = TimeList.fromfilenames(None, INPUTDIR, "*_an00-fv12.00.nc", prefix="", dateformat="%Y%m%d") +TL = TimeList.fromfilenames(None, INPUTDIR, "*_an00-fv1[2-9].00.nc", prefix="", dateformat="%Y%m%d") nframes_in_day = 1 deltaH = 6 diff --git a/BC/EFAS/river_generation.py b/BC/EFAS/river_generation.py index e02fddf..fdd7c11 100644 --- a/BC/EFAS/river_generation.py +++ b/BC/EFAS/river_generation.py @@ -146,6 +146,11 @@ def main(): ) var_mask = RIVERS.get_variable_mask(variable) + if not np.any(var_mask): + # If var_mask is False for any river, print a message + print(f"Warning: {variable.name} empty, it is not defined for any river") + + raw_var_concentration = RIVERS[variable.name][var_mask] # Keep only the values related to the current variable diff --git a/BC/EFAS/river_reader.py b/BC/EFAS/river_reader.py index c810648..688c75d 100644 --- a/BC/EFAS/river_reader.py +++ b/BC/EFAS/river_reader.py @@ -59,8 +59,28 @@ def read_xml_vars(xml_dataset): return tuple(bgc_vars) +def read_defaults(xml_dataset): + """ + Read the field "common_concentrations" of the rivers.xml file + """ + default_node=xml_dataset.getElementsByTagName("default_concentrations") + defaults={} + for node in default_node[0].getElementsByTagName("var"): + try: + var_name = node.getAttribute("name") + value = float(node.getAttribute("value")) + defaults[var_name]=value + except Exception: + raise InvalidRiverXMLFile( + 'Error while reading the following var node:\n{}'.format( + node.toxml() + ) + ) + return defaults + xmldoc = minidom.parse("rivers.xml") BGC_VARS = read_xml_vars(xmldoc) +DEFAULTS = read_defaults(xmldoc) class Rivers: @@ -134,6 +154,15 @@ def __init__(self): rivers[ind]['SAL'] = salinity rivers[ind]['name'] = name rivers[ind]['mouth'] = mn.getAttribute('name') + for varname in DEFAULTS: + if varname not in self.__bgc_var_dict: + raise ValueError('Unknown variable: {}'.format(varname)) + rivers[ind][varname] = DEFAULTS[varname] + + bgc_var = self.__bgc_var_dict[varname] + assert not self.__var_defined[bgc_var][ind] + self.__var_defined[bgc_var][ind] = True + for vn in concentrations_node.getElementsByTagName('var'): varname = vn.getAttribute('name') if varname not in self.__bgc_var_dict: @@ -142,8 +171,8 @@ def __init__(self): rivers[ind][varname] = vn.getAttribute('value') - assert not self.__var_defined[bgc_var][ind] - self.__var_defined[bgc_var][ind] = True + if not self.__var_defined[bgc_var][ind]: + self.__var_defined[bgc_var][ind] = True visited_ids[ind] = True diff --git a/BC/EFAS/rivers.xml b/BC/EFAS/rivers.xml index e29c13b..e97fda8 100644 --- a/BC/EFAS/rivers.xml +++ b/BC/EFAS/rivers.xml @@ -128,6 +128,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -137,25 +165,6 @@ - - - - - - - - - - - - - - - - - - - @@ -171,25 +180,6 @@ - - - - - - - - - - - - - - - - - - - @@ -204,25 +194,6 @@ - - - - - - - - - - - - - - - - - - - @@ -246,25 +217,6 @@ - - - - - - - - - - - - - - - - - - - @@ -280,25 +232,6 @@ - - - - - - - - - - - - - - - - - - - @@ -313,25 +246,6 @@ - - - - - - - - - - - - - - - - - - - @@ -344,25 +258,6 @@ - - - - - - - - - - - - - - - - - - - @@ -378,25 +273,6 @@ - - - - - - - - - - - - - - - - - - - @@ -409,25 +285,6 @@ - - - - - - - - - - - - - - - - - - - @@ -440,25 +297,6 @@ - - - - - - - - - - - - - - - - - - - @@ -471,25 +309,6 @@ - - - - - - - - - - - - - - - - - - - @@ -501,26 +320,7 @@ - - - - - - - - - - - - - - - - - - - - +> @@ -533,25 +333,6 @@ - - - - - - - - - - - - - - - - - - - @@ -564,25 +345,6 @@ - - - - - - - - - - - - - - - - - - - @@ -595,25 +357,6 @@ - - - - - - - - - - - - - - - - - - - @@ -626,25 +369,6 @@ - - - - - - - - - - - - - - - - - - - @@ -657,25 +381,6 @@ - - - - - - - - - - - - - - - - - - - @@ -688,25 +393,6 @@ - - - - - - - - - - - - - - - - - - - @@ -719,25 +405,6 @@ - - - - - - - - - - - - - - - - - - - @@ -750,25 +417,6 @@ - - - - - - - - - - - - - - - - - - - @@ -781,25 +429,6 @@ - - - - - - - - - - - - - - - - - - - @@ -815,25 +444,6 @@ - - - - - - - - - - - - - - - - - - - @@ -846,25 +456,6 @@ - - - - - - - - - - - - - - - - - - - @@ -877,25 +468,6 @@ - - - - - - - - - - - - - - - - - - - @@ -908,25 +480,6 @@ - - - - - - - - - - - - - - - - - - - @@ -939,25 +492,6 @@ - - - - - - - - - - - - - - - - - - - @@ -970,25 +504,6 @@ - - - - - - - - - - - - - - - - - - - @@ -1001,25 +516,6 @@ - - - - - - - - - - - - - - - - - - - @@ -1032,25 +528,6 @@ - - - - - - - - - - - - - - - - - - - @@ -1063,25 +540,6 @@ - - - - - - - - - - - - - - - - - - - @@ -1094,25 +552,6 @@ - - - - - - - - - - - - - - - - - - - @@ -1125,25 +564,6 @@ - - - - - - - - - - - - - - - - - - - @@ -1156,25 +576,6 @@ - - - - - - - - - - - - - - - - - - - @@ -1187,25 +588,6 @@ - - - - - - - - - - - - - - - - - - - @@ -1218,25 +600,6 @@ - - - - - - - - - - - - - - - - - - - @@ -1249,25 +612,6 @@ - - - - - - - - - - - - - - - - - - - @@ -1280,25 +624,6 @@ - - - - - - - - - - - - - - - - - - - @@ -1311,25 +636,6 @@ - - - - - - - - - - - - - - - - - - - @@ -1342,25 +648,6 @@ - - - - - - - - - - - - - - - - - - -