diff --git a/modules/icing/pireps.py b/modules/icing/pireps.py index 6adc3a4e2e4ab3ed288831d3b5cfb5a0654c1a71..6b46115a137d2551143d8d547b475983cccb8358 100644 --- a/modules/icing/pireps.py +++ b/modules/icing/pireps.py @@ -1,10 +1,16 @@ import datetime from datetime import timezone import re -import numpy as np NO_ICE = '\s*NEG\s*|\s*NONE\s*|\s*NEGATIVE\s*|\s*NO\s*' ICE_LVL = '\d+-\d+|FL\d+-FL\d+' + +# ICE Intensity: 0:No intensity report, 1:Trace, 2:Light, 3:Light Moderate, 4:Moderate, 5:Moderate Severe, 6:Severe +ICE_TRACE = '\s*TRACE\s*|\s*TRC\s*|\s*TR\s*' +ICE_LGT = '\s*LGT\s*|\s*LIGHT\s*|\s*LT\s*|\s*LGHT\s*|\s*LIT\s*|\s*LITE\s*|\s*LG\s*' +ICE_MOD = '\s*MOD\s*|\s*MDT\s*|\s*MODERATE\s*|\s*HEAVY\s*' +ICE_SVR = '\s*SVR\s*|\s*SEV\s*|\s*SEVERE\s*' + FLT_LVL = '/FL\s{0,1}\d+\s*' ICE_RPT = '/IC' ATYPE = '/TP' @@ -96,8 +102,34 @@ def pirep_icing(filename, lon_range=[-180, 180], lat_range=[-55, 55]): if fl > 15000.0: continue + # Intensity + I = 0 + so = re.search(ICE_TRACE, ice_str) + if so is not None: + I = 1 + else: + so = re.search(ICE_LGT, ice_str) + if so is not None: + so = re.search(ICE_MOD, ice_str) + if so is not None: + I = 3 + else: + I = 2 + else: + so = re.search(ICE_MOD, ice_str) + if so is not None: + so = re.search(ICE_SVR, ice_str) + if so is not None: + I = 5 + else: + I = 4 + else: + so = re.search(ICE_SVR, ice_str) + if so is not None: + I = 6 + rpts = ice_dict.get(timestmp) - tup = (lat, lon, fl, ice_str) + tup = (lat, lon, fl, I, ice_str) if rpts is None: rpts = [] rpts.append(tup)