13.2.1-5 baseline

Former-commit-id: 7e1236c17c [formerly a6b3cde1ff] [formerly 232734091d] [formerly 146fcc6da8 [formerly 232734091d [formerly c56f1fdc3e2419c5dd6bebbbb1e0e688bd5e0092]]]
Former-commit-id: 146fcc6da8
Former-commit-id: 49d71a590915a63b8746aa7ff8b66241cdada3aa [formerly 1c602ec3a7]
Former-commit-id: 7497a15e22
This commit is contained in:
Steve Harris 2013-02-06 11:02:32 -06:00
parent 03989493ae
commit 5d64cfc298
89 changed files with 2373 additions and 683 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

@ -67,6 +67,8 @@ import com.vividsolutions.jts.geom.MultiPolygon;
* 05Aug2008 #1383 ebabin Fix for time shift not working.
* 06Nov2008 #1591 wdougherty Fix isValid() so it can return true
* Tweak doSet() for filtered grids, fix bugs
* 30Jan2013 #15719 jdynina Fixed allowed field size to accept more
* than 128 characters
*
* </pre>
*
@ -154,7 +156,7 @@ public class DiscreteGridData extends AbstractGridData implements INumpyable {
for (int newy = j - ss; newy <= j + ss; newy++) {
// if inside grid limits, make a smoothed value
if (originalGrid.isValid(newx, newy)) {
histo[originalGrid.get(newx, newy)]++;
histo[0xFF & originalGrid.get(newx, newy)]++;
}
}
}
@ -251,7 +253,7 @@ public class DiscreteGridData extends AbstractGridData implements INumpyable {
public WxValue getWxValue(int x, int y) {
// throw new UnsupportedOperationException("Attempt to getWxValue: ");
populate();
int index = getGrid().get(x, y);
int index = 0xFF & getGrid().get(x, y);
DiscreteWxValue tmpDiscreteWxValue = new DiscreteWxValue(
getKey()[index], getParm());
@ -584,8 +586,8 @@ public class DiscreteGridData extends AbstractGridData implements INumpyable {
// fancy code in here to prevent lots of repeated combining
// for efficiency.
// Make an array of byte...init to MAX_VALUE
byte newValues[] = new byte[Byte.MAX_VALUE];
Arrays.fill(newValues, Byte.MAX_VALUE);
byte newValues[] = new byte[255];
Arrays.fill(newValues, (byte)-1);
byte[] gridA = discreteGrid.getBuffer().array();
byte[] pToSetA = pointsToSet.getBuffer().array();
@ -596,18 +598,19 @@ public class DiscreteGridData extends AbstractGridData implements INumpyable {
if ((byte) 1 == pToSetA[rowOffset + col]) {
// pointsToSet selects this grid point
byte dataPoint = gridA[rowOffset + col];
int dataPointIdx = 0xFF & dataPoint;
if (dataPoint != index) {
// value needs to change
if (newValues[dataPoint] == Byte.MAX_VALUE) {
if (newValues[dataPointIdx] == (byte)-1) {
// new key hasn't been found
DiscreteKey combinedKey = DiscreteKey.combine(
dk, getKey()[dataPoint]);
dk, getKey()[dataPointIdx]);
// Store new key index in lookup table
newValues[dataPoint] = lookupKeyValue(combinedKey);
newValues[dataPointIdx] = lookupKeyValue(combinedKey);
}
// Update the grid
gridA[rowOffset + col] = newValues[dataPoint];
gridA[rowOffset + col] = newValues[dataPointIdx];
}
}
}
@ -676,7 +679,7 @@ public class DiscreteGridData extends AbstractGridData implements INumpyable {
}
// set up translation matrix
byte translate[] = new byte[128];
byte translate[] = new byte[255];
Arrays.fill(translate, (byte) -1);
// get the grid
@ -715,7 +718,8 @@ public class DiscreteGridData extends AbstractGridData implements INumpyable {
// if inside grid limits, copy value to new position
// of working grid.
if (sliceGrid.isValid(newx, newy)) {
byte og = originalGrid.get(i, j);
//byte og = originalGrid.get(i, j);
int og = 0xFF & originalGrid.get(i, j);
byte v = translate[og];
if (v == -1) {
v = lookupKeyValue(originalKey[og]);
@ -895,7 +899,7 @@ public class DiscreteGridData extends AbstractGridData implements INumpyable {
int numValues = values.getXdim() * values.getYdim();
byte[] bp = values.getBuffer().array();
for (int i = 0; i < numValues; i++) {
if (bp[i] + 1 > key.size()) {
if ((0xFF & bp[i]) > key.size() -1) {
throw new IllegalArgumentException(
"Illegal discrete grid (bad values) in gridSet()");
}
@ -918,7 +922,7 @@ public class DiscreteGridData extends AbstractGridData implements INumpyable {
for (int i = 0; i < dim.x; i++) {
for (int j = 0; j < dim.y; j++) {
if (points.get(i, j) == 1) {
grid.set(i, j, remap[values.get(i, j)]);
grid.set(i, j, remap[0xFF & values.get(i, j)]);
}
}
}
@ -942,7 +946,8 @@ public class DiscreteGridData extends AbstractGridData implements INumpyable {
protected DiscreteKey doGetDiscreteValue(int x, int y) {
byte gridValue = getGrid().get(x, y);
return getKey()[gridValue];
int gridValueIdx = 0xFF & gridValue;
return getKey()[gridValueIdx];
}
/*
@ -1049,12 +1054,14 @@ public class DiscreteGridData extends AbstractGridData implements INumpyable {
// check data values
byte[] data = grid.getBuffer().array();
DiscreteKey[] keys = getKey();
byte keySize = (byte) keys.length;
//byte keySize = (byte) keys.length;
int keySize = keys.length;
for (int j = 0; j < data.length; j++) {
if (data[j] > keySize) {
int value = 0xFF & data[j];
if (value > keySize) {
statusHandler.handle(Priority.PROBLEM, emsg + "Data="
+ (int) data[j] + " Min=0 Max=" + (int) keySize);
+ (int) value + " Min=0 Max=" + (int) keySize);
return false;
}
}

View file

@ -63,6 +63,8 @@ import com.vividsolutions.jts.geom.MultiPolygon;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Mar 15, 2011 randerso Initial creation
* Jan 30, 2013 #15719 jdynina Allowed more than 128 chars in wx
* strings
*
* </pre>
*
@ -150,7 +152,7 @@ public class WeatherGridData extends AbstractGridData implements INumpyable {
// if inside grid limits, make a
// smoothed value
if (originalGrid.isValid(newx, newy)) {
histo[originalGrid.get(newx, newy)]++;
histo[0xFF & originalGrid.get(newx, newy)]++;
}
}
}
@ -240,7 +242,7 @@ public class WeatherGridData extends AbstractGridData implements INumpyable {
public WxValue getWxValue(int x, int y) {
// throw new UnsupportedOperationException("Attempt to getWxValue: ");
populate();
int index = getGrid().get(x, y);
int index = 0xFF & getGrid().get(x, y);
WeatherWxValue tmpWeatherWxValue = new WeatherWxValue(getKeys()[index],
getParm());
@ -564,8 +566,8 @@ public class WeatherGridData extends AbstractGridData implements INumpyable {
// fancy code in here to prevent lots of repeated combining
// for efficiency.
// Make an array of byte...init to MAX_VALUE
byte newValues[] = new byte[Byte.MAX_VALUE];
Arrays.fill(newValues, Byte.MAX_VALUE);
byte newValues[] = new byte[255];
Arrays.fill(newValues, (byte)-1);
byte[] gridA = weatherGrid.getBuffer().array();
byte[] pToSetA = pointsToSet.getBuffer().array();
@ -577,18 +579,19 @@ public class WeatherGridData extends AbstractGridData implements INumpyable {
if ((byte) 1 == pToSetA[rowOffset + col]) {
// pointsToSet selects this grid point
byte dataPoint = gridA[rowOffset + col];
int dataPointIdx = 0xFF & dataPoint;
if (dataPoint != index) {
// value needs to change
if (newValues[dataPoint] == Byte.MAX_VALUE) {
if (newValues[dataPointIdx] == (byte)-1) {
// new key hasn't been found
WeatherKey combinedKey = new WeatherKey(wk);
combinedKey.addAll(getKeys()[dataPoint]);
combinedKey.addAll(getKeys()[dataPointIdx]);
// Store new key index in lookup table
newValues[dataPoint] = lookupKeyValue(combinedKey);
newValues[dataPointIdx] = lookupKeyValue(combinedKey);
}
// Update the grid
gridA[rowOffset + col] = newValues[dataPoint];
gridA[rowOffset + col] = newValues[dataPointIdx];
}
}
}
@ -718,7 +721,8 @@ public class WeatherGridData extends AbstractGridData implements INumpyable {
}
// set up translation matrix
byte translate[] = new byte[128];
//byte translate[] = new byte[128];
byte translate[] = new byte[255];
Arrays.fill(translate, (byte) -1);
// get the grid
@ -757,7 +761,8 @@ public class WeatherGridData extends AbstractGridData implements INumpyable {
// if inside grid limits, copy value to new position
// of working grid.
if (sliceGrid.isValid(newx, newy)) {
byte og = originalGrid.get(i, j);
//byte og = originalGrid.get(i, j);
int og = 0xFF & originalGrid.get(i, j);
byte v = translate[og];
if (v == -1) {
v = lookupKeyValue(originalKey[og]);
@ -871,7 +876,7 @@ public class WeatherGridData extends AbstractGridData implements INumpyable {
int numValues = values.getXdim() * values.getYdim();
byte[] bp = values.getBuffer().array();
for (int i = 0; i < numValues; i++) {
if (bp[i] + 1 > key.size()) {
if ((0xFF & bp[i]) > key.size() -1) {
throw new IllegalArgumentException(
"Illegal weather grid (bad values) in gridSet()");
}
@ -888,7 +893,7 @@ public class WeatherGridData extends AbstractGridData implements INumpyable {
for (int i = 0; i < dim.x; i++) {
for (int j = 0; j < dim.y; j++) {
if (points.get(i, j) == 1) {
grid.set(i, j, remap[values.get(i, j)]);
grid.set(i, j, remap[0xFF & values.get(i, j)]);
}
}
}
@ -912,7 +917,8 @@ public class WeatherGridData extends AbstractGridData implements INumpyable {
protected WeatherKey doGetWeatherValue(int x, int y) {
byte gridValue = getGrid().get(x, y);
return getKeys()[gridValue];
int gridValueIdx = 0xFF & gridValue;
return getKeys()[gridValueIdx];
}
/*
@ -1019,12 +1025,14 @@ public class WeatherGridData extends AbstractGridData implements INumpyable {
// check data values
byte[] data = grid.getBuffer().array();
WeatherKey[] keys = getKeys();
byte keySize = (byte) keys.length;
//byte keySize = (byte) keys.length;
int keySize = keys.length;
for (int j = 0; j < data.length; j++) {
if (data[j] > keySize) {
int value = 0xFF & data[j];
if (value > keySize) {
statusHandler.handle(Priority.PROBLEM, emsg + "Data="
+ (int) data[j] + " Min=0 Max=" + (int) keySize);
+ (int) value + " Min=0 Max=" + (int) keySize);
return false;
}
}

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

@ -100,7 +100,8 @@ import com.vividsolutions.jts.geom.Point;
* in pathcast.
* Oct 05, 2012 DR15429 Qinglu Lin Updated code to keep duplicate names of cities
* which are at different locations in pathcast.
* Oct 17, 2012 jsanchez Moved the path cast data collecting to a seperate class.
* Oct 17, 2012 jsanchez Moved the path cast data collecting to a separate class.
* Jan 31, 2013 1557 jsanchez Used allowDuplicates flag to collect points with duplicate names.
*
* </pre>
*
@ -618,6 +619,7 @@ public class Wx {
// All configs should have the same "isWithinPolygon" flag
boolean isWithinPolygon = pointConfigs[0].isWithinPolygon();
boolean allowDuplicates = pointConfigs[0].isAllowDuplicates();
// Sort by fields should have been validated to be same as well
List<String> fields = pointConfigs[0].getSortBy() != null ? Arrays
@ -702,12 +704,14 @@ public class Wx {
GeodeticCalculator gc = new GeodeticCalculator();
Map<String, ClosestPoint> nameMap = new HashMap<String, ClosestPoint>(
(int) (availablePoints.size() * 1.3));
List<ClosestPoint> pointsWithinDistance = new ArrayList<ClosestPoint>();
for (int i = 0; i < coords.length; ++i) {
Coordinate coord = localCoords[i];
Geometry localDistanceGeom = dimensions == 1 ? localSearchArea : gf
.createPoint(coord);
Geometry distanceGeom = dimensions == 1 ? searchArea : gf
.createPoint(coords[i]);
pointsWithinDistance.clear();
nameMap.clear();
for (ClosestPoint cp : availablePoints) {
@ -716,33 +720,31 @@ public class Wx {
double distance = localDistanceGeom.distance(localPt);
if (distance <= thresholdInMeters) {
// check map of currently added points for closer point with
// the same name
ClosestPoint existingPt = nameMap.get(cp.name);
if (existingPt == null || distance < existingPt.distance) {
// Set the distances
ClosestPoint cp2 = new ClosestPoint(cp);
cp2.distance = distance;
cp2.roundedDistance = (int) metersToDistance
.convert(distance);
gc.setStartingGeographicPoint(cp2.point.x, cp2.point.y);
Coordinate cen = distanceGeom.getCentroid()
.getCoordinate();
cen = GisUtil.restoreAlaskaLon(cen);
gc.setDestinationGeographicPoint(cen.x, cen.y);
cp2.azimuth = gc.getAzimuth();
cp2.oppositeAzimuth = ClosestPoint
.adjustAngle(cp2.azimuth + 180);
cp2.roundedAzimuth = GeoUtil.roundAzimuth(cp2.azimuth);
cp2.oppositeRoundedAzimuth = ClosestPoint
.adjustAngle(cp2.roundedAzimuth + 180);
nameMap.put(cp2.name, cp2);
if (allowDuplicates) {
// collect all points that are within the threshold
ClosestPoint cp2 = createClosestPoint(cp, distance,
metersToDistance, distanceGeom, gc);
pointsWithinDistance.add(cp2);
} else {
// check map of currently added points for closer point
// with the same name
ClosestPoint existingPt = nameMap.get(cp.name);
if (existingPt == null
|| distance < existingPt.distance) {
ClosestPoint cp2 = createClosestPoint(cp, distance,
metersToDistance, distanceGeom, gc);
nameMap.put(cp2.name, cp2);
}
}
}
}
List<ClosestPoint> pts = new ArrayList<ClosestPoint>(
nameMap.values());
List<ClosestPoint> pts = null;
if (allowDuplicates) {
pts = new ArrayList<ClosestPoint>(pointsWithinDistance);
} else {
pts = new ArrayList<ClosestPoint>(nameMap.values());
}
if (fields.isEmpty() == false) {
// Sort the points based on sortBy fields
Collections.sort(pts, new ClosestPointComparator(fields));
@ -817,6 +819,40 @@ public class Wx {
return null;
}
/**
* Helper method to create a ClosestPoint object.
*
* @param cp
* @param distance
* between the cp to the
* @param metersToDistance
* Unit converter to calculate the rounded distance.
* @param distanceGeom
* Geometry search area.
* @param gc
* Geodetic Calculator to determine the azimuth
* @return ClosestPoint object set with roundedDistance, azimuth, etc.
*/
private ClosestPoint createClosestPoint(ClosestPoint cp, double distance,
UnitConverter metersToDistance, Geometry distanceGeom,
GeodeticCalculator gc) {
// Set the distances
ClosestPoint cp2 = new ClosestPoint(cp);
cp2.distance = distance;
cp2.roundedDistance = (int) metersToDistance.convert(distance);
gc.setStartingGeographicPoint(cp2.point.x, cp2.point.y);
Coordinate cen = GisUtil.restoreAlaskaLon(distanceGeom.getCentroid()
.getCoordinate());
gc.setDestinationGeographicPoint(cen.x, cen.y);
cp2.azimuth = gc.getAzimuth();
cp2.oppositeAzimuth = ClosestPoint.adjustAngle(cp2.azimuth + 180);
cp2.roundedAzimuth = GeoUtil.roundAzimuth(cp2.azimuth);
cp2.oppositeRoundedAzimuth = ClosestPoint
.adjustAngle(cp2.roundedAzimuth + 180);
return cp2;
}
public double getMovementSpeed() {
return getMovementSpeed(null);
}

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

@ -54,6 +54,8 @@ import com.raytheon.uf.common.time.TimeRange;
* 01/29/2008 chammack Initial Creation.
* 02/13/2008 879 rbell Legacy conversion
* 06/10/2009 2159 rjpeter Updated checkDims to check grid for null
* 01/30/2013 15719 jdynina Allowed more than 128 char width wx
* string
* </pre>
*
* @author chammack
@ -233,8 +235,8 @@ public class DiscreteGridSlice extends AbstractGridSlice implements Cloneable {
byte[] thisData = grid.getBuffer().array();
byte[] rhsData = rhsGrid.getBuffer().array();
for (int i = 0; i < thisData.length; i++) {
if (!this.key[thisData[i]]
.equals(rhsDiscreteGridSlice.key[rhsData[i]])) {
if (!this.key[0xFF & thisData[i]]
.equals(rhsDiscreteGridSlice.key[0xFF & rhsData[i]])) {
return false;
}
}
@ -254,10 +256,11 @@ public class DiscreteGridSlice extends AbstractGridSlice implements Cloneable {
Grid2DByte discreteGrid = getDiscreteGrid();
byte[] b = discreteGrid.getBuffer().array();
for (int i = 0; i < b.length; i++) {
if (b[i] >= keyLength) {
int index = 0xFF & b[i];
if (index >= keyLength) {
return "Data Values Exceeded in Grid at coordinate: "
+ (i % discreteGrid.getXdim()) + ","
+ (i / discreteGrid.getXdim()) + " Value=" + b[i]
+ (i / discreteGrid.getXdim()) + " Value=" + index
+ " MinAllowed=0 MaxAllowed=" + (keyLength - 1);
}
}
@ -365,7 +368,7 @@ public class DiscreteGridSlice extends AbstractGridSlice implements Cloneable {
if (editArea.get(i, j) != 0) {
// Get the DiscreteKey from the source grid
byte dByte = gsDiscreteGrid.get(i, j);
DiscreteKey dKey = gs.key[dByte];
DiscreteKey dKey = gs.key[0xFF & dByte];
// See if this key already exists in target grid
boolean found = false;
byte keyIndex = 0;
@ -445,9 +448,9 @@ public class DiscreteGridSlice extends AbstractGridSlice implements Cloneable {
List<DiscreteKey> currentKeys = new ArrayList<DiscreteKey>(
Arrays.asList(this.key));
byte[] data = discreteGrid.getBuffer().array();
byte thisB;
int thisB;
for (int i = 0; i < data.length; i++) {
thisB = data[i];
thisB = 0xFF & data[i];
byte keyIndex;
if ((keyIndex = (byte) currentKeys.indexOf(gs.key[thisB])) != -1) {
data[i] = keyIndex;
@ -599,7 +602,7 @@ public class DiscreteGridSlice extends AbstractGridSlice implements Cloneable {
byte[] rhsB = gs.getDiscreteGrid().getBuffer().array();
byte[] b = bits.getBuffer().array();
for (int i = 0; i < thisB.length; i++) {
if (key[thisB[i]].equals(gs.key[rhsB[i]])) {
if (key[0xFF & thisB[i]].equals(gs.key[0xFF & rhsB[i]])) {
b[i] = (byte) 1;
}
}
@ -659,9 +662,9 @@ public class DiscreteGridSlice extends AbstractGridSlice implements Cloneable {
DiscreteKey newKey[] = new DiscreteKey[usedKeys.size()];
for (Iterator<Byte> usedKeysI = usedKeys.iterator(); usedKeysI
.hasNext(); keyIndex++) {
Byte thisByte = usedKeysI.next();
byte thisByte = usedKeysI.next();
discreteGrid.setAllOfValue(thisByte, (byte) keyIndex);
newKey[keyIndex] = key[thisByte.intValue()];
newKey[keyIndex] = key[0xFF & thisByte];
}
setDiscreteGrid(discreteGrid);

View file

@ -53,6 +53,7 @@ import com.raytheon.uf.common.time.TimeRange;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Mar 15, 2011 randerso Initial creation
* Jan 30, 2013 15719 jdynina Allowed more than 128 char wx string
*
* </pre>
*
@ -235,7 +236,8 @@ public class WeatherGridSlice extends AbstractGridSlice {
byte[] thisData = grid.getBuffer().array();
byte[] rhsData = rhsGrid.getBuffer().array();
for (int i = 0; i < thisData.length; i++) {
if (!this.keys[thisData[i]].equals(slice.keys[rhsData[i]])) {
if (!this.keys[0xFF & thisData[i]]
.equals(slice.keys[0xFF & rhsData[i]])) {
return false;
}
}
@ -255,10 +257,11 @@ public class WeatherGridSlice extends AbstractGridSlice {
Grid2DByte weatherGrid = getWeatherGrid();
byte[] b = weatherGrid.getBuffer().array();
for (int i = 0; i < b.length; i++) {
if (b[i] >= keyLength) {
int index = 0xFF & b[i];
if (index >= keyLength) {
return "Data Values Exceeded in Grid at coordinate: "
+ (i % weatherGrid.getXdim()) + ","
+ (i / weatherGrid.getXdim()) + " Value=" + b[i]
+ (i / weatherGrid.getXdim()) + " Value=" + index
+ " MinAllowed=0 MaxAllowed=" + (keyLength - 1);
}
}
@ -366,7 +369,7 @@ public class WeatherGridSlice extends AbstractGridSlice {
if (editArea.get(i, j) != 0) {
// Get the WeatherKey from the source grid
byte dByte = gsWeatherGrid.get(i, j);
WeatherKey dKey = gs.keys[dByte];
WeatherKey dKey = gs.keys[0xFF & dByte];
// See if this key already exists in target grid
boolean found = false;
byte keyIndex = 0;
@ -445,14 +448,16 @@ public class WeatherGridSlice extends AbstractGridSlice {
List<WeatherKey> currentKeys = new ArrayList<WeatherKey>(
Arrays.asList(this.keys));
byte[] b = weatherGrid.getBuffer().array();
for (int i = 0; i < b.length; i++) {
byte[] data = weatherGrid.getBuffer().array();
int thisB;
for (int i = 0; i < data.length; i++) {
thisB = 0xFF & data[i];
byte keyIndex;
if ((keyIndex = (byte) currentKeys.indexOf(gs.keys[b[i]])) != -1) {
b[i] = keyIndex;
if ((keyIndex = (byte) currentKeys.indexOf(gs.keys[thisB])) != -1) {
data[i] = keyIndex;
} else {
b[i] = (byte) currentKeys.size();
currentKeys.add(new WeatherKey(gs.keys[b[i]]));
data[i] = (byte) currentKeys.size();
currentKeys.add(new WeatherKey(gs.keys[thisB]));
}
}
@ -601,7 +606,7 @@ public class WeatherGridSlice extends AbstractGridSlice {
byte[] rhsB = gs.getWeatherGrid().getBuffer().array();
byte[] b = bits.getBuffer().array();
for (int i = 0; i < thisB.length; i++) {
if (keys[thisB[i]].equals(gs.keys[rhsB[i]])) {
if (keys[0xFF & thisB[i]].equals(gs.keys[0xFF & rhsB[i]])) {
b[i] = (byte) 1;
}
}
@ -644,7 +649,7 @@ public class WeatherGridSlice extends AbstractGridSlice {
// process the grid
for (int i = 0; i < weatherGrid.getXdim(); i++) {
for (int j = 0; j < weatherGrid.getYdim(); j++) {
used[weatherGrid.get(i, j)] = true;
used[0xFF & weatherGrid.get(i, j)] = true;
}
} // indicate used
@ -681,7 +686,8 @@ public class WeatherGridSlice extends AbstractGridSlice {
// now remap the data
for (int i = 0; i < weatherGrid.getXdim(); i++) {
for (int j = 0; j < weatherGrid.getYdim(); j++) {
weatherGrid.set(i, j, (byte) invMapping[weatherGrid.get(i, j)]);
weatherGrid.set(i, j,
(byte) invMapping[0xFF & weatherGrid.get(i, j)]);
}
}

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

@ -24,8 +24,7 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import junit.framework.Assert;
import org.junit.Assert;
import org.junit.Test;
import com.raytheon.uf.common.dataplugin.gfe.GridDataHistory;
@ -53,6 +52,7 @@ import com.vividsolutions.jts.geom.Coordinate;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* 02/27/2008 879 rbell Initial Creation.
* 01/30/2013 15719 jdynina Allowed more than 128 chars in wx string
*
* </pre>
*
@ -65,10 +65,149 @@ public class DiscreteGridSliceTest {
List<DiscreteKeyDef> dkd = new ArrayList<DiscreteKeyDef>();
{
dkd.add(new DiscreteKeyDef("<NoData>", "No Data"));
dkd.add(new DiscreteKeyDef("A", "Alpha"));
dkd.add(new DiscreteKeyDef("B", "Beta"));
dkd.add(new DiscreteKeyDef("A", "Alfa"));
dkd.add(new DiscreteKeyDef("B", "Bravo"));
dkd.add(new DiscreteKeyDef("C", "Charlie"));
dkd.add(new DiscreteKeyDef("D", "Delta"));
dkd.add(new DiscreteKeyDef("E", "Echo"));
dkd.add(new DiscreteKeyDef("F", "Foxtrot"));
dkd.add(new DiscreteKeyDef("G", "Golf"));
dkd.add(new DiscreteKeyDef("H", "Hotel"));
dkd.add(new DiscreteKeyDef("I", "India"));
dkd.add(new DiscreteKeyDef("J", "Juliet"));
dkd.add(new DiscreteKeyDef("K", "Kilo"));
dkd.add(new DiscreteKeyDef("L", "Lima"));
dkd.add(new DiscreteKeyDef("M", "Mike"));
dkd.add(new DiscreteKeyDef("N", "November"));
dkd.add(new DiscreteKeyDef("O", "Oscar"));
dkd.add(new DiscreteKeyDef("P", "Papa"));
dkd.add(new DiscreteKeyDef("Q", "Quebec"));
dkd.add(new DiscreteKeyDef("R", "Romeo"));
dkd.add(new DiscreteKeyDef("S", "Sierra"));
dkd.add(new DiscreteKeyDef("T", "Tango"));
dkd.add(new DiscreteKeyDef("U", "Uniform"));
dkd.add(new DiscreteKeyDef("V", "Victor"));
dkd.add(new DiscreteKeyDef("W", "Whiskey"));
dkd.add(new DiscreteKeyDef("X", "Xray"));
dkd.add(new DiscreteKeyDef("Y", "Yankee"));
dkd.add(new DiscreteKeyDef("Z", "Zulu"));
dkd.add(new DiscreteKeyDef("AA", "Alfa Alfa"));
dkd.add(new DiscreteKeyDef("AB", "Alfa Bravo"));
dkd.add(new DiscreteKeyDef("AC", "Alfa Charlie"));
dkd.add(new DiscreteKeyDef("AD", "Alfa Delta"));
dkd.add(new DiscreteKeyDef("AE", "Alfa Echo"));
dkd.add(new DiscreteKeyDef("AF", "Alfa Foxtrot"));
dkd.add(new DiscreteKeyDef("AG", "Alfa Golf"));
dkd.add(new DiscreteKeyDef("AH", "Alfa Hotel"));
dkd.add(new DiscreteKeyDef("AI", "Alfa India"));
dkd.add(new DiscreteKeyDef("AJ", "Alfa Juliet"));
dkd.add(new DiscreteKeyDef("AK", "Alfa Kilo"));
dkd.add(new DiscreteKeyDef("AL", "Alfa Lima"));
dkd.add(new DiscreteKeyDef("AM", "Alfa Mike"));
dkd.add(new DiscreteKeyDef("AN", "Alfa November"));
dkd.add(new DiscreteKeyDef("AO", "Alfa Oscar"));
dkd.add(new DiscreteKeyDef("AP", "Alfa Papa"));
dkd.add(new DiscreteKeyDef("AQ", "Alfa Quebec"));
dkd.add(new DiscreteKeyDef("AR", "Alfa Romeo"));
dkd.add(new DiscreteKeyDef("AS", "Alfa Sierra"));
dkd.add(new DiscreteKeyDef("AT", "Alfa Tango"));
dkd.add(new DiscreteKeyDef("AU", "Alfa Uniform"));
dkd.add(new DiscreteKeyDef("AV", "Alfa Victor"));
dkd.add(new DiscreteKeyDef("AW", "Alfa Whiskey"));
dkd.add(new DiscreteKeyDef("AX", "Alfa Xray"));
dkd.add(new DiscreteKeyDef("AY", "Alfa Yankee"));
dkd.add(new DiscreteKeyDef("AZ", "Alfa Zulu"));
dkd.add(new DiscreteKeyDef("BA", "Bravo Alfa"));
dkd.add(new DiscreteKeyDef("BB", "Bravo Bravo"));
dkd.add(new DiscreteKeyDef("BC", "Bravo Charlie"));
dkd.add(new DiscreteKeyDef("BD", "Bravo Delta"));
dkd.add(new DiscreteKeyDef("BE", "Bravo Echo"));
dkd.add(new DiscreteKeyDef("BF", "Bravo Foxtrot"));
dkd.add(new DiscreteKeyDef("BG", "Bravo Golf"));
dkd.add(new DiscreteKeyDef("BH", "Bravo Hotel"));
dkd.add(new DiscreteKeyDef("BI", "Bravo India"));
dkd.add(new DiscreteKeyDef("BJ", "Bravo Juliet"));
dkd.add(new DiscreteKeyDef("BK", "Bravo Kilo"));
dkd.add(new DiscreteKeyDef("BL", "Bravo Lima"));
dkd.add(new DiscreteKeyDef("BM", "Bravo Mike"));
dkd.add(new DiscreteKeyDef("BN", "Bravo November"));
dkd.add(new DiscreteKeyDef("BO", "Bravo Oscar"));
dkd.add(new DiscreteKeyDef("BP", "Bravo Papa"));
dkd.add(new DiscreteKeyDef("BQ", "Bravo Quebec"));
dkd.add(new DiscreteKeyDef("BR", "Bravo Romeo"));
dkd.add(new DiscreteKeyDef("BS", "Bravo Sierra"));
dkd.add(new DiscreteKeyDef("BT", "Bravo Tango"));
dkd.add(new DiscreteKeyDef("BU", "Bravo Uniform"));
dkd.add(new DiscreteKeyDef("BV", "Bravo Victor"));
dkd.add(new DiscreteKeyDef("BW", "Bravo Whiskey"));
dkd.add(new DiscreteKeyDef("BX", "Bravo Xray"));
dkd.add(new DiscreteKeyDef("BY", "Bravo Yankee"));
dkd.add(new DiscreteKeyDef("BZ", "Bravo Zulu"));
dkd.add(new DiscreteKeyDef("CA", "Charlie Alfa"));
dkd.add(new DiscreteKeyDef("CB", "Charlie Bravo"));
dkd.add(new DiscreteKeyDef("CC", "Charlie Charlie"));
dkd.add(new DiscreteKeyDef("CD", "Charlie Delta"));
dkd.add(new DiscreteKeyDef("CE", "Charlie Echo"));
dkd.add(new DiscreteKeyDef("CF", "Charlie Foxtrot"));
dkd.add(new DiscreteKeyDef("CG", "Charlie Golf"));
dkd.add(new DiscreteKeyDef("CH", "Charlie Hotel"));
dkd.add(new DiscreteKeyDef("CI", "Charlie India"));
dkd.add(new DiscreteKeyDef("CJ", "Charlie Juliet"));
dkd.add(new DiscreteKeyDef("CK", "Charlie Kilo"));
dkd.add(new DiscreteKeyDef("CL", "Charlie Lima"));
dkd.add(new DiscreteKeyDef("CM", "Charlie Mike"));
dkd.add(new DiscreteKeyDef("CN", "Charlie November"));
dkd.add(new DiscreteKeyDef("CO", "Charlie Oscar"));
dkd.add(new DiscreteKeyDef("CP", "Charlie Papa"));
dkd.add(new DiscreteKeyDef("CQ", "Charlie Quebec"));
dkd.add(new DiscreteKeyDef("CR", "Charlie Romeo"));
dkd.add(new DiscreteKeyDef("CS", "Charlie Sierra"));
dkd.add(new DiscreteKeyDef("CT", "Charlie Tango"));
dkd.add(new DiscreteKeyDef("CU", "Charlie Uniform"));
dkd.add(new DiscreteKeyDef("CV", "Charlie Victor"));
dkd.add(new DiscreteKeyDef("CW", "Charlie Whiskey"));
dkd.add(new DiscreteKeyDef("CX", "Charlie Xray"));
dkd.add(new DiscreteKeyDef("CY", "Charlie Yankee"));
dkd.add(new DiscreteKeyDef("CZ", "Charlie Zulu"));
dkd.add(new DiscreteKeyDef("DA", "Delta Alfa"));
dkd.add(new DiscreteKeyDef("DB", "Delta Bravo"));
dkd.add(new DiscreteKeyDef("DC", "Delta Charlie"));
dkd.add(new DiscreteKeyDef("DD", "Delta Delta"));
dkd.add(new DiscreteKeyDef("DE", "Delta Echo"));
dkd.add(new DiscreteKeyDef("DF", "Delta Foxtrot"));
dkd.add(new DiscreteKeyDef("DG", "Delta Golf"));
dkd.add(new DiscreteKeyDef("DH", "Delta Hotel"));
dkd.add(new DiscreteKeyDef("DI", "Delta India"));
dkd.add(new DiscreteKeyDef("DJ", "Delta Juliet"));
dkd.add(new DiscreteKeyDef("DK", "Delta Kilo"));
dkd.add(new DiscreteKeyDef("DL", "Delta Lima"));
dkd.add(new DiscreteKeyDef("DM", "Delta Mike"));
dkd.add(new DiscreteKeyDef("DN", "Delta November"));
dkd.add(new DiscreteKeyDef("DO", "Delta Oscar"));
dkd.add(new DiscreteKeyDef("DP", "Delta Papa"));
dkd.add(new DiscreteKeyDef("DQ", "Delta Quebec"));
dkd.add(new DiscreteKeyDef("DR", "Delta Romeo"));
dkd.add(new DiscreteKeyDef("DS", "Delta Sierra"));
dkd.add(new DiscreteKeyDef("DT", "Delta Tango"));
dkd.add(new DiscreteKeyDef("DU", "Delta Uniform"));
dkd.add(new DiscreteKeyDef("DV", "Delta Victor"));
dkd.add(new DiscreteKeyDef("DW", "Delta Whiskey"));
dkd.add(new DiscreteKeyDef("DX", "Delta Xray"));
dkd.add(new DiscreteKeyDef("DY", "Delta Yankee"));
dkd.add(new DiscreteKeyDef("DZ", "Delta Zulu"));
dkd.add(new DiscreteKeyDef("EA", "Echo Alfa"));
dkd.add(new DiscreteKeyDef("EB", "Echo Bravo"));
dkd.add(new DiscreteKeyDef("EC", "Echo Charlie"));
dkd.add(new DiscreteKeyDef("ED", "Echo Delta"));
dkd.add(new DiscreteKeyDef("EE", "Echo Echo"));
dkd.add(new DiscreteKeyDef("EF", "Echo Foxtrot"));
dkd.add(new DiscreteKeyDef("EG", "Echo Golf"));
dkd.add(new DiscreteKeyDef("EH", "Echo Hotel"));
dkd.add(new DiscreteKeyDef("EI", "Echo India"));
dkd.add(new DiscreteKeyDef("EJ", "Echo Juliet"));
dkd.add(new DiscreteKeyDef("EK", "Echo Kilo"));
dkd.add(new DiscreteKeyDef("EL", "Echo Lima"));
dkd.add(new DiscreteKeyDef("EM", "Echo Mike"));
}
String siteId = "XXX";
@ -127,8 +266,8 @@ public class DiscreteGridSliceTest {
private final DiscreteKey testDKA1[] = { this.testDK2 };
// /////////////////////////////////////////////////////////////////////////
private final byte testBA2[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15 };
private final byte testBA2[] = { -128, -127, -126, -125, -124, -123, -122,
-121, -120, -119, -118, -117, -116, -115, -114, -113 };
private final Grid2DByte testG2DB2 = new Grid2DByte(4, 4, this.testBA2);
@ -142,6 +281,38 @@ public class DiscreteGridSliceTest {
private final GridDataHistory testGDHA2[] = new GridDataHistory[1];
private final DiscreteKey testDKA2[] = { this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
this.testDK2, this.testDK2, this.testDK2, this.testDK2,
@ -259,11 +430,13 @@ public class DiscreteGridSliceTest {
public final void testCheckKeyAndData() {
DiscreteGridSlice test1 = new DiscreteGridSlice(this.testTR2,
this.testGPI2, this.testGDHA2, this.testG2DB2, this.testDKA2);
Assert.assertNull(test1.checkKeyAndData());
String result = test1.checkKeyAndData();
Assert.assertNull(result);
DiscreteGridSlice test2 = new DiscreteGridSlice(this.testTR2,
this.testGPI2, this.testGDHA2, this.testG2DB2,
new DiscreteKey[15]);
Assert.assertNotNull(test2.checkKeyAndData());
result = test2.checkKeyAndData();
Assert.assertNotNull(result);
}
/**

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

@ -26,6 +26,7 @@ import com.raytheon.uf.common.dataquery.requests.RequestableMetadataMarshaller;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Aug 17, 2011 mschenke Initial creation
* Jan 31, 2013 1557 jsanchez Added the XMLElement allowDuplicates.
*
* </pre>
*
@ -80,6 +81,9 @@ public class PointSourceConfiguration {
@XmlElement
private double distanceThreshold = 10;
@XmlElement
protected boolean allowDuplicates = false;
@XmlElementWrapper(name = "sortBy")
@XmlElement(name = "sort")
private String[] sortBy;
@ -173,4 +177,12 @@ public class PointSourceConfiguration {
this.type = type;
}
public boolean isAllowDuplicates() {
return allowDuplicates;
}
public void setAllowDuplicates(boolean allowDuplicates) {
this.allowDuplicates = allowDuplicates;
}
}

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

@ -54,6 +54,7 @@ import com.vividsolutions.jts.geom.Coordinate;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* 19Nov 2011 dhladky Initial creation
* 29 Jan 2013 15729 wkwock fix the algorithm
*
* </pre>
*
@ -122,11 +123,9 @@ public class FreezingLevel {
try {
resultPoint = PointUtil.determineExactIndex(
coor, crs, mapGeometry);
System.out.println("Freezing level -- lat,lon:"+coor+" = "+resultPoint);
return resultPoint;
} catch (Exception e) {
System.out.println("Error: Freezing level -- unable to find x,y coordinate for lat,lon:"+coor);
e.printStackTrace();
logger.error("Error: Freezing level -- unable to find x,y coordinate for lat,lon:"+coor);
}
return null;
}
@ -138,12 +137,12 @@ public class FreezingLevel {
* @return bi-linear interpolation amount the nearest 4 points
* @throws VizException
*/
public double getValue(String modelName, String prodType, Coordinate coor) {
public Double getValue(String modelName, String prodType, Coordinate coor) {
double value = -99999.0;
try {
//xyLoc is the location in x,y
DirectPosition2D xyLoc = findXYloc(coor, prodType);
//data from hdf5
ScanDataCache cache = ScanDataCache.getInstance();
GridRecord gribRec = cache.getModelData().getGridRecord(modelName, prodType);
@ -151,9 +150,11 @@ public class FreezingLevel {
//dimension of the record from hdf5, recNx =151 and recNy=113 during development
int recNx = gribRec.getSpatialObject().getNx();
int recNy = gribRec.getSpatialObject().getNy();
//get four nearest points/values form the record around xyLoc
xyLoc.y=xyLoc.y * 0.9941; //A special adjustment due to PointUtil.determineExactIndex
xyLoc.x=xyLoc.x * 0.9983; // is not as accurate as A1
int x0=(int)(xyLoc.x);
int x1=x0+1;
int y0=(int)(xyLoc.y);
@ -164,19 +165,19 @@ public class FreezingLevel {
double p3=xyLoc.y-y0;
double p4=1-p3;
double value2 = rec.getFloatData()[(recNx * y0) + x0];
double value3 = rec.getFloatData()[(recNx * y0) + x1];
double value0 = rec.getFloatData()[(recNx * y1) + x0];
double value1 = rec.getFloatData()[(recNx * y1) + x1];
double value0 = rec.getFloatData()[(recNx * y0) + x0];
double value1 = rec.getFloatData()[(recNx * y0) + x1];
double value2 = rec.getFloatData()[(recNx * y1) + x0];
double value3 = rec.getFloatData()[(recNx * y1) + x1];
//do a bi-linear interpolation amount the nearest 4 points
value = (p1*p4*value1)+(p2*p4*value0)+(p1*p3*value3)+(p2*p3*value2);
logger.info("bi-linear interpolation value: "+value+" "+value0+" "+value1+
" "+value2+" "+value3+" for coor:"+coor+" "+recNx+","+recNy);
logger.info("bi-linear interpolation: "+value+"-->("+value0+","+value1+
","+value2+","+value3+") at "+xyLoc);
} catch (Exception e) {
logger.error("No Grib value available....." + modelName + " "
+ prodType+" lat,lon:"+coor);
e.printStackTrace();
return null;
}
return value;
}
@ -219,9 +220,6 @@ public class FreezingLevel {
int foundValFlag=-1;//-1=all ghValue and tValue are null,
//0=all ghValue<=-9000 and tValue<=273.16, 1=found a fLevel
System.out
.println("********** Starting Freezing Level Calculations *****************");
TreeSet<Integer> ts= new TreeSet<Integer>(ghValues.keySet());//want an asc sorted list
Iterator<Integer> it = ts.iterator();
@ -231,8 +229,6 @@ public class FreezingLevel {
Double tValue = tValues.get(level);
Double ghValue = ghValues.get(level);
System.out.println("GH Value: " + ghValue + " TValue: "
+ tValue);
if (ghValue != null && tValue != null && foundValFlag ==-1){
foundValFlag=0;
@ -245,14 +241,13 @@ public class FreezingLevel {
.get(ktopLevel) - ghValue) * ((273.16 - tValues
.get(jtopLevel)) / (tValue - tValues
.get(jtopLevel))))) * .00328;
System.out.println("Formula:");
System.out.println("(" + ghValues.get(ktopLevel)
logger.error("***Freezing level: "+fLevel+"="
+ "(" + ghValues.get(ktopLevel)
+ " - ((" + ghValues.get(ktopLevel) + " - "
+ ghValue + ") * ((273.16 - "
+ tValues.get(jtopLevel) + ") / (" + tValue
+ " - " + tValues.get(jtopLevel)
+ ")))) * .00328");
System.out.println("*** FreezingLevel = " + fLevel);
foundValFlag=1;
freezingMap.put(coor, fLevel.floatValue());
break;
@ -265,11 +260,8 @@ public class FreezingLevel {
if (foundValFlag==0) {//this means all tValue are <= 273.16
freezingMap.put(coor, 0.0f);
System.out.println("*** FreezingLevel = 0.0");
logger.error("*** FreezingLevel = 0.0");
}
System.out
.println("********** Finished Freezing Level Calculations *****************");
}
return freezingMap;
@ -357,7 +349,7 @@ public class FreezingLevel {
paramXML.setModelName(model);
paramXML.setParameterName(param);
String sql = getSQL(interval, model, param, refTime);
System.out.println("Freezing level sql="+sql);
logger.info("Freezing level sql="+sql);
GridRecord modelRec = DATUtils.getMostRecentGridRecord(interval, sql,
paramXML);

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()]);
}