13.2.1-4 baseline

Former-commit-id: 8dd3505b4b [formerly ed224fde88] [formerly ae2859d5a2] [formerly ae2859d5a2 [formerly 8f2e7d4437]] [formerly 0d7f53b6f4 [formerly ae2859d5a2 [formerly 8f2e7d4437] [formerly 0d7f53b6f4 [formerly d4fd198979dbc5d77a6bf836685cb658e7ac6cfe]]]]
Former-commit-id: 0d7f53b6f4
Former-commit-id: da0ca0902c37c687fdd472130a386c925e40fd9b [formerly 10a61c775941bb43691425e06f2cf4ac1116da55] [formerly 3f25b862c8 [formerly 2998f750f4]]
Former-commit-id: 3f25b862c8
Former-commit-id: d6b48ca411
This commit is contained in:
Steve Harris 2013-01-31 11:40:31 -06:00
parent e0534cf072
commit 865cfdd2ef
81 changed files with 2023 additions and 570 deletions

View file

@ -85,7 +85,7 @@
</mapping>
<mapping key="primaryElevationAngle">
<constraint constraintValue="${elevation1}"
constraintType="BETWEEN" />
constraintType="IN" />
</mapping>
</metadataMap>
</resourceData>
@ -119,7 +119,7 @@
</mapping>
<mapping key="primaryElevationAngle">
<constraint constraintValue="${elevation1}"
constraintType="BETWEEN" />
constraintType="IN" />
</mapping>
</metadataMap>
</resourceData>
@ -173,7 +173,7 @@
</mapping>
<mapping key="primaryElevationAngle">
<constraint constraintValue="${elevation2}"
constraintType="BETWEEN" />
constraintType="IN" />
</mapping>
</metadataMap>
</resourceData>
@ -207,7 +207,7 @@
</mapping>
<mapping key="primaryElevationAngle">
<constraint constraintValue="${elevation2}"
constraintType="BETWEEN" />
constraintType="IN" />
</mapping>
</metadataMap>
</resourceData>
@ -256,7 +256,7 @@
</mapping>
<mapping key="primaryElevationAngle">
<constraint constraintValue="${elevation4}"
constraintType="BETWEEN" />
constraintType="IN" />
</mapping>
</metadataMap>
</resourceData>
@ -290,7 +290,7 @@
</mapping>
<mapping key="primaryElevationAngle">
<constraint constraintValue="${elevation4}"
constraintType="BETWEEN" />
constraintType="IN" />
</mapping>
</metadataMap>
</resourceData>
@ -344,7 +344,7 @@
</mapping>
<mapping key="primaryElevationAngle">
<constraint constraintValue="${elevation3}"
constraintType="BETWEEN" />
constraintType="IN" />
</mapping>
</metadataMap>
</resourceData>
@ -378,7 +378,7 @@
</mapping>
<mapping key="primaryElevationAngle">
<constraint constraintValue="${elevation3}"
constraintType="BETWEEN" />
constraintType="IN" />
</mapping>
</metadataMap>
</resourceData>

View file

@ -0,0 +1,392 @@
<?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.
-->
<!-- blends two sets of up to 4 radar products displaying only the best res
ones on each side in four panels, each panel is a different elevation
substitution keys:
product1 the productCode of the highest resolution data on the left
product2 the productCode of the next highest resolution data on the left
product3 the productCode of the next highest resolution data on the left, or empty string for none
product4 the productCode of the lowesr resolution data on the left, or empty string for none
product5 the productCode of the highest resolution data on the right
product6 the productCode of the next highest resolution data on the right
product7 the productCode of the next highest resolution data on the right, or empty string for none
product8 the productCode of the lowesr resolution data on the right, or empty string for none
mode1 the special mode for the resource on the left, most of the time an empty string
mode2 the special mode for the resource on the right, most of the time an empty string
icao the icao, kxxx or something like that
elev2 the elevation to load in the upper left panel
elev3 the elevation to load in the upper right panel
elev4 the elevation to load in the lower right panel
elev4 the elevation to load in the lower left panel
-->
<bundle>
<displayList>
<displays xsi:type="d2DMapRenderableDisplay"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<descriptor xsi:type="mapDescriptor">
<resource>
<loadProperties loadWithoutData="true">
<capabilities>
<capability xsi:type="imagingCapability"
interpolationState="false" brightness="1.0" contrast="1.0"
alpha="1.0" />
<capability xsi:type="rangeRingsOverlayCapability" />
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false" isVisible="true">
</properties>
<resourceData xsi:type="blendedResourceData">
<resource>
<loadProperties loadWithoutData="true">
<capabilities>
<capability xsi:type="imagingCapability"
interpolationState="false" brightness="1.0" contrast="1.0"
alpha="1.0" />
<capability xsi:type="rangeRingsOverlayCapability" />
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false" isVisible="true">
</properties>
<resourceData xsi:type="radarResourceData" mode="${mode1}"
isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<metadataMap>
<mapping key="productCode">
<constraint constraintValue="${product1},${product2},${product3},${product4}"
constraintType="IN" />
</mapping>
<mapping key="icao">
<constraint constraintValue="${icao}"
constraintType="EQUALS" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="radar" constraintType="EQUALS" />
</mapping>
<mapping key="primaryElevationAngle">
<constraint constraintValue="${elevation1}"
constraintType="BETWEEN" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties loadWithoutData="true">
<capabilities>
<capability xsi:type="imagingCapability"
interpolationState="false" brightness="1.0" contrast="1.0"
alpha="1.0" />
<capability xsi:type="rangeRingsOverlayCapability" />
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false" isVisible="true">
</properties>
<resourceData xsi:type="radarResourceData" mode="${mode2}"
isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true" >
<metadataMap>
<mapping key="productCode">
<constraint constraintValue="${product5},${product6},${product7},${product8}"
constraintType="IN" />
</mapping>
<mapping key="icao">
<constraint constraintValue="${icao}"
constraintType="EQUALS" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="radar" constraintType="EQUALS" />
</mapping>
<mapping key="primaryElevationAngle">
<constraint constraintValue="${elevation1}"
constraintType="BETWEEN" />
</mapping>
</metadataMap>
</resourceData>
</resource>
</resourceData>
</resource>
</descriptor>
</displays>
<displays xsi:type="d2DMapRenderableDisplay"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<descriptor xsi:type="mapDescriptor">
<resource>
<loadProperties loadWithoutData="true">
<capabilities>
<capability xsi:type="imagingCapability"
interpolationState="false" brightness="1.0" contrast="1.0"
alpha="1.0" />
<capability xsi:type="rangeRingsOverlayCapability" />
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false" isVisible="true">
</properties>
<resourceData xsi:type="blendedResourceData">
<resource>
<loadProperties loadWithoutData="true">
<capabilities>
<capability xsi:type="imagingCapability"
interpolationState="false" brightness="1.0" contrast="1.0"
alpha="1.0" />
<capability xsi:type="rangeRingsOverlayCapability" />
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false" isVisible="true">
</properties>
<resourceData xsi:type="radarResourceData" mode="${mode1}"
isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<metadataMap>
<mapping key="productCode">
<constraint constraintValue="${product1},${product2},${product3},${product4}"
constraintType="IN" />
</mapping>
<mapping key="icao">
<constraint constraintValue="${icao}"
constraintType="EQUALS" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="radar" constraintType="EQUALS" />
</mapping>
<mapping key="primaryElevationAngle">
<constraint constraintValue="${elevation2}"
constraintType="BETWEEN" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties loadWithoutData="true">
<capabilities>
<capability xsi:type="imagingCapability"
interpolationState="false" brightness="1.0" contrast="1.0"
alpha="1.0" />
<capability xsi:type="rangeRingsOverlayCapability" />
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false" isVisible="true">
</properties>
<resourceData xsi:type="radarResourceData" mode="${mode2}"
isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true" >
<metadataMap>
<mapping key="productCode">
<constraint constraintValue="${product5},${product6},${product7},${product8}"
constraintType="IN" />
</mapping>
<mapping key="icao">
<constraint constraintValue="${icao}"
constraintType="EQUALS" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="radar" constraintType="EQUALS" />
</mapping>
<mapping key="primaryElevationAngle">
<constraint constraintValue="${elevation2}"
constraintType="BETWEEN" />
</mapping>
</metadataMap>
</resourceData>
</resource>
</resourceData>
</resource>
</descriptor>
</displays><displays xsi:type="d2DMapRenderableDisplay" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<descriptor xsi:type="mapDescriptor">
<resource>
<loadProperties loadWithoutData="true">
<capabilities>
<capability xsi:type="imagingCapability" interpolationState="false" brightness="1.0" contrast="1.0" alpha="1.0" />
<capability xsi:type="rangeRingsOverlayCapability" />
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false" isMapLayer="false" isHoverOn="false" isVisible="true">
</properties>
<resourceData xsi:type="blendedResourceData">
<resource>
<loadProperties loadWithoutData="true">
<capabilities>
<capability xsi:type="imagingCapability"
interpolationState="false" brightness="1.0" contrast="1.0"
alpha="1.0" />
<capability xsi:type="rangeRingsOverlayCapability" />
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false" isVisible="true">
</properties>
<resourceData xsi:type="radarResourceData" mode="${mode1}"
isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<metadataMap>
<mapping key="productCode">
<constraint constraintValue="${product1},${product2},${product3},${product4}"
constraintType="IN" />
</mapping>
<mapping key="icao">
<constraint constraintValue="${icao}"
constraintType="EQUALS" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="radar" constraintType="EQUALS" />
</mapping>
<mapping key="primaryElevationAngle">
<constraint constraintValue="${elevation4}"
constraintType="BETWEEN" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties loadWithoutData="true">
<capabilities>
<capability xsi:type="imagingCapability"
interpolationState="false" brightness="1.0" contrast="1.0"
alpha="1.0" />
<capability xsi:type="rangeRingsOverlayCapability" />
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false" isVisible="true">
</properties>
<resourceData xsi:type="radarResourceData" mode="${mode2}"
isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true" >
<metadataMap>
<mapping key="productCode">
<constraint constraintValue="${product5},${product6},${product7},${product8}"
constraintType="IN" />
</mapping>
<mapping key="icao">
<constraint constraintValue="${icao}"
constraintType="EQUALS" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="radar" constraintType="EQUALS" />
</mapping>
<mapping key="primaryElevationAngle">
<constraint constraintValue="${elevation4}"
constraintType="BETWEEN" />
</mapping>
</metadataMap>
</resourceData>
</resource>
</resourceData>
</resource>
</descriptor>
</displays>
<displays xsi:type="d2DMapRenderableDisplay"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<descriptor xsi:type="mapDescriptor">
<resource>
<loadProperties loadWithoutData="true">
<capabilities>
<capability xsi:type="imagingCapability"
interpolationState="false" brightness="1.0" contrast="1.0"
alpha="1.0" />
<capability xsi:type="rangeRingsOverlayCapability" />
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false" isVisible="true">
</properties>
<resourceData xsi:type="blendedResourceData">
<resource>
<loadProperties loadWithoutData="true">
<capabilities>
<capability xsi:type="imagingCapability"
interpolationState="false" brightness="1.0" contrast="1.0"
alpha="1.0" />
<capability xsi:type="rangeRingsOverlayCapability" />
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false" isVisible="true">
</properties>
<resourceData xsi:type="radarResourceData" mode="${mode1}"
isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<metadataMap>
<mapping key="productCode">
<constraint constraintValue="${product1},${product2},${product3},${product4}"
constraintType="IN" />
</mapping>
<mapping key="icao">
<constraint constraintValue="${icao}"
constraintType="EQUALS" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="radar" constraintType="EQUALS" />
</mapping>
<mapping key="primaryElevationAngle">
<constraint constraintValue="${elevation3}"
constraintType="BETWEEN" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties loadWithoutData="true">
<capabilities>
<capability xsi:type="imagingCapability"
interpolationState="false" brightness="1.0" contrast="1.0"
alpha="1.0" />
<capability xsi:type="rangeRingsOverlayCapability" />
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false" isVisible="true">
</properties>
<resourceData xsi:type="radarResourceData" mode="${mode2}"
isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true" >
<metadataMap>
<mapping key="productCode">
<constraint constraintValue="${product5},${product6},${product7},${product8}"
constraintType="IN" />
</mapping>
<mapping key="icao">
<constraint constraintValue="${icao}"
constraintType="EQUALS" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="radar" constraintType="EQUALS" />
</mapping>
<mapping key="primaryElevationAngle">
<constraint constraintValue="${elevation3}"
constraintType="BETWEEN" />
</mapping>
</metadataMap>
</resourceData>
</resource>
</resourceData>
</resource>
</descriptor>
</displays>
</displayList>
</bundle>

View file

@ -59,7 +59,7 @@ ModFamA| |N|Conv: NonSupercell Tor Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="msl-P, msl-P2" constraintType="IN"/>

View file

@ -56,7 +56,7 @@ ModFamB| |N|Conv: Storm Init Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="msl-P, msl-P2" constraintType="IN"/>
@ -188,7 +188,7 @@ ModFamB| |N|Conv: Storm Init Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="muCape, PBE" constraintType="IN"/>
@ -322,7 +322,7 @@ ModFamB| |N|Conv: Storm Init Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="NBE, cCin" constraintType="IN"/>
@ -488,7 +488,7 @@ ModFamB| |N|Conv: Storm Init Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="DivFn, qDiv" constraintType="IN"/>

View file

@ -166,7 +166,7 @@ ModFamC| |N|Conv: Hail Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="muCape, PBE" constraintType="IN"/>

View file

@ -70,7 +70,7 @@ ModFamD| |N|Winter: Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="msl-P, msl-P2" constraintType="IN"/>
@ -169,7 +169,7 @@ ModFamD| |N|Winter: Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="ICON" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="PTyp, Snow3" constraintType="IN"/>
@ -268,7 +268,7 @@ ModFamD| |N|Winter: Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="ICON" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="PTyp, Snow3" constraintType="IN"/>
@ -367,7 +367,7 @@ ModFamD| |N|Winter: Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="ICON" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="PTyp, Snow3" constraintType="IN"/>
@ -466,7 +466,7 @@ ModFamD| |N|Winter: Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="ICON" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="PTyp, Snow3" constraintType="IN"/>
@ -702,7 +702,7 @@ ModFamD| |N|Winter: Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="DivFn, qDiv" constraintType="IN"/>
@ -981,7 +981,7 @@ ModFamD| |N|Winter: Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="DivFn, DivFn" constraintType="IN"/>
@ -1152,7 +1152,7 @@ ModFamD| |N|Winter: Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="AV, geoVort" constraintType="IN"/>
@ -1287,7 +1287,7 @@ ModFamD| |N|Winter: Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.level.levelonevalue" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.level.levelonevalue" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="wSp" constraintType="EQUALS"/>
@ -1386,7 +1386,7 @@ ModFamD| |N|Winter: Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="STREAMLINE" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.level.levelonevalue" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.level.levelonevalue" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="Wind" constraintType="EQUALS"/>
@ -1485,7 +1485,7 @@ ModFamD| |N|Winter: Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.level.levelonevalue" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.level.levelonevalue" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="wDiv" constraintType="EQUALS"/>

View file

@ -139,7 +139,7 @@ ModFamH | | N|Conv: QLCS/Wind Family| | OTHER| |
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="muCape,PBE" constraintType="IN"/>
@ -269,7 +269,7 @@ ModFamH | | N|Conv: QLCS/Wind Family| | OTHER| |
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="cCin,NBE" constraintType="IN"/>
@ -396,7 +396,7 @@ ModFamH | | N|Conv: QLCS/Wind Family| | OTHER| |
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="BlkMag,EHI" constraintType="IN"/>
@ -496,7 +496,7 @@ ModFamH | | N|Conv: QLCS/Wind Family| | OTHER| |
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="BlkMag,EHI" constraintType="IN"/>
@ -1025,7 +1025,7 @@ ModFamH | | N|Conv: QLCS/Wind Family| | OTHER| |
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="dP3hr,dP6hr" constraintType="IN"/>

View file

@ -66,7 +66,7 @@ ModFamU| |N|Briefing Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="msl-P, msl-P2" constraintType="IN"/>
@ -165,7 +165,7 @@ ModFamU| |N|Briefing Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="ICON" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="PTyp, Snow3" constraintType="IN"/>
@ -264,7 +264,7 @@ ModFamU| |N|Briefing Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="ICON" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="PTyp, Snow3" constraintType="IN"/>
@ -363,7 +363,7 @@ ModFamU| |N|Briefing Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="ICON" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="PTyp, Snow3" constraintType="IN"/>
@ -462,7 +462,7 @@ ModFamU| |N|Briefing Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="ICON" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="PTyp, Snow3" constraintType="IN"/>
@ -594,7 +594,7 @@ ModFamU| |N|Briefing Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="DivFn, qDiv" constraintType="IN"/>
@ -873,7 +873,7 @@ ModFamU| |N|Briefing Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="DivFn, DivFn" constraintType="IN"/>
@ -1044,7 +1044,7 @@ ModFamU| |N|Briefing Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="AV, geoVort" constraintType="IN"/>
@ -1179,7 +1179,7 @@ ModFamU| |N|Briefing Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.level.levelonevalue" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.level.levelonevalue" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="wSp" constraintType="EQUALS"/>
@ -1278,7 +1278,7 @@ ModFamU| |N|Briefing Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="STREAMLINE" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.level.levelonevalue" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.level.levelonevalue" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="Wind" constraintType="EQUALS"/>
@ -1377,7 +1377,7 @@ ModFamU| |N|Briefing Family| |OTHER | | \
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.level.levelonevalue" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.level.levelonevalue" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="wDiv" constraintType="EQUALS"/>

View file

@ -135,7 +135,7 @@ ModFamV | | N|Conv: Severe Type Family| | OTHER| | \
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="cCin, NBE" constraintType="IN"/>
@ -341,7 +341,7 @@ ModFamV | | N|Conv: Severe Type Family| | OTHER| | \
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="BlkMag, EHI" constraintType="IN"/>
@ -479,7 +479,7 @@ ModFamV | | N|Conv: Severe Type Family| | OTHER| | \
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="BlkMag, EHI" constraintType="IN"/>
@ -902,7 +902,7 @@ ModFamV | | N|Conv: Severe Type Family| | OTHER| | \
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="STP, VGP" constraintType="IN"/>

View file

@ -135,7 +135,7 @@
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="cCape, PBE" constraintType="IN"/>
@ -235,7 +235,7 @@
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="cCin, NBE" constraintType="IN"/>
@ -371,7 +371,7 @@
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="BlkMag, EHI" constraintType="IN"/>
@ -544,7 +544,7 @@
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="Heli, HeliD" constraintType="IN"/>
@ -644,7 +644,7 @@
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="Heli, HeliD" constraintType="IN"/>
@ -1093,7 +1093,7 @@
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="STP, VGP" constraintType="IN"/>
@ -1194,7 +1194,7 @@
<loadProperties xsi:type="gridLoadProperties" displayType="IMAGE" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="STP, VGP" constraintType="IN"/>

View file

@ -110,7 +110,7 @@
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="cCin, NBE" constraintType="IN"/>

View file

@ -127,7 +127,7 @@
<loadProperties xsi:type="gridLoadProperties" displayType="IMAGE" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="cCape, PBE" constraintType="IN"/>
@ -227,7 +227,7 @@
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="cCape, PBE" constraintType="IN"/>
@ -327,7 +327,7 @@
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="cCin, NBE" constraintType="IN"/>
@ -610,7 +610,7 @@
<loadProperties xsi:type="gridLoadProperties" displayType="ICON" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="Heli, HeliD" constraintType="IN"/>

View file

@ -129,7 +129,7 @@
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="cCape, PBE" constraintType="IN"/>
@ -229,7 +229,7 @@
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="cCape, PBE" constraintType="IN"/>
@ -329,7 +329,7 @@
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="cCape, PBE" constraintType="IN"/>
@ -429,7 +429,7 @@
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="cCin, NBE" constraintType="IN"/>
@ -731,7 +731,7 @@
<loadProperties xsi:type="gridLoadProperties" displayType="CONTOUR" loadWithoutData="false">
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="bestResResourceData" productIdentifierKey="modelInfo.parameterAbbreviation" retrieveData="false">
<resourceData xsi:type="bestResResourceData" productIdentifierKey="info.parameter.abbreviation" retrieveData="false">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="Heli, HeliD" constraintType="IN"/>

View file

@ -297,12 +297,8 @@ class SmartScript(BaseTool.BaseTool):
#SendISCOnSave is enabled, then this routine will fail as grids are
#sent when saved and the manual operation is not allowed. The
#overall isc send state must also be True for this command to work.
req = []
parms = self.__parmMgr.getAllAvailableParms();
for parm in parms:
pid = parm.getParmID()
tr = parm.getParmTimeRange()
req.append(SendISCRequest(pid,tr))
req = ArrayList()
req.add(SendISCRequest())
self.__parmOp.sendISC(req)
def manualSendISC_manualMode(self, requests):
@ -310,13 +306,12 @@ class SmartScript(BaseTool.BaseTool):
#SendISCOnSave is enabled, then this routine will fail as grids are
#sent when saved and the manual operation is not allowed.
#The requests are tuples of (parmName, parmLevel, timeRange). The
#TimeRange is an AFPS.TimeRange() instance. The overall isc
#TimeRange is an TimeRange() instance. The overall isc
#send state must also be True for this command to work.
req = []
req = ArrayList()
for parmName, parmLevel, tr in requests:
pid = ParmID.ParmID(parmName, self.mutableID(),
parmLevel).toJavaObj()
req.append(SendISCRequest(pid, tr))
pid = ParmID.ParmID(name=parmName, dbid=self.mutableID(), level=parmLevel).toJavaObj()
req.add(SendISCRequest(pid, tr.toJavaObj()))
self.__parmOp.sendISC(req)

View file

@ -7,7 +7,6 @@
<resourceParameters>
GDFILE=cmc
pluginName=grid
eventName=%
</resourceParameters>
<filterLabels>Forecast,Global</filterLabels>
<rscImplementation>ModelFcstGridContours</rscImplementation>

View file

@ -7,7 +7,6 @@
<resourceParameters>
GDFILE=hireswNmmE
pluginName=grid
eventName=%
</resourceParameters>
<filterLabels>Forecast</filterLabels>
<rscImplementation>ModelFcstGridContours</rscImplementation>

View file

@ -7,7 +7,6 @@
<resourceParameters>
GDFILE=ecmwf
pluginName=grid
eventName=%
</resourceParameters>
<filterLabels>Forecast,Global</filterLabels>
<rscImplementation>ModelFcstGridContours</rscImplementation>

View file

@ -7,7 +7,6 @@
<resourceParameters>
GDFILE=ecmwfg
pluginName=grid
eventName=%
</resourceParameters>
<filterLabels>Forecast,Global</filterLabels>
<rscImplementation>ModelFcstGridContours</rscImplementation>

View file

@ -7,7 +7,6 @@
<resourceParameters>
GDFILE=ecmwft
pluginName=grid
eventName=%
</resourceParameters>
<filterLabels>Forecast,Global</filterLabels>
<rscImplementation>ModelFcstGridContours</rscImplementation>

View file

@ -7,7 +7,6 @@
<resourceParameters>
GDFILE=fnmocwave
pluginName=grid
eventName=%
</resourceParameters>
<filterLabels>Forecast,Global</filterLabels>
<rscImplementation>ModelFcstGridContours</rscImplementation>

View file

@ -7,7 +7,6 @@
<resourceParameters>
GDFILE=gfs
pluginName=grid
eventName=%
</resourceParameters>
<filterLabels>Forecast,Global</filterLabels>
<rscImplementation>ModelFcstGridContours</rscImplementation>

View file

@ -8,7 +8,6 @@
<resourceParameters>
GDFILE=nam
pluginName=grid
eventName=%
</resourceParameters>
<rscImplementation>ModelFcstGridContours</rscImplementation>
<subTypeGenerator></subTypeGenerator>

View file

@ -7,7 +7,6 @@
<resourceParameters>
GDFILE=nogaps
pluginName=grid
eventName=%
</resourceParameters>
<filterLabels>Forecast,Global</filterLabels>
<rscImplementation>ModelFcstGridContours</rscImplementation>

View file

@ -7,7 +7,6 @@
<resourceParameters>
GDFILE=nww3
pluginName=grid
eventName=%
</resourceParameters>
<filterLabels>Forecast,Global</filterLabels>
<rscImplementation>ModelFcstGridContours</rscImplementation>

View file

@ -6,7 +6,6 @@
<resourceParameters>
GDFILE=rap
pluginName=grid
eventName=%
</resourceParameters>
<filterLabels>Forecast,Regional</filterLabels>
<rscImplementation>ModelFcstGridContours</rscImplementation>

View file

@ -7,7 +7,6 @@
<resourceParameters>
GDFILE=ukmet
pluginName=grid
eventName=%
</resourceParameters>
<filterLabels>Forecast,Global</filterLabels>
<rscImplementation>ModelFcstGridContours</rscImplementation>

View file

@ -6,7 +6,6 @@
<resourceParameters>
GDFILE=westnmm
pluginName=ncgrib
eventName=%
</resourceParameters>
<filterLabels>Forecast</filterLabels>
<rscImplementation>ModelFcstGridContours</rscImplementation>

View file

@ -1,4 +1,5 @@
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.
.,\
localization/

View file

@ -23,7 +23,7 @@ import java.util.Arrays;
import jep.INumpyable;
import com.raytheon.uf.viz.derivparam.python.PythonNumpyFloatArray;
import com.raytheon.uf.common.python.PythonNumpyFloatArray;
/**
* TODO Add Description

View file

@ -19,7 +19,6 @@
**/
package com.raytheon.viz.gfe.dialogs;
import java.awt.Toolkit;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
@ -75,7 +74,7 @@ import com.vividsolutions.jts.geom.Coordinate;
* Jun 20, 2008 #875 bphillip Implemented Dialog functionality
* Sep 20, 2012 #1190 dgilling Use new WsId.getHostName() method.
* Nov 12, 2012 #1298 rferrel Code cleanup for non-blocking dialog.
* Jan 10, 2013 #DR15572 jzeng add getWindowMax() and getMaxWidth(String str)
* Jan 10, 2013 #DR15572 jzeng add getMaxWidth(String str)
* and adjustDlg(String str),
* change gridInfoText from Label to Text
* to make sure the info get displayed inside the screen
@ -107,15 +106,9 @@ public class GridInfoDialog extends CaveJFACEDialog implements
// set gridInfoText to be Text
private Text gridInfoText;
// width of the screen
private int WidthofScreen;
// width of the grouplist
private final int WidthofGroup = 240;
private SimpleDateFormat gmtFormatter;
public GridInfoDialog(Shell parent, Parm parm, Date clickTime) {
super(parent);
this.setShellStyle(SWT.DIALOG_TRIM | SWT.MODELESS);
@ -127,8 +120,6 @@ public class GridInfoDialog extends CaveJFACEDialog implements
gmtFormatter = new SimpleDateFormat("MMM dd yy HH:mm:ss zzz");
gmtFormatter.setTimeZone(TimeZone.getTimeZone("GMT"));
//make sure there is enough space for the group list
WidthofScreen = this.getWindowMax() - WidthofGroup;
}
@Override
@ -153,34 +144,30 @@ public class GridInfoDialog extends CaveJFACEDialog implements
b.setText(gridInfoElements[i]);
b.addSelectionListener(this);
}
// Composite composite2 = new Composite(top, SWT.NONE);
// layoutData = new GridData(SWT.DEFAULT, SWT.FILL, false, true);
// composite2.setLayoutData(layoutData);
// composite2.setLayout(new GridLayout(1, true));
gridInfoText = new Text(top, SWT.NONE | SWT.H_SCROLL);
gridInfoText = new Text(top, SWT.BORDER | SWT.MULTI | SWT.H_SCROLL | SWT.READ_ONLY);
layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
gridInfoText.setEditable(false);
gridInfoText.setBackground(group.getBackground());
gridInfoText.setLayoutData(layoutData);
}
/*
* To get the width of the screen
*/
private int getWindowMax(){
Toolkit toolkit = Toolkit.getDefaultToolkit();
return toolkit.getScreenSize().width;
}
/*
* adjust the width of the dialog
*/
private void adjustDlg(String infoText){
int screenWidth = this.getParentShell().getDisplay().
getPrimaryMonitor().getBounds().width;
int maxWidth = (int)Math.round(screenWidth * 0.75);
GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
int maxLength = getMaxWidth(infoText);
if ( maxLength > WidthofScreen ) {
gd.widthHint = WidthofScreen;
if ( maxLength > maxWidth ) {
gd.widthHint = maxWidth;
gridInfoText.setLayoutData(gd);
} else {
gridInfoText.setLayoutData(gd);

View file

@ -823,7 +823,8 @@ public abstract class AbstractGridResource<T extends AbstractResourceData>
Unit<?> unit = data.getDataUnit();
if (stylePreferences != null) {
Unit<?> styleUnit = stylePreferences.getDisplayUnits();
if (unit != null && unit.isCompatible(styleUnit)) {
if (unit != null && styleUnit != null
&& unit.isCompatible(styleUnit)) {
value = (float) unit.getConverterTo(styleUnit).convert(value);
unit = styleUnit;
unitString = stylePreferences.getDisplayUnitLabel();

View file

@ -24,7 +24,7 @@
<contribute xsi:type="titleItem" titleText="------ Z/V ------"
id="${icao}Terminal4panelZV" />
<contribute xsi:type="bundleItem"
file="bundles/DefaultRadarFourPanelBlendedBestRes.xml" menuText="${elev1} ${elev2} ${elev6} ${elev8}"
file="bundles/DefaultTerminalRadar4PanelBlendedBestRes.xml" menuText="${elev1} ${elev2} ${elev6} ${elev8}"
id="${icao}${elev1}${elev2}${elev6}${elev8}Terminal4panelZV"
suppressErrors="${suppressErrors3}">
<substitute key="icao" value="${icao}" />
@ -44,7 +44,7 @@
<substitute key="elevation4" value="${elev8}--${elev8}" />
</contribute>
<contribute xsi:type="bundleItem"
file="bundles/DefaultRadarFourPanelBlendedBestRes.xml" menuText="${elev1} ${elev3} ${elev5} ${elev6}"
file="bundles/DefaultTerminalRadar4PanelBlendedBestRes.xml" menuText="${elev1} ${elev3} ${elev5} ${elev6}"
id="${icao}${elev1}${elev3}${elev5}${elev6}Terminal4panelZV"
suppressErrors="${suppressErrors3}">
<substitute key="icao" value="${icao}" />
@ -64,7 +64,7 @@
<substitute key="elevation4" value="${elev6}--${elev6}" />
</contribute>
<contribute xsi:type="bundleItem"
file="bundles/DefaultRadarFourPanelBlendedBestRes.xml" menuText="${elev1} ${elev2} ${elev3} ${elev4}"
file="bundles/DefaultTerminalRadar4PanelBlendedBestRes.xml" menuText="${elev1} ${elev2} ${elev3} ${elev4}"
id="${icao}${elev1}${elev2}${elev3}${elev4}Terminal4panelZV"
suppressErrors="${suppressErrors3}">
<substitute key="icao" value="${icao}" />
@ -84,7 +84,7 @@
<substitute key="elevation4" value="${elev4}--${elev4}" />
</contribute>
<contribute xsi:type="bundleItem"
file="bundles/DefaultRadarFourPanelBlendedBestRes.xml" menuText="${elev3} ${elev7} ${elev8} ${elev9}"
file="bundles/DefaultTerminalRadar4PanelBlendedBestRes.xml" menuText="${elev3} ${elev7} ${elev8} ${elev9}"
id="${icao}${elev3}${elev7}${elev8}${elev9}Terminal4panelZV"
suppressErrors="${suppressErrors3}">
<substitute key="icao" value="${icao}" />
@ -104,7 +104,7 @@
<substitute key="elevation4" value="${elev9}--${elev9}" />
</contribute>
<contribute xsi:type="bundleItem"
file="bundles/DefaultRadarFourPanelBlendedBestRes.xml" menuText="${elev8} ${elev9} ${elev10} ${elev12}"
file="bundles/DefaultTerminalRadar4PanelBlendedBestRes.xml" menuText="${elev8} ${elev9} ${elev10} ${elev12}"
id="${icao}${elev8}${elev9}${elev10}${elev12}Terminal4panelZV"
suppressErrors="${suppressErrors3}">
<substitute key="icao" value="${icao}" />
@ -127,7 +127,7 @@
<contribute xsi:type="titleItem" titleText="------ Z/SRM8 ------"
id="${icao}Terminal4panelZSRM8" />
<contribute xsi:type="bundleItem"
file="bundles/DefaultRadarFourPanelBlendedBestRes.xml" menuText="${elev1} ${elev2} ${elev6} ${elev8}"
file="bundles/DefaultTerminalRadar4PanelBlendedBestRes.xml" menuText="${elev1} ${elev2} ${elev6} ${elev8}"
id="${icao}${elev1}${elev2}${elev6}${elev8}Terminal4panelZSRM8"
suppressErrors="${suppressErrors3}">
<substitute key="icao" value="${icao}" />
@ -147,7 +147,7 @@
<substitute key="elevation4" value="${elev8}--${elev8}" />
</contribute>
<contribute xsi:type="bundleItem"
file="bundles/DefaultRadarFourPanelBlendedBestRes.xml" menuText="${elev1} ${elev3} ${elev5} ${elev6}"
file="bundles/DefaultTerminalRadar4PanelBlendedBestRes.xml" menuText="${elev1} ${elev3} ${elev5} ${elev6}"
id="${icao}${elev1}${elev3}${elev5}${elev6}Terminal4panelZSRM8"
suppressErrors="${suppressErrors3}">
<substitute key="icao" value="${icao}" />
@ -167,7 +167,7 @@
<substitute key="elevation4" value="${elev6}--${elev6}" />
</contribute>
<contribute xsi:type="bundleItem"
file="bundles/DefaultRadarFourPanelBlendedBestRes.xml" menuText="${elev1} ${elev2} ${elev3} ${elev4}"
file="bundles/DefaultTerminalRadar4PanelBlendedBestRes.xml" menuText="${elev1} ${elev2} ${elev3} ${elev4}"
id="${icao}${elev1}${elev2}${elev3}${elev4}Terminal4panelZSRM8"
suppressErrors="${suppressErrors3}">
<substitute key="icao" value="${icao}" />
@ -187,7 +187,7 @@
<substitute key="elevation4" value="${elev4}--${elev4}" />
</contribute>
<contribute xsi:type="bundleItem"
file="bundles/DefaultRadarFourPanelBlendedBestRes.xml" menuText="${elev3} ${elev7} ${elev8} ${elev9}"
file="bundles/DefaultTerminalRadar4PanelBlendedBestRes.xml" menuText="${elev3} ${elev7} ${elev8} ${elev9}"
id="${icao}${elev3}${elev7}${elev8}${elev9}Terminal4panelZSRM8"
suppressErrors="${suppressErrors3}">
<substitute key="icao" value="${icao}" />
@ -207,7 +207,7 @@
<substitute key="elevation4" value="${elev9}--${elev9}" />
</contribute>
<contribute xsi:type="bundleItem"
file="bundles/DefaultRadarFourPanelBlendedBestRes.xml" menuText="${elev8} ${elev9} ${elev10} ${elev12}"
file="bundles/DefaultTerminalRadar4PanelBlendedBestRes.xml" menuText="${elev8} ${elev9} ${elev10} ${elev12}"
id="${icao}${elev8}${elev9}${elev10}${elev12}Terminal4panelZSRM8"
suppressErrors="${suppressErrors3}">
<substitute key="icao" value="${icao}" />

View file

@ -152,11 +152,27 @@ public class PrintDisplay {
*/
int lineWidthPixels = gc.stringExtent(aBuffer.toString()).x;
int deviceWidthPixels = rightMargin - leftMargin;
printerFont.dispose();
/*
* Scale the original font size;
*/
float fontSize = (float)deviceWidthPixels / (float)lineWidthPixels * (float)origFontSize;
/*
* Validate that the line width in scaled font does not exceed the deviceWidthPixelx
*/
boolean isValidated = false;
while (!isValidated) {
printerFontData.setHeight((int) (fontSize));
gc.setFont(new Font(printer, printerFontData));
lineWidthPixels = gc.stringExtent(aBuffer.toString()).x;
if (lineWidthPixels < deviceWidthPixels) {
isValidated = true;
} else {
fontSize--;
}
}
printerFont.dispose();
/*
* Set the printerFont Data font to the scaled font
*/

View file

@ -129,6 +129,7 @@ import com.vividsolutions.jts.geom.Polygon;
* and in updateListSelected().
* Dec 20, 2012 DR 15537 Qinglu Lin Changed the assigned value to trackEditable from false
* to true in boxSelected().
* Jan 24, 2013 DR 15723 Qinglu Lin Invoked WarngenLayer's initRemovedGids().
*
* </pre>
*
@ -1572,6 +1573,7 @@ public class WarngenDialog extends CaveSWTDialog implements
warngenLayer.getStormTrackState().endTime = null;
WarningAction action = WarningAction.valueOf(data.getAct());
warngenLayer.setWarningAction(action);
warngenLayer.initRemovedGids();
if (action == WarningAction.CON) {
oldWarning = conSelected(data);
} else if (action == WarningAction.COR) {
@ -1827,7 +1829,7 @@ public class WarngenDialog extends CaveSWTDialog implements
* @param selected
*/
private AbstractWarningRecord conSelected(FollowupData data) {
CurrentWarnings cw = CurrentWarnings.getInstance(warngenLayer
CurrentWarnings cw = CurrentWarnings.getInstance(warngenLayer
.getLocalizedSite());
AbstractWarningRecord newWarn = null;
if (WarningAction.COR == WarningAction.valueOf(data.getAct())) {

View file

@ -153,6 +153,8 @@ import com.vividsolutions.jts.io.WKTReader;
* 12/17/2012 DR 15571 Qinglu Lin For hydro products,futurePoints is null. Resolved an issue caused by trying to get
* Coordinate[] from futurePoints.
* 12/18/2012 DR 15571 Qinglu Lin Resolved coordinate issue in TML line caused by clicking Restart button.
* 01/24/2013 DR 15723 Qinglu Lin Added initRemovedGids() and updated updateWarnedAreas() to prevent the removed
* counties from being re-hatched.
*
* </pre>
*
@ -240,6 +242,8 @@ public class WarngenLayer extends AbstractStormTrackResource {
private WarningAction warningAction = WarningAction.NEW;
private Set<String> removedGids = new HashSet<String>();
static {
for (int i = 0; i < 128; i++) {
if (i % 32 == 0) {
@ -1270,12 +1274,22 @@ public class WarngenLayer extends AbstractStormTrackResource {
Geometry oldArea = oldWarningArea.getGeometryN(n);
Geometry geom = GeometryUtil.intersection(warningPolygon,
oldArea);
if (geom.isEmpty() == false) {
if (intersection == null) {
intersection = geom;
} else {
intersection = GeometryUtil.union(intersection,
geom);
String[] gids = GeometryUtil.getGID(geom);
boolean flag = false;
for (String gid: gids) {
if (removedGids.contains(gid)) {
flag = true;
break;
}
}
if (!flag) {
if (geom.isEmpty() == false) {
if (intersection == null) {
intersection = geom;
} else {
intersection = GeometryUtil.union(intersection,
geom);
}
}
}
}
@ -2114,6 +2128,7 @@ public class WarngenLayer extends AbstractStormTrackResource {
for (GeospatialData f : geoData.features) {
Geometry geom = f.geometry;
if (f.prepGeom.contains(point)) {
String[] gids = GeometryUtil.getGID(geom);
if (GeometryUtil.contains(state.getWarningArea(), point)) {
// remove county
Geometry tmp = GeometryUtil.difference(
@ -2123,6 +2138,9 @@ public class WarngenLayer extends AbstractStormTrackResource {
}
state.setWarningArea(tmp);
for (String gid: gids) {
removedGids.add(gid);
}
} else {
if (oldWarningArea != null) {
// for a CON, prevents extra areas to be added
@ -2145,6 +2163,9 @@ public class WarngenLayer extends AbstractStormTrackResource {
}
state.setWarningArea(GeometryUtil.union(
state.getWarningArea(), geom));
for (String gid: gids) {
removedGids.remove(gid);
}
}
} else {
// add county
@ -2361,4 +2382,8 @@ public class WarngenLayer extends AbstractStormTrackResource {
public void setWarningAction(WarningAction warningAction) {
this.warningAction = warningAction;
}
public void initRemovedGids() {
removedGids.clear();
}
}

View file

@ -59,6 +59,8 @@ import com.vividsolutions.jts.geom.Polygon;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* May 7, 2010 mschenke Initial creation
* Jan 29, 2013 15723 Qinglu Lin Called warngenLayer.initRemovedGids() in move() and in run() of
* AddVertexAction, DeleteVertextAction and MoveElementAction inner classes.
*
* </pre>
*
@ -356,6 +358,7 @@ public class WarngenUIManager extends InputAdapter {
}
private void move(int x, int y) {
warngenLayer.initRemovedGids();
IDisplayPaneContainer container = warngenLayer.getResourceContainer();
WarngenUIState state = warngenLayer.getWarngenState();
@ -409,6 +412,7 @@ public class WarngenUIManager extends InputAdapter {
return;
}
warngenLayer.initRemovedGids();
Coordinate[] coords = warngenLayer.getPolygon().getCoordinates();
int idx = StormTrackUIManager.getCoordinateIndex(warngenLayer,
@ -511,6 +515,7 @@ public class WarngenUIManager extends InputAdapter {
private class MoveElementAction extends AbstractRightClickAction {
@Override
public void run() {
warngenLayer.initRemovedGids();
moveType = MoveType.ALL_POINTS;
movePointIndex = StormTrackUIManager.getCoordinateIndex(
warngenLayer, warngenLayer.getPolygon().getCoordinates(),
@ -540,6 +545,7 @@ public class WarngenUIManager extends InputAdapter {
return;
}
warngenLayer.initRemovedGids();
Coordinate c = new Coordinate(lastMouseX, lastMouseY);
Polygon poly = warngenLayer.getPolygon();

View file

@ -1,15 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<NcInventoryDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
<inventoryName>AVIATION</inventoryName>
<inventoryParameters>pluginName,eventName,dataTime</inventoryParameters>
<inventoryParameters>pluginName,info.ensembleId,dataTime</inventoryParameters>
<baseConstraints>
<mapping key="modelName">
<mapping key="info.datasetId">
<constraint constraintValue="aviation" constraintType="EQUALS"/>
</mapping>
<mapping key="pluginName">
<constraint constraintValue="ncgrib" constraintType="EQUALS"/>
<constraint constraintValue="grid" constraintType="EQUALS"/>
</mapping>
<mapping key="eventName">
<mapping key="info.ensembleId">
<constraint constraintValue="%" constraintType="LIKE"/>
</mapping>
</baseConstraints>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<NcInventoryDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
<inventoryName>GFS</inventoryName>
<inventoryParameters>pluginName,info.secondaryId,dataTime</inventoryParameters>
<inventoryParameters>pluginName,dataTime</inventoryParameters>
<baseConstraints>
<mapping key="info.datasetId">
<constraint constraintValue="gfs" constraintType="EQUALS"/>
@ -9,8 +9,5 @@
<mapping key="pluginName">
<constraint constraintValue="grid" constraintType="EQUALS"/>
</mapping>
<mapping key="info.secondaryId">
<constraint constraintValue="%" constraintType="LIKE"/>
</mapping>
</baseConstraints>
</NcInventoryDefinition>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<NcInventoryDefinition xmlns:ns2="group" xmlns:ns3="http://www.example.org/productType">
<inventoryName>NAM</inventoryName>
<inventoryParameters>pluginName,info.secondaryId,dataTime</inventoryParameters>
<inventoryParameters>pluginName,dataTime</inventoryParameters>
<baseConstraints>
<mapping key="info.datasetId">
<constraint constraintValue="nam" constraintType="EQUALS"/>
@ -9,8 +9,5 @@
<mapping key="pluginName">
<constraint constraintValue="grid" constraintType="EQUALS"/>
</mapping>
<mapping key="info.secondaryId">
<constraint constraintValue="%" constraintType="LIKE"/>
</mapping>
</baseConstraints>
</NcInventoryDefinition>

View file

@ -3,11 +3,11 @@
<inventoryName>NAM_00</inventoryName>
<inventoryParameters>pluginName,dataTime</inventoryParameters>
<baseConstraints>
<mapping key="modelName">
<mapping key="info.datasetId">
<constraint constraintValue="nam" constraintType="EQUALS"/>
</mapping>
<mapping key="pluginName">
<constraint constraintValue="ncgrib" constraintType="EQUALS"/>
<constraint constraintValue="grid" constraintType="EQUALS"/>
</mapping>
</baseConstraints>
</NcInventoryDefinition>

View file

@ -3,10 +3,10 @@
<inventoryName>NcGridSoundingInventory</inventoryName>
<!-- Do we want to store level information in here???? -->
<!-- Alternatively could store dataTime.refTime,dataTime.forecasttime -->
<inventoryParameters>pluginName,modelName,eventName,dataTime</inventoryParameters>
<inventoryParameters>pluginName,info.datasetId,info.secondaryId,dataTime</inventoryParameters>
<baseConstraints>
<mapping key="pluginName">
<constraint constraintValue="ncgribxxx" constraintType="EQUALS"/>
<constraint constraintValue="grid" constraintType="EQUALS"/>
</mapping>
<!-- any other needed constraints. ie parameters, levels.... -->
</baseConstraints>

View file

@ -0,0 +1,80 @@
##
# 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.
##
#
# Provides Java implementations of common smart utility functions
# to boost performance.
#
#
# SOFTWARE HISTORY
#
# Date Ticket# Engineer Description
# ------------ ---------- ----------- --------------------------
# 01/14/13 njensen Initial Creation.
#
#
#
import jep
from com.raytheon.uf.common.dataplugin.gfe.util import SmartUtils as JavaSmartUtils
import numpy
def __getMaskIndiciesForJava(mask):
flatMask = mask.flat #flatten the array
flatIndicies = numpy.nonzero(flatMask) # get the indicies of the set cells
ysize = mask.shape[1]
indexes = []
# convert the flat incicies to the x, y indicies
for i in flatIndicies:
indexes.append((i / ysize, i % ysize))
# Make two new jarrays to hold the final coordinate tuples
size = len(indexes[0][0])
xcoords = jep.jarray(size, jep.JINT_ID)
ycoords = jep.jarray(size, jep.JINT_ID)
#===================================================================
# Convert the coordinates from a tuple of numpy arrays to a list of
# coordinate tuples
for index in xrange(size):
try:
x = indexes[0][0][index]
y = indexes[0][1][index]
xcoords[index] = int(x)
ycoords[index] = int(y)
except Exception, e:
print e
return xcoords, ycoords
def fillEditArea(grid, fillMask, borderMask):
editPointsX, editPointsY = __getMaskIndiciesForJava(fillMask)
borderPointsX, borderPointsY = __getMaskIndiciesForJava(borderMask)
gridObj = JavaSmartUtils.fillEditArea(grid, grid.shape[1], grid.shape[0], \
editPointsY, editPointsX, borderPointsY, borderPointsX)
retObj = gridObj.__numpy__[0]
return retObj

View file

@ -307,7 +307,12 @@ public class GribSpatialCache {
referenceCoverage);
double shiftX = 0;
if (shiftSubGridWest == true && modelName != "TPCSurgeProb")
// Check whether 'shiftWest' flag is set in subgrid definition xml file
if (subGridDef.getShiftWest() != null)
shiftSubGridWest = subGridDef.getShiftWest();
if (shiftSubGridWest == true)
shiftX = subGridDef.getNx() / 5;
double xCenterPoint = subGridCenterGridCoord.x - shiftX;

View file

@ -65,7 +65,9 @@ public class SubGridDef implements ISerializableObject {
@XmlElement(required = true)
private double ny;
@XmlElement
private Boolean shiftWest;
// annotation on setter to enforce data constraints
private Double centerLatitude;
@ -96,6 +98,13 @@ public class SubGridDef implements ISerializableObject {
this.ny = ny;
}
public Boolean getShiftWest() {
return shiftWest;
}
public void setShiftWest(Boolean shiftWest) {
this.shiftWest = shiftWest;
}
/**
* a model may have more than one grid so use reference grid instead.
*

View file

@ -23,6 +23,7 @@
<referenceGrid>374</referenceGrid>
<nx>1300</nx>
<ny>1200</ny>
<shiftWest>false</shiftWest>
<!--
<centerLatitude>46.0</centerLatitude>
<centerLongitude>-95.5</centerLongitude>

View file

@ -0,0 +1,110 @@
/**
* 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.
**/
package com.raytheon.uf.common.dataplugin.gfe.util;
import jep.INumpyable;
import com.raytheon.uf.common.python.PythonNumpyFloatArray;
/**
* Java port of python utility functions. Ported to Java to boost performance to
* surpass python's poor looping performance.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jan 11, 2013 njensen Initial creation
*
* </pre>
*
* @author njensen
* @version 1.0
*/
public class SmartUtils {
/**
* Define a method to fill the specified edit area. Ported from python.
*
* @param grid
* @param gridNx
* @param gridNy
* @param editPointsX
* @param editPointsY
* @param borderPointsX
* @param borderPointsY
* @return
*/
public static INumpyable fillEditArea(float[] grid, int gridNx, int gridNy,
int[] editPointsX, int[] editPointsY, int[] borderPointsX,
int[] borderPointsY) {
// edit points and border points are a list of (x,y) indices
int[] e = new int[2];
int[] b = new int[2];
for (int i = 0; i < editPointsX.length; i++) {
e[0] = editPointsX[i];
e[1] = editPointsY[i];
double numSum = 0.0;
double denomSum = 0.0;
for (int k = 0; k < borderPointsX.length; k++) {
b[0] = borderPointsX[k];
b[1] = borderPointsY[k];
// points in the same row, column or diagonal
int xdiff = e[0] - b[0];
int ydiff = e[1] - b[1];
int absXdiff = (xdiff < 0) ? -xdiff : xdiff;
int absYdiff = (ydiff < 0) ? -ydiff : ydiff;
if (e[0] == b[0] || e[1] == b[1] || absXdiff == absYdiff) {
double xdist = xdiff;
double ydist = ydiff;
// calculate the distance to the border point
double dist = Math.sqrt(xdist * xdist + ydist * ydist);
// value = grid[b[0], b[1]]
float value = grid[b[0] + (gridNx * b[1])];
// Accumulate the distance-weighted average
numSum = numSum + value / dist;
denomSum = denomSum + 1 / dist;
}
}
int eIndex = e[0] + (gridNx * e[1]);
if (denomSum > 0.0f) {
// grid[e[0], e[1]] = numSum / denomSum;
grid[eIndex] = (float) (numSum / denomSum);
} else {
// grid[e[0], e[1]] = 0.0;
grid[eIndex] = 0.0f;
}
}
// Return completed grid
return new PythonNumpyFloatArray(grid, gridNx, gridNy);
}
}

View file

@ -0,0 +1,135 @@
<?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.
-->
<aliasList namespace="GEMPAK">
<alias base="0DEG">FRZL</alias>
<alias base="ADCL">LCLV</alias>
<alias base="AMSL">HGHT</alias>
<alias base="BCBL">BCBL</alias>
<alias base="BCLY">BCLY</alias>
<alias base="BCTL">BCTL</alias>
<alias base="BCY">BCLY</alias>
<alias base="BLD">PLBL</alias>
<alias base="BLS">DPTH</alias>
<alias base="BSS">DPTH</alias>
<alias base="CBL">CLDL</alias>
<alias base="CCBL">CCBL</alias>
<alias base="CCL">CCLY</alias>
<alias base="CCLY">CCLY</alias>
<alias base="CCTL">CCTL</alias>
<alias base="CCY">CCLY</alias>
<alias base="CEIL">CEIL</alias>
<alias base="CLG">CEIL</alias>
<alias base="CTL">CLDT</alias>
<alias base="DBLL">DPTH</alias>
<alias base="DBSL">DPTH</alias>
<alias base="DCBL">DCCBL</alias>
<alias base="DCCBL">DCCBL</alias>
<alias base="DCCTL">DCCTL</alias>
<alias base="DCTL">DCCTL</alias>
<alias base="EA">NONE</alias>
<alias base="EATM">NONE</alias>
<alias base="EHLT">EHLT</alias>
<alias base="EL">EHLT</alias>
<alias base="ELYR">ELYR</alias>
<alias base="EOCN">NONE</alias>
<alias base="ETA">ELVL</alias>
<alias base="ETAL">ELVL</alias>
<alias base="FH">HGHT</alias>
<alias base="FHAG">HGHT</alias>
<alias base="FRZ">FRZL</alias>
<alias base="GCBL">GSCBL</alias>
<alias base="GCTL">GSCTL</alias>
<alias base="GSCBL">GSCBL</alias>
<alias base="GSCTL">GSCTL</alias>
<alias base="HCBL">HCBL</alias>
<alias base="HCL">HCLY</alias>
<alias base="HCLY">HCLY</alias>
<alias base="HCTL">HCTL</alias>
<alias base="HCY">HCLY</alias>
<alias base="HSCLW">HTSLW</alias>
<alias base="HTFL">HTFL</alias>
<alias base="HTGL">HGHT</alias>
<alias base="HTSLW">HTSLW</alias>
<alias base="HYB">HYBL</alias>
<alias base="HYBL">HYBL</alias>
<alias base="ISBL">PRES</alias>
<alias base="K">THTA</alias>
<alias base="Ke">THTA</alias>
<alias base="LBSLW">LBSLW</alias>
<alias base="LBTHL">HYBL</alias>
<alias base="LCBL">LCBL</alias>
<alias base="LCL">LCLV</alias>
<alias base="LCLY">LCLY</alias>
<alias base="LCTL">LCTL</alias>
<alias base="LCY">LCLY</alias>
<alias base="LLTW">LWBZ</alias>
<alias base="LSCLW">LBSLW</alias>
<alias base="LWBZ">LWBZ</alias>
<alias base="LYRBL">PRES</alias>
<alias base="LYRFHAG">HGHT</alias>
<alias base="LYRK">THTA</alias>
<alias base="LYRKe">THTA</alias>
<alias base="LYRMB">PRES</alias>
<alias base="LYRSIG">SGMA</alias>
<alias base="MAXW">MWSL</alias>
<alias base="MB">PRES</alias>
<alias base="MCBL">MCBL</alias>
<alias base="MCLY">MCLY</alias>
<alias base="MCTL">MCTL</alias>
<alias base="MCY">MCLY</alias>
<alias base="MEPT">MTHE</alias>
<alias base="MLD">DPTH</alias>
<alias base="MSL">NONE</alias>
<alias base="MTHE">MTHE</alias>
<alias base="MWSL">MWSL</alias>
<alias base="NONE">NONE</alias>
<alias base="NTAT">TOPA</alias>
<alias base="OBIL">OBIL</alias>
<alias base="OBML">OBML</alias>
<alias base="OITL">OITL</alias>
<alias base="OLYR">OLYR</alias>
<alias base="OML">OML</alias>
<alias base="OSD">OSEQ</alias>
<alias base="OSEQ">OSEQ</alias>
<alias base="OSEQD">OSEQ</alias>
<alias base="PBL">PLBL</alias>
<alias base="PDLY">PDLY</alias>
<alias base="PLBL">PLBL</alias>
<alias base="PV">POTV</alias>
<alias base="PVL">POTV</alias>
<alias base="SCBL">SCCBT</alias>
<alias base="SCCBT">SCCBT</alias>
<alias base="SCCTL">SCCTL</alias>
<alias base="SCTL">SCCTL</alias>
<alias base="SEAB">SEAB</alias>
<alias base="SFC">NONE</alias>
<alias base="SIG">SGMA</alias>
<alias base="SIGL">SGMA</alias>
<alias base="SPDL">PDLV</alias>
<alias base="TEMP">TEMP</alias>
<alias base="THEL">THTA</alias>
<alias base="TILT">TILT</alias>
<alias base="TMPL">TMPL</alias>
<alias base="TRO">TROP</alias>
<alias base="TROP">TROP</alias>
<alias base="VPT">POTV</alias>
<alias base="WBZ">LWBZ</alias>
</aliasList>

View file

@ -19,77 +19,248 @@
further_licensing_information.
-->
<aliasList namespace="GEMPAK">
<alias base="WGH">HGHT5</alias>
<alias base="5WAVA">HGHT5</alias>
<alias base="ALBDO">ALBD</alias>
<alias base="ALBDO1hr">ALBD01</alias>
<alias base="ALBDO3hr">ALBD03</alias>
<alias base="ALBDO6hr">ALBD06</alias>
<alias base="ALBDO9hr">ALBD09</alias>
<alias base="ALBD12hr">ALBD12</alias>
<alias base="ALBD18hr">ALBD18</alias>
<alias base="ALBD24hr">ALBD24</alias>
<alias base="ALBD48hr">ALBD48</alias>
<alias base="AV">AVOR</alias>
<alias base="CRAIN">WXTR</alias>
<alias base="CFRZR">WXTZ</alias>
<alias base="CICEP">WXTP</alias>
<alias base="CSNOW">WXTS</alias>
<alias base="CWAT">CWTR</alias>
<alias base="BLI">LFT4</alias>
<alias base="CAPE">CAPE</alias>
<alias base="CIn">CINH</alias>
<alias base="CDCON">CCLD</alias>
<alias base="CFRZR">WXTZ</alias>
<alias base="CFRZR1hr">WXTZ01</alias>
<alias base="CFRZR3hr">WXTZ03</alias>
<alias base="CFRZR6hr">WXTZ06</alias>
<alias base="CFRZR9hr">WXTZ09</alias>
<alias base="CFRZR12hr">WXTZ12</alias>
<alias base="CFRZR18hr">WXTZ18</alias>
<alias base="CFRZR24hr">WXTZ24</alias>
<alias base="CFRZR48hr">WXTZ48</alias>
<alias base="CICEP">WXTP</alias>
<alias base="CICEP1hr">WXTP01</alias>
<alias base="CICEP3hr">WXTP03</alias>
<alias base="CICEP6hr">WXTP06</alias>
<alias base="CICEP9hr">WXTP09</alias>
<alias base="CICEP12hr">WXTP12</alias>
<alias base="CICEP18hr">WXTP18</alias>
<alias base="CICEP24hr">WXTP24</alias>
<alias base="CICEP48hr">WXTP48</alias>
<alias base="CIn">CINH</alias>
<alias base="CLWMR">CLWMR</alias>
<alias base="CP">ACPCP</alias>
<alias base="CP1hr">C01M</alias>
<alias base="CP3hr">C03M</alias>
<alias base="CP6hr">C06M</alias>
<alias base="CP9hr">C09M</alias>
<alias base="CP12hr">C12M</alias>
<alias base="CPRAT">C12M</alias>
<alias base="CP18hr">C18M</alias>
<alias base="CP24hr">C24M</alias>
<alias base="CP48hr">C48M</alias>
<alias base="CPOFP">POPZ</alias>
<alias base="CPOZP">POPF</alias>
<alias base="CPRAT1hr">C01M</alias>
<alias base="CPRAT3hr">C03M</alias>
<alias base="CPRAT6hr">C06M</alias>
<alias base="CPRAT9hr">C09M</alias>
<alias base="CPRAT12hr">C12M</alias>
<alias base="CPRAT18hr">C18M</alias>
<alias base="CPRAT24hr">C24M</alias>
<alias base="CPRAT48hr">C48M</alias>
<alias base="CRAIN">WXTR</alias>
<alias base="CRAIN1hr">WXTR01</alias>
<alias base="CRAIN3hr">WXTR03</alias>
<alias base="CRAIN6hr">WXTR06</alias>
<alias base="CRAIN9hr">WXTR09</alias>
<alias base="CRAIN12hr">WXTR12</alias>
<alias base="CRAIN18hr">WXTR18</alias>
<alias base="CRAIN24hr">WXTR24</alias>
<alias base="CRAIN48hr">WXTR48</alias>
<alias base="CSNOW">WXTS</alias>
<alias base="CSNOW1hr">WXTS01</alias>
<alias base="CSNOW3hr">WXTS03</alias>
<alias base="CSNOW6hr">WXTS06</alias>
<alias base="CSNOW9hr">WXTS09</alias>
<alias base="CSNOW12hr">WXTS12</alias>
<alias base="CSNOW18hr">WXTS18</alias>
<alias base="CSNOW24hr">WXTS24</alias>
<alias base="CSNOW48hr">WXTS48</alias>
<alias base="CWAT">CWTR</alias>
<alias base="CWORK">CWRK</alias>
<alias base="CWORK1hr">CWRK01</alias>
<alias base="CWORK3hr">CWRK03</alias>
<alias base="CWORK6hr">CWRK06</alias>
<alias base="CWORK9hr">CWRK09</alias>
<alias base="CWORK12hr">CWRK12</alias>
<alias base="CWORK18hr">CWRK18</alias>
<alias base="CWORK24hr">CWRK24</alias>
<alias base="CWORK48hr">CWRK48</alias>
<alias base="DIRPW">DRCTPW</alias>
<alias base="DIRSW">DRCTSW</alias>
<alias base="DLWRF">LWRD</alias>
<alias base="DLWRF1hr">LWRD01</alias>
<alias base="DLWRF3hr">LWRD03</alias>
<alias base="DLWRF6hr">LWRD06</alias>
<alias base="DLWRF9hr">LWRD09</alias>
<alias base="DLWRF12hr">LWRD12</alias>
<alias base="DLWRF18hr">LWRD18</alias>
<alias base="DLWRF24hr">LWRD24</alias>
<alias base="DLWRF48hr">LWRD48</alias>
<alias base="DpT">DWPK</alias>
<alias base="DpD">DPDK</alias>
<alias base="WVDIR">DRCTWW</alias>
<alias base="SWDIR">DRCTSW</alias>
<alias base="DSWRF">SWRD</alias>
<alias base="DSWRF1hr">SWRD01</alias>
<alias base="DSWRF3hr">SWRD03</alias>
<alias base="DSWRF6hr">SWRD06</alias>
<alias base="DSWRF9hr">SWRD09</alias>
<alias base="DSWRF12hr">SWRD12</alias>
<alias base="DSWRF18hr">SWRD18</alias>
<alias base="DSWRF24hr">SWRD24</alias>
<alias base="DSWRF48hr">SWRD48</alias>
<alias base="EMSP">EMSL</alias>
<alias base="EPT">THTE</alias>
<alias base="EVP">EVAP</alias>
<alias base="GH">HGHT</alias>
<alias base="FLDCP">FLDCP</alias>
<alias base="GeH">DIST</alias>
<alias base="HIdx">HEAT</alias>
<alias base="GFLUX">GHFX</alias>
<alias base="GFLUX1hr">GHFX01</alias>
<alias base="GFLUX3hr">GHFX03</alias>
<alias base="GFLUX6hr">GHFX06</alias>
<alias base="GFLUX9hr">GHFX09</alias>
<alias base="GFLUX12hr">GHFX12</alias>
<alias base="GFLUX18hr">GHFX18</alias>
<alias base="GFLUX24hr">GHFX24</alias>
<alias base="GFLUX48hr">GHFX48</alias>
<alias base="GH">HGHT</alias>
<alias base="GHa">HGHTA</alias>
<alias base="HCDC">CLDH</alias>
<alias base="Heli">HLCY</alias>
<alias base="HIdx">HEAT</alias>
<alias base="HINDEX">HINDEX</alias>
<alias base="HPBL">ZPBL</alias>
<alias base="ICAHT">ICAHT</alias>
<alias base="ICEC">ICEC</alias>
<alias base="ICETK">ICET</alias>
<alias base="MIXR">MIXR</alias>
<alias base="LAND">LAND</alias>
<alias base="LAPR">LAPS</alias>
<alias base="LCDC">CLDL</alias>
<alias base="LgSP">NCPCP</alias>
<alias base="LgSP1hr">S01M</alias>
<alias base="LgSP3hr">S03M</alias>
<alias base="LgSP6hr">S06M</alias>
<alias base="LgSP9hr">S09M</alias>
<alias base="LgSP12hr">S12M</alias>
<alias base="LgSP18hr">S18M</alias>
<alias base="LgSP24hr">S24M</alias>
<alias base="LgSP48hr">S48M</alias>
<alias base="LHF">FXLH</alias>
<alias base="MnT">TMNK</alias>
<alias base="WVPER">PERDWW</alias>
<alias base="SWPER">PERDSW</alias>
<alias base="LHF1hr">FXLH01</alias>
<alias base="LHF3hr">FXLH03</alias>
<alias base="LHF6hr">FXLH06</alias>
<alias base="LHF9hr">FXLH09</alias>
<alias base="LHF12hr">FXLH12</alias>
<alias base="LHF18hr">FXLH18</alias>
<alias base="LHF24hr">FXLH24</alias>
<alias base="LHF48hr">FXLH48</alias>
<alias base="MCDC">CLDM</alias>
<alias base="MxT">TMXK</alias>
<alias base="PLI">LIFT</alias>
<alias base="P">PRES</alias>
<alias base="PMSL">PMSL</alias>
<alias base="EMSP">EMSL</alias>
<alias base="MIXR">MIXR</alias>
<alias base="MMSP">MMSL</alias>
<alias base="PoT">THTA</alias>
<alias base="PR">PCPR</alias>
<alias base="PRESA">PRESA</alias>
<alias base="DIRPW">DRCTPW</alias>
<alias base="MnT">TMNK</alias>
<alias base="MnT1hr">TMNK01</alias>
<alias base="MnT3hr">TMNK03</alias>
<alias base="MnT6hr">TMNK06</alias>
<alias base="MnT9hr">TMNK09</alias>
<alias base="MnT12hr">TMNK12</alias>
<alias base="MnT18hr">TMNK18</alias>
<alias base="MnT24hr">TMNK24</alias>
<alias base="MnT48hr">TMNK48</alias>
<alias base="MxT">TMXK</alias>
<alias base="MxT1hr">TMXK01</alias>
<alias base="MxT3hr">TMXK03</alias>
<alias base="MxT6hr">TMXK06</alias>
<alias base="MxT9hr">TMXK09</alias>
<alias base="MxT12hr">TMXK12</alias>
<alias base="MxT18hr">TMXK18</alias>
<alias base="MxT24hr">TMXK24</alias>
<alias base="MxT48hr">TMXK48</alias>
<alias base="O3MR">OZMR</alias>
<alias base="P">PRES</alias>
<alias base="P1hr">PRES01</alias>
<alias base="P3hr">PRES03</alias>
<alias base="P6hr">PRES06</alias>
<alias base="P9hr">PRES09</alias>
<alias base="P12hr">PRES12</alias>
<alias base="P18hr">PRES18</alias>
<alias base="P24hr">PRES24</alias>
<alias base="P48hr">PRES48</alias>
<alias base="PERPW">PERDPW</alias>
<alias base="CPOFP">POPZ</alias>
<alias base="CPOZP">POPF</alias>
<alias base="PVORT">PVOR</alias>
<alias base="PERSW">PERDSW</alias>
<alias base="PEVAP">PEVAP</alias>
<alias base="PEVPR">PEVP</alias>
<alias base="PLI">LIFT</alias>
<alias base="PLPL">PLPL</alias>
<alias base="PMSL">PMSL</alias>
<alias base="PoT">THTA</alias>
<alias base="PR">PRATE</alias>
<alias base="PR1hr">PR01</alias>
<alias base="PR3hr">PR03</alias>
<alias base="PR6hr">PR06</alias>
<alias base="PR9hr">PR09</alias>
<alias base="PR12hr">PR12</alias>
<alias base="PR18hr">PR18</alias>
<alias base="PR24hr">PR24</alias>
<alias base="PR48hr">PR48</alias>
<alias base="PRESA">PRESA</alias>
<alias base="PVORT">PVOR</alias>
<alias base="PVV">OMEG</alias>
<alias base="PW">PWTR</alias>
<alias base="RH">RELH</alias>
<alias base="SATD">SATD</alias>
<alias base="DIRSW">DRCTSW</alias>
<alias base="PERSW">PERDSW</alias>
<alias base="SWELL">HGHTSW</alias>
<alias base="WVHGT">HGHTWW</alias>
<alias base="SCP">SCVR</alias>
<alias base="SnD">SNDM</alias>
<alias base="SH">SPFH</alias>
<alias base="SHF">FXSH</alias>
<alias base="TSOIL">SLTK</alias>
<alias base="Heli">HLCY</alias>
<alias base="SHF1hr">FXSH01</alias>
<alias base="SHF3hr">FXSH03</alias>
<alias base="SHF6hr">FXSH06</alias>
<alias base="SHF9hr">FXSH09</alias>
<alias base="SHF12hr">FXSH12</alias>
<alias base="SHF18hr">FXSH18</alias>
<alias base="SHF24hr">FXSH24</alias>
<alias base="SHF48hr">FXSH48</alias>
<alias base="SLI">LIFT</alias>
<alias base="SnD">SNDM</alias>
<alias base="SOILW">SOIM</alias>
<alias base="SUNSD">SUNSD</alias>
<alias base="SWDIR">DRCTSW</alias>
<alias base="SWELL">HGHTSW</alias>
<alias base="SWPER">PERDSW</alias>
<alias base="T">TMPK</alias>
<alias base="T1hr">TMPK01</alias>
<alias base="T3hr">TMPK03</alias>
<alias base="T6hr">TMPK06</alias>
<alias base="T9hr">TMPK09</alias>
<alias base="T12hr">TMPK12</alias>
<alias base="T18hr">TMPK18</alias>
<alias base="T24hr">TMPK24</alias>
<alias base="T48hr">TMPK48</alias>
<alias base="Ta">TMPKA</alias>
<alias base="ThP">TSTM</alias>
<alias base="TCC">CLD</alias>
<alias base="TCC1hr">CLD01</alias>
<alias base="TCC3hr">CLD03</alias>
<alias base="TCC6hr">CLD06</alias>
<alias base="TCC9hr">CLD09</alias>
<alias base="TCC12hr">CLD12</alias>
<alias base="TCC18hr">CLD18</alias>
<alias base="TCC24hr">CLD24</alias>
<alias base="TCC48hr">CLD48</alias>
<alias base="ThP">TSTM</alias>
<alias base="TOZNE">TOZO</alias>
<alias base="TP">APCP</alias>
<alias base="TP1hr">P01M</alias>
<alias base="TP3hr">P03M</alias>
<alias base="TP6hr">P06M</alias>
@ -98,19 +269,89 @@
<alias base="TP18hr">P18M</alias>
<alias base="TP24hr">P24M</alias>
<alias base="TP48hr">P48M</alias>
<alias base="TSOIL">SLTK</alias>
<alias base="U-GWD">UGWD</alias>
<alias base="U-GWD1hr">UGWD01</alias>
<alias base="U-GWD3hr">UGWD03</alias>
<alias base="U-GWD6hr">UGWD06</alias>
<alias base="U-GWD9hr">UGWD09</alias>
<alias base="U-GWD12hr">UGWD12</alias>
<alias base="U-GWD18hr">UGWD18</alias>
<alias base="U-GWD24hr">UGWD24</alias>
<alias base="U-GWD48hr">UGWD48</alias>
<alias base="UFLX">URELFX</alias>
<alias base="UFLX1hr">URELFX01</alias>
<alias base="UFLX3hr">URELFX03</alias>
<alias base="UFLX6hr">URELFX06</alias>
<alias base="UFLX9hr">URELFX09</alias>
<alias base="UFLX12hr">URELFX12</alias>
<alias base="UFLX18hr">URELFX18</alias>
<alias base="UFLX24hr">URELFX24</alias>
<alias base="UFLX48hr">URELFX48</alias>
<alias base="ULWRF">LWRU</alias>
<alias base="ULWRF1hr">LWRU01</alias>
<alias base="ULWRF3hr">LWRU03</alias>
<alias base="ULWRF6hr">LWRU06</alias>
<alias base="ULWRF9hr">LWRU09</alias>
<alias base="ULWRF12hr">LWRU12</alias>
<alias base="ULWRF18hr">LWRU18</alias>
<alias base="ULWRF24hr">LWRU24</alias>
<alias base="ULWRF48hr">LWRU48</alias>
<alias base="USTM">USTRM</alias>
<alias base="VSTM">VSTRM</alias>
<alias base="USWRF">SWRU</alias>
<alias base="USWRF1hr">SWRU01</alias>
<alias base="USWRF3hr">SWRU03</alias>
<alias base="USWRF6hr">SWRU06</alias>
<alias base="USWRF9hr">SWRU09</alias>
<alias base="USWRF12hr">SWRU12</alias>
<alias base="USWRF18hr">SWRU18</alias>
<alias base="USWRF24hr">SWRU24</alias>
<alias base="USWRF48hr">SWRU48</alias>
<alias base="uW">UREL</alias>
<alias base="vW">VREL</alias>
<alias base="VAPP">VAPR</alias>
<alias base="VWSH">VWSH</alias>
<alias base="PVV">OMEG</alias>
<alias base="VFLX">VRELFX</alias>
<alias base="VFLX1hr">VRELFX01</alias>
<alias base="VFLX3hr">VRELFX03</alias>
<alias base="VFLX6hr">VRELFX06</alias>
<alias base="VFLX9hr">VRELFX09</alias>
<alias base="VFLX12hr">VRELFX12</alias>
<alias base="VFLX18hr">VRELFX18</alias>
<alias base="VFLX24hr">VRELFX24</alias>
<alias base="VFLX48hr">VRELFX48</alias>
<alias base="V-GWD">VGWD</alias>
<alias base="V-GWD1hr">VGWD01</alias>
<alias base="V-GWD3hr">VGWD03</alias>
<alias base="V-GWD6hr">VGWD06</alias>
<alias base="V-GWD9hr">VGWD09</alias>
<alias base="V-GWD12hr">VGWD12</alias>
<alias base="V-GWD18hr">VGWD18</alias>
<alias base="V-GWD24hr">VGWD24</alias>
<alias base="V-GWD48hr">VGWD48</alias>
<alias base="Vis">VSBY</alias>
<alias base="VPT">THTV</alias>
<alias base="VRATE">VRATE</alias>
<alias base="VSS">VWSH</alias>
<alias base="VTMP">TVRK</alias>
<alias base="WEASD">SWEM</alias>
<alias base="WMIXE">ENRG</alias>
<alias base="VWSH">VWSH</alias>
<alias base="WATR">WATR</alias>
<alias base="WATR1hr">WATR01</alias>
<alias base="WATR3hr">WATR03</alias>
<alias base="WATR6hr">WATR06</alias>
<alias base="WATR9hr">WATR09</alias>
<alias base="WATR12hr">WATR12</alias>
<alias base="WATR18hr">WATR18</alias>
<alias base="WATR24hr">WATR24</alias>
<alias base="WATR48hr">WATR48</alias>
<alias base="WD">DRCT</alias>
<alias base="WS">SPED</alias>
<alias base="WEASD">SWEM</alias>
<alias base="WGH">HGHT5</alias>
<alias base="WGS">GUST</alias>
<alias base="WILT">WILT</alias>
<alias base="WMIXE">ENRG</alias>
<alias base="WS">SPED</alias>
<alias base="WVDIR">DRCTWW</alias>
<alias base="WVHGT">HGHTWW</alias>
<alias base="WVPER">PERDWW</alias>
</aliasList>

View file

@ -17,7 +17,7 @@
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.viz.derivparam.python;
package com.raytheon.uf.common.python;
import jep.INumpyable;

View file

@ -12,6 +12,7 @@ REMOTE_SERVERS_TO_CHECK="dx1f dx3 dx4"
# Flags to control what data capure grabs, to enable flag must be YES, anything else will be considered off.
RUN_JSTACK="Y"
JSTACK_ITERATIONS="15"
RUN_JMAP="Y"
RUN_QPID_STAT="Y"
MOVE_ALL_HS_ERR_PID="Y"
@ -19,6 +20,7 @@ MOVE_ALL_HS_ERR_PID="Y"
GRAB_REMOTE_TOP="Y"
GRAB_REMOTE_VMSTAT="Y"
GRAB_CAVE_AND_ALERTVIZ_LOGS="Y"
GRAB_SCREENSHOT='Y'
EDEX_MODE="N"
FORCE="N"
TGZ_OUTPUT="Y"
@ -39,6 +41,9 @@ usage() {
echo -e "-g {grep string}\tdefault [$grepString]"
echo " The grep string used to find the processes"
echo
echo -e "-screen {y/n}\t\tdefault [$GRAB_SCREENSHOT]"
echo " Screen print the current workstation (local user must be running capture)"
echo
echo -e "-s {y/n}\t\tdefault [$RUN_JSTACK]"
echo " Run jstack to grab the thread stack information"
echo
@ -115,6 +120,18 @@ checkYes() {
fi
}
# runs import to grab screen shot of users desktop
grabScreenShot() {
if [ "$GRAB_SCREENSHOT" == "y" ]; then
echo "Capturing screen shot of desktop"
t1=`date "+%Y%m%d %H:%M:%S"`
echo "${t1}: Capturing screen shot of desktop" >> $processFile
import -window root -display :0.0 ${dataPath}/screenShot_0.png > ${dataPath}/screenShot_0.log 2>&1 &
import -window root -display :0.1 ${dataPath}/screenShot_1.png > ${dataPath}/screenShot_1.log 2>&1 &
import -window root -display :0.2 ${dataPath}/screenShot_2.png > ${dataPath}/screenShot_2.log 2>&1 &
fi
}
# runs ssh command to grab top on a remote server, requires auto login to be setup
grabRemoteTop() {
if [ "$GRAB_REMOTE_TOP" == "y" ]; then
@ -143,7 +160,6 @@ grabRemoteVmstat() {
fi
}
checkForProcsAsOtherUsers() {
if [ ! -z "$procs" ]; then
numMyProcs=`echo "$myProcs" | wc -l`
@ -213,39 +229,104 @@ reasonForCapture() {
echo $reason >> ${dataPath}/capture_reason.log
}
# runs jstack in background
# for a specified pid run jstack a specified number of times in a row
runJstack() {
local pid="$1"
shift 1
local options=$@
local prePath="${dataPath}/pid_${pid}_"
local t1=`date "+%Y%m%d %H:%M:%S"`
local cmd="/awips2/java/bin/jstack $options $pid"
echo "${t1}: Running command: ${cmd} >> ${prePath}jstack.log 2>&1 &" >> $processFile
if [ "$ACCUM" = "y" ]; then
echo >> ${prePath}jstack.log
echo >> ${prePath}jstack.log
echo "Running for $t1" >> ${prePath}jstack.log
local numIterations="$2"
local options="-l"
if [ "$FORCE" == "y" ]; then
options="${options} -F"
fi
$cmd >> ${prePath}jstack.log 2>&1 &
local cmd="/awips2/java/bin/jstack"
local count=1
local prePath="${dataPath}/pid_${pid}_"
local log=""
while [ "$count" -le "$numIterations" ]; do
t1=`date "+%Y%m%d %H:%M:%S"`
log="${prePath}jstack_${count}.log"
echo "${t1}: Running command: ${cmd} ${options} ${pid} >> ${log} 2>&1" >> $processFile
echo "Running for $t1" >> $log
${cmd} ${options} ${pid} >> ${log} 2>&1
if [[ "$?" != "0" && $FORCE != "y" ]]; then
t1=`date "+%Y%m%d %H:%M:%S"`
echo "${t1}: jstack for $pid failed to connect, rerunning with -F" >> $processFile
${cmd} ${options} -F ${pid} >> ${log} 2>&1
fi
let "count+=1"
done
}
# runs jmap in background
# Launchs a background process for each PID to pull jstacks
launchJstacks() {
# grab all jstacks
if [ "${RUN_JSTACK}" == "y" ]; then
if [ ! -z ${cavePid} ]; then
echo "Capturing thread stack for pid $cavePid"
else
echo "Capturing all process thread stacks"
fi
local count=0
while [ "$count" -lt "$numProcs" ]; do
runJstack ${pids[$count]} ${JSTACK_ITERATIONS} &
let "count+=1"
done
fi
}
# runs jmap in background, if it fails will run again with -F
runJmap() {
local pid=$1
shift 1
local options=$@
local prePath="${dataPath}/pid_${pid}_"
local options=""
if [ "$FORCE" == "y" ]; then
options="${options} -F"
fi
local t1=`date "+%Y%m%d %H:%M:%S"`
local log="${prePath}dump.log"
local dumpPath="${prePath}dump"
if [ "$ACCUM" = "y" ]; then
# accum needs to change hprof by date
local t2=`date "+%Y%m%d_%H%M%S"`
local cmd="/awips2/java/bin/jmap -dump:format=b,file=${prePath}dump_${t2}.hprof $options $pid"
dumpPath="${dumpPath}_${t2}.hprof"
else
local cmd="/awips2/java/bin/jmap -dump:format=b,file=${prePath}dump.hprof $options $pid"
dumpPath="${dumpPath}.hprof"
fi
local cmd="/awips2/java/bin/jmap -dump:format=b,file=${dumpPath}"
echo "${t1}: Running command: $cmd $options $pid >> $log 2>&1 &" >> $processFile
$cmd $options $pid >> $log 2>&1 &
if [[ "$?" != "0" && $FORCE != "y" ]]; then
t1=`date "+%Y%m%d %H:%M:%S"`
echo "${t1}: jmap for $pid failed to connect, rerunning with -F" >> $processFile
$cmd $options -F $pid >> $log 2>&1 &
fi
}
# Launchs a background process for each PID to pull jmap
launchJmaps() {
# grab all jmaps
if [ "$RUN_JMAP" == "y" ]; then
if [ ! -z ${cavePid} ]; then
echo "Capturing process heap dump for pid $cavePid"
else
echo "Capturing all Heap Dumps"
fi
local count=0
while [ "$count" -lt "$numProcs" ]; do
runJmap ${pids[$count]} &
let "count+=1"
done
fi
echo "${t1}: Running command: $cmd >> ${prePath}dump.log 2>&1 &" >> $processFile
$cmd >> ${prePath}dump.log 2>&1 &
}
# runs qpid-stat
@ -253,14 +334,25 @@ runQpidStat() {
local qpidHost=cp1f
local prePath="${dataPath}/"
local t1=`date "+%Y%m%d %H:%M:%S"`
local cmd="/awips2/python/bin/qpid-stat -q -Smsg -L100 ${qpidHost}"
echo "${t1}: Running command: $cmd >> ${prepath}qpid-stat.log 2>&1 &" >> $processFile
local cmd="/awips2/python/bin/qpid-stat -q -Smsg -L500 ${qpidHost}"
local log="${prepath}qpid-stat-queues.log"
echo "${t1}: Running command: $cmd >> $log 2>&1 &" >> $processFile
if [ "$ACCUM" = "y" ]; then
echo >> ${prePath}qpid-stat.log
echo >> ${prePath}qpid-stat.log
echo "Running for $t1" >> ${prePath}qpid-stat.log
echo >> $log
echo >> $log
echo "Running for $t1" >> $log
fi
$cmd >> ${prePath}qpid-stat.log 2>&1 &
$cmd >> $log 2>&1 &
log="${prepath}qpid-stat-sessions.log"
cmd="/awips2/python/bin/qpid-stat -s -Smsg -L500 ${qpidHost}"
echo "${t1}: Running command: $cmd >> $log 2>&1 &" >> $processFile
if [ "$ACCUM" = "y" ]; then
echo >> $log
echo >> $log
echo "Running for $t1" >> $log
fi
$cmd >> $log 2>&1 &
}
# runs versions.sh to grab version info
@ -291,6 +383,7 @@ while [ ! -z "$1" ]; do
-e) EDEX_MODE="Y"; edexProcs[$edexProcCount]="$1"; shift 1; let "edexProcCount+=1";;
-a) ACCUM="$1"; shift 1;;
-v) GRAB_REMOTE_VMSTAT="$1"; shift 1;;
-screen) GRAB_SCREENSHOT="$1"; shift 1;;
-h|*) usage;;
esac
done
@ -308,6 +401,7 @@ checkYes EDEX_MODE $EDEX_MODE
checkYes TGZ_OUTPUT $TGZ_OUTPUT
checkYes ACCCUM $ACCCUM
checkYes RUN_VERSIONS $RUN_VERSIONS
checkYes GRAB_SCREENSHOT $GRAB_SCREENSHOT
# if PID mode don't grab other hs_err_pids
if [ ! -z $cavePid ]; then
@ -383,7 +477,7 @@ if [ "$EDEX_MODE" == "y" ]; then
grepString="${grepString}) "
fi
procs=`ps -ef | grep -E "$grepString" | grep -v "grep"`
procs=`ps -ef | grep -E "$grepString" | grep -v "grep" | grep -v "cave.sh"`
if [ ! -z "$cavePid" ]; then
# limit cave procs to the requested PID
@ -399,11 +493,6 @@ echo "" >> $processFile
checkForProcsAsOtherUsers
# get reason for running capture
if [ "$reason" != "n" ]; then
reasonForCapture &
fi
if [ ! -z "${myProcs}" ]; then
t1=`date "+%Y%m%d %H:%M:%S"`
echo "Processes found for user $user, capturing data to $dataPath"
@ -424,38 +513,9 @@ if [ ! -z "${myProcs}" ]; then
done
IFS=$PREV_IFS
# doing each item in its own loop so we can grab all data for a given type at once
launchJstacks
# grab all jstacks
if [ "${RUN_JSTACK}" == "y" ]; then
if [ ! -z ${cavePid} ]; then
echo "Capturing thread stack for pid $cavePid"
else
echo "Capturing all process thread stacks"
fi
count=0
while [ "$count" -lt "$numProcs" ]; do
if [ "$FORCE" == "y" ]; then
runJstack ${pids[$count]} -l -F
else
runJstack ${pids[$count]} -l
fi
bPids[$count]=$!
let "count+=1"
done
count=0
while [ "$count" -lt "$numProcs" ]; do
wait ${bPids[$count]}
if [ "$?" != "0" ]; then
t1=`date "+%Y%m%d %H:%M:%S"`
echo "${t1}: jstack for ${pids[$count]} failed to connect, rerunning with -F" >> $processFile
runJstack ${pids[$count]} -l -F
fi
let "count+=1"
done
fi
launchJmaps
runQpidStat
@ -463,36 +523,6 @@ if [ ! -z "${myProcs}" ]; then
grabRemoteVmstat
# grab all jmaps
if [ "$RUN_JMAP" == "y" ]; then
if [ ! -z ${cavePid} ]; then
echo "Capturing process heap dump for pid $cavePid"
else
echo "Capturing all Heap Dumps"
fi
count=0
while [ "$count" -lt "$numProcs" ]; do
if [ "$FORCE" == "y" ]; then
runJmap ${pids[$count]} -F
else
runJmap ${pids[$count]}
fi
bPids[$count]=$!
let "count+=1"
done
count=0
while [ "$count" -lt "$numProcs" ]; do
wait ${bPids[$count]}
if [ "$?" != "0" ]; then
t1=`date "+%Y%m%d %H:%M:%S"`
echo "${t1}: jmap for ${pids[$count]} failed to connect, rerunning with -F" >> $processFile
runJmap ${pids[$count]} -F
fi
let "count+=1"
done
fi
else
t1=`date "+%Y%m%d %H:%M:%S"`
echo "*** NO processes found for user $user, capturing limited data to $dataPath"
@ -504,6 +534,14 @@ else
grabRemoteVmstat
fi
# grab screen shot, spawns background process for each screen
grabScreenShot
# get reason for running capture
if [ "$reason" != "n" ]; then
reasonForCapture &
fi
# move all hs_err_pid from user's home directory to capture directory
if [ "${MOVE_ALL_HS_ERR_PID}" == "y" ]; then
numErrFiles=`ls ${HOME}/hs_err_pid* 2> /dev/null | wc -l`

View file

@ -281,6 +281,7 @@ public class NcInventory {
// get the dao and the record class for this plugin and use them
// to create a DatabaseQuery.
//
CoreDao dao = PluginFactory.getInstance().getPluginDao(
inventoryDefn.getPluginName() );
String recordClassStr = PluginFactory.getInstance().getPluginRecordClassName(
@ -308,7 +309,6 @@ public class NcInventory {
List<?> queryResults = dao.queryByCriteria( dbQuery );
if( !queryResults.isEmpty() ) {
for( Object queryRslt : queryResults ) {
// if there is only one parameter then the results will be an
// Object, otherwise it will be an array of Objects.
@ -327,7 +327,12 @@ public class NcInventory {
Object rsltArray[] = (Object[])queryRslt;
for( int p=0 ; p<distinctFields.size() ; p++ ) {
rsltMap.put( distinctFields.get(p), rsltArray[p] );
if (rsltArray[p] != null) {
rsltMap.put( distinctFields.get(p), rsltArray[p] );
}
else {
rsltMap.put( distinctFields.get(p), "" );
}
}
}

View file

@ -26,6 +26,7 @@ import com.raytheon.uf.common.dataplugin.PluginException;
import com.raytheon.uf.common.localization.IPathManager;
import com.raytheon.uf.common.localization.LocalizationContext;
import com.raytheon.uf.common.localization.LocalizationContext.LocalizationLevel;
import com.raytheon.uf.common.localization.LocalizationFile;
import com.raytheon.uf.common.localization.PathManagerFactory;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.edex.decodertools.time.TimeTools;
@ -40,6 +41,8 @@ import com.raytheon.uf.edex.decodertools.time.TimeTools;
*
* This code has been developed by the SIB for use in the AWIPS2 system.
*
* 01/19/13 # Greg hull Use getStaticLocalizationFile to get mosaicInfo file
*
* @author L. Lin
* @version 1.0
*/
@ -50,33 +53,32 @@ public class MosaicDecoder extends AbstractDecoder {
private String traceId = "";
public static final String MOSAIC_INFO_FILE = "ncep"+File.separator+"dictionary"+
File.separator+"mosaicInfo.txt";
private MosaicInfoDict infoDict;
private byte[] headerBlock = new byte[120];
public MosaicDecoder() throws DecoderException {
final String NCEP_DIR = "ncep";
final String dictDir = "dictionary";
IPathManager manager = PathManagerFactory.getPathManager();
LocalizationContext baseContext = null;
File baseDir = null;
baseContext = manager.getContext(EDEX_STATIC, LocalizationLevel.BASE);
baseContext.setContextName(NCEP_DIR);
baseDir = manager.getFile(baseContext, "");
infoDict = MosaicInfoDict.getInstance(baseDir + File.separator
+ dictDir + File.separator);
LocalizationFile lf = manager.getStaticLocalizationFile( MOSAIC_INFO_FILE );
if( lf == null ) {
theLogger.error("Error finding "+ MOSAIC_INFO_FILE );
}
else {
infoDict = MosaicInfoDict.getInstance( lf.getFile() );
}
}
public PluginDataObject[] decode(byte[] messageData, Headers headers)
throws DecoderException {
String prodName = null;
if (headers != null) {
String prodName = null;
if ( headers != null) {
/*
* traceId equals to the file name
*/
@ -109,6 +111,7 @@ public class MosaicDecoder extends AbstractDecoder {
if (prodName == null) {
prodName = "unknown";
}
MosaicInfo info = infoDict.getInfo(prodCode);
if (info == null) {
theLogger.error(traceId + "-Unknown mosaic product code: "

View file

@ -16,6 +16,8 @@ import java.util.Map;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* 09/2009 143 L. Lin Initial coding
* 01/19/13 # Greg hull pass in File instead of path
*
* </pre>
*
* This code has been developed by the SIB for use in the AWIPS2 system.
@ -23,25 +25,22 @@ import java.util.Map;
* @version 1.0
*/
public class MosaicInfoDict implements Iterable<MosaicInfo> {
public static final String MOSAIC_INFO_FILE = "mosaicInfo.txt";
public class MosaicInfoDict implements Iterable<MosaicInfo> {
private static MosaicInfoDict instance = null;
private Map<Integer, MosaicInfo> dict;
private MosaicInfoDict(String dir) {
private MosaicInfoDict(File midf) {
dict = new LinkedHashMap<Integer, MosaicInfo>();
// file points to $AWIPS/edex/data/utility/common_static/base/mosaicInfo.txt
File file = new File(dir + File.separator + MOSAIC_INFO_FILE);
try {
//read the mosaicInfo.txt to pointer in
BufferedReader in = new BufferedReader(new FileReader(file));
BufferedReader in = new BufferedReader(new FileReader(midf));
String s = in.readLine();
//read in line by line and put into mosaic information dictionary
while (s != null) {
if ((s.length() > 0) && (s.charAt(0) != '#')) {
@ -69,7 +68,7 @@ public class MosaicInfoDict implements Iterable<MosaicInfo> {
* @return
*/
public MosaicInfo getInfo(int productCode) {
return dict.get(productCode);
return dict.get(productCode);
}
/*
@ -82,9 +81,9 @@ public class MosaicInfoDict implements Iterable<MosaicInfo> {
return Collections.unmodifiableCollection(dict.values()).iterator();
}
public static synchronized MosaicInfoDict getInstance(String dir) {
public static synchronized MosaicInfoDict getInstance(File midf ) {
if (instance == null) {
instance = new MosaicInfoDict(dir);
instance = new MosaicInfoDict(midf);
}
return instance;
@ -100,6 +99,7 @@ public class MosaicInfoDict implements Iterable<MosaicInfo> {
}
public static void main(String[] args) {
MosaicInfoDict dict = MosaicInfoDict.getInstance(args[0]);
File f = new File( args[0]);
MosaicInfoDict dict = MosaicInfoDict.getInstance( f );
}
}

View file

@ -4,17 +4,13 @@ import java.util.HashMap;
import java.util.Map;
import java.util.regex.Pattern;
// TODO this logic could probably be included in the ncgribFileNameProcessor rather than in a singleton
public class GridLookupFileName {
/** The singleton instance of GridLookupFileName **/
private static GridLookupFileName instance;
// TODO modelname needs to be infered from filename since the file name
// processing happens before decode.
private String[] modelNames = { "cmce", "gefs", "gww", "naefsBC",
"naefsUS", "naefsAK", "sref" };
// TODO this should be read from a configureable xml file, not hardcoded
private String[] template = {
"cmc_gep.*|cmce;cmc_gec.*|cmcec;cmc_geavg.*|cmceMean;cmc_gespr.*|cmceSpread",
"gec00.*bc.*|gefscBC;gec00.*anl|gefscAnal;gec00.*[0-9]|gefsc;gep.*anl|gefsAnal;gep.*bc.*|gefsBC;geavg.*bc.*|gefsMeanBC;gespr.*bc.*|gefsSpreadBC;gespr.*|gefsSpread",
@ -40,9 +36,6 @@ public class GridLookupFileName {
}
private void initModels() {
// TODO instead of just building this map, all parsing should be
// happening here and regexes should be built into Pattern object so
// that we aren'y constantly reprocessing regexes
for (int i = 0; i < modelNames.length; i++) {
models.put(modelNames[i].toUpperCase(), template[i]);
}
@ -51,24 +44,18 @@ public class GridLookupFileName {
public String getModelName(String filename) {
String modelname = null;
// this was commented out because file name processing should happen
// before decode so there is no pre-existing model name.
// if (model.equalsIgnoreCase("gww") && gridId.equalsIgnoreCase("229"))
// {
// return modelname;
// }
//
// String template = models.get(model.toUpperCase());
// since we don't know the model name, we must process all templates.
for (String template : this.template) {
// TODO do not split this for every filename, split in init
String[] tokens = template.split(";");
// System.out.println ( " CMC ensemble " + "!!!\n");
for (String token : tokens) {
// TODO do not split this for every filename, split in init
String[] alias = token.split("\\|");
// TODO compile and reuse patterns.
if (Pattern.matches(alias[0], filename)) {
modelname = alias[1];
@ -81,9 +68,6 @@ public class GridLookupFileName {
break;
}
}
if (modelname != null) {
break;
}
}
return modelname;
}

View file

@ -27,11 +27,9 @@ import org.apache.camel.Processor;
/**
*
* Based off a file name for a grib file, determine the modelName, secondaryId,
* and ensembleId. It is ok not to set any headers because the decoder can find
* the modelName and ensembleId. Those fields should only be set if the filename
* has information beyond what is in the actual grib file.The grib decoder will
* not set a secondary id so if it isn't set here it will be null.
* Processor for ncep grib files, this processor has lots of hard coded
* assumptions about file naming that need to be more generic based off ncep
* file names.
*
* <pre>
*
@ -48,25 +46,20 @@ import org.apache.camel.Processor;
*/
public class NcgribFileNameProcessor implements Processor {
// TODO does this actually match all ensemble patterns?
// grab all known ensemble ids
private static final Pattern ENSEMBLE_ID_PATTERN = Pattern
.compile("^(p|n|ctl)\\d{0,2}$");
// TODO merge this pattern in with the patterns in GridLookupFileName
// anything that ends in nest is assumed to be a nested grid identifier
private static final Pattern FIREWXNEST_ID_PATTERN = Pattern
.compile("^firewxnest$");
// TODO merge this pattern in with the patterns in GridLookupFileName
// anything that ends in nest is assumed to be a nested grid identifier
private static final Pattern NEST_ID_PATTERN = Pattern.compile("^.*nest$");
// TODO merge this pattern in with the patterns in GridLookupFileName
// SREF gets special handling, does this apply to other models?
private static final Pattern SREF_PATTERN = Pattern.compile("^sref_.*$");
// TODO merge this pattern in with the patterns in GridLookupFileName
// This is the least generic pattern ever, are there any constraints on
// event names, who knows?
private static final Pattern HURRICANE_PATTERN = Pattern
@ -108,13 +101,14 @@ public class NcgribFileNameProcessor implements Processor {
}
}
}
datasetid = GridLookupFileName.getInstance().getModelName(flName);
// datasetid = GridLookupFileName.getInstance().getModelName(flName);
if (datasetid != null) {
exchange.getIn().setHeader("datasetid", datasetid);
}
else {
datasetid = GridLookupFileName.getInstance().getModelName(flName);
}
if (secondaryid == null) {
// TODO does everything really need secondaryid or should this only
// be set for events?
secondaryid = nameTokens[0];
}
exchange.getIn().setHeader("secondaryid", secondaryid);

View file

@ -101,7 +101,7 @@ DisposeListener, IPartListener{
private static NsharpConstants.SPCGraph leftGraph = NsharpConstants.SPCGraph.EBS;
private static NsharpConstants.SPCGraph rightGraph = NsharpConstants.SPCGraph.STP;
private boolean spcGpCreated = false;
public static NsharpPaletteWindow getInstance() {
public static NsharpPaletteWindow getInstance() {
if( VizPerspectiveListener.getCurrentPerspectiveManager()!= null){
if(VizPerspectiveListener.getCurrentPerspectiveManager().getPerspectiveId().equals(D2D5Pane.ID_PERSPECTIVE))
return d2dInstance;
@ -279,7 +279,7 @@ DisposeListener, IPartListener{
if(rsc!= null && rsc.getSpcGraphsPaneRsc()!=null) {
rsc.getSpcGraphsPaneRsc().setGraphs(leftGraph, rightGraph);
}
}
public void setAndOpenMb(String msg) {
if (mb != null) {
@ -312,12 +312,12 @@ DisposeListener, IPartListener{
NsharpConfigStore configStore = configMgr.retrieveNsharpConfigStoreFromFs();
NsharpGraphProperty graphConfigProperty = configStore.getGraphProperty();
paneConfigurationName = graphConfigProperty.getPaneConfigurationName();
try {
NsharpGridInventory.getInstance().initInventory(false);
/*try {
// NsharpGridInventory.getInstance().initInventory(false);
} catch (VizException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}*/
}
@ -1048,7 +1048,7 @@ DisposeListener, IPartListener{
}
}
} );
if(paneConfigurationName.equals(NsharpConstants.PANE_SPCWS_CFG_STR))
createSPCGp();
@ -1082,7 +1082,7 @@ DisposeListener, IPartListener{
}
else{
effBulkShearBtn.setEnabled( false );
}
}
effBulkShearBtn.addListener( SWT.MouseUp, new Listener() {
public void handleEvent(Event event) {
if(leftGraph != NsharpConstants.SPCGraph.EBS && rightGraph != NsharpConstants.SPCGraph.EBS){

View file

@ -4,6 +4,8 @@ Bundle-Name: Gempak Plug-in
Bundle-SymbolicName: gov.noaa.nws.ncep.viz.gempak;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: gov.noaa.nws.ncep.viz.gempak.Activator
Eclipse-BuddyPolicy: registered, ext, global
Eclipse-RegisterBuddy: com.raytheon.uf.common.serialization
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
com.raytheon.viz.core;bundle-version="1.12.1142",
@ -13,6 +15,8 @@ Require-Bundle: org.eclipse.ui,
com.raytheon.viz.alerts,
com.raytheon.uf.common.dataplugin.grid;bundle-version="1.0.0",
com.raytheon.uf.common.gridcoverage;bundle-version="1.0.0",
com.raytheon.uf.common.parameter;bundle-version="1.0.0",
com.raytheon.uf.common.dataplugin.level;bundle-version="1.12.1174",
com.sun.jna,
org.geotools;bundle-version="2.6.4",
org.apache.log4j;bundle-version="1.0.0"
@ -21,6 +25,10 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Export-Package: gov.noaa.nws.ncep.viz.gempak,
gov.noaa.nws.ncep.viz.gempak.grid.jna,
gov.noaa.nws.ncep.viz.gempak.grid.inv,
gov.noaa.nws.ncep.viz.gempak.grid.mapper,
gov.noaa.nws.ncep.viz.gempak.grid.units,
gov.noaa.nws.ncep.viz.gempak.util
Import-Package: com.raytheon.uf.common.derivparam.tree,
gov.noaa.nws.ncep.edex.common.ncinventory
gov.noaa.nws.ncep.edex.common.ncinventory,
gov.noaa.nws.ncep.common.log.logger,
com.raytheon.uf.common.serialization

View file

@ -0,0 +1,4 @@
gov.noaa.nws.ncep.viz.gempak.grid.units.GempakGridParmInfo
gov.noaa.nws.ncep.viz.gempak.grid.units.GempakGridParmInfoSet
gov.noaa.nws.ncep.viz.gempak.grid.units.GempakGridVcrdInfo
gov.noaa.nws.ncep.viz.gempak.grid.units.GempakGridVcrdInfoSet

View file

@ -98,7 +98,7 @@
</vcordinfo>
<vcordinfo>
<name>Pressure difference layer</name>
<units>hPa</units>
<units>Pa</units>
<gnam>PDLY</gnam>
<scale>-2</scale>
</vcordinfo>

View file

@ -0,0 +1,20 @@
package gov.noaa.nws.ncep.viz.gempak.grid.mapper;
import com.raytheon.uf.common.dataplugin.grid.mapping.DatasetIdMapper;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMapper;
import com.raytheon.uf.common.parameter.mapping.ParameterMapper;
public class GridMapper {
public GridMapper () {
}
public static void GridMapperInit () {
initlize ();
}
private static void initlize () {
DatasetIdMapper.getInstance();
LevelMapper.getInstance();
ParameterMapper.getInstance();
}
}

View file

@ -0,0 +1,55 @@
package gov.noaa.nws.ncep.viz.gempak.grid.units;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import com.raytheon.uf.common.serialization.ISerializableObject;
@XmlAccessorType(XmlAccessType.NONE)
public class GempakGridParmInfo implements ISerializableObject{
@XmlElement
private String name;
@XmlElement
private String units;
@XmlElement
private String gnam;
@XmlElement
private int scale;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUnits() {
return units;
}
public void setUnits(String units) {
this.units = units;
}
public String getGnam() {
return gnam;
}
public void setGnam(String gnam) {
this.gnam = gnam;
}
public int getScale() {
return scale;
}
public void setScale(int scale) {
this.scale = scale;
}
}

View file

@ -0,0 +1,117 @@
package gov.noaa.nws.ncep.viz.gempak.grid.units;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import com.raytheon.uf.common.localization.FileUpdatedMessage;
import com.raytheon.uf.common.localization.ILocalizationFileObserver;
import com.raytheon.uf.common.localization.IPathManager;
import com.raytheon.uf.common.localization.LocalizationContext;
import com.raytheon.uf.common.localization.LocalizationFile;
import com.raytheon.uf.common.localization.PathManagerFactory;
import com.raytheon.uf.common.localization.FileUpdatedMessage.FileChangeType;
import com.raytheon.uf.common.serialization.SerializationUtil;
import gov.noaa.nws.ncep.common.log.logger.NcepLogger;
import gov.noaa.nws.ncep.common.log.logger.NcepLoggerManager;
import gov.noaa.nws.ncep.viz.localization.NcPathManager;
public class GempakGridParmInfoLookup implements ILocalizationFileObserver {
public static final String GRID_GEMPAK_PARM_FILE = "ncep"+File.separator +
"GempakGridUnits" + File.separator +
"gempakGridParmeterUnits.xml";
/** The logger */
private static NcepLogger logger = NcepLoggerManager.getNcepLogger(GempakGridParmInfoLookup.class);
/** The singleton instance of GridLookupFileName **/
private static GempakGridParmInfoLookup instance;
private final Map<String, GempakGridParmInfo> parmInfo;
public static GempakGridParmInfoLookup getInstance () {
if (instance == null) {
instance = new GempakGridParmInfoLookup ();
}
return instance;
}
private GempakGridParmInfoLookup () {
parmInfo = new HashMap <String,GempakGridParmInfo>();
try {
initParmInfo ();
}catch (IOException e) {
logger.error("Unable to initialize gempak parameter information list!", e);
}
}
private void initParmInfo () throws IOException {
// logger.info("Initial Gempak Parameter information===");
File gempakParmInfo =
NcPathManager.getInstance().getStaticFile(GRID_GEMPAK_PARM_FILE);
GempakGridParmInfoSet parmInfoList = null;
try {
if ( gempakParmInfo.exists()) {
parmInfoList = (GempakGridParmInfoSet) SerializationUtil
.jaxbUnmarshalFromXmlFile(gempakParmInfo.getPath());
} else {
ArrayList<GempakGridParmInfo> emptyList = new ArrayList<GempakGridParmInfo>();
parmInfoList = new GempakGridParmInfoSet();
parmInfoList.setParmeterinfo(emptyList);
}
for (GempakGridParmInfo parm : parmInfoList.getParmeterinfo()) {
parmInfo.put(parm.getGnam(), parm);
}
} catch (Exception e) {
throw new IOException ("Unable to unmarshal ncep gempak parm info file");
}
}
public String getParmUnit ( String parm ) {
String units = null;
GempakGridParmInfo pInfo = parmInfo.get(parm);
if ( pInfo != null ) {
units = pInfo.getUnits();
}
return units;
}
public int getParmScale ( String parm ) {
int scale = 0;
GempakGridParmInfo pInfo = parmInfo.get(parm);
if ( pInfo != null ) {
scale = pInfo.getScale();
}
return scale;
}
public void display () {
int cnt = 1;
logger.info ("Size of parm table:" + parmInfo.size());
for (GempakGridParmInfo parm: parmInfo.values() ) {
logger.info("No." + cnt + " name:" + parm.getName() + " gname:" + parm.getGnam() + " units:" + parm.getUnits() + " scale:" + parm.getScale());
cnt ++;
}
}
@Override
public void fileUpdated( FileUpdatedMessage fumsg) {
String fName = fumsg.getFileName();
LocalizationFile lFile;
logger.info("======fileUpdated:" + fumsg.getChangeType());
// if the file had been deleted
if( fumsg.getChangeType() == FileChangeType.DELETED ) {
}
else {
}
}
}

View file

@ -0,0 +1,29 @@
package gov.noaa.nws.ncep.viz.gempak.grid.units;
import java.util.ArrayList;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElements;
import javax.xml.bind.annotation.XmlRootElement;
import com.raytheon.uf.common.serialization.ISerializableObject;
@XmlRootElement(name = "gempakGridParmUnitSet")
@XmlAccessorType(XmlAccessType.NONE)
public class GempakGridParmInfoSet implements ISerializableObject{
/**
* List of parameter for/from the XML.
*/
@XmlElements( { @XmlElement(name = "parmeterinfo", type = GempakGridParmInfo.class) })
private ArrayList<GempakGridParmInfo> parmeterinfo;
public ArrayList<GempakGridParmInfo> getParmeterinfo() {
return parmeterinfo;
}
public void setParmeterinfo(ArrayList<GempakGridParmInfo> parmeterinfo) {
this.parmeterinfo = parmeterinfo;
}
}

View file

@ -0,0 +1,55 @@
package gov.noaa.nws.ncep.viz.gempak.grid.units;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import com.raytheon.uf.common.serialization.ISerializableObject;
@XmlAccessorType(XmlAccessType.NONE)
public class GempakGridVcrdInfo implements ISerializableObject{
@XmlElement
private String name;
@XmlElement
private String units;
@XmlElement
private String gnam;
@XmlElement
private int scale;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUnits() {
return units;
}
public void setUnits(String units) {
this.units = units;
}
public String getGnam() {
return gnam;
}
public void setGnam(String gnam) {
this.gnam = gnam;
}
public int getScale() {
return scale;
}
public void setScale(int scale) {
this.scale = scale;
}
}

View file

@ -0,0 +1,95 @@
package gov.noaa.nws.ncep.viz.gempak.grid.units;
import gov.noaa.nws.ncep.common.log.logger.NcepLogger;
import gov.noaa.nws.ncep.common.log.logger.NcepLoggerManager;
import gov.noaa.nws.ncep.viz.localization.NcPathManager;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import com.raytheon.uf.common.serialization.SerializationUtil;
public class GempakGridVcrdInfoLookup {
public static final String GRID_GEMPAK_VCORD_FILE = "ncep"+File.separator +
"GempakGridUnits" + File.separator +
"gempakGridVcrdUnits.xml";
/** The logger */
private static NcepLogger logger = NcepLoggerManager.getNcepLogger(GempakGridVcrdInfoLookup.class);
/** The singleton instance of GridLookupFileName **/
private static GempakGridVcrdInfoLookup instance;
private final Map<String, GempakGridVcrdInfo> vcrdInfo;
public static GempakGridVcrdInfoLookup getInstance () {
if (instance == null) {
instance = new GempakGridVcrdInfoLookup ();
}
return instance;
}
private GempakGridVcrdInfoLookup () {
vcrdInfo = new HashMap <String,GempakGridVcrdInfo>();
try {
initVcordInfo ();
}catch (IOException e) {
logger.error("Unable to initialize gempak vcord information list!", e);
}
}
private void initVcordInfo () throws IOException {
// logger.info("Initial Gempak VCORD information===");
File gempakVcrdInfo =
NcPathManager.getInstance().getStaticFile(GRID_GEMPAK_VCORD_FILE);
GempakGridVcrdInfoSet vcrdInfoList = null;
try {
if ( gempakVcrdInfo.exists()) {
vcrdInfoList = (GempakGridVcrdInfoSet) SerializationUtil
.jaxbUnmarshalFromXmlFile(gempakVcrdInfo.getPath());
} else {
ArrayList<GempakGridVcrdInfo> emptyList = new ArrayList<GempakGridVcrdInfo>();
vcrdInfoList = new GempakGridVcrdInfoSet();
vcrdInfoList.setVcordinfo(emptyList);
}
for (GempakGridVcrdInfo vcrd : vcrdInfoList.getVcordinfo()) {
vcrdInfo.put(vcrd.getGnam(), vcrd);
}
} catch (Exception e) {
throw new IOException ("Unable to unmarshal ncep gempak vcrd info file");
}
}
public String getVcrdUnit ( String parm ) {
String units = null;
GempakGridVcrdInfo pInfo = vcrdInfo.get(parm);
if ( pInfo != null ) {
units = pInfo.getUnits();
}
return units;
}
public int getParmScale ( String parm ) {
int scale = 0;
GempakGridVcrdInfo pInfo = vcrdInfo.get(parm);
if ( pInfo != null ) {
scale = pInfo.getScale();
}
return scale;
}
public void display () {
int cnt = 1;
logger.info ("Size of vcrd table:" + vcrdInfo.size());
for (GempakGridVcrdInfo parm: vcrdInfo.values() ) {
logger.info("No." + cnt + " name:" + parm.getName() + " gname:" + parm.getGnam() + " units:" + parm.getUnits() + " scale:" + parm.getScale());
cnt ++;
}
}
}

View file

@ -0,0 +1,30 @@
package gov.noaa.nws.ncep.viz.gempak.grid.units;
import java.util.ArrayList;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElements;
import javax.xml.bind.annotation.XmlRootElement;
import com.raytheon.uf.common.serialization.ISerializableObject;
@XmlRootElement(name = "gempakGridVcordUnitSet")
@XmlAccessorType(XmlAccessType.NONE)
public class GempakGridVcrdInfoSet implements ISerializableObject{
/**
* List of vcord for/from the XML.
*/
@XmlElements( { @XmlElement(name = "vcordinfo", type = GempakGridVcrdInfo.class) })
private ArrayList<GempakGridVcrdInfo> vcordinfo;
public ArrayList<GempakGridVcrdInfo> getVcordinfo() {
return vcordinfo;
}
public void setVcordinfo(ArrayList<GempakGridVcrdInfo> vcordinfo) {
this.vcordinfo = vcordinfo;
}
}

View file

@ -79,8 +79,8 @@ import gov.noaa.nws.ncep.edex.common.ncinventory.NcInventoryRequestMsg;
* 09/05/12 #860 Greg Hull Add this to the URICatalog for storing the latest time.
* 09/13/12 #860 Greg Hull set default for inventoryEnabled to false.
* 11/2012 #885 T. Lee Set unmapped satellite projection resolution to "native"
* 01/02/2013 X. Guo Added codes to get Extpoint constraint name
*
* 01/2013 Greg Hull Don't create wildcard inventory constraints
*
* </pre>
*
* @author ghull
@ -111,7 +111,7 @@ public class ResourceDefinition implements ISerializableObject, IAlertObserver,
// must match the name in an extention point which defines the java class
// that implementes the resource.
@XmlElement
private String rscImplementation;
private String rscImplementation;
// the name of a column in the DB used to generated dynamic Resources.
// (Note: this must be defined as a parameter for the resource implementation.)
@ -166,13 +166,13 @@ public class ResourceDefinition implements ISerializableObject, IAlertObserver,
// Default to disnabled so it must be explicitly enabled.
@XmlElement
private Boolean inventoryEnabled = false;
private String inventoryAlias = null;
// the names of the parameters which are stored in the inventory for this RD;
//
private ArrayList<String> inventoryParamNames = new ArrayList<String>();
// a map from the resource Constraints to a cache of the availableTimes and the
@ -245,7 +245,7 @@ public class ResourceDefinition implements ISerializableObject, IAlertObserver,
rscImplementation = rscDefn.rscImplementation;
setLocalizationFile( rscDefn.getLocalizationFile() );
inventoryAlias = null;
availTimesCache = new HashMap<Map<String,RequestConstraint>,DataTimesCacheEntry>();
@ -298,6 +298,9 @@ public class ResourceDefinition implements ISerializableObject, IAlertObserver,
return prmsList;
}
// TODO : Need to change this to return the constraint field instead of the
// generator parameter. Til then all parameters that generate
// a type or sub type must be the same name as the request constraint.
public String getRscTypeGenerator() {
return (rscTypeGenerator == null ? "" : rscTypeGenerator );
}
@ -606,18 +609,27 @@ public class ResourceDefinition implements ISerializableObject, IAlertObserver,
//
// (most of the time the paramName and constraint name are the same except for
// GDFILE where the constraint is 'modelName') So for this case we need to
//
//
for( ResourceParamInfo prmInfo : rscImplParams.values() ) {
// if this parameter is defined as a request constraint and
// if it has a non-wildcard value, then create a inventory constraint for it
//
if( prmInfo.getParamType() == ResourceParamType.REQUEST_CONSTRAINT ) {
String prmName = prmInfo.getParamName();
String cnstrName = prmInfo.getConstraintName();
if( paramValues.containsKey( prmName ) ) {
String prmValue = paramValues.get( prmName );
inventoryConstraints.put( cnstrName,
getConstraintFromParamValue( prmValue ) );
if( paramValues.containsKey( prmName ) ) {
// if the constraint value is a wildcard then don't add this
// to the list since it will fail in the case where the
// db value is a null.
RequestConstraint reqConstr = getConstraintFromParamValue(
paramValues.get( prmName ) );
if( reqConstr != RequestConstraint.WILDCARD ) {
inventoryConstraints.put( cnstrName, reqConstr );
}
}
// else {
// 'LIKE' doesn't work for integers. Just leave this out.
@ -1018,6 +1030,10 @@ public class ResourceDefinition implements ISerializableObject, IAlertObserver,
NcInventoryRequestMsg reqMsg = NcInventoryRequestMsg.makeQueryRequest();
reqMsg.setInventoryName( inventoryAlias );
reqMsg.setReqConstraintsMap( searchConstraints );
// TODO : Need to change this to return the constraint field instead of the
// generator parameter. Til then all parameters that generate
// a type or sub type must be the same name as the request constraint.
String genType = getRscTypeGenerator();
String cnstrName = null;
if ( genType != null ) {
@ -1068,7 +1084,7 @@ public class ResourceDefinition implements ISerializableObject, IAlertObserver,
public ArrayList<String> generatedSubTypesList() throws VizException {
// Grids, Satellite, Radar, etc all are dynamically updated when new alert updates
// are received (when new data is ingested). PGEN doesn't have alert updates and so
// we need to always check for new products.
// we need to always check for new products.
if( isPgenResource() ) {
return getPgenProducts();
@ -1161,14 +1177,14 @@ public class ResourceDefinition implements ISerializableObject, IAlertObserver,
subType = queryResults[1] + "_native";
} else {
subType = queryResults[1] + "_"+ // note that the 'km' here will make the code
queryResults[2] + "km"; // to parse the subType non-generic so we might want to change it.
queryResults[2] + "km"; // to parse the subType non-generic so we might want to change it.
}
if( !generatedSubTypesList.contains( subType ) ) {
generatedSubTypesList.add( subType );
}
else out.println("subType already in the list?"); // shouldn't happen
}
}
}
return generatedSubTypesList;
@ -1277,7 +1293,7 @@ public class ResourceDefinition implements ISerializableObject, IAlertObserver,
else if( availTimesCache.size() > 4 ) {
availTimesCache.get( resourceConstraints ).addToUriCatalog();
}
}
}
// Return the latest time or if there either is NoData or if the time hasn't been
// set yet, return a Null DataTime.
@ -1285,9 +1301,9 @@ public class ResourceDefinition implements ISerializableObject, IAlertObserver,
public DataTime getLatestDataTime( ResourceName rscName ) throws VizException {
if( !isRequestable() ) {
return null;
}
return null;
}
Map<String, RequestConstraint> resourceConstraints =
getInventoryConstraintsFromParameters(
ResourceDefnsMngr.getInstance().getAllResourceParameters( rscName ) );
@ -1357,7 +1373,7 @@ public class ResourceDefinition implements ISerializableObject, IAlertObserver,
// if times are cached for these constraints, and if the times haven't expired,
// then just return the cached times.
//
//
if( availTimesCache.containsKey( resourceConstraints ) ) {
DataTimesCacheEntry cachedTimesEntry = availTimesCache.get( resourceConstraints );
@ -1365,7 +1381,7 @@ public class ResourceDefinition implements ISerializableObject, IAlertObserver,
if( availTimes != null ) {
return availTimes;
}
}
// (Do not remove the entry in the cache since this may be being refreshed
// with the latestTimes from the URICatalog.
}
@ -1382,7 +1398,7 @@ public class ResourceDefinition implements ISerializableObject, IAlertObserver,
//
if( inventoryEnabled ) {
NcInventoryRequestMsg reqMsg = NcInventoryRequestMsg.makeQueryRequest();
NcInventoryRequestMsg reqMsg = NcInventoryRequestMsg.makeQueryRequest();
reqMsg.setInventoryName( inventoryAlias );
reqMsg.setRequestedParam( "dataTime" );
reqMsg.setReqConstraintsMap(
@ -1393,7 +1409,7 @@ public class ResourceDefinition implements ISerializableObject, IAlertObserver,
long t01 = System.currentTimeMillis();
rslts = ThriftClient.sendRequest( reqMsg );
if( !(rslts instanceof String[]) ) {
out.println("Inventory Request Failed:"+rslts.toString() );
@ -1425,7 +1441,7 @@ public class ResourceDefinition implements ISerializableObject, IAlertObserver,
}
}
else { // if the inventory is not enabled
//
//
LayerProperty property = new LayerProperty();
property.setDesiredProduct( ResourceType.PLAN_VIEW );
@ -1577,8 +1593,8 @@ public class ResourceDefinition implements ISerializableObject, IAlertObserver,
if ( satRec.getResolution() == 0 && getSubTypeGenParamsList()[1].equals("resolution") ) {
subType = satRec.getAreaName() + "_native";
} else {
subType = satRec.getAreaName() + "_" +
satRec.getResolution().toString() + "km";
subType = satRec.getAreaName() + "_" +
satRec.getResolution().toString() + "km";
}
attrSetKey = satRec.getImageType();
}
@ -1704,8 +1720,8 @@ public class ResourceDefinition implements ISerializableObject, IAlertObserver,
subType = subType+"_native";
}
else {
subType = subType+"_"+uriAttrValues.get( genPrm2 ).toString() + "km";
}
subType = subType+"_"+uriAttrValues.get( genPrm2 ).toString() + "km";
}
}
if( subType != null &&

View file

@ -35,7 +35,7 @@
<constraint constraintValue="${pluginName}" constraintType="EQUALS" />
</mapping>
<!-- <mapping key="prodName">
<constraint constraintValue="${prodName}" constraintType="EQUALS" />
<constraint constraintValue="$ { prodName}" constraintType="EQUALS" />
</mapping>
-->
</metadataMap>

View file

@ -66,4 +66,6 @@ Import-Package: com.raytheon.edex.meteoLib,
com.sun.jna,
com.sun.jna.ptr,
gov.noaa.nws.ncep.common.log.logger,
gov.noaa.nws.ncep.viz.gempak.grid.inv
gov.noaa.nws.ncep.viz.gempak.grid.inv,
gov.noaa.nws.ncep.viz.gempak.grid.mapper,
gov.noaa.nws.ncep.viz.gempak.grid.units

View file

@ -1,7 +1,3 @@
gov.noaa.nws.ncep.viz.rsc.ncgrid.rsc.NcgridResourceData
gov.noaa.nws.ncep.viz.rsc.ncgrid.rsc.NcEnsembleResourceData
gov.noaa.nws.ncep.edex.common.dataRecords.NcFloatDataRecord
gov.noaa.nws.ncep.viz.rsc.ncgrid.util.GempakGridParmInfo
gov.noaa.nws.ncep.viz.rsc.ncgrid.util.GempakGridParmInfoSet
gov.noaa.nws.ncep.viz.rsc.ncgrid.util.GempakGridVcrdInfo
gov.noaa.nws.ncep.viz.rsc.ncgrid.util.GempakGridVcrdInfoSet
gov.noaa.nws.ncep.edex.common.dataRecords.NcFloatDataRecord

View file

@ -62,8 +62,9 @@ import gov.noaa.nws.ncep.common.log.logger.NcepLogger;
import gov.noaa.nws.ncep.common.log.logger.NcepLoggerManager;
import gov.noaa.nws.ncep.viz.rsc.ncgrid.rsc.NcEnsembleResourceData;
import gov.noaa.nws.ncep.viz.rsc.ncgrid.rsc.NcgridResourceData;
import gov.noaa.nws.ncep.viz.rsc.ncgrid.util.GempakGridParmInfoLookup;
import gov.noaa.nws.ncep.viz.rsc.ncgrid.util.GempakGridVcrdInfoLookup;
import gov.noaa.nws.ncep.viz.gempak.grid.mapper.GridMapper;
import gov.noaa.nws.ncep.viz.gempak.grid.units.GempakGridParmInfoLookup;
import gov.noaa.nws.ncep.viz.gempak.grid.units.GempakGridVcrdInfoLookup;
import gov.noaa.nws.ncep.viz.rsc.ncgrid.customCoverage.CustomLatLonCoverage;
import gov.noaa.nws.ncep.viz.rsc.ncgrid.customCoverage.CustomLambertConformalCoverage;
import gov.noaa.nws.ncep.viz.rsc.ncgrid.customCoverage.CustomMercatorCoverage;
@ -141,9 +142,9 @@ public class Dgdriv {
private static Connector conn;
private NcgridDataCache cacheData;
private static NcgribLogger ncgribLogger = NcgribLogger.getInstance();;
public static final int LLMXGD = 1000000; //Max # grid points
/*
@ -329,7 +330,7 @@ public class Dgdriv {
byte [] prjbuf = new byte [BUFRLENGTH];
boolean proces = true;
Map<Integer, String> hm = new HashMap<Integer, String>();
// private String eventName;
// private String eventName;
DiagnosticsCallback diagCallback=null;
ReturnFileNameCallback flnmCallback = null;
ReturnCycleForecastHoursCallback fhrsCallback = null;
@ -413,15 +414,16 @@ public class Dgdriv {
long t1 = System.currentTimeMillis();
int rDataSize = rData.length;
IntByReference datSize = new IntByReference(rDataSize);
logger.debug("retrieve data nx=" + nx +" ny=" + ny + " rDataSize=" + rDataSize);
// logger.info("retrieve data nx=" + nx +" ny=" + ny + " rDataSize=" + rDataSize);
if ( (nx*ny) == rDataSize ) {
if ( addData ) {
cacheData.addGridData(dataURI, nx, ny, rData);
}
if ( flip ) {
// logger.info ("*****flip grid data*****");
gd.gem.db_returndata(flipData(rData, nx, ny),datSize);
}
gd.gem.db_returndata(flipData(rData, nx, ny),datSize);
}
else
gd.gem.db_returndata(checkMissingData(rData),datSize);
}
@ -502,8 +504,8 @@ public class Dgdriv {
if ( ncgribLogger.enableDiagnosticLogs() ) {
logger.info("Rcv'd new subg:" + msg);
}
createNewISpatialObj ( msg );
return true;
createNewISpatialObj ( msg );
return true;
}
}
@ -815,7 +817,7 @@ public class Dgdriv {
}
if ( flop ) {
// logger.info ("====flop grid data 1=====");
fds.setXdata(flopData(ugrid, igx.getValue(), igy.getValue()));
fds.setXdata(flopData(ugrid, igx.getValue(), igy.getValue()));
}
else
fds.setXdata( revertGempakData2CAVE(ugrid) );
@ -829,7 +831,7 @@ public class Dgdriv {
}
if ( flop ) {
// logger.info ("====flop grid data =====");
fds.setYdata(flopData(vgrid, igx.getValue(), igy.getValue()));
fds.setYdata(flopData(vgrid, igx.getValue(), igy.getValue()));
}
else
fds.setYdata( revertGempakData2CAVE(vgrid) );
@ -871,7 +873,7 @@ public class Dgdriv {
private void prepareGridDTInfo() {
String alias = this.gdfile;
String path = "A2DB_GRID";
logger.debug("prepareGridDTInfo-- alias:" + alias + " gdfileOriginal:" + this.gdfileOriginal);
logger.debug ("prepareGridDTInfo-- alias:" + alias + " gdfileOriginal:" + this.gdfileOriginal);
String template = this.gdfileOriginal + "_db";
if ( this.gdfileOriginal.contains(":")) {
template = this.gdfileOriginal.substring(0, this.gdfileOriginal.indexOf(":")) + "_db";
@ -1327,7 +1329,7 @@ public class Dgdriv {
return outGridFlipped;
}
/*
* Changes the missing data value from
* CAVE -999999.0f to GEMPAK -9999.0f
@ -1388,7 +1390,7 @@ public class Dgdriv {
outGridFlopped[ii] = inGrid[ii];
}
}
return outGridFlopped;
}
private String getEnsTimes () {
@ -1474,12 +1476,12 @@ public class Dgdriv {
//setWorldWrapColumns (1);
//check its return value/exception and decide to update coverage or not
GridDataRetriever dataRetriever = new GridDataRetriever (dataURI);
boolean isWorldWrap = false;
try {
isWorldWrap = dataRetriever.setWorldWrapColumns (1);
} catch (GridCoverageException e) {
//ignore setWorldWrapColumns exception.
}
// boolean isWorldWrap = false;
// try {
// isWorldWrap = dataRetriever.setWorldWrapColumns (1);
// } catch (GridCoverageException e) {
// //ignore setWorldWrapColumns exception.
// }
try {
String gempakParm = cacheData.getGempakParam(dataURI);
if ( gempakParm != null ) {
@ -1497,12 +1499,14 @@ public class Dgdriv {
t001 = System.currentTimeMillis();
FloatDataRecord dataRecord = dataRetriever.getDataRecord();
float[] data = dataRecord.getFloatData();
if ( isWorldWrap ) {
setSubgSpatialObj ( (ISpatialObject)dataRetriever.getCoverage());
}
// if ( isWorldWrap ) {
// if ( ncgribLogger.enableDiagnosticLogs() )
// logger.info("===new coverage nx:"+dataRetriever.getCoverage().getNx() + " ny:"+dataRetriever.getCoverage().getNy());
// setSubgSpatialObj ( (ISpatialObject)dataRetriever.getCoverage());
// }
t002 = System.currentTimeMillis();
if ( ncgribLogger.enableDiagnosticLogs() )
logger.info("***Reading " + dataURI + " from hdf5 took: " + (t002-t001));
logger.info("***Reading " + dataURI + " from hdf5 took: " + (t002-t001) + ", return size:" + data.length);
return data;
} catch (StorageException s) {
if ( ncgribLogger.enableDiagnosticLogs() )
@ -1738,7 +1742,7 @@ public class Dgdriv {
request.addRequestField(GridDBConstants.FORECAST_TIME_QUERY);
request.setDistinct(true);
request.setConstraints(rcMap);
long t0 = System.currentTimeMillis();
long t0 = System.currentTimeMillis();
String retFileNames = "";
try {
DbQueryResponse response = (DbQueryResponse) ThriftClient
@ -1767,7 +1771,7 @@ public class Dgdriv {
if ( retFileNames.length() > 0 ) retFileNames = retFileNames + "|";
retFileNames = retFileNames + prefix+dt + hh + "f" + forecastHourFormat.format(fhr);
}
}
} catch (VizException e) {
@ -1824,7 +1828,7 @@ public class Dgdriv {
else {
if ( gridRscData.getEnsembelMember() != null ) {
rcMap.put( GridDBConstants.ENSEMBLE_ID_QUERY, new RequestConstraint( parmList[1] ) );
}
}
else {
rcMap.put( GridDBConstants.EVENT_NAME_QUERY, new RequestConstraint( parmList[1] ) );
}
@ -1934,7 +1938,7 @@ public class Dgdriv {
if ( ncgribLogger.enableDiagnosticLogs() ) {
long t00 = System.currentTimeMillis();
logger.info("++++ getDataURIFromAssembler for("+parameters+") from cache took: " + (t00-t0));
}
}
return datauri;
}
Map<String, RequestConstraint> rcMap = getRequestConstraint (parameters);
@ -1948,7 +1952,7 @@ public class Dgdriv {
DbQueryRequest request = new DbQueryRequest();
request.addRequestField(GridDBConstants.DATA_URI_QUERY);
request.setConstraints(rcMap);
DbQueryResponse response = (DbQueryResponse) ThriftClient
.sendRequest(request);
// extract list of results
@ -2109,8 +2113,8 @@ public class Dgdriv {
if (spatialObj != null && spatialObj instanceof ISpatialObject) {
cov = (ISpatialObject) spatialObj;
}
}
}
if ( cov != null ) {
navStr = getGridNavigationContent ( cov);
}
@ -2190,6 +2194,7 @@ public class Dgdriv {
}
qAssembler.setParameterAbbreviation(parmList[2]);
qAssembler.setMasterLevelName (parmList[3]);
// qAssembler.setMasterLevelName ("MB");
String ll1 = null, ll2 = null;
if ( parmList[4].contains(":")) {
@ -2219,7 +2224,7 @@ public class Dgdriv {
qAssembler.setLevelTwoValue(level2);
}
else {
qAssembler.setLevelTwoValue(-9999.0);
qAssembler.setLevelTwoValue(-999999.0);
}
qAssembler.setLevelUnits(gempakVcordInfo.getVcrdUnit(parmList[3]));
@ -2240,6 +2245,9 @@ public class Dgdriv {
rcMap.put(GridDBConstants.REF_TIME_QUERY, new RequestConstraint(refTime));
rcMap.put(GridDBConstants.FORECAST_TIME_QUERY, new RequestConstraint(fcstTime));
if ( ncgribLogger.enableDiagnosticLogs() ) {
logger.info ("exit getRequestConstraint - rcMap:"+ rcMap.toString());
}
return rcMap;
}
}

View file

@ -4,5 +4,5 @@
<sourceType>BOUNDED_AREA</sourceType>
<dbName>ncep</dbName>
<dbTableName>bounds.mzcntybnds</dbTableName>
<dbFieldName>area</dbFieldName>
<dbFieldName>name</dbFieldName>
</LocatorDataSource>

View file

@ -4,5 +4,5 @@
<sourceType>BOUNDED_AREA</sourceType>
<dbName>ncep</dbName>
<dbTableName>bounds.statebnds</dbTableName>
<dbFieldName>area</dbFieldName>
<dbFieldName>name</dbFieldName>
</LocatorDataSource>

View file

@ -4,5 +4,5 @@
<sourceType>BOUNDED_AREA</sourceType>
<dbName>ncep</dbName>
<dbTableName>bounds.statebnds</dbTableName>
<dbFieldName>area</dbFieldName>
<dbFieldName>name</dbFieldName>
</LocatorDataSource>

View file

@ -4,5 +4,5 @@
<sourceType>BOUNDED_AREA</sourceType>
<dbName>ncep</dbName>
<dbTableName>bounds.tzbnds</dbTableName>
<dbFieldName>timezone</dbFieldName>
<dbFieldName>time_zone</dbFieldName>
</LocatorDataSource>

View file

@ -28,6 +28,8 @@ Export-Package: gov.noaa.nws.ncep.viz.ui.perspectives;uses:="org.eclipse.ui,org.
Import-Package: com.raytheon.uf.viz.core.maps.display,
com.raytheon.viz.alerts.observers,
gov.noaa.nws.ncep.viz.gempak.grid.inv,
gov.noaa.nws.ncep.viz.gempak.grid.mapper,
gov.noaa.nws.ncep.viz.gempak.grid.units,
gov.noaa.nws.ncep.viz.resourceManager,
gov.noaa.nws.ncep.viz.resources,
gov.noaa.nws.ncep.viz.rsc.ncgrid,

View file

@ -5,6 +5,9 @@ import gov.noaa.nws.ncep.ui.pgen.controls.PgenFileNameDisplay;
import gov.noaa.nws.ncep.viz.common.AbstractNcEditor;
import gov.noaa.nws.ncep.viz.common.ui.NmapCommon;
import gov.noaa.nws.ncep.viz.gempak.grid.inv.NcGridInventory;
import gov.noaa.nws.ncep.viz.gempak.grid.mapper.GridMapper;
import gov.noaa.nws.ncep.viz.gempak.grid.units.GempakGridParmInfoLookup;
import gov.noaa.nws.ncep.viz.gempak.grid.units.GempakGridVcrdInfoLookup;
import gov.noaa.nws.ncep.viz.localization.NcPathManager;
import gov.noaa.nws.ncep.viz.resourceManager.ui.ResourceManagerDialog;
import gov.noaa.nws.ncep.viz.resources.manager.RbdBundle;
@ -83,34 +86,34 @@ import com.vividsolutions.jts.geom.Coordinate;
* 06/01/2012 #815 G. Hull Create DESK Level for Localization.
* 06/13/2012 #817 G. Hull for -spf arg, create one rbdLoader and call initTimeline on the rbds.
* 12/12/1212 #630 G. Hull rm check for suspendZoom in displayChangeLister. code moved to refreshGUIElements
*
*
* </pre>
*
* @author
* @author
* @version 1.0
*/
public class NCPerspectiveManager extends AbstractCAVEPerspectiveManager {
/** The National Centers Perspective Class */
// put this in common to avoid dependencies on this project
// put this in common to avoid dependencies on this project
public static final String NC_PERSPECTIVE = NmapCommon.NatlCntrsPerspectiveID;
private boolean gridInventoryInited = false;
private IVizEditorChangedListener displayChangeListener=null;
@Override
protected void open() {
// force DESK level to be created.
NcPathManager.getInstance();
if ( !gridInventoryInited ) {
long t0 = System.currentTimeMillis();
try {
private IVizEditorChangedListener displayChangeListener = null;
@Override
protected void open() {
// force DESK level to be created.
NcPathManager.getInstance();
if (!gridInventoryInited) {
long t0 = System.currentTimeMillis();
try {
NcGridInventory.getInstance().initInventory(false); // don't
// re-init
// NcGridInventory.getInstance().dumpNcGribInventory();
// NcGridInventory.getInstance().dumpNcGribInventory();
} catch (final VizException e) {
VizApp.runAsync(new Runnable() {
@Override
@ -125,26 +128,28 @@ public class NCPerspectiveManager extends AbstractCAVEPerspectiveManager {
});
// System.out.println("NcGridInventory failed : "+e.getMessage()
// );
}
long t1 = System.currentTimeMillis();
System.out.println("NcGridInventory Init took: " + (t1-t0));
gridInventoryInited = true;
}
}
GridMapper.GridMapperInit();
GempakGridParmInfoLookup.getInstance();
GempakGridVcrdInfoLookup.getInstance();
long t1 = System.currentTimeMillis();
System.out.println("NcGridInventory Init took: " + (t1 - t0));
gridInventoryInited = true;
}
displayChangeListener = new IVizEditorChangedListener() {
@Override
public void editorChanged(IDisplayPaneContainer container) {
displayChangeListener = new IVizEditorChangedListener() {
@Override
public void editorChanged(IDisplayPaneContainer container) {
if(container==null)
return;
if( container instanceof AbstractNcEditor ) {
((AbstractNcEditor)container).refreshGUIElements();
}
}
};
// Add an observer to process the dataURI Notification msgs from edex.
//
if (container instanceof AbstractNcEditor) {
((AbstractNcEditor) container).refreshGUIElements();
}
}
};
// Add an observer to process the dataURI Notification msgs from edex.
//
ProductAlertObserver.addObserver(null, new NcAutoUpdater());
// NatlCntrs uses a different equation to compute the Temperature values
@ -153,137 +158,137 @@ public class NCPerspectiveManager extends AbstractCAVEPerspectiveManager {
// by satellite
// images and will create our Units and UnitConverter class to do the
// conversion.
//
//
NcSatelliteUnits.register();
// Force the RBDs to read from localization to save time
// bringing up the RBD manager
//
SpfsManager.getInstance();
// Force the RBDs to read from localization to save time
// bringing up the RBD manager
//
SpfsManager.getInstance();
// Initialize the NcInventory. This cache is stored on the server side
// and will only
// need initialization for the first instance of cave.
try {
ResourceDefnsMngr.getInstance(); // force reading in of the resource
// definitions
if (!ResourceDefnsMngr.getInstance().getBadResourceDefnsErrors()
.isEmpty()) {
final StringBuffer errBuf = new StringBuffer(
"There were errors creating the following Resource Defintions:\n\n");
int numErrs = 0;
int numErrs = 0;
for (VizException vizex : ResourceDefnsMngr.getInstance()
.getBadResourceDefnsErrors()) {
errBuf.append( " -- "+ vizex.getMessage()+"\n" );
if( ++numErrs > 20 ) {
errBuf.append( " .....and more....");
}
}
errBuf.append(" -- " + vizex.getMessage() + "\n");
if (++numErrs > 20) {
errBuf.append(" .....and more....");
}
}
VizApp.runAsync(new Runnable() {
@Override
public void run() {
MessageDialog errDlg = new MessageDialog(
perspectiveWindow.getShell(), "Error", null,
MessageDialog errDlg = new MessageDialog(
perspectiveWindow.getShell(), "Error", null,
errBuf.toString(), MessageDialog.ERROR,
new String[] { "OK" }, 0);
errDlg.open();
errDlg.open();
}
});
}
// ResourceDefnsMngr.getInstance().createInventory();
} catch( VizException el ) {
MessageDialog errDlg = new MessageDialog(
perspectiveWindow.getShell(), "Error", null,
"Error Initializing NcInventory:\n\n"+el.getMessage(),
MessageDialog.ERROR, new String[]{"OK"}, 0);
errDlg.open();
}
}
// ResourceDefnsMngr.getInstance().createInventory();
} catch (VizException el) {
MessageDialog errDlg = new MessageDialog(
perspectiveWindow.getShell(), "Error", null,
"Error Initializing NcInventory:\n\n" + el.getMessage(),
MessageDialog.ERROR, new String[] { "OK" }, 0);
errDlg.open();
}
// Load either the default RBD or RBDs in the command line spf
//
List<RbdBundle> rbdsToLoad = new ArrayList<RbdBundle>();
String spfName = ProgramArguments.getInstance().getString("-spf");
if( spfName != null && !spfName.isEmpty() ) {
String[] grpAndSpf = spfName.split( File.separator );
if (spfName != null && !spfName.isEmpty()) {
String[] grpAndSpf = spfName.split(File.separator);
// the name of the spf should include a group name
// TODO : check that there is a group and if not use a default.
if( grpAndSpf.length != 2 ) {
// the name of the spf should include a group name
// TODO : check that there is a group and if not use a default.
if (grpAndSpf.length != 2) {
System.out
.println("The -spf argument is specified without an spf group (ex spfGroupName/spfName.");
// load the default rbd...
MessageDialog errDlg = new MessageDialog(
// load the default rbd...
MessageDialog errDlg = new MessageDialog(
perspectiveWindow.getShell(),
"Error",
null,
"The -spf arguement is missing an SPF group name.\nEx. \"SpfGroupName/SpfName\"",
MessageDialog.WARNING, new String[]{"OK"}, 0);
errDlg.open();
"The -spf arguement is missing an SPF group name.\nEx. \"SpfGroupName/SpfName\"",
MessageDialog.WARNING, new String[] { "OK" }, 0);
errDlg.open();
} else {
try {
try {
rbdsToLoad = SpfsManager.getInstance().getRbdsFromSpf(
grpAndSpf[0], grpAndSpf[1], true); // resolve Latest
// Cycle times
} catch (VizException e) {
MessageDialog errDlg = new MessageDialog(
perspectiveWindow.getShell(), "Error", null,
MessageDialog errDlg = new MessageDialog(
perspectiveWindow.getShell(), "Error", null,
"The -spf arguement, " + spfName
+ " doen't exist\n", MessageDialog.WARNING,
new String[] { "OK" }, 0);
errDlg.open();
}
}
errDlg.open();
}
}
}
if( rbdsToLoad.isEmpty() ) {
try {
if (rbdsToLoad.isEmpty()) {
try {
RbdBundle dfltRbd = RbdBundle.getDefaultRBD();
rbdsToLoad.add( dfltRbd );
rbdsToLoad.add(dfltRbd);
} catch (Exception ve) {
System.out.println("Could not load rbd: " + ve.getMessage());
ve.printStackTrace();
}
System.out.println("Could not load rbd: " + ve.getMessage());
ve.printStackTrace();
}
}
//start data provider before creating ncmapeditor
StaticDataProvider.start();
ResourceBndlLoader rbdLoader = new ResourceBndlLoader( "Loading SPF: " );
// start data provider before creating ncmapeditor
StaticDataProvider.start();
// loop thru the rbds and load them into a new editor.
for( RbdBundle rbd: rbdsToLoad ) {
ResourceBndlLoader rbdLoader = new ResourceBndlLoader("Loading SPF: ");
rbd.initTimeline();
// loop thru the rbds and load them into a new editor.
for (RbdBundle rbd : rbdsToLoad) {
rbd.initTimeline();
NCMapEditor editor = NmapUiUtils.createNatlCntrsEditor(rbd
.getRbdName());
rbdLoader.addRBD( rbd, editor );
}
VizApp.runAsync( rbdLoader );
}
@Override
rbdLoader.addRBD(rbd, editor);
}
VizApp.runAsync(rbdLoader);
}
@Override
public void activate() {
super.activate();
// add an EditorChangedListener
VizWorkbenchManager.getInstance().addListener( displayChangeListener );
super.activate();
// Experiment.
// statusLine.setErrorMessage("Status Line ERROR MSG B");
// statusLine.setMessage("Status Line MESSAGE B");
// add an EditorChangedListener
VizWorkbenchManager.getInstance().addListener(displayChangeListener);
// Experiment.
// statusLine.setErrorMessage("Status Line ERROR MSG B");
// statusLine.setMessage("Status Line MESSAGE B");
// relayout the shell since we added widgets
perspectiveWindow.getShell().layout(true, true);
@ -291,42 +296,42 @@ public class NCPerspectiveManager extends AbstractCAVEPerspectiveManager {
NcSatelliteUnits.register();
}
@Override
@Override
public void deactivate() {
super.deactivate();
VizWorkbenchManager.getInstance().removeListener( displayChangeListener );
super.deactivate();
VizWorkbenchManager.getInstance().removeListener(displayChangeListener);
SatelliteUnits.register();
// would rather do this another way, preferably by having
// ResourceManagerDialog extend CaveSWTDialog (do this later) or
// ResourceManagerDialog extend CaveSWTDialog (do this later) or
// by implementing a perspective closed listener (cyclical dependency
// problem)
ResourceManagerDialog.close();
}
@Override
protected List<ContributionItem> getStatusLineItems() {
List<ContributionItem> stsLineDisplays = new ArrayList<ContributionItem>();
// in reverse order
stsLineDisplays.add( new FadeDisplay() );
stsLineDisplays.add( PgenFileNameDisplay.getInstance() );
stsLineDisplays.add( FrameDataDisplay.createInstance() );
// in reverse order
stsLineDisplays.add(new FadeDisplay());
stsLineDisplays.add(PgenFileNameDisplay.getInstance());
stsLineDisplays.add(FrameDataDisplay.createInstance());
return stsLineDisplays;
}
@Override
@Override
public void close() {
super.close();
VizWorkbenchManager.getInstance().removeListener( displayChangeListener );
displayChangeListener = null;
super.close();
VizWorkbenchManager.getInstance().removeListener(displayChangeListener);
displayChangeListener = null;
ResourceManagerDialog.close();
}
}
/*
* (non-Javadoc)
*
@ -337,7 +342,7 @@ public class NCPerspectiveManager extends AbstractCAVEPerspectiveManager {
@Override
public IInputHandler[] getPerspectiveInputHandlers(
final AbstractEditor editor) {
// currently only implementing handleMouseWheel which is now done below.
// currently only implementing handleMouseWheel which is now done below.
IInputHandler[] superHandlers = super
.getPerspectiveInputHandlers(editor);
@ -345,43 +350,43 @@ public class NCPerspectiveManager extends AbstractCAVEPerspectiveManager {
// abstractEditors handlers
// (this won't last long since the perspective will remove/save off the
// editors.
if( !(editor instanceof NCMapEditor ) ) {
return superHandlers;
if (!(editor instanceof NCMapEditor)) {
return superHandlers;
}
// No-Ops for doubleClick, keyUp/Down, mouseDown, mouseHover and mouseUp
IInputHandler handler = new InputAdapter() {
private boolean isShiftDown = false;
private boolean isShiftDown = false;
@Override
public boolean handleMouseDownMove(int x, int y, int mouseButton) {
// Set mouse position
Coordinate ll = editor.translateClick(x, y);
gov.noaa.nws.ncep.viz.common.CoorBean.getInstance().setCoor(ll);
// Set mouse position
Coordinate ll = editor.translateClick(x, y);
gov.noaa.nws.ncep.viz.common.CoorBean.getInstance().setCoor(ll);
return false;
}
@Override
public boolean handleMouseMove(int x, int y) {
// Set mouse position
Coordinate ll = ((NCMapEditor)editor).translateClick( x, y);
gov.noaa.nws.ncep.viz.common.CoorBean.getInstance().setCoor(ll);
// Set mouse position
Coordinate ll = ((NCMapEditor) editor).translateClick(x, y);
gov.noaa.nws.ncep.viz.common.CoorBean.getInstance().setCoor(ll);
return false;
}
private void toggleVisibility(ResourcePair rp) {
AbstractVizResource<?, ?> rsc = rp.getResource();
if (rsc != null) {
AbstractVizResource<?, ?> rsc = rp.getResource();
if (rsc != null) {
rp.getProperties().setVisible(
!rp.getProperties().isVisible());
}
}
}
};
ArrayList<IInputHandler> handlers = new ArrayList<IInputHandler>();
// handlers.addAll(Arrays.asList(superHandlers));
// handlers.addAll(Arrays.asList(superHandlers));
handlers.add(handler);
return handlers.toArray(new IInputHandler[handlers.size()]);
}