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"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
|
||||
<plugin
|
||||
id="com.raytheon.uf.common.dataplugin.climate"
|
||||
download-size="0"
|
||||
|
@ -199,4 +199,11 @@
|
|||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
<plugin
|
||||
id="gov.noaa.nws.sr.oun.dataplugin.mping"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
</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"
|
||||
version="0.0.0"/>
|
||||
|
||||
<includes
|
||||
id="gov.noaa.nws.sr.oun.edex.mping.feature"
|
||||
version="0.0.0"/>
|
||||
|
||||
</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