VLab Issue #8975 - DCS_16961 mPING Ingest and Display
Change-Id: Ia9b52718592d127fb71701c2419450f89bfec0b8 Former-commit-id: 43f7e4cc129f8d177f9586ff5f73c7adf96e18d6
This commit is contained in:
parent
be322dafdb
commit
c6460c3655
30 changed files with 1271 additions and 1 deletions
|
@ -96,7 +96,7 @@
|
||||||
install-size="0"
|
install-size="0"
|
||||||
version="0.0.0"
|
version="0.0.0"
|
||||||
unpack="false"/>
|
unpack="false"/>
|
||||||
|
|
||||||
<plugin
|
<plugin
|
||||||
id="com.raytheon.uf.common.dataplugin.climate"
|
id="com.raytheon.uf.common.dataplugin.climate"
|
||||||
download-size="0"
|
download-size="0"
|
||||||
|
@ -199,4 +199,11 @@
|
||||||
version="0.0.0"
|
version="0.0.0"
|
||||||
unpack="false"/>
|
unpack="false"/>
|
||||||
|
|
||||||
|
<plugin
|
||||||
|
id="gov.noaa.nws.sr.oun.dataplugin.mping"
|
||||||
|
download-size="0"
|
||||||
|
install-size="0"
|
||||||
|
version="0.0.0"
|
||||||
|
unpack="false"/>
|
||||||
|
|
||||||
</feature>
|
</feature>
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
<?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="densityCapability" density="99999.0"/>
|
||||||
|
</capabilities>
|
||||||
|
</loadProperties>
|
||||||
|
<properties isSystemResource="false" isBlinking="false"
|
||||||
|
isMapLayer="false" isHoverOn="false"
|
||||||
|
isVisible="true" />
|
||||||
|
<resourceData xsi:type="plotResourceData" plotSource="${legend}"
|
||||||
|
plotModelFile="${svg}"
|
||||||
|
retrieveData="false" isUpdatingOnMetadataOnly="true"
|
||||||
|
isRequeryNecessaryOnTimeMatch="true" isTopOfTheHour="false">
|
||||||
|
<binOffset posOffset="${posOffset}" negOffset="${negOffset}" virtualOffset="0"/>
|
||||||
|
<metadataMap>
|
||||||
|
<mapping key="pluginName">
|
||||||
|
<constraint constraintValue="mping" constraintType="EQUALS" />
|
||||||
|
</mapping>
|
||||||
|
</metadataMap>
|
||||||
|
</resourceData>
|
||||||
|
</resource>
|
||||||
|
</descriptor>
|
||||||
|
</displays>
|
||||||
|
</displayList>
|
||||||
|
</bundle>
|
|
@ -0,0 +1,53 @@
|
||||||
|
<?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="densityCapability" density="99999.0"/>
|
||||||
|
</capabilities>
|
||||||
|
</loadProperties>
|
||||||
|
<properties isSystemResource="false" isBlinking="false"
|
||||||
|
isMapLayer="false" isHoverOn="false"
|
||||||
|
isVisible="true" />
|
||||||
|
<resourceData xsi:type="plotResourceData" plotSource="${legend}"
|
||||||
|
plotModelFile="${svg}"
|
||||||
|
retrieveData="false" isUpdatingOnMetadataOnly="true"
|
||||||
|
isRequeryNecessaryOnTimeMatch="true" isTopOfTheHour="false">
|
||||||
|
<binOffset posOffset="${posOffset}" negOffset="${negOffset}" virtualOffset="0"/>
|
||||||
|
<metadataMap>
|
||||||
|
<mapping key="category">
|
||||||
|
<constraint constraintValue="${category}" constraintType="EQUALS" />
|
||||||
|
</mapping>
|
||||||
|
<mapping key="pluginName">
|
||||||
|
<constraint constraintValue="mping" constraintType="EQUALS" />
|
||||||
|
</mapping>
|
||||||
|
</metadataMap>
|
||||||
|
</resourceData>
|
||||||
|
</resource>
|
||||||
|
</descriptor>
|
||||||
|
</displays>
|
||||||
|
</displayList>
|
||||||
|
</bundle>
|
|
@ -0,0 +1,191 @@
|
||||||
|
<?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.
|
||||||
|
-->
|
||||||
|
<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>
|
24
cave/com.raytheon.viz.pointdata/localization/menus/mping/index.xml
Executable file
24
cave/com.raytheon.viz.pointdata/localization/menus/mping/index.xml
Executable file
|
@ -0,0 +1,24 @@
|
||||||
|
<?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.
|
||||||
|
-->
|
||||||
|
<menuContributionFile>
|
||||||
|
<include installTo="menu:obs?before=CollectionDissemination"
|
||||||
|
fileName="menus/mping/baseMPing.xml"/>
|
||||||
|
</menuContributionFile>
|
|
@ -0,0 +1,45 @@
|
||||||
|
s2s
|
||||||
|
1 : f
|
||||||
|
2 : e
|
||||||
|
3 : r
|
||||||
|
4 : u
|
||||||
|
5 : p
|
||||||
|
6 : q
|
||||||
|
7 : a
|
||||||
|
8 : t
|
||||||
|
9 : b
|
||||||
|
10 : c
|
||||||
|
11 : s
|
||||||
|
13 : o
|
||||||
|
14 : o
|
||||||
|
15 : o
|
||||||
|
16 : o
|
||||||
|
17 : n
|
||||||
|
19 : n
|
||||||
|
20 : m
|
||||||
|
21 : m
|
||||||
|
22 : m
|
||||||
|
23 : m
|
||||||
|
24 : k
|
||||||
|
25 : k
|
||||||
|
26 : k
|
||||||
|
27 : k
|
||||||
|
28 : l
|
||||||
|
29 : l
|
||||||
|
30 : l
|
||||||
|
31 : l
|
||||||
|
32 : j
|
||||||
|
33 : g
|
||||||
|
34 : g
|
||||||
|
35 : g
|
||||||
|
36 : h
|
||||||
|
37 : i
|
||||||
|
38 : d
|
||||||
|
39 : z
|
||||||
|
40 : x
|
||||||
|
41 : x
|
||||||
|
42 : y
|
||||||
|
43 : y
|
||||||
|
44 : A
|
||||||
|
45 : v
|
||||||
|
46 : w
|
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 32 KiB |
|
@ -0,0 +1,97 @@
|
||||||
|
<?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 datetime
|
||||||
|
class MpingPlotDelegate(PlotDelegate):
|
||||||
|
def __init__(self):
|
||||||
|
PlotDelegate.__init__(self)
|
||||||
|
|
||||||
|
def getSampleText(self, rec):
|
||||||
|
timeobs = datetime.datetime.utcfromtimestamp(rec.getLong("timeObs")/1000)
|
||||||
|
|
||||||
|
description = rec.getString("description")
|
||||||
|
category = rec.getString("category")
|
||||||
|
sampleString = "mPING %s\n\tCategory: %s\n\tDescription: %s"%(timeobs,category,description)
|
||||||
|
|
||||||
|
return sampleString
|
||||||
|
|
||||||
|
plotDelegate = MpingPlotDelegate()
|
||||||
|
|
||||||
|
</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); }
|
||||||
|
@font-face { font-family: "mPING";
|
||||||
|
src: url(mping.svg#mping); }
|
||||||
|
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: 2em;
|
||||||
|
stroke-width: 1px;
|
||||||
|
font-family: WxSymbolFont;
|
||||||
|
|
||||||
|
}
|
||||||
|
text.mping
|
||||||
|
{
|
||||||
|
fill: none;
|
||||||
|
font-size: 1.5em;
|
||||||
|
stroke-width: 0.5px;
|
||||||
|
font-family: mPING;
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
font-variant: normal;
|
||||||
|
text-transform: none;
|
||||||
|
|
||||||
|
}
|
||||||
|
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="rawmPingText" plotMode="sample" class="text" plotParam="description,category,timeObs" x="0" y="0">0</text>
|
||||||
|
<text id="cloudText" plotMode="table" class="mping" plotLookupTable="mPing_trans.txt" plotParam="description_id" style="text-anchor: start" x="0" y="0">0</text>
|
||||||
|
</symbol>
|
||||||
|
|
||||||
|
</defs>
|
||||||
|
<use id="wind" x="40" y="40" width="80" height="80" visibility="visible" xlink:href="#plotData"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3 KiB |
|
@ -140,4 +140,8 @@
|
||||||
id="gov.nasa.msfc.sport.edex.sportlma.feature"
|
id="gov.nasa.msfc.sport.edex.sportlma.feature"
|
||||||
version="0.0.0"/>
|
version="0.0.0"/>
|
||||||
|
|
||||||
|
<includes
|
||||||
|
id="gov.noaa.nws.sr.oun.edex.mping.feature"
|
||||||
|
version="0.0.0"/>
|
||||||
|
|
||||||
</feature>
|
</feature>
|
||||||
|
|
7
edexOsgi/gov.noaa.nws.sr.oun.dataplugin.mping/.classpath
Normal file
7
edexOsgi/gov.noaa.nws.sr.oun.dataplugin.mping/.classpath
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<classpath>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||||
|
<classpathentry kind="src" path="src"/>
|
||||||
|
<classpathentry kind="output" path="bin"/>
|
||||||
|
</classpath>
|
28
edexOsgi/gov.noaa.nws.sr.oun.dataplugin.mping/.project
Normal file
28
edexOsgi/gov.noaa.nws.sr.oun.dataplugin.mping/.project
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>gov.noaa.nws.sr.oun.dataplugin.mping</name>
|
||||||
|
<comment></comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.pde.ManifestBuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.pde.SchemaBuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
<nature>org.eclipse.pde.PluginNature</nature>
|
||||||
|
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||||
|
</natures>
|
||||||
|
</projectDescription>
|
|
@ -0,0 +1,18 @@
|
||||||
|
Manifest-Version: 1.0
|
||||||
|
Bundle-ManifestVersion: 2
|
||||||
|
Bundle-Name: Mping
|
||||||
|
Bundle-SymbolicName: gov.noaa.nws.sr.oun.dataplugin.mping
|
||||||
|
Bundle-Version: 1.0.0.qualifier
|
||||||
|
Bundle-Vendor: NWS OUN
|
||||||
|
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
|
||||||
|
Require-Bundle: com.raytheon.uf.common.dataplugin;bundle-version="1.12.1174",
|
||||||
|
com.raytheon.uf.common.serialization;bundle-version="1.12.1174",
|
||||||
|
com.raytheon.edex.common;bundle-version="1.12.1174",
|
||||||
|
javax.persistence;bundle-version="1.0.0",
|
||||||
|
org.apache.commons.lang;bundle-version="2.3.0",
|
||||||
|
javax.measure;bundle-version="1.0.0",
|
||||||
|
com.raytheon.uf.common.pointdata,
|
||||||
|
com.raytheon.uf.edex.pointdata,
|
||||||
|
com.raytheon.uf.common.status
|
||||||
|
Export-Package: gov.noaa.nws.sr.oun.dataplugin.mping
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
source.. = src/
|
||||||
|
output.. = bin/
|
||||||
|
bin.includes = META-INF/,\
|
||||||
|
.
|
|
@ -0,0 +1,225 @@
|
||||||
|
package gov.noaa.nws.sr.oun.dataplugin.mping;
|
||||||
|
|
||||||
|
import java.util.Calendar;
|
||||||
|
import javax.persistence.Embedded;
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.SequenceGenerator;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
import javax.persistence.Transient;
|
||||||
|
import javax.persistence.UniqueConstraint;
|
||||||
|
import com.raytheon.uf.common.dataplugin.PluginDataObject;
|
||||||
|
import com.raytheon.uf.common.dataplugin.annotations.DataURI;
|
||||||
|
import com.raytheon.uf.common.dataplugin.persist.IPersistable;
|
||||||
|
import com.raytheon.uf.common.dataplugin.persist.PersistablePluginDataObject;
|
||||||
|
import com.raytheon.uf.common.geospatial.ISpatialEnabled;
|
||||||
|
import com.raytheon.uf.common.pointdata.IPointData;
|
||||||
|
import com.raytheon.uf.common.pointdata.PointDataView;
|
||||||
|
import com.raytheon.uf.common.pointdata.spatial.SurfaceObsLocation;
|
||||||
|
import com.raytheon.uf.common.serialization.annotations.DynamicSerialize;
|
||||||
|
import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement;
|
||||||
|
import com.vividsolutions.jts.geom.Geometry;
|
||||||
|
/**
|
||||||
|
* Record implementation for mPING Reports
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
*
|
||||||
|
* SOFTWARE HISTORY
|
||||||
|
* Date Ticket# Engineer Description
|
||||||
|
* ------------ ---------- ----------- --------------------------
|
||||||
|
* Jun 25, 2015 aanderson Initial creation of history
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @author Aaron Anderson
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@SequenceGenerator(initialValue = 1, name = PluginDataObject.ID_GEN, sequenceName = "mpingseq")
|
||||||
|
@Table(name = "mping", uniqueConstraints = { @UniqueConstraint(columnNames = {
|
||||||
|
"latitude", "longitude", "stationId", "refTime"}) })
|
||||||
|
@DynamicSerialize
|
||||||
|
public class MPingReport extends PersistablePluginDataObject implements
|
||||||
|
ISpatialEnabled, IPointData, IPersistable {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@Embedded
|
||||||
|
@DataURI(position = 1, embedded = true)
|
||||||
|
@DynamicSerializeElement
|
||||||
|
private SurfaceObsLocation location;
|
||||||
|
|
||||||
|
@Embedded
|
||||||
|
@DynamicSerializeElement
|
||||||
|
private PointDataView pointDataView;
|
||||||
|
|
||||||
|
@Transient
|
||||||
|
@DynamicSerializeElement
|
||||||
|
private String provider = null;
|
||||||
|
|
||||||
|
@Transient
|
||||||
|
@DynamicSerializeElement
|
||||||
|
private String source = null;
|
||||||
|
|
||||||
|
@Transient
|
||||||
|
@DynamicSerializeElement
|
||||||
|
int description_id;
|
||||||
|
|
||||||
|
@DynamicSerializeElement
|
||||||
|
String description;
|
||||||
|
|
||||||
|
@DynamicSerializeElement
|
||||||
|
String category;
|
||||||
|
|
||||||
|
public MPingReport() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public MPingReport(String dataUri) {
|
||||||
|
super(dataUri);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getProvider() {
|
||||||
|
return provider;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setProvider(String provider) {
|
||||||
|
this.provider = provider;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSource() {
|
||||||
|
return source;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSource(String source) {
|
||||||
|
this.source = source;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getDescription_id() {
|
||||||
|
return description_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDescription_id(int description_id) {
|
||||||
|
this.description_id = description_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDescription(String description) {
|
||||||
|
this.description = description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCategory() {
|
||||||
|
return category;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCategory(String category) {
|
||||||
|
this.category = category;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SurfaceObsLocation getSpatialObject() {
|
||||||
|
return location;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SurfaceObsLocation getLocation() {
|
||||||
|
return location;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLocation(SurfaceObsLocation location) {
|
||||||
|
this.location = location;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get this observation's geometry.
|
||||||
|
*
|
||||||
|
* @return The geometry for this observation.
|
||||||
|
*/
|
||||||
|
public Geometry getGeometry() {
|
||||||
|
return location.getGeometry();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the geometry latitude.
|
||||||
|
*
|
||||||
|
* @return The geometry latitude.
|
||||||
|
*/
|
||||||
|
public double getLatitude() {
|
||||||
|
return location.getLatitude();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the geometry longitude.
|
||||||
|
*
|
||||||
|
* @return The geometry longitude.
|
||||||
|
*/
|
||||||
|
public double getLongitude() {
|
||||||
|
return location.getLongitude();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the station identifier for this observation.
|
||||||
|
*
|
||||||
|
* @return the stationId
|
||||||
|
*/
|
||||||
|
public String getStationId() {
|
||||||
|
return location.getStationId();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the elevation, in meters, of the observing platform or location.
|
||||||
|
*
|
||||||
|
* @return The observation elevation, in meters.
|
||||||
|
*/
|
||||||
|
public Integer getElevation() {
|
||||||
|
return location.getElevation();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get whether the location for this observation is defined.
|
||||||
|
*
|
||||||
|
* @return Is this location defined.
|
||||||
|
*/
|
||||||
|
public Boolean getLocationDefined() {
|
||||||
|
return location.getLocationDefined();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PointDataView getPointDataView() {
|
||||||
|
return pointDataView;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setPointDataView(PointDataView pointDataView) {
|
||||||
|
this.pointDataView = pointDataView;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
Calendar c = getDataTime().getRefTimeAsCalendar();
|
||||||
|
if (c != null) {
|
||||||
|
sb.append(String.format("MPing:%1$tY%1$tm%1$td%1$tH%1$tM",
|
||||||
|
getDataTime().getRefTimeAsCalendar()));
|
||||||
|
} else {
|
||||||
|
sb.append("MPing:YYYYMMDDHHmm");
|
||||||
|
}
|
||||||
|
sb.append(String.format("%6.2f %7.2f:", getLatitude(), getLongitude()));
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
@Override
|
||||||
|
public void setDataURI(String dataURI) {
|
||||||
|
super.setDataURI(dataURI);
|
||||||
|
identifier = dataURI;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getPluginName() {
|
||||||
|
return "mping";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
17
edexOsgi/gov.noaa.nws.sr.oun.edex.mping.feature/.project
Normal file
17
edexOsgi/gov.noaa.nws.sr.oun.edex.mping.feature/.project
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>gov.noaa.nws.sr.oun.edex.mping.feature</name>
|
||||||
|
<comment></comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.pde.FeatureBuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
<nature>org.eclipse.pde.FeatureNature</nature>
|
||||||
|
</natures>
|
||||||
|
</projectDescription>
|
|
@ -0,0 +1 @@
|
||||||
|
bin.includes = feature.xml
|
34
edexOsgi/gov.noaa.nws.sr.oun.edex.mping.feature/feature.xml
Normal file
34
edexOsgi/gov.noaa.nws.sr.oun.edex.mping.feature/feature.xml
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<feature
|
||||||
|
id="gov.noaa.nws.sr.oun.edex.mping.feature"
|
||||||
|
label="MpingFeature"
|
||||||
|
version="1.0.0.qualifier"
|
||||||
|
provider-name="NWS OUN">
|
||||||
|
|
||||||
|
<description url="http://www.example.com/description">
|
||||||
|
[Enter Feature Description here.]
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<copyright url="http://www.example.com/copyright">
|
||||||
|
[Enter Copyright Description here.]
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<license url="http://www.example.com/license">
|
||||||
|
[Enter License Description here.]
|
||||||
|
</license>
|
||||||
|
|
||||||
|
<plugin
|
||||||
|
id="gov.noaa.nws.sr.oun.dataplugin.mping"
|
||||||
|
download-size="0"
|
||||||
|
install-size="0"
|
||||||
|
version="1.0.0"
|
||||||
|
unpack="false"/>
|
||||||
|
|
||||||
|
<plugin
|
||||||
|
id="gov.noaa.nws.sr.oun.edex.plugin.mping"
|
||||||
|
download-size="0"
|
||||||
|
install-size="0"
|
||||||
|
version="1.0.0"
|
||||||
|
unpack="false"/>
|
||||||
|
|
||||||
|
</feature>
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<classpath>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||||
|
<classpathentry kind="src" path="src"/>
|
||||||
|
<classpathentry kind="src" path="test"/>
|
||||||
|
<classpathentry kind="output" path="bin"/>
|
||||||
|
</classpath>
|
28
edexOsgi/gov.noaa.nws.sr.oun.edex.plugin.mping/.project
Normal file
28
edexOsgi/gov.noaa.nws.sr.oun.edex.plugin.mping/.project
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>gov.noaa.nws.sr.oun.edex.plugin.mping</name>
|
||||||
|
<comment></comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.pde.ManifestBuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.pde.SchemaBuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
<nature>org.eclipse.pde.PluginNature</nature>
|
||||||
|
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||||
|
</natures>
|
||||||
|
</projectDescription>
|
|
@ -0,0 +1,15 @@
|
||||||
|
Manifest-Version: 1.0
|
||||||
|
Bundle-ManifestVersion: 2
|
||||||
|
Bundle-Name: Mping
|
||||||
|
Bundle-SymbolicName: gov.noaa.nws.sr.oun.edex.plugin.mping
|
||||||
|
Bundle-Version: 1.0.0.qualifier
|
||||||
|
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
|
||||||
|
Require-Bundle: com.raytheon.edex.common;bundle-version="1.12.1174",
|
||||||
|
com.raytheon.uf.edex.decodertools;bundle-version="1.12.1174",
|
||||||
|
javax.measure;bundle-version="1.0.0",
|
||||||
|
javax.persistence;bundle-version="1.0.0",
|
||||||
|
org.dom4j;bundle-version="1.0.0",
|
||||||
|
com.raytheon.uf.common.status;bundle-version="1.12.1174",
|
||||||
|
com.raytheon.uf.common.pointdata;bundle-version="1.12.1174",
|
||||||
|
com.raytheon.uf.edex.pointdata;bundle-version="1.12.1174",
|
||||||
|
gov.noaa.nws.sr.oun.dataplugin.mping;bundle-version="1.0.0"
|
|
@ -0,0 +1,6 @@
|
||||||
|
source.. = src/
|
||||||
|
output.. = bin/
|
||||||
|
bin.includes = META-INF/,\
|
||||||
|
.,\
|
||||||
|
res/,\
|
||||||
|
utility/
|
|
@ -0,0 +1,28 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<!--
|
||||||
|
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.
|
||||||
|
-->
|
||||||
|
<!--
|
||||||
|
MPing Reports
|
||||||
|
-->
|
||||||
|
<pointDataDescription>
|
||||||
|
<parameter name="provider" numDims="1" type="STRING" />
|
||||||
|
<parameter name="source" numDims="1" type="STRING" />
|
||||||
|
<parameter name="description_id" numDims="1" type="LONG" />
|
||||||
|
</pointDataDescription>
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<pointDataDbDescription>
|
||||||
|
<parameter name="timeObs" queryName="dataTime.refTime" numDims="1" type="LONG" unit="ms"/>
|
||||||
|
<parameter name="latitude" queryName="location.latitude" type="FLOAT" unit="°" />
|
||||||
|
<parameter name="longitude" queryName="location.longitude" type="FLOAT" unit="°" />
|
||||||
|
<parameter name="stationId" queryName="location.stationId" type="STRING" />
|
||||||
|
<parameter name="category" queryName="category" type="STRING" />
|
||||||
|
<parameter name="description" queryName="description" type="STRING" />
|
||||||
|
</pointDataDbDescription>
|
|
@ -0,0 +1,23 @@
|
||||||
|
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||||
|
xmlns:amq="http://activemq.apache.org/schema/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
|
||||||
|
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd
|
||||||
|
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
|
||||||
|
|
||||||
|
<bean id="mpingPluginName" class="java.lang.String">
|
||||||
|
<constructor-arg type="java.lang.String" value="mping"/>
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<bean id="mpingProperties" class="com.raytheon.uf.common.dataplugin.PluginProperties">
|
||||||
|
<property name="pluginName" ref="mpingPluginName"/>
|
||||||
|
<property name="pluginFQN" value="gov.noaa.nws.sr.oun.dataplugin.mping"/>
|
||||||
|
<property name="dao" value="gov.noaa.nws.sr.oun.edex.plugin.mping.dao.MPingReportDao" />
|
||||||
|
<property name="record" value="gov.noaa.nws.sr.oun.dataplugin.mping.MPingReport"/>
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<bean id ="mpingRegistered" factory-bean="pluginRegistry" factory-method="register">
|
||||||
|
<constructor-arg ref="mpingPluginName"/>
|
||||||
|
<constructor-arg ref="mpingProperties"/>
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
</beans>
|
|
@ -0,0 +1,37 @@
|
||||||
|
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
|
||||||
|
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
|
||||||
|
|
||||||
|
<bean id="mpingDecoder" class="gov.noaa.nws.sr.oun.edex.plugin.mping.MPingDecoder"/>
|
||||||
|
|
||||||
|
<bean id="mpingDistRegistry" factory-bean="distributionSrv" factory-method="register">
|
||||||
|
<constructor-arg ref="mpingPluginName" />
|
||||||
|
<constructor-arg value="jms-durable:queue:Ingest.Mping" />
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<camelContext id="mping-camel"
|
||||||
|
xmlns="http://camel.apache.org/schema/spring"
|
||||||
|
errorHandlerRef="errorHandler">
|
||||||
|
|
||||||
|
<route id="mpingIngestRoute">
|
||||||
|
<from uri="jms-durable:queue:Ingest.Mping" />
|
||||||
|
<setHeader headerName="pluginName">
|
||||||
|
<constant>mping</constant>
|
||||||
|
</setHeader>
|
||||||
|
<pipeline>
|
||||||
|
<doTry>
|
||||||
|
<pipeline>
|
||||||
|
<bean ref="stringToFile" />
|
||||||
|
<bean ref="mpingDecoder" method="decode" />
|
||||||
|
<to uri="direct-vm:persistIndexAlert" />
|
||||||
|
</pipeline>
|
||||||
|
<doCatch>
|
||||||
|
<exception>java.lang.Throwable</exception>
|
||||||
|
<to uri="log:mping?level=ERROR"/>
|
||||||
|
</doCatch>
|
||||||
|
</doTry>
|
||||||
|
</pipeline>
|
||||||
|
</route>
|
||||||
|
</camelContext>
|
||||||
|
</beans>
|
|
@ -0,0 +1,181 @@
|
||||||
|
package gov.noaa.nws.sr.oun.edex.plugin.mping;
|
||||||
|
|
||||||
|
import gov.noaa.nws.sr.oun.dataplugin.mping.MPingReport;
|
||||||
|
import gov.noaa.nws.sr.oun.edex.plugin.mping.dao.MPingReportDao;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.text.DateFormat;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.dom4j.Document;
|
||||||
|
import org.dom4j.DocumentException;
|
||||||
|
import org.dom4j.DocumentHelper;
|
||||||
|
import org.dom4j.Element;
|
||||||
|
import com.raytheon.edex.plugin.AbstractDecoder;
|
||||||
|
import com.raytheon.uf.common.dataplugin.PluginDataObject;
|
||||||
|
import com.raytheon.uf.common.pointdata.PointDataContainer;
|
||||||
|
import com.raytheon.uf.common.pointdata.PointDataDescription;
|
||||||
|
import com.raytheon.uf.common.pointdata.PointDataView;
|
||||||
|
import com.raytheon.uf.common.pointdata.spatial.SurfaceObsLocation;
|
||||||
|
import com.raytheon.uf.common.status.IUFStatusHandler;
|
||||||
|
import com.raytheon.uf.common.status.UFStatus;
|
||||||
|
import com.raytheon.uf.common.time.DataTime;
|
||||||
|
import com.vividsolutions.jts.geom.Coordinate;
|
||||||
|
import com.vividsolutions.jts.geom.GeometryFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decoder for mPING Reports
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
*
|
||||||
|
* SOFTWARE HISTORY
|
||||||
|
* Date Ticket# Engineer Description
|
||||||
|
* ------------ ---------- ----------- --------------------------
|
||||||
|
* Jun 25, 2015 aanderson Initial creation of history
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @author Aaron Anderson
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
public class MPingDecoder extends AbstractDecoder {
|
||||||
|
|
||||||
|
private static IUFStatusHandler logger = UFStatus
|
||||||
|
.getHandler(MPingDecoder.class);
|
||||||
|
|
||||||
|
GeometryFactory geomFact = new GeometryFactory();
|
||||||
|
|
||||||
|
DateFormat reportTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssX");
|
||||||
|
|
||||||
|
MPingReportDao dao;
|
||||||
|
|
||||||
|
private PointDataDescription pointDataDescription = null;
|
||||||
|
|
||||||
|
private Map<File, PointDataContainer> containerMap = new HashMap<File, PointDataContainer>();
|
||||||
|
private final String pluginName = "mping";
|
||||||
|
|
||||||
|
public MPingDecoder() {
|
||||||
|
try {
|
||||||
|
pointDataDescription = PointDataDescription
|
||||||
|
.fromStream(this.getClass().getResourceAsStream(
|
||||||
|
"/res/pointdata/mping.xml"));
|
||||||
|
dao = new MPingReportDao(pluginName);
|
||||||
|
logger.info("PointDataDescription loaded");
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error("Problem loading point Data Description "
|
||||||
|
+ e.getMessage());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public PluginDataObject[] decode(String input) throws Exception {
|
||||||
|
logger.info("Starting Decode of mPING xml");
|
||||||
|
ArrayList<MPingReport> list = new ArrayList<MPingReport>();
|
||||||
|
try {
|
||||||
|
// Parse the text input into a Document so that we can extract out
|
||||||
|
// the root element.
|
||||||
|
Document document = DocumentHelper.parseText(input);
|
||||||
|
// Get root element of the document in xml
|
||||||
|
Element e = document.getRootElement();
|
||||||
|
// grab the results section of the kml file
|
||||||
|
Element results = e.element("results");
|
||||||
|
// iterate over the items in the Document section and only grab
|
||||||
|
// report items.
|
||||||
|
Iterator<Element> i = results.elementIterator("report");
|
||||||
|
while (i.hasNext()) {
|
||||||
|
// Grab next report
|
||||||
|
Element report = i.next();
|
||||||
|
try {
|
||||||
|
// pull out the description_id tag
|
||||||
|
Element description_id = report.element("description_id");
|
||||||
|
// If there actually is mPING data then process it.
|
||||||
|
if (description_id != null) {
|
||||||
|
// Get individual items of report
|
||||||
|
Element idElement = report.element("id");
|
||||||
|
Element description = report.element("description");
|
||||||
|
Element category = report.element("category");
|
||||||
|
Element timeElement = report.element("obtime");
|
||||||
|
Date reportTime = reportTimeFormat.parse(timeElement
|
||||||
|
.getText());
|
||||||
|
Element geom = report.element("geom");
|
||||||
|
Element coordinates = geom.element("coordinates");
|
||||||
|
Element lon = coordinates.element("longitude");
|
||||||
|
Element lat = coordinates.element("latitude");
|
||||||
|
|
||||||
|
// Create mping record
|
||||||
|
MPingReport record = new MPingReport();
|
||||||
|
|
||||||
|
// set the description and categories
|
||||||
|
record.setDescription_id(Integer
|
||||||
|
.parseInt(description_id.getText()));
|
||||||
|
record.setDescription(description.getText());
|
||||||
|
record.setCategory(category.getText());
|
||||||
|
// Create new SurfaceObsLocation
|
||||||
|
SurfaceObsLocation obsLoc = new SurfaceObsLocation();
|
||||||
|
// Use id from mPING xml as stationid as this provides
|
||||||
|
// for an always
|
||||||
|
// unique value
|
||||||
|
obsLoc.setStationId(idElement.getText());
|
||||||
|
// Set geometry of report
|
||||||
|
obsLoc.setGeometry(geomFact.createPoint(new Coordinate(
|
||||||
|
Float.parseFloat(lon.getText()), Float
|
||||||
|
.parseFloat(lat.getText()))));
|
||||||
|
record.setLocation(obsLoc);
|
||||||
|
|
||||||
|
// Add our DataTime
|
||||||
|
record.setDataTime(new DataTime(reportTime));
|
||||||
|
|
||||||
|
PointDataContainer pdc = getContainer(record);
|
||||||
|
|
||||||
|
// Populate the point data.
|
||||||
|
PointDataView view = pdc.append();
|
||||||
|
view.setLong("description_id",
|
||||||
|
record.getDescription_id());
|
||||||
|
|
||||||
|
record.setPointDataView(view);
|
||||||
|
|
||||||
|
// Add the record to the list
|
||||||
|
list.add(record);
|
||||||
|
}
|
||||||
|
} catch (Exception ex) {
|
||||||
|
logger.error("Error Creating Mping Record", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (DocumentException ex) {
|
||||||
|
logger.error("Error parsing Mping XML", ex);
|
||||||
|
}
|
||||||
|
// Process the list and send back an array of PluginDataObjects
|
||||||
|
return (list.toArray(new PluginDataObject[list.size()]));
|
||||||
|
}
|
||||||
|
|
||||||
|
public MPingReportDao getDao() {
|
||||||
|
return dao;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDao(MPingReportDao dao) {
|
||||||
|
this.dao = dao;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param mpingData
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private PointDataContainer getContainer(MPingReport mpingData) {
|
||||||
|
|
||||||
|
File file = dao.getFullFilePath(mpingData);
|
||||||
|
PointDataContainer container = containerMap.get(file);
|
||||||
|
if (container == null) {
|
||||||
|
container = PointDataContainer.build(pointDataDescription);
|
||||||
|
containerMap.put(file, container);
|
||||||
|
}
|
||||||
|
return container;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
|
||||||
|
package gov.noaa.nws.sr.oun.edex.plugin.mping.dao;
|
||||||
|
|
||||||
|
import gov.noaa.nws.sr.oun.dataplugin.mping.MPingReport;
|
||||||
|
|
||||||
|
import com.raytheon.uf.common.dataplugin.PluginException;
|
||||||
|
import com.raytheon.uf.edex.pointdata.PointDataPluginDao;
|
||||||
|
/**
|
||||||
|
* DAO object for mPING Reports
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
*
|
||||||
|
* SOFTWARE HISTORY
|
||||||
|
* Date Ticket# Engineer Description
|
||||||
|
* ------------ ---------- ----------- --------------------------
|
||||||
|
* Jun 25, 2015 aanderson Initial creation of history
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @author Aaron Anderson
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
public class MPingReportDao extends PointDataPluginDao<MPingReport> {
|
||||||
|
|
||||||
|
|
||||||
|
public MPingReportDao(String pluginName) throws PluginException {
|
||||||
|
super(pluginName);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String[] getKeysRequiredForFileName() {
|
||||||
|
return new String[] { "dataTime.refTime" };
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getPointDataFileName(MPingReport p) {
|
||||||
|
return "mping.h5";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MPingReport newObject() {
|
||||||
|
return new MPingReport();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,39 @@
|
||||||
|
import gov.noaa.nws.sr.oun.edex.plugin.mping.MPingDecoder;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import com.raytheon.uf.common.dataplugin.PluginDataObject;
|
||||||
|
|
||||||
|
|
||||||
|
public class MpingDecoderTest {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param args
|
||||||
|
*/
|
||||||
|
public static void main(String[] args) {
|
||||||
|
try {
|
||||||
|
File file = new File("/home/awips/mpingtestfiles/mPingtesting.xml");
|
||||||
|
FileInputStream fis = new FileInputStream(file);
|
||||||
|
byte[] array = new byte[(int)file.length()];
|
||||||
|
fis.read(array);
|
||||||
|
fis.close();
|
||||||
|
String input = new String(array);
|
||||||
|
|
||||||
|
MPingDecoder decoder = new MPingDecoder();
|
||||||
|
PluginDataObject[] obj = decoder.decode(input);
|
||||||
|
|
||||||
|
System.out.println(obj[0].getDataTime());
|
||||||
|
} catch(FileNotFoundException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<purgeRuleSet xmlns:ns2="group">
|
||||||
|
<defaultRule>
|
||||||
|
<period>01-00:00:00</period>
|
||||||
|
</defaultRule>
|
||||||
|
</purgeRuleSet>
|
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<requestPatterns xmlns:ns2="group">
|
||||||
|
<regex>^[mM][pP][iI][nN][gG].*</regex>
|
||||||
|
</requestPatterns>
|
Loading…
Add table
Reference in a new issue