Merge "Issue #2390 update grib decoder and vb to handle new storm surge parameters. Change-Id: I03a079fc06a922f693609e51df79e4d78cb4f209" into development

Former-commit-id: 3d09c6dedbaaa0db6b2247832a45bde8a1357786
This commit is contained in:
Richard Peter 2013-10-03 16:57:39 -05:00 committed by Gerrit Code Review
commit bc3843dc75
47 changed files with 533 additions and 532 deletions

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG" name="Probabilistic Storm Surge height w/10% chance of being exceeded" unit="ft">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="Surge10Pct"/>
<Field abbreviation="Surge10pctRun"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-518E2" name="Probabilistic Storm Surge probability &gt; 17 feet" unit="%">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="PSurge17Ft"/>
<Field abbreviation="PSurge17ftRun"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-549E2" name="Probabilistic Storm Surge probability &gt; 18 feet" unit="%">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="PSurge18Ft"/>
<Field abbreviation="PSurge18ftRun"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-579E2" name="Probabilistic Storm Surge probability &gt; 19 feet" unit="%">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="PSurge19Ft"/>
<Field abbreviation="PSurge19ftRun"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-122E2" name="Probabilistic Storm Surge probability &gt; 4 feet" unit="%">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="PSurge4Ft"/>
<Field abbreviation="PSurge4ftRun"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-152E2" name="Probabilistic Storm Surge probability &gt; 5 feet" unit="%">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="PSurge5Ft"/>
<Field abbreviation="PSurge5ftRun"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-183E2" name="Probabilistic Storm Surge probability &gt; 6 feet" unit="%">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="PSurge6Ft"/>
<Field abbreviation="PSurge6ftRun"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-20" name="Probabilistic Storm Surge height w/20% chance of being exceeded" unit="ft">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="Surge20Pct"/>
<Field abbreviation="Surge20pctRun"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-213E2" name="Probabilistic Storm Surge probability &gt; 7 feet" unit="%">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="PSurge7Ft"/>
<Field abbreviation="PSurge7ftRun"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-244E2" name="Probabilistic Storm Surge probability &gt; 8 feet" unit="%">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="PSurge8Ft"/>
<Field abbreviation="PSurge8ftRun"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-274E2" name="Probabilistic Storm Surge probability &gt; 9 feet" unit="%">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="PSurge9Ft"/>
<Field abbreviation="PSurge9ftRun"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-30" name="Probabilistic Storm Surge height w/30% chance of being exceeded" unit="ft">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="Surge30Pct"/>
<Field abbreviation="Surge30pctRun"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-305E2" name="Probabilistic Storm Surge probability &gt; 10 feet" unit="%">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="PSurge10Ft"/>
<Field abbreviation="PSurge10ftRun"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-335E2" name="Probabilistic Storm Surge probability &gt; 11 feet" unit="%">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="PSurge11Ft"/>
<Field abbreviation="PSurge11ftRun"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-366E2" name="Probabilistic Storm Surge probability &gt; 12 feet" unit="%">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="PSurge12Ft"/>
<Field abbreviation="PSurge12ftRun"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-396E2" name="Probabilistic Storm Surge probability &gt; 13 feet" unit="%">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="PSurge13Ft"/>
<Field abbreviation="PSurge13ftRun"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-40" name="Probabilistic Storm Surge height w/40% chance of being exceeded" unit="ft">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="Surge40Pct"/>
<Field abbreviation="Surge40pctRun"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-427E2" name="Probabilistic Storm Surge probability &gt; 14 feet" unit="%">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="PSurge14Ft"/>
<Field abbreviation="PSurge14ftRun"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-457E2" name="Probabilistic Storm Surge probability &gt; 15 feet" unit="%">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="PSurge15Ft"/>
<Field abbreviation="PSurge15ftRun"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-488E2" name="Probabilistic Storm Surge probability &gt; 16 feet" unit="%">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="PSurge16Ft"/>
<Field abbreviation="PSurge16ftRun"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-50" name="Probabilistic Storm Surge height w/50% chance of being exceeded" unit="ft">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="Surge50Pct"/>
<Field abbreviation="Surge50pctRun"/>
</Method>
</DerivedParameter>

View file

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
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.
-->
<DerivedParameter abbreviation="TPCSG-60" name="Probabilistic Storm Surge height w/60% chance of being exceeded" unit="ft">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="Surge60Pct"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-610E2" name="Probabilistic Storm Surge probability &gt; 20 feet" unit="%">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="PSurge20Ft"/>
<Field abbreviation="PSurge20ftRun"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-61E2" name="Probabilistic Storm Surge probability &gt; 2 feet" unit="%">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="PSurge2Ft"/>
<Field abbreviation="PSurge2ftRun"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-640E2" name="Probabilistic Storm Surge probability &gt; 21 feet" unit="%">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="PSurge21Ft"/>
<Field abbreviation="PSurge21ftRun"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-671E2" name="Probabilistic Storm Surge probability &gt; 22 feet" unit="%">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="PSurge22Ft"/>
<Field abbreviation="PSurge22ftRun"/>
</Method>
</DerivedParameter>

View file

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
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.
-->
<DerivedParameter abbreviation="TPCSG-70" name="Probabilistic Storm Surge height w/70% chance of being exceeded" unit="ft">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="Surge70Pct"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-701E2" name="Probabilistic Storm Surge probability &gt; 23 feet" unit="%">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="PSurge23Ft"/>
<Field abbreviation="PSurge23ftRun"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-732E2" name="Probabilistic Storm Surge probability &gt; 24 feet" unit="%">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="PSurge24Ft"/>
<Field abbreviation="PSurge24ftRun"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-762E2" name="Probabilistic Storm Surge probability &gt; 25 feet" unit="%">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="PSurge25Ft"/>
<Field abbreviation="PSurge25ftRun"/>
</Method>
</DerivedParameter>

View file

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
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.
-->
<DerivedParameter abbreviation="TPCSG-80" name="Probabilistic Storm Surge height w/80% chance of being exceeded" unit="ft">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="Surge80Pct"/>
</Method>
</DerivedParameter>

View file

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
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.
-->
<DerivedParameter abbreviation="TPCSG-90" name="Probabilistic Storm Surge height w/90% chance of being exceeded" unit="ft">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="Surge90Pct"/>
</Method>
</DerivedParameter>

View file

@ -20,6 +20,6 @@
-->
<DerivedParameter abbreviation="TPCSG-91E2" name="Probabilistic Storm Surge probability &gt; 3 feet" unit="%">
<Method models="TPCSurgeProb" name="Alias">
<Field abbreviation="PSurge3Ft"/>
<Field abbreviation="PSurge3ftRun"/>
</Method>
</DerivedParameter>

View file

@ -46,39 +46,63 @@
<field key="visCat" displayTypes="IMAGE"/>
<field key="ThPcat" displayTypes="IMAGE"/>
<field key="Cig" displayTypes="IMAGE"/>
<field key="TPCSG" displayTypes="IMAGE"/>
<field key="TPCSG-20" displayTypes="IMAGE"/>
<field key="TPCSG-30" displayTypes="IMAGE"/>
<field key="TPCSG-40" displayTypes="IMAGE"/>
<field key="TPCSG-50" displayTypes="IMAGE"/>
<field key="TPCSG-60" displayTypes="IMAGE"/>
<field key="TPCSG-70" displayTypes="IMAGE"/>
<field key="TPCSG-80" displayTypes="IMAGE"/>
<field key="TPCSG-90" displayTypes="IMAGE"/>
<field key="TPCSG-61E2" displayTypes="IMAGE"/>
<field key="TPCSG-91E2" displayTypes="IMAGE"/>
<field key="TPCSG-122E2" displayTypes="IMAGE"/>
<field key="TPCSG-152E2" displayTypes="IMAGE"/>
<field key="TPCSG-183E2" displayTypes="IMAGE"/>
<field key="TPCSG-213E2" displayTypes="IMAGE"/>
<field key="TPCSG-244E2" displayTypes="IMAGE"/>
<field key="TPCSG-274E2" displayTypes="IMAGE"/>
<field key="TPCSG-305E2" displayTypes="IMAGE"/>
<field key="TPCSG-335E2" displayTypes="IMAGE"/>
<field key="TPCSG-366E2" displayTypes="IMAGE"/>
<field key="TPCSG-396E2" displayTypes="IMAGE"/>
<field key="TPCSG-457E2" displayTypes="IMAGE"/>
<field key="TPCSG-427E2" displayTypes="IMAGE"/>
<field key="TPCSG-488E2" displayTypes="IMAGE"/>
<field key="TPCSG-518E2" displayTypes="IMAGE"/>
<field key="TPCSG-549E2" displayTypes="IMAGE"/>
<field key="TPCSG-579E2" displayTypes="IMAGE"/>
<field key="TPCSG-610E2" displayTypes="IMAGE"/>
<field key="TPCSG-640E2" displayTypes="IMAGE"/>
<field key="TPCSG-671E2" displayTypes="IMAGE"/>
<field key="TPCSG-701E2" displayTypes="IMAGE"/>
<field key="TPCSG-732E2" displayTypes="IMAGE"/>
<field key="TPCSG-762E2" displayTypes="IMAGE"/>
<field key="PSurge0ft6hr" displayTypes="IMAGE"/>
<field key="PSurge0ftRun" displayTypes="IMAGE"/>
<field key="PSurge10ft6hr" displayTypes="IMAGE"/>
<field key="PSurge10ftRun" displayTypes="IMAGE"/>
<field key="PSurge11ft6hr" displayTypes="IMAGE"/>
<field key="PSurge11ftRun" displayTypes="IMAGE"/>
<field key="PSurge12ft6hr" displayTypes="IMAGE"/>
<field key="PSurge12ftRun" displayTypes="IMAGE"/>
<field key="PSurge13ft6hr" displayTypes="IMAGE"/>
<field key="PSurge13ftRun" displayTypes="IMAGE"/>
<field key="PSurge14ft6hr" displayTypes="IMAGE"/>
<field key="PSurge14ftRun" displayTypes="IMAGE"/>
<field key="PSurge15ft6hr" displayTypes="IMAGE"/>
<field key="PSurge15ftRun" displayTypes="IMAGE"/>
<field key="PSurge16ft6hr" displayTypes="IMAGE"/>
<field key="PSurge16ftRun" displayTypes="IMAGE"/>
<field key="PSurge17ft6hr" displayTypes="IMAGE"/>
<field key="PSurge17ftRun" displayTypes="IMAGE"/>
<field key="PSurge18ft6hr" displayTypes="IMAGE"/>
<field key="PSurge18ftRun" displayTypes="IMAGE"/>
<field key="PSurge19ft6hr" displayTypes="IMAGE"/>
<field key="PSurge19ftRun" displayTypes="IMAGE"/>
<field key="PSurge1ft6hr" displayTypes="IMAGE"/>
<field key="PSurge1ftRun" displayTypes="IMAGE"/>
<field key="PSurge20ft6hr" displayTypes="IMAGE"/>
<field key="PSurge20ftRun" displayTypes="IMAGE"/>
<field key="PSurge21ftRun" displayTypes="IMAGE"/>
<field key="PSurge22ftRun" displayTypes="IMAGE"/>
<field key="PSurge23ftRun" displayTypes="IMAGE"/>
<field key="PSurge24ftRun" displayTypes="IMAGE"/>
<field key="PSurge25ftRun" displayTypes="IMAGE"/>
<field key="PSurge2ft6hr" displayTypes="IMAGE"/>
<field key="PSurge2ftRun" displayTypes="IMAGE"/>
<field key="PSurge3ft6hr" displayTypes="IMAGE"/>
<field key="PSurge3ftRun" displayTypes="IMAGE"/>
<field key="PSurge4ft6hr" displayTypes="IMAGE"/>
<field key="PSurge4ftRun" displayTypes="IMAGE"/>
<field key="PSurge5ft6hr" displayTypes="IMAGE"/>
<field key="PSurge5ftRun" displayTypes="IMAGE"/>
<field key="PSurge6ft6hr" displayTypes="IMAGE"/>
<field key="PSurge6ftRun" displayTypes="IMAGE"/>
<field key="PSurge7ft6hr" displayTypes="IMAGE"/>
<field key="PSurge7ftRun" displayTypes="IMAGE"/>
<field key="PSurge8ft6hr" displayTypes="IMAGE"/>
<field key="PSurge8ftRun" displayTypes="IMAGE"/>
<field key="PSurge9ft6hr" displayTypes="IMAGE"/>
<field key="PSurge9ftRun" displayTypes="IMAGE"/>
<field key="Surge10pct6hr" displayTypes="IMAGE"/>
<field key="Surge10pctRun" displayTypes="IMAGE"/>
<field key="Surge20pct6hr" displayTypes="IMAGE"/>
<field key="Surge20pctRun" displayTypes="IMAGE"/>
<field key="Surge30pct6hr" displayTypes="IMAGE"/>
<field key="Surge30pctRun" displayTypes="IMAGE"/>
<field key="Surge40pct6hr" displayTypes="IMAGE"/>
<field key="Surge40pctRun" displayTypes="IMAGE"/>
<field key="Surge50pct6hr" displayTypes="IMAGE"/>
<field key="Surge50pctRun" displayTypes="IMAGE"/>
<field key="SLDP" displayTypes="IMAGE"/>
<field key="TPFI" displayTypes="IMAGE"/>
<field key="TIPD" displayTypes="IMAGE"/>

View file

@ -626,85 +626,176 @@
key="MnT6hr" indentText="false" />
</contribute>
<contribute xsi:type="toolbarSubMenu" menuText="Probabilistic Storm Surge">
<contribute xsi:type="menuItem" menuText="probability of &gt; 2-foot surge"
key="TPCSG-61E2" indentText="false" />
<contribute xsi:type="menuItem" menuText="&gt; 3-foot"
key="TPCSG-91E2" indentText="true" />
<contribute xsi:type="menuItem" menuText="&gt; 4-foot"
key="TPCSG-122E2" indentText="true" />
<contribute xsi:type="menuItem" menuText="&gt; 5-foot"
key="TPCSG-152E2" indentText="true" />
<contribute xsi:type="menuItem" menuText="&gt; 6-foot"
key="TPCSG-183E2" indentText="true" />
<contribute xsi:type="menuItem" menuText="&gt; 7-foot"
key="TPCSG-213E2" indentText="true" />
<contribute xsi:type="menuItem" menuText="&gt; 8-foot"
key="TPCSG-244E2" indentText="true" />
<contribute xsi:type="menuItem" menuText="&gt; 9-foot"
key="TPCSG-274E2" indentText="true" />
<contribute xsi:type="menuItem" menuText="&gt; 10-foot"
key="TPCSG-305E2" indentText="true" />
<contribute xsi:type="menuItem"
menuText="height w/10% chance of being exceeded" key="TPCSG"
indentText="false" />
<contribute xsi:type="menuItem"
menuText="Real Time Slosh MEOW" key="TPCSG-SLOSH"
indentText="false" />
<contribute xsi:type="menuItem"
menuText="height w/20% chance of being exceeded" key="TPCSG-20"
indentText="false" />
<contribute xsi:type="menuItem"
menuText="height w/30% chance of being exceeded" key="TPCSG-30"
indentText="false" />
<contribute xsi:type="menuItem"
menuText="height w/40% chance of being exceeded" key="TPCSG-40"
indentText="false" />
<contribute xsi:type="menuItem"
menuText="height w/50% chance of being exceeded" key="TPCSG-50"
indentText="false" />
<contribute xsi:type="menuItem"
menuText="height w/60% chance of being exceeded" key="TPCSG-60"
indentText="false" />
<contribute xsi:type="menuItem"
menuText="height w/70% chance of being exceeded" key="TPCSG-70"
indentText="false" />
<contribute xsi:type="menuItem"
menuText="height w/80% chance of being exceeded" key="TPCSG-80"
indentText="false" />
<contribute xsi:type="menuItem"
menuText="height w/90% chance of being exceeded" key="TPCSG-90"
indentText="false" />
<contribute xsi:type="menuItem" menuText="&gt; 11-foot"
key="TPCSG-335E2" indentText="true" />
<contribute xsi:type="menuItem" menuText="&gt; 12-foot"
key="TPCSG-366E2" indentText="true" />
<contribute xsi:type="menuItem" menuText="&gt; 13-foot"
key="TPCSG-396E2" indentText="true" />
<contribute xsi:type="menuItem" menuText="&gt; 14-foot"
key="TPCSG-427E2" indentText="true" />
<contribute xsi:type="menuItem" menuText="&gt; 15-foot"
key="TPCSG-457E2" indentText="true" />
<contribute xsi:type="menuItem" menuText="&gt; 16-foot"
key="TPCSG-488E2" indentText="true" />
<contribute xsi:type="menuItem" menuText="&gt; 17-foot"
key="TPCSG-518E2" indentText="true" />
<contribute xsi:type="menuItem" menuText="&gt; 18-foot"
key="TPCSG-549E2" indentText="true" />
<contribute xsi:type="menuItem" menuText="&gt; 19-foot"
key="TPCSG-579E2" indentText="true" />
<contribute xsi:type="menuItem" menuText="&gt; 20-foot"
key="TPCSG-610E2" indentText="true" />
<contribute xsi:type="menuItem" menuText="&gt; 21-foot"
key="TPCSG-640E2" indentText="true" />
<contribute xsi:type="menuItem" menuText="&gt; 22-foot"
key="TPCSG-671E2" indentText="true" />
<contribute xsi:type="menuItem" menuText="&gt; 23-foot"
key="TPCSG-701E2" indentText="true" />
<contribute xsi:type="menuItem" menuText="&gt; 24-foot"
key="TPCSG-732E2" indentText="true" />
<contribute xsi:type="menuItem" menuText="&gt; 25-foot"
key="TPCSG-762E2" indentText="true" />
<contribute xsi:type="toolbarSubMenu" menuText="pSurge Plus Tide">
<contribute xsi:type="menuItem" menuText="10% Exceedance Ht."
key="Surge10pctRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="20% Exceedance Ht."
key="Surge20pctRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="30% Exceedance Ht."
key="Surge30pctRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="40% Exceedance Ht."
key="Surge40pctRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="50% Exceedance Ht."
key="Surge50pctRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 2 ft"
key="PSurge2ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 3 ft"
key="PSurge3ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 4 ft"
key="PSurge4ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 5 ft"
key="PSurge5ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 6 ft"
key="PSurge6ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 7 ft"
key="PSurge7ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 8 ft"
key="PSurge8ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 9 ft"
key="PSurge9ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 10 ft"
key="PSurge10ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 11 ft"
key="PSurge11ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 12 ft"
key="PSurge12ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 13 ft"
key="PSurge13ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 14 ft"
key="PSurge14ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 15 ft"
key="PSurge15ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 16 ft"
key="PSurge16ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 17 ft"
key="PSurge17ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 18 ft"
key="PSurge18ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 19 ft"
key="PSurge19ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 20 ft"
key="PSurge20ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 21 ft"
key="PSurge21ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 22 ft"
key="PSurge22ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 23 ft"
key="PSurge23ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 24 ft"
key="PSurge24ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 25 ft"
key="PSurge25ftRun" indentText="false" />
</contribute>
<contribute xsi:type="toolbarSubMenu" menuText="PHISH (Above Ground)">
<contribute xsi:type="toolbarSubMenu" menuText="Incremental">
<contribute xsi:type="menuItem" menuText="10% Exceedance Ht."
key="Surge10pct6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="20% Exceedance Ht."
key="Surge20pct6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="30% Exceedance Ht."
key="Surge30pct6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="40% Exceedance Ht."
key="Surge40pct6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="50% Exceedance Ht."
key="Surge50pct6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 0 ft"
key="PSurge0ft6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 1 ft"
key="PSurge1ft6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 2 ft"
key="PSurge2ft6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 3 ft"
key="PSurge3ft6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 4 ft"
key="PSurge4ft6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 5 ft"
key="PSurge5ft6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 6 ft"
key="PSurge6ft6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 7 ft"
key="PSurge7ft6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 8 ft"
key="PSurge8ft6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 9 ft"
key="PSurge9ft6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 10 ft"
key="PSurge10ft6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 11 ft"
key="PSurge11ft6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 12 ft"
key="PSurge12ft6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 13 ft"
key="PSurge13ft6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 14 ft"
key="PSurge14ft6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 15 ft"
key="PSurge15ft6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 16 ft"
key="PSurge16ft6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 17 ft"
key="PSurge17ft6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 18 ft"
key="PSurge18ft6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 19 ft"
key="PSurge19ft6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 20 ft"
key="PSurge20ft6hr" indentText="false" />
</contribute>
<contribute xsi:type="toolbarSubMenu" menuText="Cumulative">
<contribute xsi:type="menuItem" menuText="10% Exceedance Ht."
key="Surge10pctRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="20% Exceedance Ht."
key="Surge20pctRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="30% Exceedance Ht."
key="Surge30pctRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="40% Exceedance Ht."
key="Surge40pctRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="50% Exceedance Ht."
key="Surge50pctRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 0 ft"
key="PSurge0ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 1 ft"
key="PSurge1ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 2 ft"
key="PSurge2ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 3 ft"
key="PSurge3ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 4 ft"
key="PSurge4ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 5 ft"
key="PSurge5ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 6 ft"
key="PSurge6ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 7 ft"
key="PSurge7ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 8 ft"
key="PSurge8ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 9 ft"
key="PSurge9ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 10 ft"
key="PSurge10ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 11 ft"
key="PSurge11ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 12 ft"
key="PSurge12ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 13 ft"
key="PSurge13ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 14 ft"
key="PSurge14ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 15 ft"
key="PSurge15ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 16 ft"
key="PSurge16ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 17 ft"
key="PSurge17ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 18 ft"
key="PSurge18ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 19 ft"
key="PSurge19ftRun" indentText="false" />
<contribute xsi:type="menuItem" menuText="Prob of Surge &gt; 20 ft"
key="PSurge20ftRun" indentText="false" />
</contribute>
</contribute>
<contribute xsi:type="toolbarSubMenu" menuText="NAM DNG 5km">

View file

@ -102,6 +102,7 @@
<vbSource key="SPCGuide" category="SfcGrid" views="PLANVIEW TIMESERIES" />
<vbSource key="HurWind226" category="SfcGrid" views="PLANVIEW TIMESERIES" />
<vbSource key="TPCSurgeProb" category="SfcGrid" views="PLANVIEW TIMESERIES" />
<vbSource key="PHISH" category="SfcGrid" views="PLANVIEW TIMESERIES" />
<vbSource key="TPCWindProb" category="SfcGrid" views="PLANVIEW TIMESERIES" />
<vbSource key="WCwave10" category="SfcGrid" views="PLANVIEW TIMESERIES" />
<vbSource key="WCwave4" category="SfcGrid" views="PLANVIEW TIMESERIES" />

View file

@ -308,40 +308,35 @@
<alias base="tp6c8">tp6c8</alias>
<alias base="TP6mean">tpmean6</alias>
<alias base="TP6sprd">tpsprd6</alias>
<alias base="TPCSG-122E2">PSurge4Ft</alias>
<alias base="TPCSG-152E2">PSurge5Ft</alias>
<alias base="TPCSG-183E2">PSurge6Ft</alias>
<alias base="TPCSG-20">Surge20Pct</alias>
<alias base="TPCSG-213E2">PSurge7Ft</alias>
<alias base="TPCSG-244E2">PSurge8Ft</alias>
<alias base="TPCSG-274E2">PSurge9Ft</alias>
<alias base="TPCSG-305E2">PSurge10Ft</alias>
<alias base="TPCSG-30">Surge30Pct</alias>
<alias base="TPCSG-335E2">PSurge11Ft</alias>
<alias base="TPCSG-366E2">PSurge12Ft</alias>
<alias base="TPCSG-396E2">PSurge13Ft</alias>
<alias base="TPCSG-40">Surge40Pct</alias>
<alias base="TPCSG-427E2">PSurge14Ft</alias>
<alias base="TPCSG-457E2">PSurge15Ft</alias>
<alias base="TPCSG-488E2">PSurge16Ft</alias>
<alias base="TPCSG-50">Surge50Pct</alias>
<alias base="TPCSG-518E2">PSurge17Ft</alias>
<alias base="TPCSG-549E2">PSurge18Ft</alias>
<alias base="TPCSG-579E2">PSurge19Ft</alias>
<alias base="TPCSG-60">Surge60Pct</alias>
<alias base="TPCSG-610E2">PSurge20Ft</alias>
<alias base="TPCSG-61E2">PSurge2Ft</alias>
<alias base="TPCSG-640E2">PSurge21Ft</alias>
<alias base="TPCSG-671E2">PSurge22Ft</alias>
<alias base="TPCSG-701E2">PSurge23Ft</alias>
<alias base="TPCSG-70">Surge70Pct</alias>
<alias base="TPCSG-732E2">PSurge24Ft</alias>
<alias base="TPCSG-762E2">PSurge25Ft</alias>
<alias base="TPCSG-80">Surge80Pct</alias>
<alias base="TPCSG-90">Surge90Pct</alias>
<alias base="TPCSG-91E2">PSurge3Ft</alias>
<alias base="TPCSG-SLOSH">SloshSurge</alias>
<alias base="TPCSG">Surge10Pct</alias>
<alias base="PSurge4ftRun">PSurge4Ft</alias>
<alias base="PSurge5ftRun">PSurge5Ft</alias>
<alias base="PSurge6ftRun">PSurge6Ft</alias>
<alias base="Surge20pctRun">Surge20Pct</alias>
<alias base="PSurge7ftRun">PSurge7Ft</alias>
<alias base="PSurge8ftRun">PSurge8Ft</alias>
<alias base="PSurge9ftRun">PSurge9Ft</alias>
<alias base="PSurge10ftRun">PSurge10Ft</alias>
<alias base="Surge30pctRun">Surge30Pct</alias>
<alias base="PSurge11ftRun">PSurge11Ft</alias>
<alias base="PSurge12ftRun">PSurge12Ft</alias>
<alias base="PSurge13ftRun">PSurge13Ft</alias>
<alias base="Surge40pctRun">Surge40Pct</alias>
<alias base="PSurge14ftRun">PSurge14Ft</alias>
<alias base="PSurge15ftRun">PSurge15Ft</alias>
<alias base="PSurge16ftRun">PSurge16Ft</alias>
<alias base="Surge50pctRun">Surge50Pct</alias>
<alias base="PSurge17ftRun">PSurge17Ft</alias>
<alias base="PSurge18ftRun">PSurge18Ft</alias>
<alias base="PSurge19ftRun">PSurge19Ft</alias>
<alias base="PSurge20ftRun">PSurge20Ft</alias>
<alias base="PSurge2ftRun">PSurge2Ft</alias>
<alias base="PSurge21ftRun">PSurge21Ft</alias>
<alias base="PSurge22ftRun">PSurge22Ft</alias>
<alias base="PSurge23ftRun">PSurge23Ft</alias>
<alias base="PSurge24ftRun">PSurge24Ft</alias>
<alias base="PSurge25ftRun">PSurge25Ft</alias>
<alias base="PSurge3ftRun">PSurge3Ft</alias>
<alias base="Surge10pctRun">Surge10Pct</alias>
<alias base="TP-ECMWF">tpecmwf</alias>
<alias base="TPW">tpw</alias>
<alias base="Tsprd">tsprd</alias>

View file

@ -228,7 +228,7 @@ class GribDecoder():
# Extracts data from the ID section
idSectionValues = self._decodeIdSection(dataResults['idSection'])
self.id = dataResults['idSection']
refTime = idSectionValues['refTime']
# Extracts data from the Local section
if 'localSection' in dataResults:
@ -237,23 +237,20 @@ class GribDecoder():
# Extracts data from the gds template
gdsSectionValues = self._decodeGdsSection(metadata, dataResults['gdsTemplate'])
self.gds = dataResults['gdsTemplate']
# Extracts data from the pds template
pdsSectionValues = self._decodePdsSection(metadata, dataResults['idSection'], dataResults['pdsTemplate'])
self.pds = dataResults['pdsTemplate']
pdsSectionValues = self._decodePdsSection(metadata, refTime, dataResults['idSection'], dataResults['pdsTemplate'])
if 'bitmap' in dataResults:
bitMap = dataResults['bitmap']
# Construct the DataTime object
if pdsSectionValues['endTime'] is None:
dataTime = DataTime(idSectionValues['refTime'], pdsSectionValues['forecastTime'])
dataTime = DataTime(refTime, pdsSectionValues['forecastTime'])
else:
# endTime defines forecast time based on the difference to refTime since forecastTime is the start of the valid period
timeRange = TimeRange(idSectionValues['refTime'].getTimeInMillis() + (pdsSectionValues['forecastTime'] * 1000), pdsSectionValues['endTime'].getTimeInMillis())
forecastTime = int(float(pdsSectionValues['endTime'].getTimeInMillis() - idSectionValues['refTime'].getTimeInMillis()) / 1000)
dataTime = DataTime(idSectionValues['refTime'], forecastTime, timeRange)
timeRange = TimeRange(refTime.getTimeInMillis() + (pdsSectionValues['forecastTime'] * 1000), pdsSectionValues['endTime'].getTimeInMillis())
forecastTime = int(float(pdsSectionValues['endTime'].getTimeInMillis() - refTime.getTimeInMillis()) / 1000)
dataTime = DataTime(refTime, forecastTime, timeRange)
hybridCoordList = None
if 'coordList' in dataResults:
@ -484,12 +481,13 @@ class GribDecoder():
# Decodes the values in the PDS template
#
# @param metadata: The metadata information
# @param refTime: The reference time, java Calendar object
# @param idSection: The ID section values
# @param pdsTemplate: The PDS template values
# @return: Dictionary of PDS information
# @rtype: Dictionary
##
def _decodePdsSection(self, metadata, idSection, pdsTemplate):
def _decodePdsSection(self, metadata, refTime, idSection, pdsTemplate):
# Dictionary to hold information extracted from PDS template
pdsFields = {}
@ -587,6 +585,8 @@ class GribDecoder():
levelOneValue=float(0)
levelTwoValue=float(Level.getInvalidLevelValue())
durationSecs = None
# Special case handling for specific PDS Templates
if pdsTemplateNumber == 1 or pdsTemplateNumber == 11:
typeEnsemble = Integer(pdsTemplate[15]).intValue()
@ -645,16 +645,16 @@ class GribDecoder():
numMissingValues = pdsTemplate[29]
statisticalProcess = pdsTemplate[30]
durationSecs = self._convertToSeconds(pdsTemplate[33], pdsTemplate[32])
scaledValue = None
if(probabilityType == 1 or probabilityType ==2):
if(scaleFactorUL == 0):
parameterAbbreviation = parameterAbbreviation+"_"+str(scaledValueUL)
scaledValue = self._convertScaledValue(scaledValueUL, scaleFactorUL)
else:
parameterAbbreviation = parameterAbbreviation+"_"+str(scaledValueUL)+"E"+str(scaleFactorUL)
elif(probabilityType == 0):
if(scaleFactorLL == 0):
parameterAbbreviation = parameterAbbreviation+"_"+str(scaledValueLL)
else:
parameterAbbreviation = parameterAbbreviation+"_"+str(scaledValueLL)+"E"+str(scaleFactorLL)
scaledValue = self._convertScaledValue(scaledValueLL, scaleFactorLL)
parameterAbbreviation = parameterAbbreviation + str(scaledValue) + "m"
elif pdsTemplateNumber == 8:
endTime = GregorianCalendar(pdsTemplate[15], pdsTemplate[16] - 1, pdsTemplate[17], pdsTemplate[18], pdsTemplate[19], pdsTemplate[20])
@ -664,12 +664,30 @@ class GribDecoder():
statisticalProcess = pdsTemplate[23]
elif pdsTemplateNumber == 10:
parameterAbbreviation = parameterAbbreviation + str(pdsTemplate[15]) + "pct"
endTime = GregorianCalendar(pdsTemplate[16], pdsTemplate[17] - 1, pdsTemplate[18], pdsTemplate[19], pdsTemplate[20], pdsTemplate[21])
numTimeRanges = pdsTemplate[22]
numMissingValues = pdsTemplate[23]
statisticalProcess = pdsTemplate[24]
durationSecs = self._convertToSeconds(pdsTemplate[27], pdsTemplate[26])
if durationSecs is not None:
# This only applies for templates 9 and 10 which are not
# commonly used templates. For all other data the duration is
# ignored and it is assumed that reftime, forecast time, and
# endtime will define the duration. For Template 9 and 10 this
# will cause forecast time to be ignored so duration is correct.
# The decoder assumes reftime + forecastTime equals
# endTime - duration, however for some models
# reftime + forecasttime instead equals endTime. This reassigns
# forecastTime as endTime - refTime - duration so that
# duration is correctly calculated.
refToEndSecs = (endTime.getTimeInMillis() - refTime.getTimeInMillis())/ 1000
forecastTime = refToEndSecs - durationSecs
if(pdsTemplate[2] == 6 or pdsTemplate[2] == 7):
parameterAbbreviation = parameterAbbreviation+"erranl"

View file

@ -19,109 +19,156 @@
**/
package com.raytheon.edex.plugin.grib.decoderpostprocessors;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.measure.converter.UnitConverter;
import javax.measure.unit.NonSI;
import javax.measure.unit.SI;
import com.raytheon.edex.plugin.grib.exception.GribException;
import com.raytheon.uf.common.comm.CommunicationException;
import com.raytheon.uf.common.dataplugin.grid.GridRecord;
import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.LevelFactory;
import com.raytheon.uf.common.parameter.Parameter;
/**
* TODO Add Description
*
* Converts PSurge 2 data from the grib decoder to the parameter definitions
* expected by GFE/D2D. There are several odd behaviors in the grib data/decoder
* that must be corrected.
*
* <ul>
* <li>The 10% exceedance and all height products arrive with the same grib
* parameter number(192 from 4.2.10.3.table) so the grib decoder can't tell the
* difference and gives them all the same name, units, and base abbreviation.
* This will parse the parameter abbreviation to define the parameter more
* accurately.
* <li>The grib decoder blindly appends the duration to the parameter
* abbreviation which means each time in the cumulative sequence is a new
* parameter abbreviation. This will find cumulative parameters and give them
* all the same parameter definition.
* <li>The grib decoder assigns both TPCSurgeProb data and PHISH data the same
* datasetID because they have the exact same grib model identifiers. The only
* way to tell the difference is to look at the level: PHISH data is always at a
* FHAG level and TPCSurgeProb is always at a SFC level. This remaps all FHAG
* data to the PHISH model and a Surface level.
* <li>The grib decoder uses the grib standard units which define the
* probability surge heights as fractional meter values but the data was
* originally calculated as probability in feet. This renames the parameters to
* use the whole number feet instead of fractional meters.
* <li>The grib file specifies the probabilities of surge below a certain height
* but they are supposed to be displayed as the probability of exceeding the
* height. This will switch around the probabilities in the parameter
* abbreviations.
* </ul>
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Sep 7, 2011 bphillip Initial creation
* ------------- -------- ----------- --------------------------
* Sep 30, 2013 2390 bsteffen Rewrite for PSurge 2
*
* </pre>
*
* @author bphillip
* @version 1.0
* @author bsteffen
* @version 2.0
*/
public class TPCSurgeProbPostProcessor implements IDecoderPostProcessor {
private static final String PROB_NAME = "Probabilistic Storm Surge probability > %1 feet";
private static final Pattern SURGE_PCT_PATTERN = Pattern
.compile("Surge([0-9]{2})pct([0-9]{1,3})hr");
private static final Map<String, String> TPCSG_MAP = new HashMap<String, String>();
private static final Pattern SURGE_HGT_PATTERN = Pattern
.compile("Surge([0-9]{1,2}\\.[0-9]{1,2})m([0-9]{1,3})hr");
static {
TPCSG_MAP.put("2", PROB_NAME.replace("%1", "2"));
TPCSG_MAP.put("3", PROB_NAME.replace("%1", "3"));
TPCSG_MAP.put("4", PROB_NAME.replace("%1", "4"));
TPCSG_MAP.put("5", PROB_NAME.replace("%1", "5"));
TPCSG_MAP.put("6", PROB_NAME.replace("%1", "6"));
TPCSG_MAP.put("7", PROB_NAME.replace("%1", "7"));
TPCSG_MAP.put("8", PROB_NAME.replace("%1", "8"));
TPCSG_MAP.put("9", PROB_NAME.replace("%1", "9"));
TPCSG_MAP.put("10", PROB_NAME.replace("%1", "10"));
TPCSG_MAP.put("11", PROB_NAME.replace("%1", "11"));
TPCSG_MAP.put("12", PROB_NAME.replace("%1", "12"));
TPCSG_MAP.put("13", PROB_NAME.replace("%1", "13"));
TPCSG_MAP.put("14", PROB_NAME.replace("%1", "14"));
TPCSG_MAP.put("15", PROB_NAME.replace("%1", "15"));
TPCSG_MAP.put("16", PROB_NAME.replace("%1", "16"));
TPCSG_MAP.put("17", PROB_NAME.replace("%1", "17"));
TPCSG_MAP.put("18", PROB_NAME.replace("%1", "18"));
TPCSG_MAP.put("19", PROB_NAME.replace("%1", "19"));
TPCSG_MAP.put("20", PROB_NAME.replace("%1", "20"));
TPCSG_MAP.put("21", PROB_NAME.replace("%1", "21"));
TPCSG_MAP.put("22", PROB_NAME.replace("%1", "22"));
TPCSG_MAP.put("23", PROB_NAME.replace("%1", "23"));
TPCSG_MAP.put("24", PROB_NAME.replace("%1", "24"));
TPCSG_MAP.put("25", PROB_NAME.replace("%1", "25"));
private static final UnitConverter METERS2FEET = SI.METER
.getConverterTo(NonSI.FOOT);
private static final UnitConverter HOURS2SECONDS = NonSI.HOUR
.getConverterTo(SI.SECOND);
@Override
public GridRecord[] process(GridRecord record) throws GribException {
Parameter param = record.getParameter();
String paramAbbrev = param.getAbbreviation();
String paramName = param.getName();
String paramUnitStr = param.getUnitString();
int hours;
Matcher pctMatch = SURGE_PCT_PATTERN.matcher(paramAbbrev);
Matcher hgtMatch = SURGE_HGT_PATTERN.matcher(paramAbbrev);
if (pctMatch.matches()) {
int pct = Integer.parseInt(pctMatch.group(1));
hours = Integer.parseInt(pctMatch.group(2));
/* Switch from percent below value to percent above */
pct = 100 - pct;
paramAbbrev = "Surge" + pct + "pct";
paramName = "Surge " + pct + "% Exceedance Ht";
paramUnitStr = "m";
} else if (hgtMatch.matches()) {
double m = Double.parseDouble(hgtMatch.group(1));
hours = Integer.parseInt(hgtMatch.group(2));
int ft = (int) Math.round(METERS2FEET.convert(m));
paramAbbrev = "PSurge" + ft + "ft";
paramName = "Prob of Surge > " + ft + " ft";
paramUnitStr = "%";
} else {
return new GridRecord[] { record };
}
record.getInfo().setId(null);
record.setDataURI(null);
/* Map everything to surface. */
Level level = record.getLevel();
if (level.getMasterLevel().getName().equals("FHAG")) {
record.getInfo().setDatasetId("PHISH");
try {
level = LevelFactory.getInstance().getLevel("SFC",
level.getLevelonevalue(), level.getLeveltwovalue());
} catch (CommunicationException e) {
throw new GribException("Error retrieving level information", e);
}
record.setLevel(level);
}
List<GridRecord> result = new ArrayList<GridRecord>();
int seconds = (int) HOURS2SECONDS.convert(hours);
/* Grab cumulative records */
if (record.getDataTime().getFcstTime() == seconds) {
GridRecord cumRecord = new GridRecord(record);
cumRecord.setParameter(new Parameter(paramAbbrev + "Run",
"Cumulative " + paramName, paramUnitStr));
cumRecord.setMessageData(record.getMessageData());
cumRecord.setOverwriteAllowed(true);
result.add(cumRecord);
}
/*
* (non-Javadoc)
*
* @see
* com.raytheon.edex.plugin.grib.decoderpostprocessors.IDecoderPostProcessor
* #process(com.raytheon.uf.common.dataplugin.grib.GridRecord)
* The 0-6hr cumulative record is also the first incremental record so
* store it in both places. It looks like we will actually be receiving
* two records for this data but in my test data they are 100% binary
* identical so there is no way to differentiate and we just have to
* double store twice(redundantly).
*/
@Override
public GridRecord[] process(GridRecord record) throws GribException {
boolean modified = false;
Parameter param = record.getParameter();
if (param.getAbbreviation().startsWith("PSurge")) {
String surge = param.getAbbreviation().toLowerCase()
.replace("psurge", "").replace("ft", "");
param = new Parameter(param.getAbbreviation(),
TPCSG_MAP.get(surge), param.getUnitString());
modified = true;
} else if (param.getAbbreviation().equals("TPCSG_SLOSH")) {
param = new Parameter(param.getAbbreviation(),
"Real Time Slosh MEOW", param.getUnitString());
modified = true;
} else if (param.getAbbreviation().startsWith("TPCSG-")) {
String abbr = param.getAbbreviation().substring(0, 8)
.replace("-", "_");
param = new Parameter(abbr, param.getName(), param.getUnitString());
modified = true;
} else if (param.getAbbreviation().endsWith("10Pct")) {
String abbr = param.getAbbreviation().replace("10Pct", "");
param = new Parameter(abbr, param.getName(), param.getUnitString());
modified = true;
}
if (!modified) {
return new GridRecord[] { record };
}
record.setParameter(param);
record.getInfo().setId(null);
record.setDataURI(null);
try {
record.constructDataURI();
} catch (Exception e) {
throw new GribException(
"Error creating new dataURI for TPCSurgeProb data!", e);
}
if (result.isEmpty() || hours == 6) {
record.setParameter(new Parameter(paramAbbrev + hours + "hr", hours
+ " Hour " + paramName,
paramUnitStr));
record.setOverwriteAllowed(true);
return new GridRecord[] { record };
result.add(record);
}
return result.toArray(new GridRecord[0]);
}
}

View file

@ -174,7 +174,6 @@ PTOR_254E3 PTOR
MINRH_NMM-NCEP_10800-0 MINRH3hr
MINRH_NMM-NCEP_43200-0 MINRH12hr
TP_254E3 POP
TPCSG_MODEL0-NCEP-MDL TPCSG_SLOSH
// Throw 1-hr and 2-hr precip on the floor for RUC13
CP_RUC2-NCEP_165x165_7200-0 PWS64

View file

@ -557,7 +557,13 @@
<!-- Purge rule for the TPCSurgeProb (TPCSurgeProb) model -->
<rule>
<keyValue>TPCSurgeProb</keyValue>
<versionsToKeep>3</versionsToKeep>
<versionsToKeep>1</versionsToKeep>
<modTimeToWait>00-00:15:00</modTimeToWait>
</rule>
<!-- Purge rule for the PHISH (PHISH) model -->
<rule>
<keyValue>PHISH</keyValue>
<versionsToKeep>1</versionsToKeep>
<modTimeToWait>00-00:15:00</modTimeToWait>
</rule>
<!-- Purge rule for the HPE (HPE) model -->

View file

@ -276,16 +276,6 @@ ZDR | || | Radar differential reflectivity
KDP | || | Radar specific differential phase
COCO | || | Radar correlation coefficient
HC | || | Radar Hydrometeor Class
TPCSG | Surge10Pct || | storm surge at 10 % Exceedance
TPCSG_305E2 | PSurge10Ft || | storm surge probabilities > 10 feet
TPCSG_274E2 | PSurge9Ft || | storm surge probabilities > 9 feet
TPCSG_244E2 | PSurge8Ft || | storm surge probabilities > 8 feet
TPCSG_213E2 | PSurge7Ft || | storm surge probabilities > 7 feet
TPCSG_183E2 | PSurge6Ft || | storm surge probabilities > 6 feet
TPCSG_152E2 | PSurge5Ft || | storm surge probabilities > 5 feet
TPCSG_122E2 | PSurge4Ft || | storm surge probabilities > 4 feet
TPCSG_91E2 | PSurge3Ft || | storm surge probabilities > 3 feet
TPCSG_61E2 | PSurge2Ft || | storm surge probabilities > 2 feet
SIPD | sld || |Supercooled large droplet icing potential
TURB | turb || |Turbulence hazard forecast index
ICNG | icng || |Total icing potential diagnostic
@ -310,29 +300,5 @@ snowd6hr | snowd6hr || | 6-hr Snow depth
PTOR | ptor || | Tornado Probability
MINRH3hr | minRH3hr || | 3-hr Minimum Relative Humidity
MINRH12hr| minRH12hr|| | 12-hr Minimum Relative Humidity
TPCSG_SLOSH | SloshSurge || | Real Time Slosh MEOW
TPCSG_20 | Surge20Pct || | storm surge at 20% Exceedance
TPCSG_30 | Surge30Pct || | storm surge at 30% Exceedance
TPCSG_40 | Surge40Pct || | storm surge at 40% Exceedance
TPCSG_50 | Surge50Pct || | storm surge at 50% Exceedance
TPCSG_60 | Surge60Pct || | storm surge at 60% Exceedance
TPCSG_70 | Surge70Pct || | storm surge at 70% Exceedance
TPCSG_80 | Surge80Pct || | storm surge at 80% Exceedance
TPCSG_90 | Surge90Pct || | storm surge at 90% Exceedance
TPCSG_335E2 | PSurge11Ft || | storm surge probabilities > 11 feet
TPCSG_366E2 | PSurge12Ft || | storm surge probabilities > 12 feet
TPCSG_396E2 | PSurge13Ft || | storm surge probabilities > 13 feet
TPCSG_427E2 | PSurge14Ft || | storm surge probabilities > 14 feet
TPCSG_457E2 | PSurge15Ft || | storm surge probabilities > 15 feet
TPCSG_488E2 | PSurge16Ft || | storm surge probabilities > 16 feet
TPCSG_518E2 | PSurge17Ft || | storm surge probabilities > 17 feet
TPCSG_549E2 | PSurge18Ft || | storm surge probabilities > 18 feet
TPCSG_579E2 | PSurge19Ft || | storm surge probabilities > 19 feet
TPCSG_610E2 | PSurge20Ft || | storm surge probabilities > 20 feet
TPCSG_640E2 | PSurge21Ft || | storm surge probabilities > 21 feet
TPCSG_671E2 | PSurge22Ft || | storm surge probabilities > 22 feet
TPCSG_701E2 | PSurge23Ft || | storm surge probabilities > 23 feet
TPCSG_732E2 | PSurge24Ft || | storm surge probabilities > 24 feet
TPCSG_762E2 | PSurge25Ft || | storm surge probabilities > 25 feet
CP2hr | cp2hr || | 2-hour Convective Precipitation
LgSP2hr | lgsp2hr || | 2-hour Large Scale Precipitation

View file

@ -1,82 +0,0 @@
# RUC130 PostProcessor
RUC130:com.raytheon.edex.plugin.grib.decoderpostprocessors.RUC130GribPostProcessor
# Generate 6Hr Records Post Processor
ECMWF-HiRes:com.raytheon.edex.plugin.grib.decoderpostprocessors.ECMWFHiResProcessor
GFS213:com.raytheon.edex.plugin.grib.decoderpostprocessors.GFSProcessor
# Post Processor For Lifted Index, if the ability to limit post processing to specific
# parameters is ever added this would be better done there
ETA:com.raytheon.edex.plugin.grib.decoderpostprocessors.Nam80PostProcessor
ETA218:com.raytheon.edex.plugin.grib.decoderpostprocessors.LiftedIndexPostProcessor
ETA242:com.raytheon.edex.plugin.grib.decoderpostprocessors.LiftedIndexPostProcessor
GFS212:com.raytheon.edex.plugin.grib.decoderpostprocessors.LiftedIndexPostProcessor
GFS213:com.raytheon.edex.plugin.grib.decoderpostprocessors.LiftedIndexPostProcessor
# Ensemble Grids that need to be stitched together
AVN37:com.raytheon.edex.plugin.grib.decoderpostprocessors.EnsembleGridAssembler
AVN38:com.raytheon.edex.plugin.grib.decoderpostprocessors.EnsembleGridAssembler
AVN39:com.raytheon.edex.plugin.grib.decoderpostprocessors.EnsembleGridAssembler
AVN40:com.raytheon.edex.plugin.grib.decoderpostprocessors.EnsembleGridAssembler
ECMF1:com.raytheon.edex.plugin.grib.decoderpostprocessors.EnsembleGridAssembler
ECMF2:com.raytheon.edex.plugin.grib.decoderpostprocessors.EnsembleGridAssembler
ECMF3:com.raytheon.edex.plugin.grib.decoderpostprocessors.EnsembleGridAssembler
ECMF4:com.raytheon.edex.plugin.grib.decoderpostprocessors.EnsembleGridAssembler
ECMF5:com.raytheon.edex.plugin.grib.decoderpostprocessors.EnsembleGridAssembler
ECMF6:com.raytheon.edex.plugin.grib.decoderpostprocessors.EnsembleGridAssembler
ECMF7:com.raytheon.edex.plugin.grib.decoderpostprocessors.EnsembleGridAssembler
ECMF8:com.raytheon.edex.plugin.grib.decoderpostprocessors.EnsembleGridAssembler
ENSEMBLE37:com.raytheon.edex.plugin.grib.decoderpostprocessors.EnsembleGridAssembler
ENSEMBLE38:com.raytheon.edex.plugin.grib.decoderpostprocessors.EnsembleGridAssembler
ENSEMBLE39:com.raytheon.edex.plugin.grib.decoderpostprocessors.EnsembleGridAssembler
ENSEMBLE40:com.raytheon.edex.plugin.grib.decoderpostprocessors.EnsembleGridAssembler
UKMET37:com.raytheon.edex.plugin.grib.decoderpostprocessors.EnsembleGridAssembler
UKMET38:com.raytheon.edex.plugin.grib.decoderpostprocessors.EnsembleGridAssembler
UKMET39:com.raytheon.edex.plugin.grib.decoderpostprocessors.EnsembleGridAssembler
UKMET40:com.raytheon.edex.plugin.grib.decoderpostprocessors.EnsembleGridAssembler
# FFG grids
FFG-TIR:com.raytheon.edex.plugin.grib.decoderpostprocessors.FFGGribPostProcessor
FFG-RSA:com.raytheon.edex.plugin.grib.decoderpostprocessors.FFGGribPostProcessor
FFG-ORN:com.raytheon.edex.plugin.grib.decoderpostprocessors.FFGGribPostProcessor
FFG-FWR:com.raytheon.edex.plugin.grib.decoderpostprocessors.FFGGribPostProcessor
FFG-MSR:com.raytheon.edex.plugin.grib.decoderpostprocessors.FFGGribPostProcessor
FFG-TUA:com.raytheon.edex.plugin.grib.decoderpostprocessors.FFGGribPostProcessor
FFG-ALR:com.raytheon.edex.plugin.grib.decoderpostprocessors.FFGGribPostProcessor
FFG-RHA:com.raytheon.edex.plugin.grib.decoderpostprocessors.FFGGribPostProcessor
FFG-STR:com.raytheon.edex.plugin.grib.decoderpostprocessors.FFGGribPostProcessor
FFG-KRF:com.raytheon.edex.plugin.grib.decoderpostprocessors.FFGGribPostProcessor
FFG-ACR:com.raytheon.edex.plugin.grib.decoderpostprocessors.FFGGribPostProcessor
FFG-PTR:com.raytheon.edex.plugin.grib.decoderpostprocessors.FFGGribPostProcessor
FFG-TAR:com.raytheon.edex.plugin.grib.decoderpostprocessors.FFGGribPostProcessor
#RFCqpf grids
RFCqpf:com.raytheon.edex.plugin.grib.decoderpostprocessors.OverwriteGribPostProcessor
#MPE-Local grids
MPE-Local:com.raytheon.edex.plugin.grib.decoderpostprocessors.OverwriteGribPostProcessor
MPE-Mosaic:com.raytheon.edex.plugin.grib.decoderpostprocessors.OverwriteGribPostProcessor
#RTMA grids
RTMA:com.raytheon.edex.plugin.grib.decoderpostprocessors.RTMAGribPostProcessor
#LAPS grids
LAPS:com.raytheon.edex.plugin.grib.decoderpostprocessors.LapsPostProcessor
#TPC grids
CPCoutlook211:com.raytheon.edex.plugin.grib.decoderpostprocessors.CPCoutlookGribPostProcessor
#MSAS grids
MSAS:com.raytheon.edex.plugin.grib.decoderpostprocessors.MSASPostProcessor
#HPCqpf grids
HPCqpf:com.raytheon.edex.plugin.grib.decoderpostprocessors.OverwriteGribPostProcessor
HPCqpfNDFD:com.raytheon.edex.plugin.grib.decoderpostprocessors.OverwriteGribPostProcessor
#Canadian GEM grids
Canadian-Reg:com.raytheon.edex.plugin.grib.decoderpostprocessors.CanadianRegPostProcessor
Canadian-NH:com.raytheon.edex.plugin.grib.decoderpostprocessors.CanadianNHPostProcessor
# RUC236 PostProcessor
RUC236:com.raytheon.edex.plugin.grib.decoderpostprocessors.RUC236GribPostProcessor
# SPC
SPCGuide:com.raytheon.edex.plugin.grib.decoderpostprocessors.OverwriteGribPostProcessor

View file

@ -121,5 +121,11 @@
<processorName>RUC130GribPostProcessor</processorName>
</postProcessedModel>
<!-- Post processor definition for the TPCSurgeProb model -->
<postProcessedModel>
<modelName>TPCSurgeProb</modelName>
<processorName>TPCSurgeProbPostProcessor</processorName>
</postProcessedModel>
</postProcessedModels>

View file

@ -1,6 +1,6 @@
# Product Discipline 10: Oceanographic products, Parameter Category 3: Surface Properties
#192-254 Reserved for local use
192:192:Probabilistic Storm Surge height w/10% chance of being exceeded:m:TPCSG
192:192:Surge 10% Exceedance Ht:m:Surge
193:193:Extra Tropical Storm Surge:m:ETSRG
194:194:Ocean Surface Elevation Relative to Geoid:m:ELEV
195:195:Sea Surface Height Relative to Geoid:m:SSHG
@ -11,13 +11,13 @@
200:200:Surface Salinity Trend:psu per day:SSST
201:201:Kinetic Energy:J/kg:KENG
202:202:Salt Flux:mm*s:SLTFL
242:242:Probabilistic Storm Surge height w/20% chance of being exceeded:m:TPCSG_20
243:243:Probabilistic Storm Surge height w/30% chance of being exceeded:m:TPCSG_30
244:244:Probabilistic Storm Surge height w/40% chance of being exceeded:m:TPCSG_40
245:245:Probabilistic Storm Surge height w/50% chance of being exceeded:m:TPCSG_50
246:246:Probabilistic Storm Surge height w/60% chance of being exceeded:m:TPCSG_60
247:247:Probabilistic Storm Surge height w/70% chance of being exceeded:m:TPCSG_70
248:248:Probabilistic Storm Surge height w/80% chance of being exceeded:m:TPCSG_80
249:249:Probabilistic Storm Surge height w/90% chance of being exceeded:m:TPCSG_90
242:242:Surge 20% Exceedance Ht:m:Surge
243:243:Surge 30% Exceedance Ht:m:Surge
244:244:Surge 40% Exceedance Ht:m:Surge
245:245:Surge 50% Exceedance Ht:m:Surge
246:246:Surge 60% Exceedance Ht:m:Surge
247:247:Surge 70% Exceedance Ht:m:Surge
248:248:Surge 80% Exceedance Ht:m:Surge
249:249:Surge 90% Exceedance Ht:m:Surge
250:250:Extra Tropical Storm Surge Combined Surge and Tide:m:ETCWL
255:255:Missing

View file

@ -4168,15 +4168,16 @@
-->
<styleRule>
<paramLevelMatches>
<parameter>TPCSG</parameter>
<parameter>TPCSG-20</parameter>
<parameter>TPCSG-30</parameter>
<parameter>TPCSG-40</parameter>
<parameter>TPCSG-50</parameter>
<parameter>TPCSG-60</parameter>
<parameter>TPCSG-70</parameter>
<parameter>TPCSG-80</parameter>
<parameter>TPCSG-90</parameter>
<parameter>Surge10pct6hr</parameter>
<parameter>Surge10pctRun</parameter>
<parameter>Surge20pct6hr</parameter>
<parameter>Surge20pctRun</parameter>
<parameter>Surge30pct6hr</parameter>
<parameter>Surge30pctRun</parameter>
<parameter>Surge40pct6hr</parameter>
<parameter>Surge40pctRun</parameter>
<parameter>Surge50pct6hr</parameter>
<parameter>Surge50pctRun</parameter>
</paramLevelMatches>
<imageStyle>
<displayUnits>ft</displayUnits>
@ -4196,30 +4197,53 @@
-->
<styleRule>
<paramLevelMatches>
<parameter>TPCSG-61E2</parameter>
<parameter>TPCSG-91E2</parameter>
<parameter>TPCSG-122E2</parameter>
<parameter>TPCSG-152E2</parameter>
<parameter>TPCSG-183E2</parameter>
<parameter>TPCSG-213E2</parameter>
<parameter>TPCSG-244E2</parameter>
<parameter>TPCSG-274E2</parameter>
<parameter>TPCSG-305E2</parameter>
<parameter>TPCSG-335E2</parameter>
<parameter>TPCSG-366E2</parameter>
<parameter>TPCSG-396E2</parameter>
<parameter>TPCSG-457E2</parameter>
<parameter>TPCSG-427E2</parameter>
<parameter>TPCSG-488E2</parameter>
<parameter>TPCSG-518E2</parameter>
<parameter>TPCSG-549E2</parameter>
<parameter>TPCSG-579E2</parameter>
<parameter>TPCSG-610E2</parameter>
<parameter>TPCSG-640E2</parameter>
<parameter>TPCSG-671E2</parameter>
<parameter>TPCSG-701E2</parameter>
<parameter>TPCSG-732E2</parameter>
<parameter>TPCSG-762E2</parameter>
<parameter>PSurge0ft6hr</parameter>
<parameter>PSurge0ftRun</parameter>
<parameter>PSurge10ft6hr</parameter>
<parameter>PSurge10ftRun</parameter>
<parameter>PSurge11ft6hr</parameter>
<parameter>PSurge11ftRun</parameter>
<parameter>PSurge12ft6hr</parameter>
<parameter>PSurge12ftRun</parameter>
<parameter>PSurge13ft6hr</parameter>
<parameter>PSurge13ftRun</parameter>
<parameter>PSurge14ft6hr</parameter>
<parameter>PSurge14ftRun</parameter>
<parameter>PSurge15ft6hr</parameter>
<parameter>PSurge15ftRun</parameter>
<parameter>PSurge16ft6hr</parameter>
<parameter>PSurge16ftRun</parameter>
<parameter>PSurge17ft6hr</parameter>
<parameter>PSurge17ftRun</parameter>
<parameter>PSurge18ft6hr</parameter>
<parameter>PSurge18ftRun</parameter>
<parameter>PSurge19ft6hr</parameter>
<parameter>PSurge19ftRun</parameter>
<parameter>PSurge1ft6hr</parameter>
<parameter>PSurge1ftRun</parameter>
<parameter>PSurge20ft6hr</parameter>
<parameter>PSurge20ftRun</parameter>
<parameter>PSurge21ftRun</parameter>
<parameter>PSurge22ftRun</parameter>
<parameter>PSurge23ftRun</parameter>
<parameter>PSurge24ftRun</parameter>
<parameter>PSurge25ftRun</parameter>
<parameter>PSurge2ft6hr</parameter>
<parameter>PSurge2ftRun</parameter>
<parameter>PSurge3ft6hr</parameter>
<parameter>PSurge3ftRun</parameter>
<parameter>PSurge4ft6hr</parameter>
<parameter>PSurge4ftRun</parameter>
<parameter>PSurge5ft6hr</parameter>
<parameter>PSurge5ftRun</parameter>
<parameter>PSurge6ft6hr</parameter>
<parameter>PSurge6ftRun</parameter>
<parameter>PSurge7ft6hr</parameter>
<parameter>PSurge7ftRun</parameter>
<parameter>PSurge8ft6hr</parameter>
<parameter>PSurge8ftRun</parameter>
<parameter>PSurge9ft6hr</parameter>
<parameter>PSurge9ftRun</parameter>
</paramLevelMatches>
<imageStyle>
<displayUnits>%</displayUnits>

View file

@ -562,7 +562,13 @@
<!-- Purge rule for the TPCSurgeProb (TPCSurgeProb) model -->
<rule>
<keyValue>TPCSurgeProb</keyValue>
<versionsToKeep>3</versionsToKeep>
<versionsToKeep>1</versionsToKeep>
<modTimeToWait>00-00:15:00</modTimeToWait>
</rule>
<!-- Purge rule for the PHISH (PHISH) model -->
<rule>
<keyValue>PHISH</keyValue>
<versionsToKeep>1</versionsToKeep>
<modTimeToWait>00-00:15:00</modTimeToWait>
</rule>
<!-- Purge rule for the HPE (HPE) model -->