13.1.2-10 baseline

Former-commit-id: 86ea0b666e [formerly 5a6d030d358519ca30fc37bf4a090a00557422a3]
Former-commit-id: 68dde17de2
This commit is contained in:
Steve Harris 2013-01-18 10:37:25 -05:00
parent 6fd587d08d
commit 683193255d
40 changed files with 1035 additions and 303 deletions

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -592,19 +592,19 @@ class GribDecoder():
# Special case handling for specific PDS Templates # Special case handling for specific PDS Templates
if pdsTemplateNumber == 1 or pdsTemplateNumber == 11: if pdsTemplateNumber == 1 or pdsTemplateNumber == 11:
typeEnsemble = Integer(pdsTemplate[15]) typeEnsemble = Integer(pdsTemplate[15]).intValue()
perturbationNumber = Integer(pdsTemplate[16]) perturbationNumber = Integer(pdsTemplate[16]).intValue()
pdsFields['numForecasts'] = Integer(pdsTemplate[17]) pdsFields['numForecasts'] = Integer(pdsTemplate[17])
if(typeEnsemble == 0): if(typeEnsemble == 0):
pdsFields['ensembleId'] = "ctlh" + perturbationNumber; pdsFields['ensembleId'] = "ctlh" + str(perturbationNumber);
elif(typeEnsemble == 1): elif(typeEnsemble == 1):
pdsFields['ensembleId'] = "ctll" + perturbationNumber; pdsFields['ensembleId'] = "ctll" + str(perturbationNumber);
elif(typeEnsemble == 2): elif(typeEnsemble == 2):
pdsFields['ensembleId'] = "n" + perturbationNumber; pdsFields['ensembleId'] = "n" + str(perturbationNumber);
elif(typeEnsemble == 3): elif(typeEnsemble == 3):
pdsFields['ensembleId'] = "p" + perturbationNumber; pdsFields['ensembleId'] = "p" + str(perturbationNumber);
else: else:
pdsFields['ensembleId'] = typeEnsemble + "." + perturbationNumber; pdsFields['ensembleId'] = str(typeEnsemble) + "." + str(perturbationNumber);
if pdsTemplateNumber == 11: if pdsTemplateNumber == 11:
endTime = GregorianCalendar(pdsTemplate[18], pdsTemplate[19] - 1, pdsTemplate[20], pdsTemplate[21], pdsTemplate[22], pdsTemplate[23]) endTime = GregorianCalendar(pdsTemplate[18], pdsTemplate[19] - 1, pdsTemplate[20], pdsTemplate[21], pdsTemplate[22], pdsTemplate[23])

View file

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<aliasList namespace="GEMPAK">
<alias base="MB">PRES</alias>
<alias base="LYRMB">PRES</alias>
<alias base="K">THTA</alias>
<alias base="LYRK">THTA</alias>
<alias base="TMPL">TMPL</alias>
<alias base="SFC">NONE</alias>
<alias base="TROP">TROP</alias>
<alias base="MSL">NONE</alias>
<alias base="MAXW">MWSL</alias>
<alias base="FHAG">HGHT</alias>
<alias base="LYRSIG">SGMA</alias>
<alias base="SIG">SGMA</alias>
<alias base="FH">HGHT</alias>
<alias base="BLS">DPTH</alias>
<alias base="EA">NONE</alias>
<alias base="VPT">POTV</alias>
<alias base="LYRFHAG">HGHT</alias>
<alias base="LYRBL">PRES</alias>
<alias base="MEPT">MTHE</alias>
<alias base="EL">EHLT</alias>
<alias base="CBL">CLDL</alias>
<alias base="CTL">CLDT</alias>
<alias base="CCTL">CCTL</alias>
<alias base="LCL">LCLV</alias>
<alias base="CCL">CCLY</alias>
<alias base="CLG">CEIL</alias>
<alias base="PBL">PLBL</alias>
<alias base="PV">POTV</alias>
<alias base="LCBL">LCBL</alias>
<alias base="MCBL">MCBL</alias>
<alias base="HCBL">HCBL</alias>
<alias base="HYB">HYBL</alias>
<alias base="ADCL">LCLV</alias>
<alias base="NTAT">TOPA</alias>
<alias base="SEAB">SEAB</alias>
<alias base="ETA">ELVL</alias>
<alias base="MLD">DPTH</alias>
<alias base="BSS">DPTH</alias>
<alias base="LCY">LCLY</alias>
<alias base="MCY">MCLY</alias>
<alias base="HCY">HCLY</alias>
</aliasList>

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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