From ccade2a91d1a308589ec0bf2636db597a5aecacc Mon Sep 17 00:00:00 2001 From: XANTRONIX Industrial Date: Wed, 12 Feb 2025 11:42:48 -0500 Subject: [PATCH] Catch ValueError on invalid integers in storm report details --- lib/nexrad/storm.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/lib/nexrad/storm.py b/lib/nexrad/storm.py index adc4f5a..6f9a7d7 100644 --- a/lib/nexrad/storm.py +++ b/lib/nexrad/storm.py @@ -107,8 +107,6 @@ class StormReport(): report.timestamp_start = timestamp_from_parts(tz, row['BEGIN_YEARMONTH'], row['BEGIN_DAY'], row['BEGIN_TIME']) report.timestamp_end = timestamp_from_parts(tz, row['END_YEARMONTH'], row['END_DAY'], row['END_TIME']) - report.episode_id = int(row['EPISODE_ID']) - report.event_id = int(row['EVENT_ID']) report.state = row['STATE'] report.event_type = row['EVENT_TYPE'] report.wfo = row['WFO'] @@ -118,6 +116,16 @@ class StormReport(): report.locale_end = row['END_LOCATION'] report.tornado_f_rating = row['TOR_F_SCALE'] + try: + report.episode_id = int(row['EPISODE_ID']) + except ValueError: + report.episode_id = None + + try: + report.event_id = int(row['EVENT_ID']) + except ValueError: + report.event_id = None + return report @staticmethod @@ -126,7 +134,10 @@ class StormReport(): reader = csv.DictReader(fh, dialect='excel') for row in reader: - yield StormReport.from_csv_row(row) + try: + yield StormReport.from_csv_row(row) + except: + pass RADAR_SIGNIFICANT_EVENT_TYPES = { 'Blizzard': True,