Skip to content

Commit e9eb319

Browse files
addtional error handling for marine observation bufr2ioda converters (NOAA-EMC#897)
1 parent 96301b0 commit e9eb319

8 files changed

+51
-16
lines changed

ush/ioda/bufr2ioda/bufr2ioda_altkob_surface.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def bufr_to_ioda(config, logger):
5757
converter = 'BUFR to IODA Converter'
5858
platform_description = 'Surface obs from ALTKOB: temperature and salinity'
5959

60-
bufrfile = f"{cycle_type}.t{hh}z.{data_format}.tm{hh}.bufr_d"
60+
bufrfile = f"{cycle_type}.t{hh}z.{data_format}.tm00.bufr_d"
6161
DATA_PATH = os.path.join(dump_dir, f"{cycle_type}.{yyyymmdd}", str(hh), f"atmos", bufrfile)
6262
if not os.path.isfile(DATA_PATH):
6363
logger.info(f"DATA_PATH {DATA_PATH} does not exist")
@@ -102,7 +102,11 @@ def bufr_to_ioda(config, logger):
102102

103103
logger.debug(f"Executing QuerySet to get ResultSet ...")
104104
with bufr.File(DATA_PATH) as f:
105-
r = f.execute(q)
105+
try:
106+
r = f.execute(q)
107+
except Exception as err:
108+
logger.info(f'Return with {err}')
109+
return
106110

107111
# MetaData
108112
logger.debug(f" ... Executing QuerySet: get MetaData ...")

ush/ioda/bufr2ioda/bufr2ioda_bathythermal_profiles.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def bufr_to_ioda(config, logger):
5656
converter = 'BUFR to IODA Converter'
5757
platform_description = 'Profiles from BATHYthermal: temperature'
5858

59-
bufrfile = f"{cycle_type}.t{hh}z.{data_format}.tm{hh}.bufr_d"
59+
bufrfile = f"{cycle_type}.t{hh}z.{data_format}.tm00.bufr_d"
6060
DATA_PATH = os.path.join(dump_dir, f"{cycle_type}.{yyyymmdd}", str(hh), f"atmos", bufrfile)
6161
if not os.path.isfile(DATA_PATH):
6262
logger.info(f"DATA_PATH {DATA_PATH} does not exist")
@@ -102,7 +102,11 @@ def bufr_to_ioda(config, logger):
102102

103103
logger.debug(f"Executing QuerySet to get ResultSet ...")
104104
with bufr.File(DATA_PATH) as f:
105-
r = f.execute(q)
105+
try:
106+
r = f.execute(q)
107+
except Exception as err:
108+
logger.info(f'Return with {err}')
109+
return
106110

107111
# MetaData
108112
logger.debug(f" ... Executing QuerySet: get MetaData ...")

ush/ioda/bufr2ioda/bufr2ioda_subpfl_argo_profiles.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def bufr_to_ioda(config, logger):
5757
converter = 'BUFR to IODA Converter'
5858
platform_description = 'ARGO profiles from subpfl: temperature and salinity'
5959

60-
bufrfile = f"{cycle_type}.t{hh}z.{data_format}.tm{hh}.bufr_d"
60+
bufrfile = f"{cycle_type}.t{hh}z.{data_format}.tm00.bufr_d"
6161
DATA_PATH = os.path.join(dump_dir, f"{cycle_type}.{yyyymmdd}", str(hh), f"atmos", bufrfile)
6262
if not os.path.isfile(DATA_PATH):
6363
logger.info(f"DATA_PATH {DATA_PATH} does not exist")
@@ -103,7 +103,11 @@ def bufr_to_ioda(config, logger):
103103
start_time = time.time()
104104
logger.debug(f"Executing QuerySet to get ResultSet ...")
105105
with bufr.File(DATA_PATH) as f:
106-
r = f.execute(q)
106+
try:
107+
r = f.execute(q)
108+
except Exception as err:
109+
logger.info(f'Return with {err}')
110+
return
107111

108112
# MetaData
109113
logger.debug(f" ... Executing QuerySet: get MetaData ...")

ush/ioda/bufr2ioda/bufr2ioda_subpfl_glider_profiles.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def bufr_to_ioda(config, logger):
5757
converter = 'BUFR to IODA Converter'
5858
platform_description = 'GLIDER profiles from subpfl: temperature and salinity'
5959

60-
bufrfile = f"{cycle_type}.t{hh}z.{data_format}.tm{hh}.bufr_d"
60+
bufrfile = f"{cycle_type}.t{hh}z.{data_format}.tm00.bufr_d"
6161
DATA_PATH = os.path.join(dump_dir, f"{cycle_type}.{yyyymmdd}", str(hh), f"atmos", bufrfile)
6262
if not os.path.isfile(DATA_PATH):
6363
logger.info(f"DATA_PATH {DATA_PATH} does not exist")
@@ -103,7 +103,11 @@ def bufr_to_ioda(config, logger):
103103
start_time = time.time()
104104
logger.debug(f"Executing QuerySet to get ResultSet ...")
105105
with bufr.File(DATA_PATH) as f:
106-
r = f.execute(q)
106+
try:
107+
r = f.execute(q)
108+
except Exception as err:
109+
logger.info(f'Return with {err}')
110+
return
107111

108112
# MetaData
109113
logger.debug(f" ... Executing QuerySet: get MetaData ...")

ush/ioda/bufr2ioda/bufr2ioda_tesac_mammals_profiles.py

+9-2
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def bufr_to_ioda(config, logger):
5757
converter = 'BUFR to IODA Converter'
5858
platform_description = 'Profiles from TESAC: temperature and salinity'
5959

60-
bufrfile = f"{cycle_type}.t{hh}z.{data_format}.tm{hh}.bufr_d"
60+
bufrfile = f"{cycle_type}.t{hh}z.{data_format}.tm00.bufr_d"
6161
DATA_PATH = os.path.join(dump_dir, f"{cycle_type}.{yyyymmdd}", str(hh), f"atmos", bufrfile)
6262
if not os.path.isfile(DATA_PATH):
6363
logger.info(f"DATA_PATH {DATA_PATH} does not exist")
@@ -103,7 +103,11 @@ def bufr_to_ioda(config, logger):
103103
start_time = time.time()
104104
logger.debug(f"Executing QuerySet to get ResultSet ...")
105105
with bufr.File(DATA_PATH) as f:
106-
r = f.execute(q)
106+
try:
107+
r = f.execute(q)
108+
except Exception as err:
109+
logger.info(f'Return with {err}')
110+
return
107111

108112
# MetaData
109113
logger.debug(f" ... Executing QuerySet: get MetaData ...")
@@ -143,6 +147,9 @@ def bufr_to_ioda(config, logger):
143147

144148
alpha_mask = [item.isalpha() for item in stationID]
145149
indices_true = [index for index, value in enumerate(alpha_mask) if value]
150+
if len(indices_true) is 0:
151+
logger.info(f"No marine mammals in {DATA_PATH}")
152+
return
146153

147154
# Apply index
148155
stationID = stationID[indices_true]

ush/ioda/bufr2ioda/bufr2ioda_tesac_profiles.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def bufr_to_ioda(config, logger):
5757
converter = 'BUFR to IODA Converter'
5858
platform_description = 'Profiles from TESAC: temperature and salinity'
5959

60-
bufrfile = f"{cycle_type}.t{hh}z.{data_format}.tm{hh}.bufr_d"
60+
bufrfile = f"{cycle_type}.t{hh}z.{data_format}.tm00.bufr_d"
6161
DATA_PATH = os.path.join(dump_dir, f"{cycle_type}.{yyyymmdd}", str(hh), f"atmos", bufrfile)
6262
if not os.path.isfile(DATA_PATH):
6363
logger.info(f"DATA_PATH {DATA_PATH} does not exist")
@@ -103,7 +103,11 @@ def bufr_to_ioda(config, logger):
103103
start_time = time.time()
104104
logger.debug(f"Executing QuerySet to get ResultSet ...")
105105
with bufr.File(DATA_PATH) as f:
106-
r = f.execute(q)
106+
try:
107+
r = f.execute(q)
108+
except Exception as err:
109+
logger.info(f'Return with {err}')
110+
return
107111

108112
# MetaData
109113
logger.debug(f" ... Executing QuerySet: get MetaData ...")

ush/ioda/bufr2ioda/bufr2ioda_trackob_surface.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def bufr_to_ioda(config, logger):
5757
converter = 'BUFR to IODA Converter'
5858
platform_description = 'Surface obs from TRACKOB: temperature and salinity'
5959

60-
bufrfile = f"{cycle_type}.t{hh}z.{data_format}.tm{hh}.bufr_d"
60+
bufrfile = f"{cycle_type}.t{hh}z.{data_format}.tm00.bufr_d"
6161
DATA_PATH = os.path.join(dump_dir, f"{cycle_type}.{yyyymmdd}", str(hh), f"atmos", bufrfile)
6262
if not os.path.isfile(DATA_PATH):
6363
logger.info(f"DATA_PATH {DATA_PATH} does not exist")
@@ -103,7 +103,11 @@ def bufr_to_ioda(config, logger):
103103
start_time = time.time()
104104
logger.debug(f"Executing QuerySet to get ResultSet ...")
105105
with bufr.File(DATA_PATH) as f:
106-
r = f.execute(q)
106+
try:
107+
r = f.execute(q)
108+
except Exception as err:
109+
logger.info(f'Return with {err}')
110+
return
107111

108112
# MetaData
109113
logger.debug(f" ... Executing QuerySet: get MetaData ...")

ush/ioda/bufr2ioda/bufr2ioda_xbtctd_profiles.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def bufr_to_ioda(config, logger):
5757
converter = 'BUFR to IODA Converter'
5858
platform_description = 'Profiles from XBT/CTD: temperature and salinity'
5959

60-
bufrfile = f"{cycle_type}.t{hh}z.{data_format}.tm{hh}.bufr_d"
60+
bufrfile = f"{cycle_type}.t{hh}z.{data_format}.tm00.bufr_d"
6161
DATA_PATH = os.path.join(dump_dir, f"{cycle_type}.{yyyymmdd}", str(hh), f"atmos", bufrfile)
6262
if not os.path.isfile(DATA_PATH):
6363
logger.info(f"DATA_PATH {DATA_PATH} does not exist")
@@ -103,7 +103,11 @@ def bufr_to_ioda(config, logger):
103103
start_time = time.time()
104104
logger.debug(f"Executing QuerySet to get ResultSet ...")
105105
with bufr.File(DATA_PATH) as f:
106-
r = f.execute(q)
106+
try:
107+
r = f.execute(q)
108+
except Exception as err:
109+
logger.info(f'Return with {err}')
110+
return
107111

108112
# MetaData
109113
logger.debug(f" ... Executing QuerySet: get MetaData ...")

0 commit comments

Comments
 (0)