Updated Obs/Surface Menu

-Changed the menu name from "Obs" to "Surface"
-Added in previous java code to plot/display the Surface Temps
-Added in previous bundles
-Combined the METAR/Synoptic plots to one menu (like in v18)
-Removed local data
-Removed mping (local data)
-Added in previous svg files needed for plotting
This commit is contained in:
ucar-tmeyer 2023-02-06 20:59:04 +00:00
parent e8ba091657
commit 7a38489e53
27 changed files with 3061 additions and 464 deletions

View file

@ -22,7 +22,7 @@
<plugin>
<extension point="org.eclipse.ui.menus">
<menuContribution locationURI="menu:org.eclipse.ui.main.menu?after=d2d.obsMenu">
<menu id="obs" label="Obs" mnemonic="O">
<menu id="obs" label="Surface" mnemonic="O">
<visibleWhen>
<reference
definitionId="com.raytheon.uf.viz.d2d.ui.inD2DActionSet">
@ -32,42 +32,9 @@
</separator>
<separator name="EndOfInitial" visible="true">
</separator>
<command commandId="com.raytheon.viz.ui.actions.titleAction"
label="------ METAR ------">
</command>
<separator name="METAR" visible="false">
</separator>
<separator name="EndOfMetar" visible="true">
</separator>
<command commandId="com.raytheon.viz.ui.actions.titleAction"
label="------ Synoptic ------">
</command>
<separator name="SYNOPTIC" visible="false">
</separator>
<separator name="EndOfSynoptic" visible="true">
</separator>
<command commandId="com.raytheon.viz.ui.actions.titleAction"
label="------ Local data ------">
</command>
<separator name="LocalData" visible="false">
</separator>
<separator name="CollectionDissemSep" visible="false">
</separator>
<separator name="EndOfLocalData" visible="true">
</separator>
<command commandId="com.raytheon.viz.ui.actions.titleAction"
label="------ Maritime ------" id="MARITIME">
</command>
<separator name="EndOfMaritime" visible="true">
</separator>
<command commandId="com.raytheon.viz.ui.actions.titleAction"
label="------ Hazards ------">
</command>
<separator name="HAZARDS" visible="false" />
<separator name="LIGHTNINGPLACEHOLDER"
visible="false" />
<separator name="FOGPLACEHOLDER" visible="false" />
<separator name="SNOWPLACEHOLDER" visible="false" />
<separator name="EndOfHazards" visible="true">
</separator>
</menu>

View file

@ -1,31 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<!--
This is an absolute override file, indicating that a higher priority
version of the file will completely replace a lower priority version
of the file.
-->
<menuTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<contribute xsi:type="command" menuText="Collection/Dissemination..." id="CollectionDissemination"
commandId="com.raytheon.uf.viz.app.launcher.appLauncherHandler">
<parameter key="bundleLocation" value="bundles/run-ldadScheduler.xml" />
</contribute>
</menuTemplate>

View file

@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<!--
This is an absolute override file, indicating that a higher priority
version of the file will completely replace a lower priority version
of the file.
-->
<menuContributionFile>
<include installTo="menu:obs?after=CollectionDissemSep" fileName="menus/app-obs/baseCollectDissem.xml" />
</menuContributionFile>

View file

@ -44,6 +44,10 @@
<binOffset posOffset="450" negOffset="450"
virtualOffset="0" />
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="METAR"
constraintType="EQUALS" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="obs"
constraintType="EQUALS" />

View file

@ -0,0 +1,460 @@
<?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.
-->
<bundle>
<displayList>
<displays xsi:type="d2DMapRenderableDisplay"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<descriptor xsi:type="mapDescriptor" currentAnimationMode="Temporal">
<!--CLOUD STUFF -->
<!--TRANSPARENT CLOUD STUFF -->
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#18D928"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.0"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Transparent Cloud Base"
plotModelFile="coloredObsTransCloudDesign.svg" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="900" negOffset="900" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="METAR,SPECI" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="obs" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<!--OBSCURED CLOUD STUFF -->
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#18D928"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.0"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Obscured Cloud Base VFR"
plotModelFile="coloredObsObscVFRCloudDesign.svg" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="900" negOffset="900" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="METAR,SPECI" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="obs" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#008FFF"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.25"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Obscured Cloud Base MVFR"
plotModelFile="coloredObsObscMVFRCloudDesign.svg" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="900" negOffset="900" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="METAR,SPECI" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="obs" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#DE1B31"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.25"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Obscured Cloud Base IFR"
plotModelFile="coloredObsObscIFRCloudDesign.svg" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="900" negOffset="900" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="METAR,SPECI" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="obs" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#E31BBE"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.25"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Obscured Cloud Base LIFR"
plotModelFile="coloredObsObscLIFRCloudDesign.svg" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="900" negOffset="900" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="METAR,SPECI" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="obs" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<!-- VISIBILITY STUFF -->
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#18D928"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.00"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Visibility VFR"
plotModelFile="coloredObsVisDesignVFR.svg" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="900" negOffset="900" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="METAR,SPECI" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="obs" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#008FFF"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.25"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Visibility MVFR"
plotModelFile="coloredObsVisDesignMVFR.svg" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="900" negOffset="900" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="METAR,SPECI" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="obs" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#DE1B31"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.25"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Visibility IFR"
plotModelFile="coloredObsVisDesignIFR.svg" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="900" negOffset="900" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="METAR,SPECI" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="obs" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#E31BBE"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.25"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Visibility LIFR"
plotModelFile="coloredObsVisDesignLIFR.svg" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="900" negOffset="900" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="METAR,SPECI" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="obs" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<!--PEAK WIND STUFF -->
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#DE1B31"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.25"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Pk Wind > 50 kts"
plotModelFile="coloredObsPkWindDesign.svg" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true"
lowerLimit="50">
<binOffset posOffset="900" negOffset="900" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="METAR,SPECI" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="obs" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#FFFF00"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.25"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Pk Wind > 35 kts"
plotModelFile="coloredObsPkWindDesign.svg" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true"
lowerLimit="35" upperLimit="49">
<binOffset posOffset="900" negOffset="900" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="METAR,SPECI" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="obs" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#18D928"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.00"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Pk Wind"
plotModelFile="coloredObsPkWindDesign.svg" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true"
upperLimit="34">
<binOffset posOffset="900" negOffset="900" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="METAR,SPECI" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="obs" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<!--WIND & GUST STUFF -->
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#DE1B31"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.25"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Wind or Gst > 50 kts"
plotModelFile="coloredObsWind50PDesign.svg" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="900" negOffset="900" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="METAR,SPECI" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="obs" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#FFFF00"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.25"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Wind or Gst > 35 kts"
plotModelFile="coloredObsWind30T50Design.svg" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="900" negOffset="900" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="METAR,SPECI" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="obs" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#18D928"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.00"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Wind"
plotModelFile="coloredObsWindLowDesign.svg" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="900" negOffset="900" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="METAR,SPECI" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="obs" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<!-- WX STUFF -->
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#18D928"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.00"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Wx Plot"
plotModelFile="coloredObsWxDesign.svg" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="900" negOffset="900" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="METAR,SPECI" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="obs" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
</descriptor>
</displays>
</displayList>
</bundle>

View file

@ -0,0 +1,327 @@
<?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.
-->
<bundle>
<displayList>
<displays xsi:type="d2DMapRenderableDisplay"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<descriptor xsi:type="mapDescriptor" currentAnimationMode="Temporal">
<!-- WX STUFF -->
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#18D928"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.00"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Wx"
plotModelFile="${wxplot}" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="1800" negOffset="1800" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<!--WIND & GUST STUFF -->
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#18D928"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.00"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Sus/Gst (&lt; 20 kts)"
plotModelFile="${wndmarlow}" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="1800" negOffset="1800" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#FFFF00"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.0"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Sus/Gst SC.Y (> 20 kts)"
plotModelFile="${wnd20T34}" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="1800" negOffset="1800" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#DE1B31"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.0"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Sus/Gst GL.W (> 34 kts)"
plotModelFile="${wnd34T48}" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="1800" negOffset="1800" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#E31BBE"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.0"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Sus/Gst SR.W (> 48 kts)"
plotModelFile="${wnd48T64}" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="1800" negOffset="1800" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#870FFF"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.0"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Sus/Gst HF.W (> 64 kts)"
plotModelFile="${wnd64P}" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="1800" negOffset="1800" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<!--PEAK WIND STUFF --><resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#18D928"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.00"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Pk (&lt; 20 kts)"
plotModelFile="${pkwnd}" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true"
upperLimit="10.19">
<binOffset posOffset="1800" negOffset="1800" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#FFFF00"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.00"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Pk SC.Y (> 20 kts)"
plotModelFile="${pkwnd}" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true"
lowerLimit="10.20" upperLimit="17.49">
<binOffset posOffset="1800" negOffset="1800" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#DE1B31"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.00"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Pk GL.W (> 34 kts)"
plotModelFile="${pkwnd}" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true"
lowerLimit="17.50" upperLimit="24.69">
<binOffset posOffset="1800" negOffset="1800" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#E31BBE"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.00"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Pk SR.W (> 48 kts)"
plotModelFile="${pkwnd}" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true"
lowerLimit="24.70" upperLimit="32.99">
<binOffset posOffset="1800" negOffset="1800" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#870FFF"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.00"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Pk HF.W (> 64 kts)"
plotModelFile="${pkwnd}" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true"
lowerLimit="33.00">
<binOffset posOffset="1800" negOffset="1800" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
</descriptor>
</displays>
</displayList>
</bundle>

View file

@ -0,0 +1,299 @@
<?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.
-->
<bundle>
<displayList>
<displays xsi:type="d2DMapRenderableDisplay"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<descriptor xsi:type="mapDescriptor" currentAnimationMode="Temporal">
<!-- WX STUFF -->
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#18D928"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.00"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Wx"
plotModelFile="${wxplot}" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="${offset}" negOffset="${offset}" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<!--CLOUD STUFF -->
<!--TRANSPARENT CLOUD STUFF -->
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#18D928"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.0"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Transparent Cloud Base"
plotModelFile="${transsky}" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="${offset}" negOffset="${offset}" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<!--OBSCURED CLOUD STUFF -->
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#18D928"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.0"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="VFR Cigs"
plotModelFile="${obscvfr}" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="${offset}" negOffset="${offset}" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#008FFF"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.0"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="MVFR Cigs"
plotModelFile="${obscmvfr}" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="${offset}" negOffset="${offset}" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#DE1B31"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.0"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="IFR Cigs"
plotModelFile="${obscifr}" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="${offset}" negOffset="${offset}" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#E31BBE"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.0"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="LIFR Cigs"
plotModelFile="${obsclifr}" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="${offset}" negOffset="${offset}" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<!-- VISIBILITY STUFF -->
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#18D928"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.00"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="VFR Visby"
plotModelFile="coloredObsVisDesignVFR.svg" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="${offset}" negOffset="${offset}" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#008FFF"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.0"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="MVFR Visby"
plotModelFile="coloredObsVisDesignMVFR.svg" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="${offset}" negOffset="${offset}" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#DE1B31"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.0"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="IFR Visby"
plotModelFile="coloredObsVisDesignIFR.svg" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="${offset}" negOffset="${offset}" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#E31BBE"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.0"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="LIFR Visby"
plotModelFile="coloredObsVisDesignLIFR.svg" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="${offset}" negOffset="${offset}" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
</descriptor>
</displays>
</displayList>
</bundle>

View file

@ -0,0 +1,222 @@
<?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.
-->
<bundle>
<displayList>
<displays xsi:type="d2DMapRenderableDisplay"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<descriptor xsi:type="mapDescriptor" currentAnimationMode="Temporal">
<!-- WX STUFF -->
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#18D928"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.00"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Wx"
plotModelFile="${wxplot}" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="900" negOffset="900" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<!--WIND & GUST STUFF -->
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#18D928"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.00"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Sus/Gst &lt; 35 kts"
plotModelFile="${wndobslow}" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="900" negOffset="900" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#FFFF00"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.0"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Sus/Gst > 35 kts"
plotModelFile="${wnd30T50}" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="900" negOffset="900" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#DE1B31"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.0"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Sus/Gst > 50 kts"
plotModelFile="${wnd50P}" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="900" negOffset="900" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<!--PEAK WIND STUFF -->
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#18D928"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.00"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Pk &lt; 35 kts"
plotModelFile="${pkwnd}" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true"
upperLimit="34">
<binOffset posOffset="900" negOffset="900" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#FFFF00"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.00"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Pk > 35 kts"
plotModelFile="${pkwnd}" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true"
lowerLimit="35" upperLimit="49">
<binOffset posOffset="900" negOffset="900" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability" colorAsString="#DE1B31"/>
<capability xsi:type="densityCapability" density="2.0"/>
<capability xsi:type="magnificationCapability" magnification="1.00"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Pk > 50 kts"
plotModelFile="${pkwnd}" spiFile="basemaps/MTR.spi"
retrieveData="false" isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true"
lowerLimit="50">
<binOffset posOffset="900" negOffset="900" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="${reptype}" constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="${plgn}" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
</descriptor>
</displays>
</displayList>
</bundle>

View file

@ -28,20 +28,6 @@
<displays xsi:type="d2DMapRenderableDisplay"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<descriptor xsi:type="mapDescriptor">
<resource>
<loadProperties>
<capabilities>
<capability xsi:type="colorableCapability"
colorAsString="#9b9b9b" />
</capabilities>
</loadProperties>
<properties isMapLayer="true"/>
<resourceData xsi:type="spiResourceData"
pixelSizeHint="45">
<filename>basemaps/MTR.spi</filename>
<mapName>METAR Station Locations</mapName>
</resourceData>
</resource>
<resource>
<loadProperties>
<capabilities/>

View file

@ -36,8 +36,7 @@
isBlinking="false" isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="metarPrecipResourceData"
duration="${duration}" ptype="${ptype}"
plotSource="${legend}" retrieveData="false"
duration="${duration}" retrieveData="false"
isUpdatingOnMetadataOnly="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="${posOffset}"

View file

@ -29,7 +29,12 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<descriptor xsi:type="mapDescriptor">
<resource>
<loadProperties loadWithoutData="true" />
<loadProperties loadWithoutData="true">
<capabilities>
<capability xsi:type="magnificationCapability" magnification="1.25"/>
<capability xsi:type="densityCapability" density="99999.0"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false"
isBlinking="false" isMapLayer="false" isHoverOn="false"
isVisible="true" />

View file

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<bundle>
<displayList>
<displays xsi:type="d2DMapRenderableDisplay"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<descriptor xsi:type="mapDescriptor" currentAnimationMode="Temporal">
<resource>
<loadProperties loadWithoutData="true">
<capabilities>
<capability xsi:type="outlineCapability" outlineWidth="1" outlineOn="true" lineStyle="DEFAULT"/>
<capability xsi:type="magnificationCapability" magnification="1.5"/>
<capability xsi:type="densityCapability" density="3"/>
<capability xsi:type="colorableCapability" colorAsString="white"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="metarTempResourceData" plotSource="Surface Temps [F]"
plotModelFile="colorTemp.svg" spiFile="basemaps/MTR.spi"
isUpdatingOnMetadataOnly="true" retrieveData="false"
isRequeryNecessaryOnTimeMatch="true" isTopOfTheHour="true" pixelSizeHint="45">
<binOffset posOffset="600" negOffset="600" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="METAR" constraintType="EQUALS" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="obs" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
</descriptor>
</displays>
</displayList>
</bundle>

View file

@ -0,0 +1,55 @@
<?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.
-->
<bundle>
<displayList>
<displays xsi:type="d2DMapRenderableDisplay"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<descriptor xsi:type="mapDescriptor" currentAnimationMode="Temporal">
<resource>
<loadProperties loadWithoutData="true">
<capabilities>
<capability xsi:type="outlineCapability" outlineWidth="1" outlineOn="true" lineStyle="DEFAULT"/>
<capability xsi:type="densityCapability" density="1.5"/>
<capability xsi:type="colorableCapability" colorAsString="white"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Surface Pressures [mb]"
plotModelFile="mslp.svg" spiFile="basemaps/MTR.spi"
isUpdatingOnMetadataOnly="true" retrieveData="false"
isRequeryNecessaryOnTimeMatch="true" isTopOfTheHour="true" pixelSizeHint="45">
<binOffset posOffset="600" negOffset="600" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="METAR" constraintType="EQUALS" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="obs" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
</descriptor>
</displays>
</displayList>
</bundle>

View file

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<bundle>
<displayList>
<displays xsi:type="d2DMapRenderableDisplay"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<descriptor xsi:type="mapDescriptor" currentAnimationMode="Temporal">
<resource>
<loadProperties loadWithoutData="true">
<capabilities>
</capabilities>
<resourceType>PLAIN_VIEW</resourceType>
</loadProperties>
<resourceData xsi:type="plotBlendedResourceData">
<resource>
<loadProperties loadWithoutData="true">
<capabilities>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="METAR"
plotModelFile="stdObsDesign.svg" spiFile="basemaps/MTR.spi"
isUpdatingOnMetadataOnly="true" retrieveData="false"
isRequeryNecessaryOnTimeMatch="true" isTopOfTheHour="true" pixelSizeHint="45">
<binOffset posOffset="600" negOffset="600" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="METAR" constraintType="EQUALS" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="obs" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
</resourceData>
</resource>
</descriptor>
</displays>
</displayList>
</bundle>

View file

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<bundle>
<displayList>
<displays xsi:type="d2DMapRenderableDisplay"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<descriptor xsi:type="mapDescriptor" currentAnimationMode="Temporal">
<resource>
<loadProperties loadWithoutData="true">
<capabilities>
<capability xsi:type="outlineCapability" outlineWidth="1" outlineOn="true" lineStyle="DEFAULT"/>
<capability xsi:type="magnificationCapability" magnification="1.25"/>
<capability xsi:type="densityCapability" density="2"/>
<capability xsi:type="colorableCapability" colorAsString="white"/>
</capabilities>
</loadProperties>
<properties isSystemResource="false" isBlinking="false"
isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData" plotSource="Surface Winds"
plotModelFile="windDesign.svg" spiFile="basemaps/MTR.spi"
isUpdatingOnMetadataOnly="true" retrieveData="false"
isRequeryNecessaryOnTimeMatch="true" isTopOfTheHour="true" pixelSizeHint="45">
<binOffset posOffset="1800" negOffset="1800" virtualOffset="0"/>
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="METAR" constraintType="EQUALS" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="obs" constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
</descriptor>
</displays>
</displayList>
</bundle>

View file

@ -80,6 +80,52 @@
<mapName>Fixed Buoy Locations</mapName>
</resourceData>
</resource>
<resource>
<loadProperties loadWithoutData="true" />
<properties isSystemResource="false"
isBlinking="false" isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData"
plotSource="Moving Maritime Plot" plotModelFile="maritimeDesign.svg"
isUpdatingOnMetadataOnly="true" retrieveData="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="1800" negOffset="1800"
virtualOffset="0" />
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="1006, 1003"
constraintType="IN" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="sfcobs"
constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
<resource>
<loadProperties loadWithoutData="true" />
<properties isSystemResource="false"
isBlinking="false" isMapLayer="false" isHoverOn="false"
isVisible="true" />
<resourceData xsi:type="plotResourceData"
plotSource="Moving MAROB Plot" plotModelFile="maritimeDesign.svg"
isUpdatingOnMetadataOnly="true" retrieveData="false"
isRequeryNecessaryOnTimeMatch="true">
<binOffset posOffset="1800" negOffset="1800"
virtualOffset="0" />
<metadataMap>
<mapping key="reportType">
<constraint constraintValue="1007"
constraintType="EQUALS" />
</mapping>
<mapping key="pluginName">
<constraint constraintValue="sfcobs"
constraintType="EQUALS" />
</mapping>
</metadataMap>
</resourceData>
</resource>
</descriptor>
</displays>
</displayList>

View file

@ -1,173 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<!--
This is an absolute override file, indicating that a higher priority
version of the file will completely replace a lower priority version
of the file.
-->
<menuTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<contribute xsi:type="subMenu" menuText="mPING">
<contribute xsi:type="titleItem"
titleText="------ mPING 5 Minute Plots ------" id="MpingLine" />
<contribute xsi:type="bundleItem" file="bundles/mping/MpingPlotAll.xml"
menuText="mPING Plot All" id="MpingPlotAll">
<substitute key="svg" value="mpingPlotDesign.svg" />
<substitute key="legend" value="mPING All 5min" />
<substitute key="posOffset" value="0" />
<substitute key="negOffset" value="300" />
</contribute>
<contribute xsi:type="bundleItem"
file="bundles/mping/MpingPlotCategory.xml" menuText="Rain/Snow"
id="MpingPlotRainSnow">
<substitute key="svg" value="mpingPlotDesign.svg" />
<substitute key="legend" value="mPING Rain/Snow 5min" />
<substitute key="posOffset" value="0" />
<substitute key="negOffset" value="300" />
<substitute key="category" value="Rain/Snow" />
</contribute>
<contribute xsi:type="bundleItem"
file="bundles/mping/MpingPlotCategory.xml" menuText="Hail"
id="MpingPlotHail">
<substitute key="svg" value="mpingPlotDesign.svg" />
<substitute key="legend" value="mPING Hail 5min" />
<substitute key="posOffset" value="0" />
<substitute key="negOffset" value="300" />
<substitute key="category" value="Hail" />
</contribute>
<contribute xsi:type="bundleItem"
file="bundles/mping/MpingPlotCategory.xml" menuText="Wind Damage"
id="MpingPlotWindDamage">
<substitute key="svg" value="mpingPlotDesign.svg" />
<substitute key="legend" value="mPING Wind Damage 5min" />
<substitute key="posOffset" value="0" />
<substitute key="negOffset" value="300" />
<substitute key="category" value="Wind Damage" />
</contribute>
<contribute xsi:type="bundleItem"
file="bundles/mping/MpingPlotCategory.xml" menuText="Tornado"
id="MpingPlotTornado">
<substitute key="svg" value="mpingPlotDesign.svg" />
<substitute key="legend" value="mPING Tornado 5min" />
<substitute key="posOffset" value="0" />
<substitute key="negOffset" value="300" />
<substitute key="category" value="Tornado" />
</contribute>
<contribute xsi:type="bundleItem"
file="bundles/mping/MpingPlotCategory.xml" menuText="Flood"
id="MpingPlotFlood">
<substitute key="svg" value="mpingPlotDesign.svg" />
<substitute key="legend" value="mPING Flood 5min" />
<substitute key="posOffset" value="0" />
<substitute key="negOffset" value="300" />
<substitute key="category" value="Flood" />
</contribute>
<contribute xsi:type="bundleItem"
file="bundles/mping/MpingPlotCategory.xml" menuText="Mudslide"
id="MpingPlotMudslide">
<substitute key="svg" value="mpingPlotDesign.svg" />
<substitute key="legend" value="mPING Mudslide 5min" />
<substitute key="posOffset" value="0" />
<substitute key="negOffset" value="300" />
<substitute key="category" value="Mudslide" />
</contribute>
<contribute xsi:type="bundleItem"
file="bundles/mping/MpingPlotCategory.xml" menuText="Reduced Visibility"
id="MpingPlotReducedVisibility">
<substitute key="svg" value="mpingPlotDesign.svg" />
<substitute key="legend" value="mPING Reduced Visibility 5min" />
<substitute key="posOffset" value="0" />
<substitute key="negOffset" value="300" />
<substitute key="category" value="Reduced Visibility" />
</contribute>
<contribute xsi:type="titleItem"
titleText="------ mPING 30 Minute Plots ------" id="MpingLine" />
<contribute xsi:type="bundleItem" file="bundles/mping/MpingPlotAll.xml"
menuText="mPING Plot All" id="MpingPlotAll">
<substitute key="svg" value="mpingPlotDesign.svg" />
<substitute key="legend" value="mPING All 30min" />
<substitute key="posOffset" value="300" />
<substitute key="negOffset" value="1500" />
</contribute>
<contribute xsi:type="bundleItem"
file="bundles/mping/MpingPlotCategory.xml" menuText="Rain/Snow"
id="MpingPlotRainSnow">
<substitute key="svg" value="mpingPlotDesign.svg" />
<substitute key="legend" value="mPING Rain/Snow 30min" />
<substitute key="posOffset" value="300" />
<substitute key="negOffset" value="1500" />
<substitute key="category" value="Rain/Snow" />
</contribute>
<contribute xsi:type="bundleItem"
file="bundles/mping/MpingPlotCategory.xml" menuText="Hail"
id="MpingPlotHail">
<substitute key="svg" value="mpingPlotDesign.svg" />
<substitute key="legend" value="mPING Hail 30min" />
<substitute key="posOffset" value="300" />
<substitute key="negOffset" value="1500" />
<substitute key="category" value="Hail" />
</contribute>
<contribute xsi:type="bundleItem"
file="bundles/mping/MpingPlotCategory.xml" menuText="Wind Damage"
id="MpingPlotWindDamage">
<substitute key="svg" value="mpingPlotDesign.svg" />
<substitute key="legend" value="mPING Wind Damage 30min" />
<substitute key="posOffset" value="300" />
<substitute key="negOffset" value="1500" />
<substitute key="category" value="Wind Damage" />
</contribute>
<contribute xsi:type="bundleItem"
file="bundles/mping/MpingPlotCategory.xml" menuText="Tornado"
id="MpingPlotTornado">
<substitute key="svg" value="mpingPlotDesign.svg" />
<substitute key="legend" value="mPING Tornado 30min" />
<substitute key="posOffset" value="300" />
<substitute key="negOffset" value="1500" />
<substitute key="category" value="Tornado" />
</contribute>
<contribute xsi:type="bundleItem"
file="bundles/mping/MpingPlotCategory.xml" menuText="Flood"
id="MpingPlotFlood">
<substitute key="svg" value="mpingPlotDesign.svg" />
<substitute key="legend" value="mPING Flood 30min" />
<substitute key="posOffset" value="300" />
<substitute key="negOffset" value="1500" />
<substitute key="category" value="Flood" />
</contribute>
<contribute xsi:type="bundleItem"
file="bundles/mping/MpingPlotCategory.xml" menuText="Mudslide"
id="MpingPlotMudslide">
<substitute key="svg" value="mpingPlotDesign.svg" />
<substitute key="legend" value="mPING Mudslide 30min" />
<substitute key="posOffset" value="300" />
<substitute key="negOffset" value="1500" />
<substitute key="category" value="Mudslide" />
</contribute>
<contribute xsi:type="bundleItem"
file="bundles/mping/MpingPlotCategory.xml" menuText="Reduced Visibility"
id="MpingPlotReducedVisibility">
<substitute key="svg" value="mpingPlotDesign.svg" />
<substitute key="legend" value="mPING Reduced Visibility 30min" />
<substitute key="posOffset" value="300" />
<substitute key="negOffset" value="1500" />
<substitute key="category" value="Reduced Visibility" />
</contribute>
</contribute>
</menuTemplate>

View file

@ -1,29 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<!--
This is an absolute override file, indicating that a higher priority
version of the file will completely replace a lower priority version
of the file.
-->
<menuContributionFile>
<include installTo="menu:obs?before=CollectionDissemSep"
fileName="menus/mping/baseMPing.xml" />
</menuContributionFile>

View file

@ -1,122 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<!--
This is an absolute override file, indicating that a higher priority
version of the file will completely replace a lower priority version
of the file.
-->
<menuTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<contribute xsi:type="bundleItem" file="bundles/LDADMesoPlot.xml"
menuText="30 min stn plot" id="local30minstnplot">
<substitute key="svg" value="ldadMesoDesign.svg" />
<substitute key="legend" value="30 min Local Data Plot" />
<substitute key="posOffset" value="900" />
<substitute key="negOffset" value="900" />
</contribute>
<contribute xsi:type="bundleItem" file="bundles/LDADMesoQCPlot.xml"
menuText="30 min stn plot + QC" id="local30minstnQCplot">
<substitute key="svgPrefix" value="ldadQC" />
<substitute key="legend" value="30 min LDAD QC Plot" />
<substitute key="posOffset" value="900" />
<substitute key="negOffset" value="900" />
<substitute key="plugin" value="qc" />
<substitute key="qcType" value="ldadmesonet" />
</contribute>
<contribute xsi:type="subMenu" menuText="Other Local Plots">
<contribute xsi:type="bundleItem" file="bundles/LDADMesoPlot.xml"
menuText="15 min stn plot" id="local15minstnplot">
<substitute key="svg" value="ldadMesoDesign.svg" />
<substitute key="legend" value="15 min Local Data Plot" />
<substitute key="posOffset" value="450" />
<substitute key="negOffset" value="450" />
</contribute>
<contribute xsi:type="bundleItem" file="bundles/LDADMesoQCPlot.xml"
menuText="15 min stn plot + QC" id="local15minstnQCplot">
<substitute key="svgPrefix" value="ldadQC" />
<substitute key="legend" value="15 min LDAD QC Plot" />
<substitute key="posOffset" value="450" />
<substitute key="negOffset" value="450" />
<substitute key="plugin" value="qc" />
<substitute key="qcType" value="ldadmesonet" />
</contribute>
<contribute xsi:type="bundleItem" file="bundles/LDADMesoPlot.xml"
menuText="5 min stn plot" id="local5minstnplot">
<substitute key="svg" value="ldadMesoDesign.svg" />
<substitute key="legend" value="5 min Local Data Plot" />
<substitute key="posOffset" value="150" />
<substitute key="negOffset" value="150" />
</contribute>
<contribute xsi:type="bundleItem" file="bundles/LDADMesoPlot.xml"
menuText="1 min stn plot" id="local1minstnplot">
<substitute key="svg" value="ldadMesoDesign.svg" />
<substitute key="legend" value="1 min Local Data Plot" />
<substitute key="posOffset" value="30" />
<substitute key="negOffset" value="30" />
</contribute>
<contribute xsi:type="bundleItem" file="bundles/LDADMesoPlot.xml"
menuText="WindCh/HeatIdx" id="localWindChHeatIdx">
<substitute key="svg" value="ldadMesoHiWcDesign.svg" />
<substitute key="legend" value="Local WindChill/HeatIndex Plot" />
<substitute key="posOffset" value="900" />
<substitute key="negOffset" value="900" />
</contribute>
<contribute xsi:type="titleItem" titleText="------ Precip Plots ------"
id="precipLine" />
<contribute xsi:type="bundleItem" file="bundles/CoopPrecip.xml"
menuText="Coop Precip" id="localCoopPrecip">
</contribute>
<contribute xsi:type="bundleItem" file="bundles/LDADHydroPlot.xml"
menuText="3 hr Precip" id="local3hrPrecip">
<substitute key="svg" value="ldadHydro3hrPrecipDesign.svg" />
<substitute key="legend" value="3 hr Precip Plot" />
<substitute key="posOffset" value="5400" />
<substitute key="negOffset" value="5400" />
</contribute>
<contribute xsi:type="bundleItem" file="bundles/LDADHydroPlot.xml"
menuText="1 hr Precip" id="local1hrPrecip">
<substitute key="svg" value="ldadHydro1hrPrecipDesign.svg" />
<substitute key="legend" value="1 hr Precip Plot" />
<substitute key="posOffset" value="1800" />
<substitute key="negOffset" value="1800" />
</contribute>
<contribute xsi:type="bundleItem" file="bundles/LDADHydroPlot.xml"
menuText="30 min Precip" id="local30minPrecip">
<substitute key="svg" value="ldadHydro30minPrecipDesign.svg" />
<substitute key="legend" value="30 min Precip Plot" />
<substitute key="posOffset" value="900" />
<substitute key="negOffset" value="900" />
</contribute>
<contribute xsi:type="bundleItem" file="bundles/LDADHydroPlot.xml"
menuText="15 min Precip" id="local15minPrecip">
<substitute key="svg" value="ldadHydro15minPrecipDesign.svg" />
<substitute key="legend" value="15 min Precip Plot" />
<substitute key="posOffset" value="450" />
<substitute key="negOffset" value="450" />
</contribute>
<contribute xsi:type="bundleItem" file="bundles/LDADHydroPlot.xml"
menuText="5 min Precip" id="local5minPrecip">
<substitute key="svg" value="ldadHydro5minPrecipDesign.svg" />
<substitute key="legend" value="5 min Precip Plot" />
<substitute key="posOffset" value="150" />
<substitute key="negOffset" value="150" />
</contribute>
</contribute>
</menuTemplate>

View file

@ -1,29 +1,196 @@
<?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.
-->
<!--
This is an absolute override file, indicating that a higher priority
version of the file will completely replace a lower priority version
of the file.
-->
<menuTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<contribute xsi:type="bundleItem" file="bundles/SurfacePlot.xml"
menuText="Surface Plot" id="SurfacePlot"/>
<contribute xsi:type="titleItem" titleText="------ METAR / Synoptic ------"
id="sfcMenuMetar" />
<contribute xsi:type="bundleItem" file="bundles/SurfaceColorTemp.xml"
menuText="Surface Temperature" id="MetarPlot">
</contribute>
<contribute xsi:type="bundleItem" file="bundles/SurfacePlotWinds.xml"
menuText="Surface Winds" id="MetarPlot">
</contribute>
<contribute xsi:type="bundleItem" file="bundles/SurfacePlotMetar.xml"
menuText="METAR Station Plot" id="MetarPlot">
</contribute>
<contribute xsi:type="bundleItem" file="bundles/SurfaceMSLP.xml"
menuText="METAR MSLP Plot" id="MetarPlot">
</contribute>
<contribute xsi:type="bundleItem" file="bundles/MetarPrecipPlot.xml"
menuText="METAR 24hr Precip" id="24HrPrecip">
<substitute key="duration" value="24"/>
<substitute key="posOffset" value="21600"/>
<substitute key="negOffset" value="0"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/MetarPrecipPlot.xml"
menuText="METAR 6hr Precip" id="6HrPrecip">
<substitute key="duration" value="6"/>
<substitute key="posOffset" value="10800"/>
<substitute key="negOffset" value="10800"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/MetarPrecipPlot.xml"
menuText="METAR 3hr Precip" id="3HrPrecip">
<substitute key="duration" value="3"/>
<substitute key="posOffset" value="1800"/>
<substitute key="negOffset" value="9000"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/MetarPrecipPlot.xml"
menuText="METAR 1hr Precip" id="1HrPrecip">
<substitute key="duration" value="1"/>
<substitute key="posOffset" value="1800"/>
<substitute key="negOffset" value="1800"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/SynSurfacePlot.xml"
menuText="Synoptic Plot" id="SynSurfacePlot">
<substitute key="svg" value="stdSynDesign.svg"/>
<substitute key="legend" value="Synoptic Data Plot"/>
<substitute key="posOffset" value="19800"/>
<substitute key="negOffset" value="1800"/>
</contribute>
<contribute xsi:type="subMenu" menuText="Other Plots">
<contribute xsi:type="bundleItem" file="bundles/15minSurfacePlot.xml"
menuText="15 min METARs" id="15MinSurfacePlot" />
<contribute xsi:type="bundleItem" file="bundles/MetarPlot.xml"
menuText="24Hr Chg" id="24HrChg">
<substitute key="svg" value="metar24ChgDesign.svg"/>
<substitute key="legend" value="METAR 24H Change"/>
<substitute key="posOffset" value="1800"/>
<substitute key="negOffset" value="1800"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/MetarPlot.xml"
menuText="Ceil/Vis Plot (AGL)" id="CeilVisPlotAGL">
<substitute key="svg" value="metarCvDesign.svg"/>
<substitute key="legend" value="Ceiling (agl) and Visibility"/>
<substitute key="posOffset" value="1800"/>
<substitute key="negOffset" value="1800"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/MetarPlot.xml"
menuText="Ceil/Vis Plot (MSL)" id="CeilVisPlotMSL">
<substitute key="svg" value="metarCvMslDesign.svg"/>
<substitute key="legend" value="Ceiling (msl) and Visibility"/>
<substitute key="posOffset" value="1800"/>
<substitute key="negOffset" value="1800"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/MetarPlot.xml"
menuText="Wind Ch/HeatIdx" id="WindChHeatIdx">
<substitute key="svg" value="metarHiWcDesign.svg"/>
<substitute key="legend" value="Wind Chill/Heat Index plot"/>
<substitute key="posOffset" value="1800"/>
<substitute key="negOffset" value="1800"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/ColoredASOSPlot.xml"
menuText="Colorized SA Station Plot" id="ColoredASOSPlot">
<dataURI>/obs/%</dataURI>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/ColoredStationPlot_Wind.xml"
menuText="Colorized METAR (Wind)" id="ColoredStationPlotWindMETAR">
<substitute key="reptype" value="METAR,SPECI"/>
<substitute key="plgn" value="obs"/>
<substitute key="pkwnd" value="coloredObsPkWindDesign.svg"/>
<substitute key="wnd50P" value="coloredObsWind50PDesign.svg"/>
<substitute key="wnd30T50" value="coloredObsWind30T50Design.svg"/>
<substitute key="wndobslow" value="coloredObsWindLowDesign.svg"/>
<substitute key="wxplot" value="coloredObsWxDesign.svg"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/ColoredStationPlot_CV.xml"
menuText="Colorized METAR (C/V)" id="ColoredStationPlotCVMETAR">
<substitute key="reptype" value="METAR,SPECI"/>
<substitute key="plgn" value="obs"/>
<substitute key="transsky" value="coloredObsTransCloudDesign.svg"/>
<substitute key="obscvfr" value="coloredObsObscVFRCloudDesign.svg"/>
<substitute key="obscmvfr" value="coloredObsObscMVFRCloudDesign.svg"/>
<substitute key="obscifr" value="coloredObsObscIFRCloudDesign.svg"/>
<substitute key="obsclifr" value="coloredObsObscLIFRCloudDesign.svg"/>
<substitute key="wxplot" value="coloredObsWxDesign.svg"/>
<substitute key="offset" value="900"/>
</contribute>
<contribute xsi:type="separator" id="PrecipSeparator"/>
<contribute xsi:type="titleItem"
titleText="------ Precip ------" id="PrecipLine"/>
<contribute xsi:type="bundleItem" file="bundles/SynSurfacePlot.xml"
menuText="Synoptic 6 hr Precip" id="synoptic6hrPrecip">
<substitute key="svg" value="synopticPrcp6Design.svg"/>
<substitute key="legend" value="Synoptic 6hr Precip Plot"/>
<substitute key="posOffset" value="0"/>
<substitute key="negOffset" value="21600"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/SynSurfacePlot.xml"
menuText="Synoptic 24 hr Precip" id="synoptic24hrPrecip">
<substitute key="svg" value="synopticPrcp24Design.svg"/>
<substitute key="legend" value="Synoptic 24hr Precip Plot"/>
<substitute key="posOffset" value="0"/>
<substitute key="negOffset" value="43200"/>
</contribute>
<contribute xsi:type="separator" id="MaritimeSeparator"/>
<contribute xsi:type="titleItem"
titleText="------ Maritime ------" id="MaritimeLine"/>
<contribute xsi:type="bundleItem" file="bundles/maritimeFixedBuoy.xml"
menuText="Maritime Plot" id="FixedBuoys" />
<contribute xsi:type="bundleItem" file="bundles/SeaStatePlot.xml"
menuText="Fixed Sea State" id="FixedSeaState">
<substitute key="svg" value="seaStateDesign.svg"/>
<substitute key="legend" value="Fixed Buoys Sea State"/>
<substitute key="reportType" value="1004,1005"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/SeaStatePlot.xml"
menuText="Moving Sea State" id="MovingSeaState">
<substitute key="svg" value="seaStateDesign.svg"/>
<substitute key="legend" value="Moving Buoys/Ships Sea State"/>
<substitute key="reportType" value="1003,1006"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/SeaStatePlot.xml"
menuText="MAROB Sea State" id="MAROBSeaState">
<substitute key="svg" value="seaStateDesign.svg"/>
<substitute key="legend" value="MAROB Sea State"/>
<substitute key="reportType" value="1007"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/MaritimePlot.xml"
menuText="Maritime Clouds/Vis" id="MaritimeCloudVis">
<substitute key="svg" value="maritimeCvDesign.svg"/>
<substitute key="legend" value="Maritime Clouds and Visibility"/>
<substitute key="reportType" value="1003"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/MaritimePlot.xml"
menuText="MAROB Clouds/Vis" id="MarobCloudsVis">
<substitute key="svg" value="maritimeCvDesign.svg"/>
<substitute key="legend" value="MAROB Clouds and Visibility"/>
<substitute key="reportType" value="1007"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/ColoredMaritimePlot_Wind.xml"
menuText="Colorized Maritime (Wind)" id="ColoredMaritimePlotWind">
<substitute key="reptype" value="1003,1004,1005,1006"/>
<substitute key="plgn" value="sfcobs"/>
<substitute key="pkwnd" value="coloredMaritimePkWindDesign.svg"/>
<substitute key="wnd64P" value="coloredMaritimeWind64PDesign.svg"/>
<substitute key="wnd48T64" value="coloredMaritimeWind48T64Design.svg"/>
<substitute key="wnd34T48" value="coloredMaritimeWind34T48Design.svg"/>
<substitute key="wnd20T34" value="coloredMaritimeWind20T34Design.svg"/>
<substitute key="wndmarlow" value="coloredMaritimeWindLowDesign.svg"/>
<substitute key="wxplot" value="coloredMaritimeWxDesign.svg"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/ColoredStationPlot_CV.xml"
menuText="Colorized Maritime (C/V)" id="ColoredStationPlotCVMaritime">
<substitute key="reptype" value="1003,1004,1005,1006"/>
<substitute key="plgn" value="sfcobs"/>
<substitute key="transsky" value="coloredMaritimeTransCloudDesign.svg"/>
<substitute key="obscvfr" value="coloredMaritimeObscVFRCloudDesign.svg"/>
<substitute key="obscmvfr" value="coloredMaritimeObscMVFRCloudDesign.svg"/>
<substitute key="obscifr" value="coloredMaritimeObscIFRCloudDesign.svg"/>
<substitute key="obsclifr" value="coloredMaritimeObscLIFRCloudDesign.svg"/>
<substitute key="wxplot" value="coloredMaritimeWxDesign.svg"/>
<substitute key="offset" value="1800"/>
</contribute>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/Redbook.xml"
menuText="MSLP Analysis" id="MSLPressureAnalysis">
<substitute key="wmo" value="PPAA89"/>
</contribute>
</menuTemplate>

View file

@ -27,6 +27,5 @@
<include installTo="menu:obs?after=SURFACE" fileName="menus/obs/baseSurface.xml" />
<include installTo="menu:obs?after=METAR" fileName="menus/obs/baseMetar.xml" />
<include installTo="menu:obs?after=SYNOPTIC" fileName="menus/obs/baseSynoptic.xml" />
<include installTo="menu:obs?after=LocalData" fileName="menus/obs/baseLocalData.xml" />
<include installTo="menu:obs?after=MARITIME" fileName="menus/obs/baseMaritime.xml" />
</menuContributionFile>

View file

@ -0,0 +1,48 @@
<?xml version="1.0"?>
<svg width="80" height="80"
viewBox="0 0 80 80"
overflow="visible"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" style="stroke: rgb(255,255,255);">
<defs>
<script type="text/python" plotDelegate="plotDelegate">
import re
class ObsPlotDelegate(PlotDelegate):
def __init__(self):
PlotDelegate.__init__(self)
def getSampleText(self, rec):
sampleString = rec.getString("rawMETAR")
#strip WMO header
sampleString = re.sub("(\\s|\\S)+(METAR)", "\\2", sampleString)
#strip all multiple spaces and replace newlines with spaces
sampleString = re.sub("(\\s)+", " ", sampleString)
return sampleString
plotDelegate = ObsPlotDelegate()
</script>
<style type="text/css">
<![CDATA[
@font-face { font-family: "StandardFont";
src: url(Standard.svg#Standard); }
text.text
{
fill: none;
font-size: 1em;
stroke-width: 1px;
font-family: StandardFont;
font-size: 1em;
}
]]>
</style>
<symbol overflow="visible" id="plotData" class="info">
<text id="tempText" plotMode="text" plotParam="T" plotUnit="°F" plotFormat="%3.0f" style="text-anchor: end;" x="0" y="0">75</text>
</symbol>
</defs>
<use id="wind" x="40" y="40" width="80" height="80" visibility="visible" xlink:href="#plotData"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -0,0 +1,49 @@
<?xml version="1.0"?>
<svg width="80" height="80"
viewBox="0 0 80 80"
overflow="visible"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" style="stroke: rgb(255,255,255);">
<defs>
<script type="text/python" plotDelegate="plotDelegate">
import re
class ObsPlotDelegate(PlotDelegate):
def __init__(self):
PlotDelegate.__init__(self)
def getSampleText(self, rec):
sampleString = rec.getString("rawMETAR")
#strip WMO header
sampleString = re.sub("(\\s|\\S)+(METAR)", "\\2", sampleString)
#strip all multiple spaces and replace newlines with spaces
sampleString = re.sub("(\\s)+", " ", sampleString)
return sampleString
plotDelegate = ObsPlotDelegate()
</script>
<style type="text/css">
<![CDATA[
@font-face { font-family: "StandardFont";
src: url(Standard.svg#Standard); }
text.text
{
fill: none;
font-size: 1em;
stroke-width: 1px;
font-family: StandardFont;
font-size: 1em;
}
]]>
</style>
<symbol overflow="visible" id="plotData" class="info">
<text id="pressure" plotMode="text" plotParam="seaLevelPress" plotUnit="hPa" plotFormat="%5.0f" style="text-anchor: start;" x="0px" y="0px">75</text>
</symbol>
</defs>
<use id="mslp" x="40" y="40" width="80" height="80" visibility="visible" xlink:href="#plotData"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -0,0 +1,86 @@
<?xml version="1.0"?>
<svg width="80" height="80"
viewBox="0 0 80 80"
overflow="visible"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" style="stroke: rgb(255,255,255);">
<defs>
<script type="text/python" plotDelegate="plotDelegate">
import re
class ObsPlotDelegate(PlotDelegate):
def __init__(self):
PlotDelegate.__init__(self)
def getSampleText(self, rec):
sampleString = rec.getString("rawMETAR")
#strip WMO header
sampleString = re.sub("(\\s|\\S)+(METAR)", "\\2", sampleString)
#strip all multiple spaces and replace newlines with spaces
sampleString = re.sub("(\\s)+", " ", sampleString)
return sampleString
plotDelegate = ObsPlotDelegate()
</script>
<style type="text/css">
<![CDATA[
@font-face { font-family: "WindSymbolFont";
src: url(WindSymbols.svg#WindSymbols); }
@font-face { font-family: "StandardFont";
src: url(Standard.svg#Standard); }
@font-face { font-family: "WxSymbolFont";
src: url(WxSymbols.svg#WxSymbols); }
@font-face { font-family: "SpecialSymbolFont";
src: url(SpecialSymbols.svg#SpecialSymbols); }
text.barb
{
fill: none;
font-size: 1em;
font-size: 1em;
font-family: WindSymbolFont;
}
text.arrow
{
fill: none;
font-size: 1em;
font-size: 1em;
font-family: WindSymbolFont;
}
text.text
{
fill: none;
font-size: 1em;
stroke-width: 1px;
font-family: StandardFont;
font-size: 1em;
}
text.weather
{
fill: none;
font-size: 1em;
stroke-width: 1px;
font-family: WxSymbolFont;
}
text.special
{
fill: none;
font-size: 1em;
stroke-width: 1px;
font-size: 1em;
font-family: SpecialSymbolFont;
}
]]>
</style>
<symbol overflow="visible" id="plotData" class="info">
<text id="rawMETARText" plotMode="sample" class="text" plotParam="rawMETAR" x="0" y="0">0</text>
<g id="windVaneText" plotMode="barb" plotParam="windSpeed,windDir,windGust" plotUnit="kts" x="0" y="0" transform="rotate(0,0,0)">
<text id="windArrowText" class="barb" x="0" y="0">arrow</text>
</g>
</symbol>
</defs>
<use id="wind" x="40" y="40" width="80" height="80" visibility="visible" xlink:href="#plotData"/>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1,724 @@
/**
* 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.viz.pointdata.rsc;
import java.awt.Font;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.concurrent.LinkedBlockingQueue;
import javax.measure.Unit;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.swt.graphics.RGB;
import org.geotools.coverage.grid.GridEnvelope2D;
import org.geotools.coverage.grid.GridGeometry2D;
import org.geotools.geometry.DirectPosition2D;
import org.geotools.geometry.Envelope2D;
import org.opengis.geometry.DirectPosition;
import org.opengis.referencing.FactoryException;
import org.opengis.referencing.crs.CoordinateReferenceSystem;
import org.opengis.referencing.operation.MathTransform;
import org.opengis.referencing.operation.TransformException;
import com.raytheon.uf.common.colormap.Color;
import com.raytheon.uf.common.colormap.ColorMapException;
import com.raytheon.uf.common.colormap.ColorMapLoader;
import com.raytheon.uf.common.colormap.prefs.ColorMapParameters;
import com.raytheon.uf.common.colormap.prefs.DataMappingPreferences;
import com.raytheon.uf.common.colormap.prefs.DataMappingPreferences.DataMappingEntry;
import com.raytheon.uf.common.dataplugin.PluginDataObject;
import com.raytheon.uf.common.dataplugin.annotations.DataURIUtil;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint.ConstraintType;
import com.raytheon.uf.common.geospatial.MapUtil;
import com.raytheon.uf.common.geospatial.ReferencedCoordinate;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.viz.core.DrawableString;
import com.raytheon.uf.viz.core.IExtent;
import com.raytheon.uf.viz.core.IGraphicsTarget;
import com.raytheon.uf.viz.core.IGraphicsTarget.HorizontalAlignment;
import com.raytheon.uf.viz.core.IGraphicsTarget.VerticalAlignment;
import com.raytheon.uf.viz.core.drawables.IDescriptor.FramesInfo;
import com.raytheon.uf.viz.core.drawables.IFont;
import com.raytheon.uf.viz.core.drawables.IFont.Style;
import com.raytheon.uf.viz.core.drawables.IRenderableDisplay;
import com.raytheon.uf.viz.core.drawables.PaintProperties;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.map.IMapDescriptor;
import com.raytheon.uf.viz.core.rsc.AbstractVizResource;
import com.raytheon.uf.viz.core.rsc.IResourceDataChanged.ChangeType;
import com.raytheon.uf.viz.core.rsc.LoadProperties;
import com.raytheon.uf.viz.core.rsc.capabilities.ColorMapCapability;
import com.raytheon.uf.viz.core.rsc.capabilities.DensityCapability;
import com.raytheon.uf.viz.core.rsc.capabilities.MagnificationCapability;
import com.raytheon.viz.pointdata.rsc.progdisc.GenericProgressiveDisclosure;
import com.raytheon.viz.pointdata.rsc.progdisc.GenericProgressiveDisclosure.PlotItem;
import com.raytheon.viz.pointdata.util.MetarTempDataContainer;
import com.raytheon.viz.pointdata.util.MetarTempDataContainer.TempData;
import tec.uom.se.AbstractUnit;
import org.locationtech.jts.geom.Coordinate;
/**
*
* Resource for displaying colored Metar Temp values.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------- -------- --------- --------------------------------------------
* Aug 05, 2016 mjames Copied from MetarPrecipResource
* Feb 06, 2019 mjames Updated for reprojection, default color map.
*
* </pre>
*
* @author bsteffen
* @version 1.0
*/
public class MetarTempResource extends AbstractVizResource<MetarTempResourceData, IMapDescriptor> {
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(MetarTempResource.class);
private RGB color = new RGB(126, 126, 126);
public RGB getColorByValue(float value) {
ColorMapParameters parameters = getCapability(ColorMapCapability.class).getColorMapParameters();
if (parameters != null) {
Color color = parameters.getColorByValue(value);
if (color != null) {
return new RGB((int) (color.getRed() * 255),
(int) (color.getGreen() * 255),
(int) (color.getBlue() * 255));
}
}
return getColor();
}
public RGB getColor() {
return color;
}
public void setColor(RGB color) {
this.color = color;
}
private static final int PLOT_PIXEL_SIZE = 30;
private class RenderableTempData extends TempData implements PlotItem {
public final DrawableString string;
public RenderableTempData(TempData data, DrawableString string) {
super(data.getTimeObs(), data.getStationName(),
data.getTempValue(), data.getLatLon().x, data.getLatLon().y);
this.string = string;
}
@Override
public Coordinate getLocation() {
return new Coordinate(string.basics.x, string.basics.y);
}
}
// To avoid synchronization issues with data request, updates, and removals
// do it all on this thread.
private Job dataProcessJob = new Job("Loading Sfc Temps") {
@Override
protected IStatus run(IProgressMonitor monitor) {
processNewFrames(monitor);
if (monitor.isCanceled()) {
return Status.CANCEL_STATUS;
}
processUpdates(monitor);
if (monitor.isCanceled()) {
return Status.CANCEL_STATUS;
}
processRemoves();
return Status.OK_STATUS;
}
};
private LinkedBlockingQueue<PluginDataObject> updates = new LinkedBlockingQueue<PluginDataObject>();
private LinkedBlockingQueue<DataTime> removes = new LinkedBlockingQueue<DataTime>();
private boolean reproject = false;
private Map<DataTime, GenericProgressiveDisclosure<RenderableTempData>> data = new HashMap<>();
private IFont font = null;
protected MetarTempResource(MetarTempResourceData resourceData,
LoadProperties loadProperties) {
super(resourceData, loadProperties, false);
}
@Override
protected void disposeInternal() {
if (font != null) {
font.dispose();
font = null;
}
dataProcessJob.cancel();
}
@Override
protected void paintInternal(IGraphicsTarget target,
PaintProperties paintProps) throws VizException {
DataTime time = paintProps.getDataTime();
if (time == null) {
return;
}
GenericProgressiveDisclosure<RenderableTempData> disclosure = null;
synchronized (data) {
disclosure = data.get(time);
}
if (disclosure == null) {
dataProcessJob.schedule();
return;
}
IExtent extent = paintProps.getView().getExtent();
Double magnification = getCapability(MagnificationCapability.class)
.getMagnification();
Double density = getCapability(DensityCapability.class).getDensity();
double threshold = (PLOT_PIXEL_SIZE * magnification) / density;
threshold = (threshold * extent.getWidth())
/ paintProps.getCanvasBounds().width;
Collection<RenderableTempData> temps = disclosure.runDisclosure(
extent, threshold);
if (temps.isEmpty()) {
return;
}
if (font == null) {
font = target.initializeFont(Font.DIALOG, 8,
new Style[] { Style.BOLD });
font.setMagnification(magnification.floatValue());
}
List<DrawableString> strings = new ArrayList<DrawableString>();
for (RenderableTempData data : temps) {
data.string.font = this.font;
strings.add(data.string);
}
target.drawStrings(strings);
}
private List<RenderableTempData> getTempsData(DataTime time) {
GenericProgressiveDisclosure<RenderableTempData> currData = null;
synchronized (data) {
currData = data.get(time);
}
if (currData != null) {
return currData.getAll();
}
return null;
}
@Override
protected void initInternal(IGraphicsTarget target) throws VizException {
dataProcessJob.schedule();
ColorMapParameters params = new ColorMapParameters();
try {
params.setColorMap(ColorMapLoader.loadColorMap("Grid/gridded data"));
} catch (ColorMapException e) {
throw new VizException(e);
}
DataMappingPreferences preferences = new DataMappingPreferences();
DataMappingEntry entry = new DataMappingEntry();
entry.setDisplayValue(-50.);
entry.setPixelValue(0.0);
preferences.addEntry(entry);
entry = new DataMappingEntry();
entry.setDisplayValue(-40.);
entry.setPixelValue(1.0);
preferences.addEntry(entry);
entry = new DataMappingEntry();
entry.setDisplayValue(-30.);
entry.setPixelValue(2.0);
preferences.addEntry(entry);
entry = new DataMappingEntry();
entry.setDisplayValue(-20.);
entry.setPixelValue(3.0);
preferences.addEntry(entry);
entry = new DataMappingEntry();
entry.setDisplayValue(-10.);
entry.setPixelValue(4.0);
preferences.addEntry(entry);
entry = new DataMappingEntry();
entry.setDisplayValue(0.0);
entry.setPixelValue(5.0);
preferences.addEntry(entry);
entry = new DataMappingEntry();
entry.setDisplayValue(10.);
entry.setPixelValue(6.0);
preferences.addEntry(entry);
entry = new DataMappingEntry();
entry.setDisplayValue(20.);
entry.setPixelValue(7.0);
preferences.addEntry(entry);
entry = new DataMappingEntry();
entry.setDisplayValue(30.);
entry.setPixelValue(8.0);
preferences.addEntry(entry);
entry = new DataMappingEntry();
entry.setDisplayValue(40.);
entry.setPixelValue(9.0);
preferences.addEntry(entry);
entry = new DataMappingEntry();
entry.setDisplayValue(50.);
entry.setPixelValue(10.0);
preferences.addEntry(entry);
entry = new DataMappingEntry();
entry.setDisplayValue(60.);
entry.setPixelValue(11.0);
preferences.addEntry(entry);
entry = new DataMappingEntry();
entry.setDisplayValue(70.);
entry.setPixelValue(12.0);
preferences.addEntry(entry);
entry = new DataMappingEntry();
entry.setDisplayValue(80.);
entry.setPixelValue(13.0);
preferences.addEntry(entry);
entry = new DataMappingEntry();
entry.setDisplayValue(90.);
entry.setPixelValue(14.0);
preferences.addEntry(entry);
entry = new DataMappingEntry();
entry.setDisplayValue(100.);
entry.setPixelValue(15.0);
preferences.addEntry(entry);
entry = new DataMappingEntry();
entry.setDisplayValue(110.);
entry.setPixelValue(16.0);
preferences.addEntry(entry);
params.setDisplayUnit(AbstractUnit.ONE);
params.setDataMapping(preferences);
params.setColorMapMin(0);
params.setColorMapMax(17);
getCapability(ColorMapCapability.class).setColorMapParameters(params);
}
@Override
protected void resourceDataChanged(ChangeType type, Object object) {
super.resourceDataChanged(type, object);
if (type == ChangeType.CAPABILITY) {
if (object instanceof MagnificationCapability) {
if (font != null) {
font.dispose();
font = null;
}
}
issueRefresh();
} else if (type == ChangeType.DATA_UPDATE) {
if (object instanceof PluginDataObject[]) {
PluginDataObject[] pdos = (PluginDataObject[]) object;
for (PluginDataObject pdo : pdos) {
updates.offer(pdo);
dataProcessJob.schedule();
}
}
}
}
@Override
public String getName() {
return "Surface Temps [F]";
}
@Override
public void remove(DataTime dataTime) {
// This will be handled asynchronously by the update job
removes.offer(dataTime);
dataProcessJob.schedule();
}
@Override
public void project(CoordinateReferenceSystem crs) throws VizException {
// This will be handled asynchronously by the update job
reproject = true;
dataProcessJob.schedule();
}
@Override
public String inspect(ReferencedCoordinate coord) throws VizException {
Coordinate pixel = null;
try {
pixel = coord.asPixel(descriptor.getGridGeometry());
} catch (TransformException e) {
throw new VizException(e);
} catch (FactoryException e) {
throw new VizException(e);
}
Double magnification = getCapability(MagnificationCapability.class)
.getMagnification();
List<RenderableTempData> temps = getTempsData(descriptor
.getTimeForResource(this));
if ((temps == null) || temps.isEmpty()) {
return null;
}
IRenderableDisplay rDisplay = descriptor.getRenderableDisplay();
double bestDist = PLOT_PIXEL_SIZE * magnification;
if (rDisplay != null) {
bestDist *= rDisplay.getView().getExtent().getWidth()
/ rDisplay.getBounds().width;
} else {
bestDist *= 100;
}
TempData bestData = null;
for (RenderableTempData temp : temps) {
double xDist = temp.string.basics.x - pixel.x;
double yDist = temp.string.basics.y - pixel.y;
double dist = Math.hypot(xDist, yDist);
if (dist < bestDist) {
bestDist = dist;
bestData = temp;
}
}
if (bestData != null) {
return bestData.getStationName();
}
return "No Data";
}
/**
*
* Re-project to the new crs. Returns true to reload the frame.
*
* @return boolean
*/
private boolean processReproject() {
if (reproject) {
reproject = false;
GridEnvelope2D envelope = GridGeometry2D.wrap(
descriptor.getGridGeometry()).getGridRange2D();
synchronized (data) {
for (GenericProgressiveDisclosure<RenderableTempData> disclosure : data
.values()) {
List<RenderableTempData> dataList = disclosure.getAll();
Iterator<RenderableTempData> it = dataList.iterator();
while (it.hasNext()) {
RenderableTempData temp = it.next();
Coordinate latLon = temp.getLatLon();
double[] px = descriptor.worldToPixel(new double[] {
latLon.x, latLon.y });
if (envelope.contains(px[0], px[1])) {
temp.string.setCoordinates(px[0], px[1], px[2]);
} else {
it.remove();
}
}
}
}
return true;
}
issueRefresh();
return false;
}
private void processRemoves() {
synchronized (data) {
while (!removes.isEmpty()) {
DataTime toRemove = removes.poll();
this.dataTimes.remove(toRemove);
this.data.remove(toRemove);
}
}
}
private void processUpdates(IProgressMonitor monitor) {
if (updates.isEmpty()) {
return;
}
HashMap<String, RequestConstraint> rcMap = resourceData
.getMetadataMap();
rcMap = new HashMap<String, RequestConstraint>(rcMap);
RequestConstraint rc = new RequestConstraint(null, ConstraintType.IN);
long earliestTime = Long.MAX_VALUE;
Set<String> newStations = new HashSet<String>();
// Get the envelope and math transform to ensure we only bother
// processing updates on screen.
MathTransform toDescriptor = null;
try {
toDescriptor = MapUtil.getTransformFromLatLon(descriptor.getCRS());
} catch (FactoryException e) {
statusHandler
.handle(Priority.PROBLEM,
"Error processing updates for MetarTemps, Ignoring all updates.",
e);
updates.clear();
return;
}
Envelope2D envelope = new Envelope2D(descriptor.getGridGeometry()
.getEnvelope());
while (!updates.isEmpty()) {
PluginDataObject pdo = updates.poll();
try {
Map<String, Object> map = DataURIUtil.createDataURIMap(pdo);
double lon = ((Number) map.get("location.longitude")).doubleValue();
double lat = ((Number) map.get("location.latitude")).doubleValue();
DirectPosition2D dp = new DirectPosition2D(lon, lat);
toDescriptor.transform(dp, dp);
if (envelope.contains((DirectPosition) dp)) {
newStations.add(map.get("location.stationId").toString());
long validTime = pdo.getDataTime().getMatchValid();
if (validTime < earliestTime) {
earliestTime = validTime;
}
}
} catch (Exception e) {
statusHandler.handle(Priority.PROBLEM,
"Error processing updates for MetarTemps, Ignoring an update.", e);
}
}
if (newStations.isEmpty()) {
return;
}
rc.setConstraintValueList(newStations.toArray(new String[0]));
rcMap.put("location.stationId", rc);
MetarTempDataContainer container = new MetarTempDataContainer(
rcMap);
for (Entry<DataTime, GenericProgressiveDisclosure<RenderableTempData>> entry : data
.entrySet()) {
DataTime time = entry.getKey();
if (time.getMatchValid() < earliestTime) {
// No need to reprocess times after the earliest update.
continue;
}
GenericProgressiveDisclosure<RenderableTempData> newValue = new GenericProgressiveDisclosure<>();
for (RenderableTempData data : entry.getValue().getAll()) {
if (!newStations.contains(data.getStationName())) {
newValue.add(data);
}
}
entry.setValue(newValue);
addData(time, container.getBaseTempData(time));
if (monitor.isCanceled()) {
return;
}
}
}
private void processNewFrames(IProgressMonitor monitor) {
// load data in two steps, first load base data then any derived data.
// Always try to load the current frame, then nearby frames.
MetarTempDataContainer container = new MetarTempDataContainer(
resourceData.getMetadataMap(),
descriptor.getGridGeometry().getEnvelope());
Set<DataTime> reprojectedFrames = new HashSet<DataTime>();
Set<DataTime> baseOnly = new HashSet<DataTime>();
boolean modified = true;
while (modified) {
// don't want to miss a reproject if retrieval takes awhile.
if (processReproject()) {
// We must create a new container and re request all the data
// for the new area.
data.clear();
reprojectedFrames = new HashSet<DataTime>(data.keySet());
container = new MetarTempDataContainer(
resourceData.getMetadataMap(), descriptor
.getGridGeometry().getEnvelope());
}
if (monitor.isCanceled()) {
return;
}
modified = false;
// If the current frame changes while we are processing we will
// begin requesting data for the new frame
FramesInfo frameInfo = descriptor.getFramesInfo();
DataTime[] times = frameInfo.getTimeMap().get(
MetarTempResource.this);
if (times == null) {
return;
}
int curIndex = frameInfo.getFrameIndex();
int count = frameInfo.getFrameCount();
// This will generate the number series 0, -1, 1, -2, 2, -3, 3...
for (int i = 0; i < ((count / 2) + 1); i = i < 0 ? -i : -i - 1) {
int index = (count + curIndex + i) % count;
DataTime next = times[index];
if (next != null) {
if (!data.containsKey(next)
|| reprojectedFrames.contains(next)) {
List<TempData> baseData = container
.getBaseTempData(next);
addData(next, baseData);
baseOnly.add(next);
modified = true;
break;
}
if (baseOnly.contains(next)) {
List<TempData> derivedData = container
.getBaseTempData(next);
addData(next, derivedData);
baseOnly.remove(next);
reprojectedFrames.remove(next);
modified = true;
break;
}
}
}
issueRefresh();
}
synchronized (data) {
// This will only happen if frames were removed while we were
// processing. Don't leave any half created frames
for (DataTime time : baseOnly) {
this.dataTimes.remove(time);
this.data.remove(time);
}
}
}
private void addData(DataTime time, List<TempData> temps) {
if (temps.isEmpty()) {
if (dataTimes.add(time)) {
GenericProgressiveDisclosure<RenderableTempData> disclosure =
new GenericProgressiveDisclosure<RenderableTempData>();
synchronized (data) {
data.put(time, disclosure);
}
}
}
if (data.containsKey(time)) {
temps = new ArrayList<TempData>(temps);
temps.addAll(getTempsData(time));
}
Collections.sort(temps, new Comparator<TempData>() {
@Override
public int compare(TempData o1, TempData o2) {
return o2.getTempValue().compareTo(o1.getTempValue());
}
});
GenericProgressiveDisclosure<RenderableTempData> newTemps = new GenericProgressiveDisclosure<RenderableTempData>();
//RGB color = getCapability(ColorableCapability.class).getColor();
GridEnvelope2D envelope = GridGeometry2D.wrap(
descriptor.getGridGeometry()).getGridRange2D();
for (int i = 0; i < temps.size(); i++) {
TempData tempFromTenths = temps.get(i);
RenderableTempData data = null;
if (tempFromTenths instanceof RenderableTempData) {
data = (RenderableTempData) tempFromTenths;
} else {
double[] px = descriptor.worldToPixel(new double[] {
tempFromTenths.getLatLon().x, tempFromTenths.getLatLon().y });
if (!envelope.contains(px[0], px[1])) {
continue;
}
Float amount = temps.get(i).getTempValue().floatValue();
RGB rgbval = getColorByValue(amount);
DrawableString string = new DrawableString(formatValues(temps
.get(i).getTempValue()), rgbval);
string.setCoordinates(px[0], px[1], px[2]);
string.verticallAlignment = VerticalAlignment.MIDDLE;
string.horizontalAlignment = HorizontalAlignment.CENTER;
data = new RenderableTempData(tempFromTenths, string);
}
newTemps.add(data);
}
synchronized (data) {
data.put(time, newTemps);
dataTimes.add(time);
}
issueRefresh();
}
private String formatValues(Double tempValue) {
return String.format("%6.0f", tempValue).substring(1);
}
}

View file

@ -0,0 +1,77 @@
/**
* 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.viz.pointdata.rsc;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import com.raytheon.uf.common.dataplugin.PluginDataObject;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.rsc.AbstractRequestableResourceData;
import com.raytheon.uf.viz.core.rsc.AbstractVizResource;
import com.raytheon.uf.viz.core.rsc.LoadProperties;
/**
*
* TODO Add Description
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Aug 05, 2016 mjames Copied from MetarPrecipResourceData
*
* </pre>
*
* @author bsteffen
* @version 1.0
*/
@XmlAccessorType(XmlAccessType.NONE)
public class MetarTempResourceData extends PlotResourceData {
@Override
protected AbstractVizResource<?, ?> constructResource(
LoadProperties loadProperties, PluginDataObject[] objects) {
return new MetarTempResource(this, loadProperties);
}
@Override
public boolean isUpdatingOnMetadataOnly() {
return true;
}
@Override
public boolean isRetrieveData() {
return false;
}
@Override
public int hashCode() {
final int prime = 31;
int result = super.hashCode();
result = prime * result;
return result;
}
}

View file

@ -0,0 +1,344 @@
/**
* 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.viz.pointdata.util;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.geotools.geometry.jts.ReferencedEnvelope;
import com.raytheon.uf.common.inventory.exception.DataCubeException;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint.ConstraintType;
import com.raytheon.uf.common.geospatial.MapUtil;
import com.raytheon.uf.common.geospatial.util.EnvelopeIntersection;
import com.raytheon.uf.common.pointdata.PointDataContainer;
import com.raytheon.uf.common.pointdata.PointDataView;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.viz.datacube.DataCubeContainer;
import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.Envelope;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.GeometryCollection;
/**
*
* Container for requesting and caching metar temp data. This container can be
* reused to request data for multiple times. getBaseTempData is used to quickly
* retrieve data for all metar stations which have the data directly available.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Aug 05, 2016 mjames Copied from MetarPrecipDataContainer
*
* </pre>
*
* @author bsteffen
* @version 1.0
*/
@SuppressWarnings("unchecked")
public class MetarTempDataContainer {
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(MetarTempDataContainer.class);
/*
* Envelope which contains the whole world in LatLon projection. Used for
* intersections/conversion since this is the valid area for metar records.
*/
private static final ReferencedEnvelope WORLD_LAT_LON_ENVELOPE = new ReferencedEnvelope(
-180, 180, -90, 90, MapUtil.LATLON_PROJECTION);
public static class TempData {
private final long timeObs;
private final String stationName;
private final Double tempValue;
private final Coordinate latLon;
public TempData(long timeObs, String stationName, Double tempValue,
Double longitude, Double latitude) {
super();
this.timeObs = timeObs;
this.stationName = stationName;
this.tempValue = getFahrenheitTemp(tempValue);
this.latLon = new Coordinate(longitude, latitude);
}
public Double getTempValue() {
return tempValue;
}
public Coordinate getLatLon() {
return latLon;
}
public String getStationName() {
return stationName;
}
public long getTimeObs() {
return timeObs;
}
}
private static final String LAT_KEY = "latitude";
private static final String LON_KEY = "longitude";
private static final String NAME_KEY = "stationName";
private static final String TIME_KEY = "timeObs";
private static final String TEMP_KEY = "temperature";
private static final long TEN_MIN = 10 * 60 * 1000l;
private final Map<String, RequestConstraint> rcMap;
private final org.opengis.geometry.Envelope descriptorEnvelope;
private List<Envelope> latLonEnvelopes;
private final Map<DataTime, Set<String>> baseStations = new HashMap<DataTime, Set<String>>();
/**
* Consturct a container with geospatially filtering to only request data in
* the area of descriptorEnvelope
*
* @param rcMap
* @param descriptorEnvelope
*/
public MetarTempDataContainer(HashMap<String, RequestConstraint> rcMap,
org.opengis.geometry.Envelope descriptorEnvelope) {
this.rcMap = rcMap;
this.descriptorEnvelope = descriptorEnvelope;
}
/**
* This will construct a container with no geospatial constraints, use it
* only for updates where the rcMap already has stationIds that are
* geospatially filtered.
*
* @param rcMap
*/
public MetarTempDataContainer(Map<String, RequestConstraint> rcMap) {
this.rcMap = rcMap;
this.descriptorEnvelope = null;
this.latLonEnvelopes = Arrays.<Envelope> asList(WORLD_LAT_LON_ENVELOPE);
}
/**
* Get the base temp data from all metar stations
*
* @param time
* @return
*/
public List<TempData> getBaseTempData(DataTime time) {
Map<String, TempData> tempMap = new HashMap<String, TempData>();
long validTime = time.getMatchValid();
PointDataContainer pdc = requestPointData(rcMap, validTime, TEMP_KEY);
if (pdc != null) {
tempMap = createTempData(pdc, validTime - TEN_MIN,
validTime + TEN_MIN, TEMP_KEY);
}
if (tempMap == null) {
tempMap = new HashMap<String, TempData>();
}
baseStations.put(time, tempMap.keySet());
ArrayList<TempData> result = new ArrayList<TempData>(
tempMap.values());
return result;
}
/**
* build TempData objects for every station in a PointDataContainer
*
* @param pdc
* @param startTime
* @param latestTime
* @param tempKey
* @return
*/
private Map<String, TempData> createTempData(PointDataContainer pdc,
long startTime, long latestTime, String tempKey) {
Map<String, TempData> tempMap = new HashMap<String, TempData>();
for (int i = 0; i < pdc.getCurrentSz(); i++) {
PointDataView pdv = pdc.readRandom(i);
Number latitude = pdv.getNumber(LAT_KEY);
Number longitude = pdv.getNumber(LON_KEY);
String stationName = pdv.getString(NAME_KEY);
long timeObs = pdv.getLong(TIME_KEY);
Number tempValue = pdv.getNumber(tempKey);
if (timeObs > latestTime || timeObs <= startTime) {
continue;
}
TempData data = tempMap.get(stationName);
if (data == null) {
data = new TempData(timeObs, stationName,
tempValue.doubleValue(), longitude.doubleValue(),
latitude.doubleValue());
if (tempValue.doubleValue() > -100.){
tempMap.put(stationName, data);
}
} else {
if (timeObs > data.getTimeObs()) {
data = new TempData(timeObs, stationName,
tempValue.doubleValue(), longitude.doubleValue(),
latitude.doubleValue());
tempMap.put(stationName, data);
}
}
}
return tempMap;
}
/**
* This function perfroms the request to edex for point data.
*
* @param rcMap
* @param time
* @param tempKeys
* @return
*/
private PointDataContainer requestPointData(
Map<String, RequestConstraint> rcMap, long time,
String... tempKeys) {
List<String> parameters = new ArrayList<String>(
Arrays.asList(tempKeys));
parameters.add(LAT_KEY);
parameters.add(LON_KEY);
parameters.add(NAME_KEY);
parameters.add(TIME_KEY);
rcMap = new HashMap<String, RequestConstraint>(rcMap);
Calendar validTime = Calendar.getInstance();
validTime.setTimeInMillis(time);
validTime.add(Calendar.MINUTE, 0);
DataTime end = new DataTime(validTime);
validTime = (Calendar) end.getValidTime().clone();
validTime.add(Calendar.HOUR, -1);
validTime.add(Calendar.MINUTE, 1);
DataTime start = new DataTime(validTime);
RequestConstraint timeRC = new RequestConstraint(null,
ConstraintType.BETWEEN);
timeRC.setBetweenValueList(new String[] { start.toString(),
end.toString() });
rcMap.put("dataTime", timeRC);
PointDataContainer pdc = null;
// Over the dateline there might be an envelope on either side.
for (Envelope latLonEnvelope : getLatLonEnvelopes()) {
PointDataContainer tmppdc = null;
RequestConstraint lonRC = new RequestConstraint(null,
ConstraintType.BETWEEN);
Double minLon = latLonEnvelope.getMinX();
Double maxLon = latLonEnvelope.getMaxX();
lonRC.setBetweenValueList(new String[] { minLon.toString(),
maxLon.toString() });
rcMap.put("location.longitude", lonRC);
RequestConstraint latRC = new RequestConstraint(null,
ConstraintType.BETWEEN);
Double minLat = latLonEnvelope.getMinY();
Double maxLat = latLonEnvelope.getMaxY();
latRC.setBetweenValueList(new String[] { minLat.toString(),
maxLat.toString() });
rcMap.put("location.latitude", latRC);
try {
tmppdc = DataCubeContainer.getPointData("obs",
parameters.toArray(new String[0]), rcMap);
} catch (DataCubeException e) {
statusHandler
.handle(Priority.ERROR,
"Error getting temp data, some obs will not display.",
e);
}
if (tmppdc != null) {
tmppdc.setCurrentSz(tmppdc.getAllocatedSz());
if (pdc != null) {
pdc.combine(tmppdc);
pdc.setCurrentSz(pdc.getAllocatedSz());
} else {
pdc = tmppdc;
}
}
}
return pdc;
}
/**
* Get envelopes describing the latlon area that should be used to constrain
* all queries
*
* @return
*/
private List<Envelope> getLatLonEnvelopes() {
if (latLonEnvelopes == null) {
this.latLonEnvelopes = new ArrayList<Envelope>(2);
try {
Geometry intersection = EnvelopeIntersection
.createEnvelopeIntersection(descriptorEnvelope,
WORLD_LAT_LON_ENVELOPE, 0.1, 180, 180);
if (intersection instanceof GeometryCollection) {
GeometryCollection gc = (GeometryCollection) intersection;
for (int n = 0; n < gc.getNumGeometries(); n += 1) {
latLonEnvelopes.add(gc.getGeometryN(n)
.getEnvelopeInternal());
}
} else {
latLonEnvelopes.add(intersection.getEnvelopeInternal());
}
} catch (Exception e) {
statusHandler.handle(Priority.VERBOSE, e.getLocalizedMessage(),
e);
this.latLonEnvelopes.add(WORLD_LAT_LON_ENVELOPE);
}
}
return latLonEnvelopes;
}
public static Double getFahrenheitTemp(Double val){
if (val > -100.) {
return (val * 1.8) + 32.;
} else {
return val;
}
}
}