## # This software was developed and / or modified by Raytheon Company, # pursuant to Contract DG133W-05-CQ-1067 with the US Government. # # U.S. EXPORT CONTROLLED TECHNICAL DATA # This software product contains export-restricted data whose # export/transfer/disclosure is restricted by U.S. law. Dissemination # to non-U.S. persons whether in the United States or abroad requires # an export license or other authorization. # # Contractor Name: Raytheon Company # Contractor Address: 6825 Pine Street, Suite 340 # Mail Stop B8 # Omaha, NE 68106 # 402.291.0100 # # See the AWIPS II Master Rights File ("Master Rights File.pdf") for # further licensing information. ## # ---------------------------------------------------------------------------- # This software is in the public domain, furnished "as is", without technical # support, and with no warranty, express or implied, as to its usefulness for # any purpose. # # Miscellaneous Tests for various products # Can have "definitions" and "overrides" # # Author: Dave Metze, hansen # ---------------------------------------------------------------------------- ########### ## FWF LAL ## "editAreaSuffix" Test ## Humidity Recovery Local Effects import TestScript, CreateGrids # Overrides to FWF for Humidity Recovery Local Effects humRec = """ def getFirePeriod_phraseList(self): if self._useRH: dayRH = "RH" nightRH = "RH" else: dayRH = "MinRH" nightRH = "MaxRH" phraseList = [ self.skyWeather_byTimeRange_compoundPhrase, self.lal_phrase, (self.dayOrNight_phrase, ["MaxT", "MinT", 1, 1], self._tempLocalEffects_list()), (self.trend_DayOrNight_phrase, ["MaxT", "MinT", "Ttrend", 1, 1], self._tempTrendLocalEffects_list()), (self.dayOrNight_phrase, [dayRH, nightRH, 1, 1], self._rhLocalEffects_list()), (self.trend_DayOrNight_phrase, [dayRH, nightRH, "RHtrend", 1, 1], self._rhTrendLocalEffects_list()), (self.humidityRecovery_phrase, self._humRecLocalEffects_list()), #self.humidityRecovery_phrase, self.fireWind_compoundPhrase, self.fireWind_label_phrase, self.fireValleyWind_compoundPhrase, self.fireRidgeWind_compoundPhrase, self.haines_phrase, self.smokeDispersal_phrase, self.mixingHgt_phrase, self.transportWind_phrase, #self.freeWind_phrase, self.cwr_phrase, #self.marineLayer_phrase, ] # Remove trend methods if self._includeTrends != 1: newList = [] for phrase in phraseList: if type(phrase) is types.TupleType: phraseMethod = phrase[0] if phraseMethod == self.trend_DayOrNight_phrase: continue newList.append(phrase) phraseList = newList # Add multipleElementTable if self._includeMultipleElementTable_perPeriod: phraseList.append(self.multipleElementTable_perPeriod_phrase) return phraseList def _humRecLocalEffects_list(self): leArea1 = self.LocalEffectArea("Valleys", "") leArea2 = self.LocalEffectArea("Ridges", " on the ridges") return [self.LocalEffect([leArea1, leArea2], self._humRecTrigger, ", except ")] def _humRecTrigger(self, tree, node, localEffect, leArea1Label, leArea2Label): leNode = self._makeLEnode(tree, node, leArea1Label) self.humidityRecovery_words(tree, leNode) words1 = leNode.get("words") leNode = self._makeLEnode(tree, node, leArea2Label) self.humidityRecovery_words(tree, leNode) words2 = leNode.get("words") if words1 == words2: return 0 else: return 1 def _makeLEnode(self, tree, node, leArea): leNode = tree.makeNode([],[],node.parent) timeRange = node.getTimeRange() if self._useRH: elementName = "RH" else: elementName = "MaxRH" stats = tree.stats.get( elementName, timeRange, leArea, mergeMethod="Average") statDict = {} statDict[elementName] = stats leNode.set("statDict", statDict) leNode.set("timeRange", timeRange) return leNode # Need to add humidity recovery local effect areas def getFirePeriod_intersectAreas(self): tempList = [] windList = [] if self._tempLocalEffects: tempList = [ ("MinT", ["BelowElev", "AboveElev"]), ("MaxT", ["BelowElev", "AboveElev"]), ("MinRH", ["BelowElev", "AboveElev"]), ("MaxRH", ["BelowElev", "AboveElev"]), ("RH", ["BelowElev", "AboveElev"]), ("Ttrend", ["BelowElev", "AboveElev"]), ("RHtrend", ["BelowElev", "AboveElev"]), ] if self._windLocalEffects: windList = [ ("Wind", ["Valleys", "Ridges"]), ("Wind20ft", ["Valleys", "Ridges"]), ("WindGust", ["Valleys", "Ridges"]), ] humRecList = [ ("RH", ["Valleys", "Ridges"]), ("MaxRH", ["Valleys", "Ridges"]), ] return tempList + windList + humRecList """ localHazard = """ def allowedHazards(self): allActions = ["NEW", "EXA", "EXB", "EXT", "CAN", "CON", "EXP"] tropicalActions = ["NEW", "EXA", "EXB", "EXT", "UPG", "CAN", "CON", "EXP"] return [ ('LocalHazard1', allActions, 'Convective'), # SEVERE THUNDERSTORM WATCH ] """ hazardHook = """ def hazard_hook(self, tree, node, hazardPhen, hazardSig, hazardAct, hazardStart, hazardEnd): hazTR = self.makeTimeRange(hazardStart, hazardEnd) phenSig = hazardPhen + "." + hazardSig print("hazTr, phenSig", hazTR, phenSig) return "in the mountains" """ localHeadlinesTiming1 = """ def headlinesTiming(self, tree, node, key, timeRange, areaLabel, issuanceTime): return "NONE", "FUZZY4" """ localHeadlinesTiming2 = """ def startPhraseMethod(self, issueTime, eventTime, timeZone, timeType): return "NONE", None def endPhraseMethod(self, issueTime, eventTime, timeZone, timeType): return "FUZZY4", self.timingWordTableFUZZY4(issueTime, eventTime, timeZone, timeType) def headlinesTiming(self, tree, node, key, timeRange, areaLabel, issuanceTime): return (self.startPhraseMethod, self.endPhraseMethod) """ scripts = [ ### FWF LAL ########## #LAL of 1# ########## { "name":"FWF_LAL1", "commentary": "LAL 1 from LAL1, PoP 0, NoWx", "productType":"FWF", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "LAL.................1",".TONIGHT..."], "createGrids": [ ("Fcst", "LAL", "SCALAR", 0, 12, 1, "all", 1), ("Fcst", "PoP", "SCALAR", 0, 12, 0, "all", 1), ("Fcst", "Wx", "WEATHER", 0, 12, "NoWx", "all"), ], }, { "name":"FWF_LAL2", "commentary": "LAL 1 from LAL1, PoP 10, SChc RW-", "productType":"FWF", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "LAL.................1",".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 12, 1, "all", 1), ("Fcst", "PoP", "SCALAR", 0, 12, 10, "all", 1), ("Fcst", "Wx", "WEATHER", 0, 12, "SChc:RW:-::", "all"), ], }, { "name":"FWF_LAL3", "commentary": "LAL 1 from LAL1, PoP 20, Iso RW-", "productType":"FWF", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "Isolated showers", "LAL.................1",".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 12, 1, "all", 1), ("Fcst", "PoP", "SCALAR", 0, 12, 20, "all", 1), ("Fcst", "Wx", "WEATHER", 0, 12, "Iso:RW:-::", "all"), ], }, { "name":"FWF_LAL4", "commentary": "LAL 1 from LAL1, PoP 30, Chc RW-", "productType":"FWF", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", ("Chance of rain showers", "Chance of showers"), "LAL.................1",".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 12, 1, "all", 1), ("Fcst", "PoP", "SCALAR", 0, 12, 30, "all", 1), ("Fcst", "Wx", "WEATHER", 0, 12, "Chc:RW:-::", "all"), ], }, ########## #LAL of 2# ########## { "name":"FWF_LAL5", "commentary": "LAL 2 from LAL 2, PoP 20, SChc T SChc RW-", "productType":"FWF", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "Slight chance of showers and thunderstorms", "LAL.................2",".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 12, 2, "all", 1), ("Fcst", "PoP", "SCALAR", 0, 12, 20, "all", 1), ("Fcst", "Wx", "WEATHER", 0, 12, "SChc:T:::^SChc:RW:-::", "all"), ], }, { "name":"FWF_LAL6", "commentary": "LAL 2 from LAL 2, PoP 20, Iso TRW-", "productType":"FWF", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "LAL.................2",".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 12, 2, "all", 1), ("Fcst", "PoP", "SCALAR", 0, 12, 20, "all", 1), ("Fcst", "Wx", "WEATHER", 0, 12, "Iso:T:::^Iso:RW:-::", "all"), ], }, ########## #LAL of 3# ########## { "name":"FWF_LAL7", "commentary": "LAL 3 from LAL 3, PoP 20, SChc TRW-", "productType":"FWF", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "Slight chance of showers and thunderstorms", "LAL.................3",".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 12, 3, "all", 1), ("Fcst", "PoP", "SCALAR", 0, 12, 20, "all", 1), ("Fcst", "Wx", "WEATHER", 0, 12, "SChc:T:::^SChc:RW:-::", "all"), ], }, { "name":"FWF_LAL8", "commentary": "LAL 3 from LAL 3, PoP 20, Iso TRW-", "productType":"FWF", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "Isolated showers and thunderstorms", "LAL.................3", ".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 12, 3, "all", 1), ("Fcst", "PoP", "SCALAR", 0, 12, 20, "all", 1), ("Fcst", "Wx", "WEATHER", 0, 12, "Iso:T:::^Iso:RW:-::", "all"), ], }, ########## #LAL of 4# ########## { "name":"FWF_LAL9", "commentary": "LAL 4 from LAL 4, PoP 40, Chc TRW-", "productType":"FWF", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "Chance of showers and thunderstorms", "LAL.................4",".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 12, 4, "all", 1), ("Fcst", "PoP", "SCALAR", 0, 12, 40, "all", 1), ("Fcst", "Wx", "WEATHER", 0, 12, "Chc:T:::^Chc:RW:-::", "all"), ], }, { "name":"FWF_LAL10", "commentary": "LAL 4 from LAL 4, PoP 40, Sct TRW-", "productType":"FWF", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "Scattered showers and thunderstorms", "LAL.................4",".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 12, 4, "all", 1), ("Fcst", "PoP", "SCALAR", 0, 12, 40, "all", 1), ("Fcst", "Wx", "WEATHER", 0, 12, "Sct:T:::^Sct:RW:-::", "all"), ], }, ########## #LAL of 5# ########## { "name":"FWF_LAL11", "commentary": "LAL 5 from LAL 5, PoP 60, Lkly TRW-", "productType":"FWF", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "Showers and thunderstorms likely", "LAL.................5",".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 12, 5, "all", 1), ("Fcst", "PoP", "SCALAR", 0, 12, 60, "all", 1), ("Fcst", "Wx", "WEATHER", 0, 12, "Lkly:T:::^Lkly:RW:-::", "all"), ], }, { "name":"FWF_LAL12", "commentary": "LAL 5 from LAL 5, PoP 60, Num TRW-", "productType":"FWF", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "Numerous showers and thunderstorms", "LAL.................5",".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 12, 5, "all", 1), ("Fcst", "PoP", "SCALAR", 0, 12, 60, "all", 1), ("Fcst", "Wx", "WEATHER", 0, 12, "Num:T:::^Num:RW:-::", "all"), ], }, ########## #LAL of 6# ########## { "name":"FWF_LAL13", "commentary": "LAL 6 from LAL 6, PoP 20, SChc T (Dry)", "productType":"FWF", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "Slight chance of dry thunderstorms", "LAL.................6",".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 12, 6, "all", 1), ("Fcst", "PoP", "SCALAR", 0, 12, 20, "all", 1), ("Fcst", "Wx", "WEATHER", 0, 12, "SChc:T:::Dry", "all"), ], }, { "name":"FWF_LAL14", "commentary": "LAL 6 from LAL 6, PoP 20, Iso T (Dry)", "productType":"FWF", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "Isolated dry thunderstorms", "LAL.................6",".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 12, 6, "all", 1), ("Fcst", "PoP", "SCALAR", 0, 12, 20, "all", 1), ("Fcst", "Wx", "WEATHER", 0, 12, "Iso:T:::Dry", "all"), ], }, ######################################################### # More Complex Cases - temporally, spatially and weather# ######################################################### #---------------------- # changing through time #---------------------- { "name":"FWF_LAL15", "commentary": "Changing LAL 1->2, PoP 0->20, NoWx->IsoTRW-", "productType":"FWF", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "Isolated showers and thunderstorms after 0900", "LAL.................1 until 0900, then 2",".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 3, 1, "all", 1), ("Fcst", "LAL", "SCALAR", 3, 12, 2, "all", 1), ("Fcst", "PoP", "SCALAR", 0, 3, 0, "all", 1), ("Fcst", "PoP", "SCALAR", 3, 12, 20, "all", 1), ("Fcst", "Wx", "WEATHER", 0, 3, "NoWx", "all"), ("Fcst", "Wx", "WEATHER", 3, 12, "Iso:T:::^Iso:RW:-::", "all"), ], }, { "name":"FWF_LAL16", "commentary": "Changing LAL 1->2, PoP 0->20, NoWx->SChcTRW-", "productType":"FWF", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "Slight chance of showers and thunderstorms after 0900", "LAL.................1 until 0900, then 2",".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 3, 1, "all", 1), ("Fcst", "LAL", "SCALAR", 3, 12, 2, "all", 1), ("Fcst", "PoP", "SCALAR", 0, 3, 0, "all", 1), ("Fcst", "PoP", "SCALAR", 3, 12, 20, "all", 1), ("Fcst", "Wx", "WEATHER", 0, 3, "NoWx", "all"), ("Fcst", "Wx", "WEATHER", 3, 12, "SChc:T:::^SChc:RW:-::", "all"), ], }, { "name":"FWF_LAL17", "commentary": "Changing LAL 3->4, PoP 20->40, Iso TRW- -> Sct RW-", "productType":"FWF", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "Isolated showers and thunderstorms until 1100, then scattered showers and thunderstorms", "LAL.................3 until 1100, then 4",".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 5, 3, "all", 1), ("Fcst", "LAL", "SCALAR", 5, 12, 4, "all", 1), ("Fcst", "PoP", "SCALAR", 0, 5, 20, "all", 1), ("Fcst", "PoP", "SCALAR", 5, 12, 40, "all", 1), ("Fcst", "Wx", "WEATHER", 0, 5, "Iso:T:::^Iso:RW:-::", "all"), ("Fcst", "Wx", "WEATHER", 5, 12, "Sct:T:::^Sct:RW:-::", "all"), ], }, { "name":"FWF_LAL18", "commentary": "Changing LAL 5->3, PoP 70->20, Lkly TRW- -> SChc RW-", "productType":"FWF", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "Showers and thunderstorms likely until 1500, then slight chance of showers and thunderstorms", "LAL.................5 until 1500, then 3", ".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 9, 5, "all", 1), ("Fcst", "LAL", "SCALAR", 9, 12, 3, "all", 1), ("Fcst", "PoP", "SCALAR", 0, 9, 70, "all", 1), ("Fcst", "PoP", "SCALAR", 9, 12, 20, "all", 1), ("Fcst", "Wx", "WEATHER", 0, 9, "Lkly:T:::^Lkly:RW:-::", "all"), ("Fcst", "Wx", "WEATHER", 9, 12, "SChc:T:::^SChc:RW:-::", "all"), ], }, { "name":"FWF_LAL19", "commentary": "Changing LAL 1->2->4, PoP 5->20->50, NoWx -> Iso TRW- -> Sct TRW-", "productType":"FWF", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "Isolated showers and thunderstorms after 0900 until 1300, then scattered showers and thunderstorms", "LAL.................1 until 0900, then 2 until 1300, then 4", ".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 3, 1, "all", 1), ("Fcst", "LAL", "SCALAR", 3, 7, 2, "all", 1), ("Fcst", "LAL", "SCALAR", 7, 12, 4, "all", 1), ("Fcst", "PoP", "SCALAR", 0, 3, 5, "all", 1), ("Fcst", "PoP", "SCALAR", 3, 7, 20, "all", 1), ("Fcst", "PoP", "SCALAR", 7, 12, 50, "all", 1), ("Fcst", "Wx", "WEATHER", 0, 3, "NoWx", "all"), ("Fcst", "Wx", "WEATHER", 3, 7, "Iso:T:::^Iso:RW:-::", "all"), ("Fcst", "Wx", "WEATHER", 7, 12, "Sct:T:::^Sct:RW:-::", "all"), ], }, #------------------------- # Varous weather occurring #------------------------- { "name":"FWF_LAL20", "commentary": "LAL4, PoP 60, Num RW- Sct T", "productType":"FWF", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "Numerous showers and scattered thunderstorms", "LAL.................4",".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 12, 4, "all", 1), ("Fcst", "PoP", "SCALAR", 0, 12, 60, "all", 1), ("Fcst", "Wx", "WEATHER", 0, 12, "Num:RW:-::^Sct:T:::", "all"), ], }, { "name":"FWF_LAL21", "commentary": "LAL3, PoP 30, Sct RW- Iso T", "productType":"FWF", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "Scattered showers and isolated thunderstorms", "LAL.................3", ".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 12, 3, "all", 1), ("Fcst", "PoP", "SCALAR", 0, 12, 30, "all", 1), ("Fcst", "Wx", "WEATHER", 0, 12, "Sct:RW:-::^Iso:T:::", "all"), ], }, { "name":"FWF_LAL22", "commentary": "LAL with local effects (2,4)", "productType":"FWF", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "Chance of showers and thunderstorms", "LAL.................4", ".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 12, 2, ["BelowElev"], 1), ("Fcst", "LAL", "SCALAR", 0, 12, 4, ["AboveElev"], 1), ("Fcst", "Wx", "WEATHER", 0, 12, "Chc:RW:-::^Chc:T:::", "all"), ], }, { "name":"FWF_LAL23", "commentary": "LAL with local effects (2,2)", "productType":"FWF", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "Chance of showers and thunderstorms", "LAL.................2", ".TONIGHT..."], "createGrids": [ ("Fcst", "LAL", "SCALAR", 0, 12, 2, ["BelowElev"], 1), ("Fcst", "LAL", "SCALAR", 0, 12, 2, ["AboveElev"], 1), ("Fcst", "Wx", "WEATHER", 0, 12, "Chc:RW:-::^Chc:T:::", "all"), ], }, { "name":"FWF_LAL24", "commentary": "LAL with local effects (2,2), NoWx, results LAL1", "productType":"FWF", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "LAL.................1", ".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 12, 2, ["BelowElev"], 1), ("Fcst", "LAL", "SCALAR", 0, 12, 2, ["AboveElev"], 1), ("Fcst", "Wx", "WEATHER", 0, 12, "NoWx", "all"), ], }, { "name":"FWF_LAL25", "commentary": "LAL 1->4, NoWx -> Chc T", "productType":"FWF", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...","Chance of thunderstorms after 0900", "LAL.................1 until 0900, then 4", ".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 3, 1, "all", 1), ("Fcst", "LAL", "SCALAR", 3, 12, 4, "all", 1), ("Fcst", "Wx", "WEATHER", 0, 3, "NoWx", "all"), ("Fcst", "Wx", "WEATHER", 3, 12, "Chc:T:::", "all"), ], }, { "name":"FWF_LAL26", "productType":"FWF", "commentary": "Iso T does not get into wording", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "Scattered showers", "LAL.................1", ".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 12, 1, ["area3"], 1), ("Fcst", "LAL", "SCALAR", 0, 12, 2, ["area3_pt"], 1), ("Fcst", "PoP", "SCALAR", 0, 12, 30, ["area3"], 1), ("Fcst", "PoP", "SCALAR", 0, 12, 30, ["area3_pt"], 1), ("Fcst", "Wx", "WEATHER", 0, 12, "Sct:RW:-::", ["area3"]), ("Fcst", "Wx", "WEATHER", 0, 12, "Iso:T:::", ["area3_pt"]), ], }, { "name":"FWF_LAL27", "productType":"FWF", "commentary": "Matching Iso T, Takes Max LAL = 2 even tho for small area", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "Scattered showers and isolated thunderstorms", "LAL.................2", ".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 12, 1, ["area3"], 1), ("Fcst", "LAL", "SCALAR", 0, 12, 2, ["area3_pt"], 1), ("Fcst", "PoP", "SCALAR", 0, 12, 30, "all", 1), ("Fcst", "Wx", "WEATHER", 0, 12, "Sct:RW:-::^Iso:T:::", ["area3"]), ], }, # Matching Iso T, can't find 3. # If the resultValue value (4) is greater than the binHighVal (3), use binHighVal { "name":"FWF_LAL28", "productType":"FWF", "commentary": "Matching Iso T, can't find 3. If the resultValue value (4) is greater than the binHighVal (3), use binHighVal", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "Scattered showers and isolated thunderstorms", "LAL.................3", ".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 12, 1, ["area3"], 1), ("Fcst", "LAL", "SCALAR", 0, 12, 4, ["area3_pt"], 1), ("Fcst", "PoP", "SCALAR", 0, 12, 30, "all", 1), ("Fcst", "Wx", "WEATHER", 0, 12, "Sct:RW:-::^Iso:T:::", ["area3"]), ], }, { "name":"FWF_LAL29", "productType":"FWF", "commentary": "Matching Iso T, LAL = 2", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "Scattered showers and isolated thunderstorms", "LAL.................3", ".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 12, 3, ["area3"], 1), ("Fcst", "LAL", "SCALAR", 0, 12, 4, ["area3_pt"], 1), ("Fcst", "PoP", "SCALAR", 0, 12, 30, "all", 1), ("Fcst", "Wx", "WEATHER", 0, 12, "Sct:RW:-::^Iso:T:::", ["area3"]), ], }, { "name":"FWF_LAL30", "productType":"FWF", "commentary": "LAL (4,5), PoP (50,30), (Sct TRW-,Num TRW-)", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "Scattered showers and thunderstorms", "LAL.................4", ".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 12, 4, ["area3"], 1), ("Fcst", "LAL", "SCALAR", 0, 12, 5, ["area3_pt"], 1), ("Fcst", "PoP", "SCALAR", 0, 12, 50, ["area3"], 1), ("Fcst", "PoP", "SCALAR", 0, 12, 30, ["area3_pt"], 1), ("Fcst", "Wx", "WEATHER", 0, 12, "Sct:T:::^Sct:RW:-::", ["area3"]), ("Fcst", "Wx", "WEATHER", 0, 12, "Num:T:::^Num:RW:-::", ["area3_pt"]), ], }, { "name":"FWF_LAL31", "productType":"FWF", "commentary": "LAL (4,6), PoP (50,20), (Chc TRW-,Chc TRW- Dry)", "comboFlag": 1, "orderStrings": 1, "checkStrings": [".TODAY...", "Chance of thunderstorms", "LAL.................4", ".TONIGHT..."], "createGrids" : [ ("Fcst", "LAL", "SCALAR", 0, 12, 4, ["area3"], 1), ("Fcst", "LAL", "SCALAR", 0, 12, 6, ["area3_pt"], 1), ("Fcst", "PoP", "SCALAR", 0, 12, 50, ["area3"], 1), ("Fcst", "PoP", "SCALAR", 0, 12, 20, ["area3_pt"], 1), ("Fcst", "Wx", "WEATHER", 0, 12,"Chc:T:::", ["area3"]), ("Fcst", "Wx", "WEATHER", 0, 12,"Chc:T:::Dry", ["area3_pt"]), ], }, #### editAreaSuffix { "name":"EditAreaSuffix1", "productType":"ZFP", "commentary": "PoP 0%, Sky (0,75), (WS.W,None)", "comboFlag": 1, # checkStrings "checkStrings": [ "WINTER STORM WARNING", ".TODAY...", "Mostly cloudy", ".TONIGHT...", ], "orderStrings": 1, # createGrids "createGrids" : [ ("Fcst", "PoP", "SCALAR", 0, 12, 0, "all"), ("Fcst", "Sky", "SCALAR", 0, 12, 0, ["area3"]), ("Fcst", "Sky", "SCALAR", 0, 12, 75, ["area3_pt"]), ("Fcst", "Hazards", "DISCRETE", 0, 12, "WS.W", ["area3"]), ("Fcst", "Hazards", "DISCRETE", 0, 12, "", ["area3_pt"]), ], "fileChanges": [("ZFP__Definition", "TextUtility", "add", "\nDefinition['editAreaSuffix'] = '_pt'\n", "delete")], "gridsStartTime": "6am Local", "drtTime": "4am Local", }, { # Tests for TK4577 "name":"EditAreaSuffix2", "productType":"ZFP", "commentary": "Set up editAreaSuffix via commandline (tk4577)", "cmdLineVars" :"{('Product Issuance', 'productIssuance'): 'Morning', ('Issued By', 'issuedBy'): None, 'editAreaSuffix':'_pt'}", "comboFlag": 1, # checkStrings "checkStrings": [ "WINTER STORM WARNING", ".TODAY...", "Mostly cloudy", ".TONIGHT...", ], "orderStrings": 1, # createGrids "createGrids" : [ ("Fcst", "PoP", "SCALAR", 0, 12, 0, "all"), ("Fcst", "Sky", "SCALAR", 0, 12, 0, ["area3"]), ("Fcst", "Sky", "SCALAR", 0, 12, 75, ["area3_pt"]), ("Fcst", "Hazards", "DISCRETE", 0, 12, "WS.W", ["area3"]), ("Fcst", "Hazards", "DISCRETE", 0, 12, "", ["area3_pt"]), ], "gridsStartTime": "6am Local", "drtTime": "4am Local", }, { # Tests for TK4577 "name":"EditAreaSuffix3", "productType":"ZFP", "commentary": "Set up editAreaSuffix via commandline (tk4577)", "cmdLineVars" :"{('Product Issuance', 'productIssuance'): 'Morning', ('Issued By', 'issuedBy'): None, ('Enter Edit Area Suffix if desired:', 'editAreaSuffix'):'_pt'}", "comboFlag": 1, # checkStrings "checkStrings": [ "WINTER STORM WARNING", ".TODAY...", "Mostly cloudy", ".TONIGHT...", ], "orderStrings": 1, # createGrids "createGrids" : [ ("Fcst", "PoP", "SCALAR", 0, 12, 0, "all"), ("Fcst", "Sky", "SCALAR", 0, 12, 0, ["area3"]), ("Fcst", "Sky", "SCALAR", 0, 12, 75, ["area3_pt"]), ("Fcst", "Hazards", "DISCRETE", 0, 12, "WS.W", ["area3"]), ("Fcst", "Hazards", "DISCRETE", 0, 12, "", ["area3_pt"]), ], "gridsStartTime": "6am Local", "drtTime": "4am Local", }, # TK 4674 { "name":"EditAreaSuffix4", "productType":"ZFP", "commentary": """ Edit Areas Suffix with Local Hazard using hazard_hook (tk4674) """, "comboFlag": 1, "checkStrings": [ "...LOCAL HAZARD IN EFFECT THROUGH THIS AFTERNOON IN THE MOUNTAINS...", ".TODAY...", "Mostly cloudy", ".TONIGHT...", ], "orderStrings": 1, "createGrids" : [ ("Fcst", "PoP", "SCALAR", 0, 12, 0, "all"), ("Fcst", "Sky", "SCALAR", 0, 12, 0, ["area3"]), ("Fcst", "Sky", "SCALAR", 0, 12, 75, ["area3_pt"]), ("Fcst", "Hazards", "DISCRETE", 0, 12, "LocalHazard1", ["area3"]), ("Fcst", "Hazards", "DISCRETE", 0, 12, "", ["area3_pt"]), ], "fileChanges": [ ("ZFP__Definition", "TextUtility", "add", "\nDefinition['editAreaSuffix'] = '_pt'\n", "delete"), ("ZFP__Overrides", "TextUtility", "add", localHazard, "undo"), ("ZFP__Overrides", "TextUtility", "add", hazardHook, "undo"), ], "gridsStartTime": "6am Local", "drtTime": "4am Local", }, { "name":"EditAreaSuffix5", "productType":"ZFP", "commentary": """ Edit Areas Suffix with Local Hazard calling "getLocalHeadlinesTiming" instead of using hard-coded phrasing for local headlines """, "comboFlag": 1, "checkStrings": [ "...LOCAL HAZARD IN EFFECT THROUGH THIS AFTERNOON...", ".TODAY...", "Mostly cloudy", ".TONIGHT...", ], "orderStrings": 1, "createGrids" : [ ("Fcst", "PoP", "SCALAR", 0, 12, 0, "all"), ("Fcst", "Sky", "SCALAR", 0, 12, 0, ["area3"]), ("Fcst", "Sky", "SCALAR", 0, 12, 75, ["area3_pt"]), ("Fcst", "Hazards", "DISCRETE", 0, 12, "LocalHazard1", ["area3"]), ("Fcst", "Hazards", "DISCRETE", 0, 12, "", ["area3_pt"]), ], "fileChanges": [ ("ZFP__Definition", "TextUtility", "add", "\nDefinition['editAreaSuffix'] = '_pt'\n", "delete"), ("ZFP__Overrides", "TextUtility", "add", localHazard, "undo"), ("ZFP__Overrides", "TextUtility", "add", localHeadlinesTiming1, "undo"), ], "gridsStartTime": "6am Local", "drtTime": "4am Local", }, { "name":"EditAreaSuffix6", "productType":"ZFP", "commentary": """ Edit Areas Suffix with Local Hazard using methods for headinesTiming """, "comboFlag": 1, "checkStrings": [ "...LOCAL HAZARD IN EFFECT THROUGH THIS AFTERNOON...", ".TODAY...", "Mostly cloudy", ".TONIGHT...", ], "orderStrings": 1, "createGrids" : [ ("Fcst", "PoP", "SCALAR", 0, 12, 0, "all"), ("Fcst", "Sky", "SCALAR", 0, 12, 0, ["area3"]), ("Fcst", "Sky", "SCALAR", 0, 12, 75, ["area3_pt"]), ("Fcst", "Hazards", "DISCRETE", 0, 12, "", ["area3_pt"]), ("Fcst", "Hazards", "DISCRETE", 0, 12, "LocalHazard1", ["area3"]), ], "fileChanges": [ ("ZFP__Definition", "TextUtility", "add", "\nDefinition['editAreaSuffix'] = '_pt'\n", "delete"), ("ZFP__Overrides", "TextUtility", "add", localHazard, "undo"), ("ZFP__Overrides", "TextUtility", "add", localHeadlinesTiming2, "undo"), ], "gridsStartTime": "6am Local", "drtTime": "4am Local", }, # Allow lower case TK 4669 { "name":"LowerCaseHeadlines", "productType":"ZFP", "commentary": """ Lower case with Local Hazard """, "comboFlag": 1, # checkStrings "checkStrings": [ "...LOCAL HAZARD IN EFFECT THROUGH THIS AFTERNOON...", ".TODAY...", "Mostly cloudy. Patchy dense fog.", "Ice accumulation around 2 inches.", # DR_18363 "Highs in the upper 70s.", "Near steady temperature in the mid 50s.", ".TONIGHT...", "Very windy.", "Widespread thunderstorms.", # DR_18363 "Lows around 60.", "Near steady temperature in the mid 40s.", ], "orderStrings": 1, "createGrids" : CreateGrids.Public_createGrids + [ ("Fcst", "PoP", "SCALAR", 0, 12, 0, "all"), ("Fcst", "Sky", "SCALAR", 0, 12, 0, ["area3"]), ("Fcst", "Sky", "SCALAR", 0, 12, 75, ["area3_pt"]), ("Fcst", "Hazards", "DISCRETE", 0, 12, "LocalHazard1", ["area3"]), ("Fcst", "Hazards", "DISCRETE", 0, 12, "", ["area3_pt"]), ], "fileChanges": [ ("ZFP__Definition", "TextUtility", "add", "\nDefinition['editAreaSuffix'] = '_pt'\n", "delete"), ("ZFP__Definition", "TextUtility", "add", "\nDefinition['lowerCase'] = 1\n", "undo"), ("ZFP__Overrides", "TextUtility", "add", localHazard, "undo"), ("ZFP__Overrides", "TextUtility", "add", localHeadlinesTiming1, "undo"), ], "gridsStartTime": "6am Local", "drtTime": "4am Local", }, { "name":"LowerCaseHazards", "productType":"ZFP", "commentary": """ Lower Case with a Hazard """, "comboFlag": 1, # checkStrings "checkStrings": [ "...WINTER STORM WARNING IN EFFECT UNTIL 6 PM EST THIS EVENING...", ".TODAY...", "Mostly cloudy. Patchy dense fog.", "Ice accumulation around 2 inches.", # "Highs in the upper 70s.", "Near steady temperature in the mid 50s.", ".TONIGHT...", "Very windy.", "Widespread thunderstorms.", #"Lows around 60.", "Near steady temperature in the mid 40s.", ], "orderStrings": 1, # createGrids "createGrids" : CreateGrids.Public_createGrids + [ ("Fcst", "PoP", "SCALAR", 0, 12, 0, "all"), ("Fcst", "Sky", "SCALAR", 0, 12, 0, "all"), ("Fcst", "Sky", "SCALAR", 0, 12, 75, "all"), ("Fcst", "Hazards", "DISCRETE", 0, 12, "WS.W", "all"), ], "fileChanges": [ ("ZFP__Definition", "TextUtility", "add", "\nDefinition['lowerCase'] = 1\n", "delete"), ], "gridsStartTime": "6am Local", "drtTime": "4am Local", }, ## Humidity Recovery Local Effect { "name":"FWF_HumRecLE1", "commentary": "Testing Humidity Recovery Local Effect: No Local Effect", "productType":"FWF", "comboFlag": 1, "orderStrings": 1, "checkStrings": ["Humidity recovery...Poor"], "createGrids": [ ("Fcst", "MaxRH", "SCALAR", "MaxRHBegin-24", "MaxRHEnd-24", 10, ["Valleys"], 1), ("Fcst", "MaxRH", "SCALAR", "MaxRHBegin-24", "MaxRHEnd-24", 10, ["Ridges"], 1), ("Fcst", "MaxRH", "SCA16LAR", "MaxRHBegin", "MaxRHEnd", 20, ["Valleys"], 1), ("Fcst", "MaxRH", "SCALAR", "MaxRHBegin", "MaxRHEnd", 20, ["Ridges"], 1), ], "fileChanges": [("FWF__Overrides", "TextUtility", "add", humRec, "delete")], }, ## Humidity Recovery Local Effect { "name":"FWF_HumRecLE2", "commentary": "Testing Humidity Recovery Local Effect: Local Effect", "productType":"FWF", "comboFlag": 1, "orderStrings": 1, "checkStrings": ["Humidity recovery...Poor, except Excellent on the ridges."], "createGrids": [ ("Fcst", "MaxRH", "SCALAR", "MaxRHBegin-24", "MaxRHEnd-24", 10, ["Valleys"], 1), ("Fcst", "MaxRH", "SCALAR", "MaxRHBegin-24", "MaxRHEnd-24", 10, ["Ridges"], 1), ("Fcst", "MaxRH", "SCALAR", "MaxRHBegin", "MaxRHEnd", 10, ["Valleys"], 1), ("Fcst", "MaxRH", "SCALAR", "MaxRHBegin", "MaxRHEnd", 75, ["Ridges"], 1), ], "fileChanges": [("FWF__Overrides", "TextUtility", "add", humRec, "delete")], }, { "name":"General_CleanUp", "commentary": "Clean out grids", "productType": None, "deleteGrids": TestScript.general_deleteGrids, "gridsStartTime": "6am Local", }, ] def testScript(self, dataMgr): defaults = { "cmdLineVars" :"{('Product Issuance', 'productIssuance'): 'Morning', ('Issued By', 'issuedBy'): None}", } # Necessary to do drt for scripts # that start the product with current time time_4am = self.getAbsFromLocal(2010, 1, 1, 4, 0) time_6am = self.getAbsFromLocal(2010, 1, 1, 6, 0) for script in scripts: if script.get("gridsStartTime", None) == "6am Local": script["gridsStartTime"] = time_6am if script.get("drtTime", None) == "4am Local": script["drtTime"] = time_6am # Should this be time_4am? return TestScript.generalTestScript(self, dataMgr, scripts, defaults)