From 566b677d09cd0db26cfa0eaac987372fc47f8ae3 Mon Sep 17 00:00:00 2001 From: Steve Harris Date: Tue, 12 Mar 2013 08:35:45 -0500 Subject: [PATCH] 13.3.1-6 baseline Former-commit-id: fecc19685d09be66f3eeeee392e565a1ce8b7e65 --- .../raytheon/rcm/products/ElevationInfo.java | 24 + .../src/com/raytheon/rcm/products/Loader.java | 52 + .../com/raytheon/rcm/products/radarInfo.txt | 1 + .../rcm/products/ssssElevationLists.txt | 28 + .../cave/etc/aviation/python/CCFPMonitor.py | 2 +- .../common/cave/etc/colormaps/solar/Blue.cmap | 259 + .../common/cave/etc/colormaps/solar/Gray.cmap | 259 + .../cave/etc/colormaps/solar/Green.cmap | 259 + .../cave/etc/colormaps/solar/Orange.cmap | 259 + .../cave/etc/colormaps/solar/SDO_AIA_131.cmap | 259 + .../etc/colormaps/solar/SDO_AIA_1600.cmap | 259 + .../etc/colormaps/solar/SDO_AIA_1700.cmap | 259 + .../cave/etc/colormaps/solar/SDO_AIA_171.cmap | 259 + .../cave/etc/colormaps/solar/SDO_AIA_193.cmap | 259 + .../cave/etc/colormaps/solar/SDO_AIA_211.cmap | 259 + .../cave/etc/colormaps/solar/SDO_AIA_304.cmap | 259 + .../cave/etc/colormaps/solar/SDO_AIA_335.cmap | 259 + .../etc/colormaps/solar/SDO_AIA_4500.cmap | 259 + .../cave/etc/colormaps/solar/SDO_AIA_94.cmap | 259 + .../etc/colormaps/solar/SDO_Thematic.cmap | 259 + .../etc/colormaps/solar/SOHO_EIT_171.cmap | 259 + .../etc/colormaps/solar/SOHO_EIT_195.cmap | 259 + .../etc/colormaps/solar/SOHO_EIT_284.cmap | 259 + .../etc/colormaps/solar/SOHO_EIT_304.cmap | 259 + .../cave/etc/colormaps/solar/Yellow.cmap | 259 + .../gfe/userPython/procedures/TCMWindTool.py | 69 +- .../gfe/userPython/utilities/ProductParser.py | 30 +- .../24-hr_obs_pcpn_al.attr | 2 +- .../24-hr_obs_pcpn_spc_al.attr | 2 +- .../850mb_h2o_transport_nam.attr | 2 +- .../850mb_wind_pw_ncf_nam.attr | 2 +- .../ModelFcstGridContours/ETA212-standard.xml | 6 + .../ModelFcstGridContours/ETA218-standard.xml | 6 + .../ModelFcstGridContours/GFS212-standard.xml | 6 + .../ModelFcstGridContours/RUC130-standard.xml | 6 + .../ModelFcstGridContours/RUC236-standard.xml | 6 + .../SREF212-standard.xml | 6 + .../bestcape_cin_nam.attr | 2 +- .../bestcape_cin_ncf_nam.attr | 2 +- .../bl_h2o_conv_nam.attr | 2 +- .../bl_h2o_conv_ncf_nam.attr | 2 +- .../bl_thte_ncf_cmc.attr | 2 +- .../bl_thte_ncf_nam.attr | 2 +- .../marine_fronts_nam.attr | 2 +- .../pcpn_potential_ncf_nam.attr | 2 +- .../pmsl_1000-850_thk_nam.attr | 2 +- .../pmsl_1000-850thk_nam.attr | 2 +- .../pmsl_only_nogaps.attr | 2 +- .../pmsl_thkn_wind_mono_nam.attr | 2 +- .../precip_type_vv_ncf_nam.attr | 2 +- .../ransnocsi_500-850.attr | 4 +- .../sig_wave_and_mslp_feet.attr | 2 +- .../sig_wave_and_mslp_meters.attr | 2 +- .../sig_wave_gridded_mslp_feet.attr | 2 +- .../sig_wave_gridded_mslp_feet_nw.attr | 2 +- .../sig_wave_gridded_mslp_meters.attr | 2 +- .../sig_wave_gridded_mslp_meters_nw.attr | 2 +- .../ModelFcstGridContours/svrwx_nam.attr | 2 +- .../cave/etc/ncep/Bundles/GoesSXIImage.xml | 12 +- .../ncep/Bundles/GoesSXIImageMultipane.xml | 26 +- .../cave/etc/ncep/Bundles/HalphaImage.xml | 15 +- .../cave/etc/ncep/Bundles/SDO_AIAImage.xml | 12 +- .../etc/ncep/Bundles/SDO_AIA_MultiImage.xml | 42 +- .../cave/etc/ncep/Bundles/SDO_HMIImage.xml | 14 +- .../cave/etc/ncep/Bundles/SOHOEitImage.xml | 12 +- .../cave/etc/ncep/Bundles/SOHOLascoImage.xml | 15 +- .../cave/etc/ncep/Bundles/STEREOImage.xml | 36 +- .../ncep/PlotModels/bufrmosETA/standard.xml | 12 +- .../ncep/PlotModels/bufrmosGFS/12hrpop.xml | 2 +- .../etc/ncep/PlotModels/bufrmosGFS/6hrpop.xml | 2 +- .../etc/ncep/PlotModels/bufrmosGFS/fosb.xml | 2 +- .../etc/ncep/PlotModels/bufrmosGFS/misc.xml | 32 +- .../ncep/PlotModels/bufrmosGFS/standard.xml | 24 +- .../ncep/PlotModels/bufrmosLAMP/standard.xml | 16 +- .../ncep/PlotModels/bufrmosMRF/standard.xml | 6 +- .../ncep/PlotModels/bufrmosNGM/standard.xml | 6 +- .../etc/ncep/PlotModels/bufrua/standard.xml | 10 +- .../PlotModels/modelsounding/basicNAM.xml | 22 +- .../etc/ncep/PlotModels/ncairep/fullPlot.xml | 40 +- .../etc/ncep/PlotModels/ncairep/standard.xml | 32 +- .../etc/ncep/PlotModels/ncpafm/standard.xml | 22 +- .../etc/ncep/PlotModels/ncpirep/standard.xml | 36 +- .../etc/ncep/PlotModels/ncscd/standard.xml | 14 +- .../cave/etc/ncep/PlotModels/nctaf/simple.xml | 18 +- .../etc/ncep/PlotModels/nctaf/standard.xml | 6 +- .../PlotModels/nctaf/tempo_flt_condition.xml | 14 +- .../etc/ncep/PlotModels/nctaf/tempo_prob.xml | 14 +- .../etc/ncep/PlotModels/ncuair/standard.xml | 10 +- .../cave/etc/ncep/PlotModels/obs/simple.xml | 4 +- .../cave/etc/ncep/PlotModels/obs/standard.xml | 18 +- .../etc/ncep/PlotModels/obs/standard2.xml | 20 +- .../cave/etc/ncep/PlotModels/sfcobs/bouys.xml | 8 +- .../ncep/PlotModels/sfcobs/ship_standard.xml | 20 +- .../ncep/PlotModels/sfcobs/synop_standard.xml | 20 +- .../PlotModels/standardPlotModelTemplate.svg | 53 +- .../ncep/ResourceDefns/GRID/ETA212/ETA212.xml | 21 + .../ncep/ResourceDefns/GRID/ETA218/ETA218.xml | 21 + .../ncep/ResourceDefns/GRID/GFS212/GFS212.xml | 21 + .../ncep/ResourceDefns/GRID/RUC130/RUC130.xml | 21 + .../ncep/ResourceDefns/GRID/RUC236/RUC236.xml | 21 + .../ResourceDefns/GRID/SREF212/SREF212.xml | 21 + .../ffmp/ui/dialogs/FfmpBasinTableDlg.java | 13 +- .../ffmp/ui/rsc/FFMPDataGenerator.java | 8 +- .../feature.xml | 7 + .../META-INF/MANIFEST.MF | 1 - .../viz/npp/crimss/CrimssDataDefinition.java | 4 +- .../viz/radarapps/products/ui/ProductMenu.xml | 1 + .../common/stormtrack/StormTrackDisplay.java | 18 +- .../ui/layer/DistanceBearingToolLayer.java | 25 +- .../ui/layer/DistanceSpeedLayer.java | 6 + .../awipstools/ui/layer/HomeToolLayer.java | 22 + .../viz/lightning/LightningResource.java | 79 +- .../viz/lightning/LightningResourceData.java | 61 +- .../mpe/ui/dialogs/QcPrecipOptionsDialog.java | 55 +- .../menus/radar/baseRadarGraphics.xml | 10 +- .../dualPol/baseRadarAlgorithmOverlays.xml | 10 +- .../menus/radar/klgx/baseLocalRadarMenu.xml | 39 + .../radar/klgx/baseRadarAlgorithmOverlays.xml | 247 + .../menus/radar/klgx/baseRadarBestResBase.xml | 1303 + .../menus/radar/klgx/baseRadarBestResZSRM.xml | 314 + .../menus/radar/klgx/baseRadarBestResZV.xml | 314 + .../menus/radar/klgx/baseRadarDataQuality.xml | 285 + .../radar/klgx/baseRadarDerivedProducts.xml | 400 + .../menus/radar/klgx/baseRadarFourPanel.xml | 231 + .../menus/radar/klgx/baseRadarLegacy.xml | 1874 ++ .../styleRules/RadarUpperText.xml | 4 + .../com/raytheon/viz/radar/RadarHelper.java | 17 +- .../interrogators/RadarGFMInterrogator.java | 257 + .../viz/radar/rsc/RadarProductFactory.java | 5 + .../rsc/graphic/RadarGraphicsDisplay.java | 23 +- .../radar/rsc/graphic/RadarGraphicsPage.java | 188 +- .../rsc/graphic/RadarGraphicsResource.java | 12 +- .../textcontributors/GfmTextContributor.java | 70 + .../viz/radar/textcontributors/UpperText.java | 4 +- .../viz/radar/ui/xy/RadarGSMResource.java | 16 +- .../alarmalert/dialogs/AlarmAlertBell.java | 3 +- .../alarmalert/dialogs/AlarmAlertDlg.java | 39 +- .../alarmalert/dialogs/CurrentAlarmQueue.java | 102 +- .../DataSelectionMenuItems.xml | 1 - .../menus/volume/ModelFamilies.xml | 102 +- .../menus/volume/baseFamilies.xml | 6 +- .../menus/volume/baseFourPanelFamilies.xml | 6 +- .../menus/volume/baseStdEnvPackage.xml | 4 +- .../menus/volume/baseSurfaceFamilies.xml | 4 +- .../localization/menus/volume/index.xml | 1 + deltaScripts/13.3.1/lightsourcecolumn.sql | 3 + edexOsgi/build.edex/esb/conf/modes.xml | 1 + .../NsharpGridInventory.xml | 10 + .../common_static/base/radar/ssssRadars.txt | 1 + .../edex_static/base/smartinit/NAM12.py | 4 +- .../edex/plugin/radar/util/RadarMenuUtil.java | 35 +- .../utility/common_static/base/radarInfo.txt | 1 + .../edex/plugin/shef/ShefDecoder.java | 5 + .../edex/plugin/shef/database/PostShef.java | 6 +- .../impl/TextLightningParser.java | 47 +- .../base/distribution/textlightning.xml | 1 + .../RPGEnvironmentalDataManager.java | 45 +- .../binlightning/BinLightningRecord.java | 45 +- .../impl/LightningStrikePoint.java | 22 + .../common/dataplugin/ffmp/FFMPTemplates.java | 92 +- .../uf/common/dataplugin/ffmp/FFMPUtils.java | 12 +- .../ffmp/FFMPVirtualGageBasinMetaData.java | 14 +- .../dataplugin/radar/RadarDataPoint.java | 21 +- .../common/dataplugin/radar/RadarRecord.java | 59 +- .../dataplugin/radar/level3/GFMPacket.java | 219 + .../dataplugin/radar/level3/GSMBlock.java | 34 +- .../radar/level3/PacketFactory.java | 3 +- .../radar/level3/generic/AreaComponent.java | 31 +- .../dataplugin/radar/util/RadarConstants.java | 3 +- .../dataplugin/radar/util/SsssRadarUtil.java | 128 + .../META-INF/MANIFEST.MF | 3 +- .../raytheon/uf/edex/plugin/qc/QCScanner.java | 203 +- .../raytheon/uf/edex/plugin/qc/dao/QCDao.java | 6 +- nativeLib/build.native/build-notification.sh | 10 +- .../feature.xml | 15 +- .../dataplugin/ncairep/NcAirepRecord.java | 6 +- .../.classpath | 1 - .../.project | 28 + .../.settings/org.eclipse.jdt.core.prefs | 12 + .../META-INF/MANIFEST.MF | 21 + ...f.common.serialization.ISerializableObject | 1 + .../build.properties | 0 .../component-deploy.xml | 11 + ...oaa.nws.ncep.common.dataplugin.ntrans.ecl} | 0 .../dataplugin/ntrans/NtransRecord.java | 187 + .../dataplugin/ntrans/dao/NtransDao.java | 90 + .../dataplugin/ntrans/dao/package-info.java | 4 + .../dataplugin/ntrans/package-info.java | 4 + .../solarimage/SolarImageRecord.java | 33 +- .../staticdata/IStaticDataProvider.java | 10 +- .../ncep/edex/tools/decoder/LatLonLocTbl.java | 26 +- .../edex_static/base/distribution/airmet.xml | 4 +- .../edex/plugin/aww/decoder/AwwDecoder.java | 24 +- .../ncep/edex/plugin/aww/util/AwwParser.java | 17 +- .../.classpath | 7 + .../.project | 2 +- .../.settings/org.eclipse.jdt.core.prefs | 12 + .../META-INF/MANIFEST.MF | 16 + .../build.properties | 5 + .../component-deploy.xml | 11 + .../gov.noaa.nws.ncep.edex.plugin.ntrans.ecl} | 0 .../res/spring/ntrans-common.xml | 25 + .../res/spring/ntrans-ingest.xml | 76 + .../plugin/ntrans/decoder/NtransDecoder.java | 199 + .../plugin/ntrans/decoder/package-info.java | 4 + .../base/purge/ntransPurgeRules.xml | 6 + .../edex_static/base/distribution/ntrans.xml | 3 + .../plugin/solarimage/SolarImageDecoder.java | 50 +- .../base/purge/solarimagePurgeRules.xml | 3 +- .../tasks/profile/MdlSoundingQuery.java | 68 +- .../uengine/tasks/profile/NcSoundingDrv.java | 4 +- .../tasks/profile/ObservedSoundingQuery.java | 10 +- .../tasks/profile/PfcSoundingQuery.java | 10 +- .../.project | 11 - .../.project | 11 - .../META-INF/MANIFEST.MF | 20 - .../parameterConversion/GempakConstants.java | 100 - .../parameterConversion/NcUnits.java | 54 - .../parameterConversion/PRLibrary.java | 2205 -- .../RateOfChangeInTemperatureWithHeight.java | 12 - ...RateOfChangeInTemperatureWithPressure.java | 12 - .../metparameters/AbstractMetParameter.java | 437 - .../nws/ncep/metparameters/Activator.java | 50 - .../nws/ncep/metparameters/AirParcelTemp.java | 26 - .../ncep/metparameters/AirTemperature.java | 28 - .../metparameters/AircraftReportType.java | 20 - .../nws/ncep/metparameters/AircraftType.java | 20 - .../noaa/nws/ncep/metparameters/Amount.java | 150 - .../ncep/metparameters/Avg3HrShipSpeed.java | 19 - .../nws/ncep/metparameters/BaseOfIcing.java | 15 - .../ncep/metparameters/BaseOfTurbulence.java | 12 - .../nws/ncep/metparameters/BaseOfWeather.java | 14 - .../ncep/metparameters/BruntVaisalaFreq.java | 14 - .../BruntVaisalaFreqSquared.java | 22 - .../metparameters/BruntVaisalaPeriod.java | 11 - .../CatFcstCeilingHeightCond.java | 12 - .../CatFcstObstructionsVision.java | 12 - .../metparameters/CatFcstPrecipitation.java | 12 - .../CatFcstSnowAmountFalling24hr.java | 12 - .../metparameters/CatFcstVisibilityCond.java | 12 - .../metparameters/CeilingFromSeaLevel.java | 30 - .../CeilingFromSeaLevelWorstCase.java | 24 - .../metparameters/CeilingFromSurface.java | 44 - .../nws/ncep/metparameters/Clim12HrPOP.java | 25 - .../nws/ncep/metparameters/Clim24HrPOP.java | 27 - .../nws/ncep/metparameters/ClimDayTemp.java | 69 - .../nws/ncep/metparameters/ClimNightTemp.java | 24 - .../nws/ncep/metparameters/CloudBase1.java | 12 - .../nws/ncep/metparameters/CloudBase2.java | 14 - .../nws/ncep/metparameters/CloudCover.java | 24 - .../nws/ncep/metparameters/CloudTop1.java | 15 - .../nws/ncep/metparameters/CloudTop2.java | 13 - .../metparameters/CondFcstPrecip12HrType.java | 13 - .../CondProbOf12HrFreezingPrecip.java | 20 - ...ondProbOf12HrMixedLiquidOrFrozenSolid.java | 20 - .../metparameters/CondProbOf12HrRain.java | 13 - .../CondProbOf12HrSevereWeather.java | 20 - .../metparameters/CondProbOf12HrSnow.java | 21 - .../CondProbOf24HrSevereWeather.java | 12 - .../CondProbOf6HrSevereWeather.java | 19 - .../CondProbOfFreezingPrecip.java | 20 - .../ncep/metparameters/CondProbOfSnow.java | 21 - .../gov/noaa/nws/ncep/metparameters/DPRN.java | 22 - .../ncep/metparameters/DayTempAnomaly.java | 54 - .../nws/ncep/metparameters/DayTempFcst.java | 21 - .../metparameters/DewPointDepression.java | 46 - .../nws/ncep/metparameters/DewPointTemp.java | 72 - .../nws/ncep/metparameters/DryAirDensity.java | 33 - .../metparameters/DryHydrostaticHeight.java | 16 - .../metparameters/EquivPotentialTemp.java | 25 - .../metparameters/EquivWindSpeed10min.java | 19 - .../metparameters/EquivWindSpeed20min.java | 20 - .../metparameters/EstStormDirectionUComp.java | 17 - .../metparameters/EstStormDirectionVComp.java | 17 - .../ncep/metparameters/FZRainWatchThresh.java | 23 - .../FcstFZRainAccumulationIn12Hours.java | 21 - .../FcstFZRainAccumulationToWatchThresh.java | 36 - .../FcstSnowIcePelletAccumToWatchThresh.java | 32 - .../FcstSnowIcePelletAccumulation12Hrs.java | 20 - .../metparameters/FiveSecPeakWindDir.java | 16 - .../metparameters/FlashFloodGuid01Hr.java | 16 - .../metparameters/FlashFloodGuid03Hr.java | 16 - .../metparameters/FlashFloodGuid06Hr.java | 15 - .../metparameters/FlashFloodGuid12Hr.java | 15 - .../metparameters/FlashFloodGuid24Hr.java | 16 - .../nws/ncep/metparameters/FlightLevel.java | 12 - .../nws/ncep/metparameters/FlightRulesID.java | 56 - .../metparameters/FlightRulesIdWorstCase.java | 26 - .../metparameters/FosbergFireWxIndex.java | 37 - .../GenericDimensionlessParameter.java | 13 - .../noaa/nws/ncep/metparameters/HailSize.java | 15 - .../nws/ncep/metparameters/HeatIndex.java | 26 - .../metparameters/HeightAboveSeaLevel.java | 71 - .../ncep/metparameters/HighResWaveHeight.java | 17 - .../Highest1MinMeanWindSpeedInPastHour.java | 16 - .../nws/ncep/metparameters/HumitureIndex.java | 25 - .../noaa/nws/ncep/metparameters/IceCode.java | 17 - .../metparameters/IcingIntensitySymbol.java | 21 - .../ncep/metparameters/IcingTypeSymbol.java | 21 - .../metparameters/InstrumentWaveHeight.java | 15 - .../metparameters/InstrumentWavePeriod.java | 15 - .../nws/ncep/metparameters/InterWindDir.java | 17 - .../ncep/metparameters/InterWindSpeed.java | 17 - .../nws/ncep/metparameters/InterWindTime.java | 17 - .../IsentropesVerticalSeparation.java | 16 - .../ncep/metparameters/LCLParcelPressure.java | 25 - .../metparameters/LCLParcelTemperature.java | 26 - .../ncep/metparameters/LatentHeatOfVapor.java | 26 - .../nws/ncep/metparameters/LiftedIndex.java | 15 - .../LiftedSurfaceAirTempAt500mb.java | 73 - .../Lowest01MinAvgPressInPastHour.java | 14 - .../ncep/metparameters/Max12HrPrecipFcst.java | 16 - .../nws/ncep/metparameters/Max24HrTemp.java | 15 - .../nws/ncep/metparameters/Max6HrTemp.java | 15 - .../nws/ncep/metparameters/MaxCloudCover.java | 12 - .../metparameters/MaxDailyWeatherMapTemp.java | 34 - .../nws/ncep/metparameters/MaxDayTemp.java | 15 - .../nws/ncep/metparameters/MaxEditedTemp.java | 14 - .../ncep/metparameters/MaxMidnightTemp.java | 14 - .../nws/ncep/metparameters/MaxOrMinTemp.java | 16 - .../nws/ncep/metparameters/MaxPrecipPR6X.java | 42 - .../MaxSustSurfWindSpeedFcst.java | 21 - .../nws/ncep/metparameters/MaxWindSpeed.java | 13 - .../ncep/metparameters/MeanSeaLevelPres.java | 92 - .../metparameters/MetParameterFactory.java | 375 - .../nws/ncep/metparameters/Min24HrTemp.java | 13 - .../nws/ncep/metparameters/Min6HrTemp.java | 14 - .../metparameters/MinDailyWeatherMapTemp.java | 38 - .../nws/ncep/metparameters/MinNightTemp.java | 16 - .../nws/ncep/metparameters/MixingRatio.java | 28 - .../metparameters/MoistHydrostaticHeight.java | 15 - .../metparameters/MontgomeryStreamFnct.java | 22 - .../metparameters/MountainObscThresh.java | 16 - .../MountainObscThreshMetIndicator.java | 23 - ...untainObscThreshMetIndicatorWorstCase.java | 37 - .../nws/ncep/metparameters/NewSnowAmount.java | 14 - .../ncep/metparameters/NightTempAnomaly.java | 55 - .../nws/ncep/metparameters/NightTempFcst.java | 23 - .../nws/ncep/metparameters/NumInterWinds.java | 18 - .../ncep/metparameters/OneMinPeakWindDir.java | 14 - .../noaa/nws/ncep/metparameters/POP12Hrs.java | 24 - .../noaa/nws/ncep/metparameters/POP24Hrs.java | 23 - .../ncep/metparameters/POPAnomalyIn12hrs.java | 45 - .../ncep/metparameters/POPAnomalyIn24hrs.java | 50 - .../nws/ncep/metparameters/POPFcst06Hrs.java | 22 - .../nws/ncep/metparameters/POPFcst12Hrs.java | 23 - .../nws/ncep/metparameters/POPFcst24Hrs.java | 23 - .../nws/ncep/metparameters/PeakWindDir.java | 17 - .../nws/ncep/metparameters/PeakWindSpeed.java | 10 - .../ncep/metparameters/PeakWindSpeedTime.java | 10 - .../metparameters/PerpendicularWindComp.java | 22 - .../metparameters/PlatformTrueDirection.java | 17 - .../ncep/metparameters/PlatformTrueSpeed.java | 17 - .../nws/ncep/metparameters/PotentialTemp.java | 41 - .../metparameters/PotentialTempLapseRate.java | 15 - .../nws/ncep/metparameters/Precip01Hr.java | 13 - .../nws/ncep/metparameters/Precip03Hr.java | 13 - .../nws/ncep/metparameters/Precip06Hr.java | 13 - .../nws/ncep/metparameters/Precip12Hr.java | 13 - .../nws/ncep/metparameters/Precip18Hr.java | 9 - .../nws/ncep/metparameters/Precip24Hr.java | 9 - .../PrecipitableWaterForEntireSounding.java | 15 - .../PrecipitableWaterUptoSpecifiedLevel.java | 15 - .../nws/ncep/metparameters/Precipitation.java | 17 - .../metparameters/PredomSwellWaveDir.java | 16 - .../metparameters/PredomSwellWaveHeight.java | 14 - .../metparameters/PredomSwellWavePeriod.java | 15 - .../ncep/metparameters/PresentWeather.java | 46 - .../ncep/metparameters/PressChange24Hr.java | 17 - .../ncep/metparameters/PressChange3Hr.java | 21 - .../nws/ncep/metparameters/PressTendency.java | 22 - .../nws/ncep/metparameters/PressureLevel.java | 19 - ...RateOfIceAccretionOnVesselInSaltWater.java | 28 - .../ncep/metparameters/RelativeHumidity.java | 43 - .../ncep/metparameters/RichardsonNumber.java | 17 - .../metparameters/SatEquivPotentialTemp.java | 28 - .../ncep/metparameters/SatMixingRatio.java | 33 - .../ncep/metparameters/SatVaporPressure.java | 23 - .../ncep/metparameters/SeaIceDriftDist.java | 17 - .../ncep/metparameters/SeaLevelPressure.java | 70 - .../ncep/metparameters/SeaSurfaceTemp.java | 16 - .../metparameters/SecondarySwellWaveDir.java | 13 - .../SecondarySwellWaveHeight.java | 15 - .../SecondarySwellWavePeriod.java | 15 - .../nws/ncep/metparameters/ShipCourse.java | 15 - .../ncep/metparameters/ShipIceThickness.java | 16 - .../ncep/metparameters/ShowalterIndex.java | 16 - .../nws/ncep/metparameters/SkyCoverage.java | 70 - .../nws/ncep/metparameters/SnowDepth.java | 15 - .../SnowIcePelletWatchThresh.java | 23 - .../ncep/metparameters/SpecificHumidity.java | 17 - .../metparameters/SpeedOf05SecPeakWind.java | 20 - .../StabilityWithRespectToPressure.java | 16 - .../ncep/metparameters/StationElevation.java | 95 - .../nws/ncep/metparameters/StationID.java | 53 - .../ncep/metparameters/StationLatitude.java | 66 - .../ncep/metparameters/StationLongitude.java | 69 - .../nws/ncep/metparameters/StationName.java | 48 - .../ncep/metparameters/StormMotionSpeed.java | 28 - .../ncep/metparameters/SunshineDuration.java | 16 - .../SurfaceEquivPotentialTemp.java | 30 - .../metparameters/SurfaceMixingRatio.java | 34 - .../metparameters/SurfacePotentialTemp.java | 36 - .../ncep/metparameters/SurfacePressure.java | 41 - .../SurfaceSatEquivPotentialTemp.java | 29 - .../metparameters/SurfaceSatMixingRatio.java | 31 - .../nws/ncep/metparameters/TempLapseRate.java | 14 - .../TemporaryCeilingAsMeanSeaLevel.java | 40 - .../TemporaryOrProbabilityCeiling.java | 15 - ...raryOrProbabilityFlightRuleIdentifier.java | 17 - ...abilityMountainObscThreshMetIndicator.java | 26 - .../TemporaryOrProbabilityVisibility.java | 15 - .../TemporaryOrProbabilityWindDirection.java | 24 - .../TemporaryOrProbabilityWindGust.java | 16 - .../TemporaryOrProbabilityWindSpeed.java | 20 - .../TimeOf5SecPeakWindInHrs.java | 15 - .../TimeOf5SecPeakWindInMins.java | 15 - .../nws/ncep/metparameters/TopOfIcing.java | 16 - .../ncep/metparameters/TopOfTurbulence.java | 16 - .../nws/ncep/metparameters/TopOfWeather.java | 16 - .../TurbulenceFrequencySymbol.java | 21 - .../TurbulenceIntensitySymbol.java | 21 - .../UncondProbOfTstorms12hr.java | 23 - .../UncondProbOfTstorms24hr.java | 23 - .../metparameters/UncondProbOfTstorms2hr.java | 23 - .../metparameters/UncondProbOfTstorms6hr.java | 23 - .../nws/ncep/metparameters/VaporPressure.java | 25 - .../ncep/metparameters/VerticalVelocity.java | 17 - .../metparameters/VirtualPotentialTemp.java | 47 - .../nws/ncep/metparameters/VirtualTemp.java | 42 - .../nws/ncep/metparameters/Visibility.java | 15 - .../metparameters/WaterEquivOfNewSnow.java | 15 - .../nws/ncep/metparameters/WaveHeight.java | 15 - .../nws/ncep/metparameters/WavePeriod.java | 15 - .../nws/ncep/metparameters/WaveSteepness.java | 18 - .../metparameters/WetBulbPotentialTemp.java | 46 - .../nws/ncep/metparameters/WetBulbTemp.java | 58 - .../WindChillEquivalentTemp.java | 28 - .../metparameters/WindChillTemperature.java | 27 - .../ncep/metparameters/WindCompDirection.java | 15 - .../nws/ncep/metparameters/WindDirection.java | 25 - .../metparameters/WindDirectionUComp.java | 24 - .../metparameters/WindDirectionVComp.java | 23 - .../noaa/nws/ncep/metparameters/WindGust.java | 20 - .../nws/ncep/metparameters/WindSpeed.java | 32 - .../nws/ncep/metparameters/WindSpeedComp.java | 24 - .../ncep/metparameters/WindWaveHeight.java | 15 - .../ncep/metparameters/WindWavePeriod.java | 15 - .../dbquery/util/ClimateDataDbAccess.java | 8 - .../dbquery/util/ClimateDataDbAccessImpl.java | 136 - .../util/ClimateDataDbAccessManager.java | 23 - .../AbstractMetParameterTest.java | 53 - .../staticdataprovider/BoundsProvider.java | 168 + .../StaticDataProvider.java | 18 + .../libbignsharp.so | Bin 8606280 -> 9193349 bytes .../BigNsharp/Makefile | 3 +- .../BigNsharp/caveNsharp.c | 1372 +- .../BigNsharp/cavesars.f | 344 + .../BigNsharp/cavesup_nsharp.f | 285 + .../BigNsharp/config.c | 4 +- .../BigNsharp/globals.h | 2 +- .../BigNsharp/parameterization.c | 4 +- .../BigNsharp/sharp95.c | 2 +- .../BigNsharp/so_new.csh | 3 +- .../BigNsharp/xwvid3.c | 94 +- .../META-INF/MANIFEST.MF | 6 - ncep/gov.noaa.nws.ncep.ui.nsharp/plugin.xml | 2 +- .../ncep/ui/nsharp/NsharpConfigManager.java | 16 + .../nws/ncep/ui/nsharp/NsharpConstants.java | 65 +- .../ncep/ui/nsharp/NsharpGraphProperty.java | 22 +- .../ncep/ui/nsharp/NsharpGridInventory.java | 7 +- .../ncep/ui/nsharp/display/NsharpEditor.java | 2 + .../display/NsharpHodoPaneMouseHandler.java | 4 +- .../display/NsharpSkewTPaneMouseHandler.java | 8 +- .../NsharpTimeStnPaneMouseHandler.java | 2 +- .../display/map/NsharpMapMouseHandler.java | 2 +- .../display/map/NsharpMapResourceData.java | 2 +- .../display/rsc/NsharpDataPaneResource.java | 44 +- .../display/rsc/NsharpResourceHandler.java | 3 +- .../display/rsc/NsharpSkewTPaneResource.java | 73 +- .../rsc/NsharpSpcGraphsPaneResource.java | 1301 +- .../rsc/NsharpTimeStnPaneResource.java | 9 +- .../nsharp/maprsc/NsharpMapMouseHandler.java | 696 - .../ui/nsharp/maprsc/NsharpMapResource.java | 549 - .../nsharp/maprsc/NsharpMapResourceData.java | 118 - .../maprsc/NsharpObservedSoundingQuery.java | 189 - .../nsharp/maprsc/NsharpPfcSoundingQuery.java | 148 - .../maprsc/NsharpSoundingQueryCommon.java | 46 - .../menu/ModelSoundingDialogContents.java | 729 - .../nsharp/menu/NsharpHandleArchiveFile.java | 269 - .../ncep/ui/nsharp/menu/NsharpLoadDialog.java | 431 - .../ui/nsharp/menu/NsharpUnloadDialog.java | 205 - .../menu/ObservedSoundingDialogContents.java | 393 - .../menu/PfcSoundingDialogContents.java | 437 - .../ncep/ui/nsharp/natives/NsharpNative.java | 252 +- .../nsharp/natives/NsharpNativeConstants.java | 4 +- .../palette/NsharpBoundaryMotionDialog.java | 45 - .../ui/nsharp/palette/NsharpConfigDialog.java | 229 - .../NsharpDataDisplayConfigDialog.java | 585 - .../nsharp/palette/NsharpEditDataDialog.java | 492 - .../nsharp/palette/NsharpPaletteAction.java | 73 - .../nsharp/palette/NsharpPaletteWindow.java | 834 - .../palette/NsharpPaneConfigDialog.java | 217 - ...NsharpParametersSelectionConfigDialog.java | 801 - .../ui/nsharp/palette/NsharpParcelDialog.java | 544 - .../ui/nsharp/palette/NsharpPrintHandle.java | 1091 - .../ui/nsharp/palette/NsharpSaveHandle.java | 151 - .../nsharp/palette/NsharpShowTextDialog.java | 325 - .../nsharp/palette/NsharpStnConfigDialog.java | 188 - .../palette/NsharpTimeLineConfigDialog.java | 188 - .../nsharp/skewt/NsharpSkewTDescriptor.java | 107 - .../ui/nsharp/skewt/NsharpSkewTDisplay.java | 251 - .../ui/nsharp/skewt/NsharpSkewTEditor.java | 531 - .../skewt/bkgd/NsharpAbstractBackground.java | 133 - .../skewt/bkgd/NsharpHodoBackground.java | 231 - .../skewt/bkgd/NsharpIcingBackground.java | 183 - .../skewt/bkgd/NsharpInsetBackground.java | 42 - .../skewt/bkgd/NsharpSkewTBackground.java | 462 - .../bkgd/NsharpTurbulenceBackground.java | 170 - .../skewt/rsc/NsharpBackgroundResource.java | 489 - .../skewt/rsc/NsharpBkgResourceData.java | 64 - .../ui/nsharp/skewt/rsc/NsharpDrawPanels.java | 3734 --- .../skewt/rsc/NsharpSkewTMouseHandler.java | 574 - .../nsharp/skewt/rsc/NsharpSkewTResource.java | 6795 ----- .../skewt/rsc/NsharpSkewTResourceData.java | 64 - .../view/ModelSoundingDialogContents.java | 181 +- .../view/NsharpGribModelTypeConfigDialog.java | 4 +- .../ncep/ui/nsharp/view/NsharpLoadDialog.java | 64 +- .../ui/nsharp/view/NsharpPaletteWindow.java | 6 +- ...NsharpParametersSelectionConfigDialog.java | 56 +- .../view/ObservedSoundingDialogContents.java | 132 +- .../view/PfcSoundingDialogContents.java | 159 +- .../META-INF/MANIFEST.MF | 1 + ncep/gov.noaa.nws.ncep.ui.pgen/icons/clip.gif | Bin 0 -> 129 bytes .../localization/ncep/pgen/linePatterns.xml | 7 + .../ncep/pgen/outlooksettings.xml | 218 +- .../localization/ncep/pgen/outlooktype.xml | 5 +- .../localization/ncep/pgen/productTypes.xml | 21180 ++++++++-------- .../localization/ncep/pgen/settings_tbl.xml | 5 + ncep/gov.noaa.nws.ncep.ui.pgen/plugin.xml | 59 + .../noaa/nws/ncep/ui/pgen/PgenClipboard.java | 96 + .../gov/noaa/nws/ncep/ui/pgen/PgenUtil.java | 12 +- .../ui/pgen/attrdialog/OutlookAttrDlg.java | 48 +- .../ui/pgen/attrdialog/OutlookFormatDlg.java | 127 +- .../pgen/attrdialog/OutlookFormatMsgDlg.java | 10 +- .../nws/ncep/ui/pgen/clipper/ClipProduct.java | 822 + .../productmanage/ProductConfigureDialog.java | 152 +- .../ui/pgen/producttypes/ProductType.java | 53 +- .../ncep/ui/pgen/tools/PgenClippingTool.java | 138 + .../tools/PgenCopypasteHotkeyHandler.java | 131 + .../ui/pgen/tools/PgenOutlookDrawingTool.java | 27 +- .../ncep/ui/pgen/tools/PgenSelectingTool.java | 2 +- .../ui/pgen/tools/PgenTextDrawingTool.java | 40 +- .../ncep/viz/localization/NcPathManager.java | 4 + .../ui/createRbd/CreateRbdControl.java | 5 +- ...f.common.serialization.ISerializableObject | 3 +- .../localization/ncep/advanced/adv_icon.jpg | Bin 0 -> 3598 bytes .../localization/ncep/fontFiles/VeraSe.ttf | Bin 0 -> 60280 bytes .../localization/ncep/fontFiles/VeraSeBd.ttf | Bin 0 -> 58736 bytes .../localization/ncep/fontFiles/cour.pfa | 1954 ++ .../localization/ncep/fontFiles/courb.pfa | 1966 ++ .../localization/ncep/fontFiles/courbi.pfa | 1940 ++ .../localization/ncep/fontFiles/couri.pfa | 1893 ++ .../localization/ncep/fontFiles/l049013t.pfa | 1598 ++ .../localization/ncep/fontFiles/l049016t.pfa | 1582 ++ .../localization/ncep/fontFiles/l049033t.pfa | 1735 ++ .../localization/ncep/fontFiles/l049036t.pfa | 1613 ++ .../localization/ncep/fontFiles/luxisb.ttf | Bin 0 -> 69972 bytes .../localization/ncep/fontFiles/luxisbi.ttf | Bin 0 -> 65568 bytes .../localization/ncep/fontFiles/luxisr.ttf | Bin 0 -> 67548 bytes .../localization/ncep/fontFiles/luxisri.ttf | Bin 0 -> 66372 bytes .../advanced/ConditionalColorBar.java | 587 + .../advanced/ConditionalColorBarEditor.java | 933 + .../EditConditionalColorbarComposite.java | 76 + .../EditPlotModelElementAdvancedDialog.java | 252 + .../plotModels/NcPlotDataThreadPool.java | 136 + .../plotModels/NcPlotModelDataRequestJob.java | 1216 + .../plotModels/NcPlotModelGeneratorJob.java | 130 + .../plotModels/PlotModelFactory2.java | 572 +- .../plotModels/elements/PlotModel.java | 18 + .../plotModels/elements/PlotModelElement.java | 63 +- .../plotdata/rsc/EditPlotDataAttrsDialog.java | 1 + .../plotdata/rsc/EditPlotModelComposite.java | 172 +- .../viz/rsc/plotdata/rsc/NcPlotResource2.java | 1313 + .../rsc/plotdata/rsc/PlotResourceData.java | 3 +- .../viz/rsc/plotdata/rsc/TafPlotResource.java | 11 +- .../.classpath | 7 + .../.project | 28 + .../.settings/org.eclipse.jdt.core.prefs | 2 +- .../META-INF/MANIFEST.MF | 33 + ...f.common.serialization.ISerializableObject | 3 + .../build.properties | 6 + .../gov.noaa.nws.ncep.viz.rsc.solarimage.ecl} | 0 .../styleRules/solarImageryStyleRules.xml | 604 + .../plugin.xml | 783 + .../ncep/viz/rsc/solarimage/Activator.java | 85 + .../solarimage/LogSolarImageDataCallback.java | 45 + .../solarimage/SolarImageBundleLoader.java | 69 + .../solarimage/SolarImageDataCallback.java | 98 + .../solarimage/actions/CarrLatLonAction.java | 176 + .../actions/CarrLatLonCapability.java | 73 + .../actions/EnableDisableLatLonAction.java | 169 + .../actions/EnableDisableSamplingAction.java | 73 + .../solarimage/actions/HalphaImageAction.java | 63 + .../actions/LatLonIntervalCapability.java | 75 + .../solarimage/actions/SDOImageAction.java | 79 + .../solarimage/actions/SOHOImageAction.java | 77 + .../solarimage/actions/STEREOImageAction.java | 70 + .../solarimage/actions/SXIImageAction.java | 83 + .../solarimage/actions/StonyLatLonAction.java | 171 + .../actions/StonyLatLonCapability.java | 73 + .../display/DefaultNonMapDisplay.java | 38 + .../display/SolarImageMatchCriteria.java | 145 + .../viz/rsc/solarimage/rsc/LatLonOverlay.java | 624 + .../ncep/viz/rsc/solarimage/rsc/Sampling.java | 449 + .../rsc/solarimage/rsc/SolarImageDisplay.java | 335 + .../rsc/SolarImageInputAdapter.java | 87 + .../solarimage/rsc/SolarImageResource.java | 433 + .../rsc/SolarImageResourceData.java | 124 + .../viz/rsc/solarimage/util/HeaderData.java | 399 + .../viz/rsc/solarimage/util/ImageData.java | 233 + .../util/SolarImagePreferences.java | 56 + .../rsc/solarimage/util/SolarImageUtil.java | 86 + .../viz/rsc/solarimage/wcs/CSConversions.java | 151 + .../viz/rsc/solarimage/wcs/WCSConverter.java | 272 + .../viz/rsc/wstm/rsc/WstmQueryResult.java | 21 +- .../ncep/viz/rsc/wstm/rsc/WstmResource.java | 41 +- .../META-INF/MANIFEST.MF | 3 +- .../loopManagement/CombinedFrameTool.java | 28 +- .../loopManagement/LoopBackwardAction.java | 25 + .../loopManagement/LoopForwardAction.java | 28 +- .../tools/loopManagement/LoopRockAction.java | 25 +- .../ncep/viz/tools/panZoom/NcPanHandler.java | 41 +- .../pypies/pypies/impl/HDF5OpManager.py | 10 +- .../Installer.notification/component.spec | 13 +- 635 files changed, 56651 insertions(+), 44953 deletions(-) create mode 100644 RadarServer/com.raytheon.rcm.lib/src/com/raytheon/rcm/products/ssssElevationLists.txt create mode 100644 cave/build/static/common/cave/etc/colormaps/solar/Blue.cmap create mode 100644 cave/build/static/common/cave/etc/colormaps/solar/Gray.cmap create mode 100644 cave/build/static/common/cave/etc/colormaps/solar/Green.cmap create mode 100644 cave/build/static/common/cave/etc/colormaps/solar/Orange.cmap create mode 100644 cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_131.cmap create mode 100644 cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_1600.cmap create mode 100644 cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_1700.cmap create mode 100644 cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_171.cmap create mode 100644 cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_193.cmap create mode 100644 cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_211.cmap create mode 100644 cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_304.cmap create mode 100644 cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_335.cmap create mode 100644 cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_4500.cmap create mode 100644 cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_94.cmap create mode 100644 cave/build/static/common/cave/etc/colormaps/solar/SDO_Thematic.cmap create mode 100644 cave/build/static/common/cave/etc/colormaps/solar/SOHO_EIT_171.cmap create mode 100644 cave/build/static/common/cave/etc/colormaps/solar/SOHO_EIT_195.cmap create mode 100644 cave/build/static/common/cave/etc/colormaps/solar/SOHO_EIT_284.cmap create mode 100644 cave/build/static/common/cave/etc/colormaps/solar/SOHO_EIT_304.cmap create mode 100644 cave/build/static/common/cave/etc/colormaps/solar/Yellow.cmap create mode 100644 cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/ETA212-standard.xml create mode 100644 cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/ETA218-standard.xml create mode 100644 cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/GFS212-standard.xml create mode 100644 cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/RUC130-standard.xml create mode 100644 cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/RUC236-standard.xml create mode 100644 cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/SREF212-standard.xml create mode 100644 cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/ETA212/ETA212.xml create mode 100644 cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/ETA218/ETA218.xml create mode 100644 cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/GFS212/GFS212.xml create mode 100644 cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/RUC130/RUC130.xml create mode 100644 cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/RUC236/RUC236.xml create mode 100644 cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/SREF212/SREF212.xml create mode 100644 cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseLocalRadarMenu.xml create mode 100644 cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarAlgorithmOverlays.xml create mode 100644 cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarBestResBase.xml create mode 100644 cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarBestResZSRM.xml create mode 100644 cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarBestResZV.xml create mode 100644 cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarDataQuality.xml create mode 100644 cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarDerivedProducts.xml create mode 100644 cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarFourPanel.xml create mode 100644 cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarLegacy.xml create mode 100644 cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/interrogators/RadarGFMInterrogator.java create mode 100644 cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/textcontributors/GfmTextContributor.java create mode 100644 deltaScripts/13.3.1/lightsourcecolumn.sql create mode 100644 edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/NsharpGridInventory.xml create mode 100644 edexOsgi/build.edex/esb/data/utility/common_static/base/radar/ssssRadars.txt create mode 100644 edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/level3/GFMPacket.java create mode 100644 edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/util/SsssRadarUtil.java rename ncep/{gov.noaa.nws.ncep.metParameters => gov.noaa.nws.ncep.common.dataplugin.ntrans}/.classpath (88%) create mode 100644 ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/.project create mode 100644 ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/.settings/org.eclipse.jdt.core.prefs create mode 100644 ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/META-INF/MANIFEST.MF create mode 100644 ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/META-INF/services/com.raytheon.uf.common.serialization.ISerializableObject rename ncep/{gov.noaa.nws.ncep.metParameters => gov.noaa.nws.ncep.common.dataplugin.ntrans}/build.properties (100%) create mode 100644 ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/component-deploy.xml rename ncep/{gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1Vcrd/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1Vcrd.ecl => gov.noaa.nws.ncep.common.dataplugin.ntrans/gov.noaa.nws.ncep.common.dataplugin.ntrans.ecl} (100%) create mode 100644 ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/src/gov/noaa/nws/ncep/common/dataplugin/ntrans/NtransRecord.java create mode 100644 ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/src/gov/noaa/nws/ncep/common/dataplugin/ntrans/dao/NtransDao.java create mode 100644 ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/src/gov/noaa/nws/ncep/common/dataplugin/ntrans/dao/package-info.java create mode 100644 ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/src/gov/noaa/nws/ncep/common/dataplugin/ntrans/package-info.java create mode 100644 ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/.classpath rename ncep/{gov.noaa.nws.ncep.metParameters => gov.noaa.nws.ncep.edex.plugin.ntrans}/.project (92%) create mode 100644 ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/.settings/org.eclipse.jdt.core.prefs create mode 100644 ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/META-INF/MANIFEST.MF create mode 100644 ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/build.properties create mode 100644 ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/component-deploy.xml rename ncep/{gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1VcrdTable/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1VcrdTable.ecl => gov.noaa.nws.ncep.edex.plugin.ntrans/gov.noaa.nws.ncep.edex.plugin.ntrans.ecl} (100%) create mode 100644 ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/res/spring/ntrans-common.xml create mode 100644 ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/res/spring/ntrans-ingest.xml create mode 100644 ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/src/gov/noaa/nws/ncep/edex/plugin/ntrans/decoder/NtransDecoder.java create mode 100644 ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/src/gov/noaa/nws/ncep/edex/plugin/ntrans/decoder/package-info.java create mode 100644 ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/utility/common_static/base/purge/ntransPurgeRules.xml create mode 100644 ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/utility/edex_static/base/distribution/ntrans.xml delete mode 100644 ncep/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1Vcrd/.project delete mode 100644 ncep/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1VcrdTable/.project delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/META-INF/MANIFEST.MF delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metParameters/parameterConversion/GempakConstants.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metParameters/parameterConversion/NcUnits.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metParameters/parameterConversion/PRLibrary.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metParameters/quantity/RateOfChangeInTemperatureWithHeight.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metParameters/quantity/RateOfChangeInTemperatureWithPressure.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/AbstractMetParameter.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Activator.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/AirParcelTemp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/AirTemperature.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/AircraftReportType.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/AircraftType.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Amount.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Avg3HrShipSpeed.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/BaseOfIcing.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/BaseOfTurbulence.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/BaseOfWeather.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/BruntVaisalaFreq.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/BruntVaisalaFreqSquared.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/BruntVaisalaPeriod.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CatFcstCeilingHeightCond.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CatFcstObstructionsVision.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CatFcstPrecipitation.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CatFcstSnowAmountFalling24hr.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CatFcstVisibilityCond.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CeilingFromSeaLevel.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CeilingFromSeaLevelWorstCase.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CeilingFromSurface.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Clim12HrPOP.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Clim24HrPOP.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/ClimDayTemp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/ClimNightTemp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CloudBase1.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CloudBase2.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CloudCover.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CloudTop1.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CloudTop2.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondFcstPrecip12HrType.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf12HrFreezingPrecip.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf12HrMixedLiquidOrFrozenSolid.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf12HrRain.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf12HrSevereWeather.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf12HrSnow.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf24HrSevereWeather.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf6HrSevereWeather.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOfFreezingPrecip.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOfSnow.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DPRN.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DayTempAnomaly.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DayTempFcst.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DewPointDepression.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DewPointTemp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DryAirDensity.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DryHydrostaticHeight.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/EquivPotentialTemp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/EquivWindSpeed10min.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/EquivWindSpeed20min.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/EstStormDirectionUComp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/EstStormDirectionVComp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FZRainWatchThresh.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FcstFZRainAccumulationIn12Hours.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FcstFZRainAccumulationToWatchThresh.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FcstSnowIcePelletAccumToWatchThresh.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FcstSnowIcePelletAccumulation12Hrs.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FiveSecPeakWindDir.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlashFloodGuid01Hr.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlashFloodGuid03Hr.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlashFloodGuid06Hr.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlashFloodGuid12Hr.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlashFloodGuid24Hr.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlightLevel.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlightRulesID.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlightRulesIdWorstCase.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FosbergFireWxIndex.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/GenericDimensionlessParameter.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/HailSize.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/HeatIndex.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/HeightAboveSeaLevel.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/HighResWaveHeight.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Highest1MinMeanWindSpeedInPastHour.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/HumitureIndex.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/IceCode.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/IcingIntensitySymbol.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/IcingTypeSymbol.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/InstrumentWaveHeight.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/InstrumentWavePeriod.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/InterWindDir.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/InterWindSpeed.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/InterWindTime.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/IsentropesVerticalSeparation.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/LCLParcelPressure.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/LCLParcelTemperature.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/LatentHeatOfVapor.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/LiftedIndex.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/LiftedSurfaceAirTempAt500mb.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Lowest01MinAvgPressInPastHour.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Max12HrPrecipFcst.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Max24HrTemp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Max6HrTemp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxCloudCover.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxDailyWeatherMapTemp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxDayTemp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxEditedTemp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxMidnightTemp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxOrMinTemp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxPrecipPR6X.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxSustSurfWindSpeedFcst.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxWindSpeed.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MeanSeaLevelPres.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MetParameterFactory.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Min24HrTemp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Min6HrTemp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MinDailyWeatherMapTemp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MinNightTemp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MixingRatio.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MoistHydrostaticHeight.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MontgomeryStreamFnct.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MountainObscThresh.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MountainObscThreshMetIndicator.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MountainObscThreshMetIndicatorWorstCase.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/NewSnowAmount.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/NightTempAnomaly.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/NightTempFcst.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/NumInterWinds.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/OneMinPeakWindDir.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POP12Hrs.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POP24Hrs.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POPAnomalyIn12hrs.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POPAnomalyIn24hrs.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POPFcst06Hrs.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POPFcst12Hrs.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POPFcst24Hrs.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PeakWindDir.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PeakWindSpeed.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PeakWindSpeedTime.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PerpendicularWindComp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PlatformTrueDirection.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PlatformTrueSpeed.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PotentialTemp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PotentialTempLapseRate.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precip01Hr.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precip03Hr.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precip06Hr.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precip12Hr.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precip18Hr.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precip24Hr.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PrecipitableWaterForEntireSounding.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PrecipitableWaterUptoSpecifiedLevel.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precipitation.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PredomSwellWaveDir.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PredomSwellWaveHeight.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PredomSwellWavePeriod.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PresentWeather.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PressChange24Hr.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PressChange3Hr.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PressTendency.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PressureLevel.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/RateOfIceAccretionOnVesselInSaltWater.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/RelativeHumidity.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/RichardsonNumber.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SatEquivPotentialTemp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SatMixingRatio.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SatVaporPressure.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SeaIceDriftDist.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SeaLevelPressure.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SeaSurfaceTemp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SecondarySwellWaveDir.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SecondarySwellWaveHeight.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SecondarySwellWavePeriod.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/ShipCourse.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/ShipIceThickness.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/ShowalterIndex.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SkyCoverage.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SnowDepth.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SnowIcePelletWatchThresh.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SpecificHumidity.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SpeedOf05SecPeakWind.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StabilityWithRespectToPressure.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StationElevation.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StationID.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StationLatitude.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StationLongitude.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StationName.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StormMotionSpeed.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SunshineDuration.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SurfaceEquivPotentialTemp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SurfaceMixingRatio.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SurfacePotentialTemp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SurfacePressure.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SurfaceSatEquivPotentialTemp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SurfaceSatMixingRatio.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TempLapseRate.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryCeilingAsMeanSeaLevel.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityCeiling.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityFlightRuleIdentifier.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityMountainObscThreshMetIndicator.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityVisibility.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityWindDirection.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityWindGust.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityWindSpeed.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TimeOf5SecPeakWindInHrs.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TimeOf5SecPeakWindInMins.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TopOfIcing.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TopOfTurbulence.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TopOfWeather.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TurbulenceFrequencySymbol.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TurbulenceIntensitySymbol.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/UncondProbOfTstorms12hr.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/UncondProbOfTstorms24hr.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/UncondProbOfTstorms2hr.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/UncondProbOfTstorms6hr.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/VaporPressure.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/VerticalVelocity.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/VirtualPotentialTemp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/VirtualTemp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Visibility.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WaterEquivOfNewSnow.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WaveHeight.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WavePeriod.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WaveSteepness.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WetBulbPotentialTemp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WetBulbTemp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindChillEquivalentTemp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindChillTemperature.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindCompDirection.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindDirection.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindDirectionUComp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindDirectionVComp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindGust.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindSpeed.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindSpeedComp.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindWaveHeight.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindWavePeriod.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/dbquery/util/ClimateDataDbAccess.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/dbquery/util/ClimateDataDbAccessImpl.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/dbquery/util/ClimateDataDbAccessManager.java delete mode 100644 ncep/gov.noaa.nws.ncep.metParameters/unit-test/gov/noaa/nws/ncep/metparameters/AbstractMetParameterTest.java create mode 100644 ncep/gov.noaa.nws.ncep.staticdataprovider/src/gov/noaa/nws/ncep/staticdataprovider/BoundsProvider.java create mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/BigNsharp/cavesars.f create mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/BigNsharp/cavesup_nsharp.f delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/maprsc/NsharpMapMouseHandler.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/maprsc/NsharpMapResource.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/maprsc/NsharpMapResourceData.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/maprsc/NsharpObservedSoundingQuery.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/maprsc/NsharpPfcSoundingQuery.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/maprsc/NsharpSoundingQueryCommon.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/menu/ModelSoundingDialogContents.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/menu/NsharpHandleArchiveFile.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/menu/NsharpLoadDialog.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/menu/NsharpUnloadDialog.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/menu/ObservedSoundingDialogContents.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/menu/PfcSoundingDialogContents.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/palette/NsharpBoundaryMotionDialog.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/palette/NsharpConfigDialog.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/palette/NsharpDataDisplayConfigDialog.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/palette/NsharpEditDataDialog.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/palette/NsharpPaletteAction.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/palette/NsharpPaletteWindow.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/palette/NsharpPaneConfigDialog.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/palette/NsharpParametersSelectionConfigDialog.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/palette/NsharpParcelDialog.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/palette/NsharpPrintHandle.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/palette/NsharpSaveHandle.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/palette/NsharpShowTextDialog.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/palette/NsharpStnConfigDialog.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/palette/NsharpTimeLineConfigDialog.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/NsharpSkewTDescriptor.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/NsharpSkewTDisplay.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/NsharpSkewTEditor.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/bkgd/NsharpAbstractBackground.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/bkgd/NsharpHodoBackground.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/bkgd/NsharpIcingBackground.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/bkgd/NsharpInsetBackground.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/bkgd/NsharpSkewTBackground.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/bkgd/NsharpTurbulenceBackground.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/rsc/NsharpBackgroundResource.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/rsc/NsharpBkgResourceData.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/rsc/NsharpDrawPanels.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/rsc/NsharpSkewTMouseHandler.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/rsc/NsharpSkewTResource.java delete mode 100644 ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/rsc/NsharpSkewTResourceData.java create mode 100644 ncep/gov.noaa.nws.ncep.ui.pgen/icons/clip.gif create mode 100644 ncep/gov.noaa.nws.ncep.ui.pgen/src/gov/noaa/nws/ncep/ui/pgen/PgenClipboard.java create mode 100644 ncep/gov.noaa.nws.ncep.ui.pgen/src/gov/noaa/nws/ncep/ui/pgen/clipper/ClipProduct.java create mode 100644 ncep/gov.noaa.nws.ncep.ui.pgen/src/gov/noaa/nws/ncep/ui/pgen/tools/PgenClippingTool.java create mode 100644 ncep/gov.noaa.nws.ncep.ui.pgen/src/gov/noaa/nws/ncep/ui/pgen/tools/PgenCopypasteHotkeyHandler.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.plotdata/localization/ncep/advanced/adv_icon.jpg create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.plotdata/localization/ncep/fontFiles/VeraSe.ttf create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.plotdata/localization/ncep/fontFiles/VeraSeBd.ttf create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.plotdata/localization/ncep/fontFiles/cour.pfa create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.plotdata/localization/ncep/fontFiles/courb.pfa create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.plotdata/localization/ncep/fontFiles/courbi.pfa create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.plotdata/localization/ncep/fontFiles/couri.pfa create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.plotdata/localization/ncep/fontFiles/l049013t.pfa create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.plotdata/localization/ncep/fontFiles/l049016t.pfa create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.plotdata/localization/ncep/fontFiles/l049033t.pfa create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.plotdata/localization/ncep/fontFiles/l049036t.pfa create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.plotdata/localization/ncep/fontFiles/luxisb.ttf create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.plotdata/localization/ncep/fontFiles/luxisbi.ttf create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.plotdata/localization/ncep/fontFiles/luxisr.ttf create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.plotdata/localization/ncep/fontFiles/luxisri.ttf create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.plotdata/src/gov/noaa/nws/ncep/viz/rsc/plotdata/advanced/ConditionalColorBar.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.plotdata/src/gov/noaa/nws/ncep/viz/rsc/plotdata/advanced/ConditionalColorBarEditor.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.plotdata/src/gov/noaa/nws/ncep/viz/rsc/plotdata/advanced/EditConditionalColorbarComposite.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.plotdata/src/gov/noaa/nws/ncep/viz/rsc/plotdata/advanced/EditPlotModelElementAdvancedDialog.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.plotdata/src/gov/noaa/nws/ncep/viz/rsc/plotdata/plotModels/NcPlotDataThreadPool.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.plotdata/src/gov/noaa/nws/ncep/viz/rsc/plotdata/plotModels/NcPlotModelDataRequestJob.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.plotdata/src/gov/noaa/nws/ncep/viz/rsc/plotdata/plotModels/NcPlotModelGeneratorJob.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.plotdata/src/gov/noaa/nws/ncep/viz/rsc/plotdata/rsc/NcPlotResource2.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/.classpath create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/.project rename ncep/{gov.noaa.nws.ncep.metParameters => gov.noaa.nws.ncep.viz.rsc.solarimage}/.settings/org.eclipse.jdt.core.prefs (92%) create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/META-INF/MANIFEST.MF create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/META-INF/services/com.raytheon.uf.common.serialization.ISerializableObject create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/build.properties rename ncep/{gov.noaa.nws.ncep.metParameters/gov.noaa.nws.ncep.metParameters.ecl => gov.noaa.nws.ncep.viz.rsc.solarimage/gov.noaa.nws.ncep.viz.rsc.solarimage.ecl} (100%) create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/localization/styleRules/solarImageryStyleRules.xml create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/plugin.xml create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/Activator.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/LogSolarImageDataCallback.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/SolarImageBundleLoader.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/SolarImageDataCallback.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/actions/CarrLatLonAction.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/actions/CarrLatLonCapability.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/actions/EnableDisableLatLonAction.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/actions/EnableDisableSamplingAction.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/actions/HalphaImageAction.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/actions/LatLonIntervalCapability.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/actions/SDOImageAction.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/actions/SOHOImageAction.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/actions/STEREOImageAction.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/actions/SXIImageAction.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/actions/StonyLatLonAction.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/actions/StonyLatLonCapability.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/display/DefaultNonMapDisplay.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/display/SolarImageMatchCriteria.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/rsc/LatLonOverlay.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/rsc/Sampling.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/rsc/SolarImageDisplay.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/rsc/SolarImageInputAdapter.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/rsc/SolarImageResource.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/rsc/SolarImageResourceData.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/util/HeaderData.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/util/ImageData.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/util/SolarImagePreferences.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/util/SolarImageUtil.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/wcs/CSConversions.java create mode 100644 ncep/gov.noaa.nws.ncep.viz.rsc.solarimage/src/gov/noaa/nws/ncep/viz/rsc/solarimage/wcs/WCSConverter.java diff --git a/RadarServer/com.raytheon.rcm.lib/src/com/raytheon/rcm/products/ElevationInfo.java b/RadarServer/com.raytheon.rcm.lib/src/com/raytheon/rcm/products/ElevationInfo.java index 995017446c..31d3760c90 100644 --- a/RadarServer/com.raytheon.rcm.lib/src/com/raytheon/rcm/products/ElevationInfo.java +++ b/RadarServer/com.raytheon.rcm.lib/src/com/raytheon/rcm/products/ElevationInfo.java @@ -27,6 +27,21 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Scanner; +/** + * TODO Add Description + * + *
+ * 
+ * SOFTWARE HISTORY
+ * Date         Ticket#    Engineer    Description
+ * ------------ ---------- ----------- --------------------------
+ * 03/07/2013   DR15495    zwang       Load elevation info for SSSS radars                                 
+ * 
+ * 
+ * + * @author dfriedman + * @version 1.0 + */ public class ElevationInfo { // TODO: check all handling of -1/null vcp @@ -90,6 +105,15 @@ public class ElevationInfo { fs.close(); } + // Load SSSS radar elevation lists + s = ElevationInfo.class.getResourceAsStream("ssssElevationLists.txt"); + fs = new Scanner(s); + try { + Loader.loadSsssElevationInfo(fs, staticInfo); + } finally { + fs.close(); + } + s = ElevationInfo.class.getResourceAsStream("tdwrElevations.txt"); fs = new Scanner(s); try { diff --git a/RadarServer/com.raytheon.rcm.lib/src/com/raytheon/rcm/products/Loader.java b/RadarServer/com.raytheon.rcm.lib/src/com/raytheon/rcm/products/Loader.java index ab3952e2a4..f8cd82aae3 100644 --- a/RadarServer/com.raytheon.rcm.lib/src/com/raytheon/rcm/products/Loader.java +++ b/RadarServer/com.raytheon.rcm.lib/src/com/raytheon/rcm/products/Loader.java @@ -39,6 +39,21 @@ import com.raytheon.rcm.products.ElevationInfo.VCPInfo; import com.raytheon.rcm.products.RadarProduct.Format; import com.raytheon.rcm.products.RadarProduct.Param; +/** + * TODO Add Description + * + *
+ * 
+ * SOFTWARE HISTORY
+ * Date         Ticket#    Engineer    Description
+ * ------------ ---------- ----------- --------------------------
+ * 03/07/2013   DR15495    zwang       Load elevation info for SSSS radars                                 
+ * 
+ * 
+ * + * @author dfriedman + * @version 1.0 + */ public class Loader { static List loadRadarInfoData(Scanner fs) { @@ -216,6 +231,43 @@ public class Loader { } } + public static void loadSsssElevationInfo(Scanner fs, + HashMap staticInfo) { + Pattern p = Pattern.compile("^k*VCP(\\d+)$"); + while (fs.hasNext()) { + String line = fs.nextLine(); + Scanner ls = new Scanner(line); + if (skipComments(ls)) + continue; + try { + String radarID = ls.next(); + String id = ls.next(); + int vcp = 0; + ls.next(); // Unused op mode + int nElevs = ls.nextInt(); + int[] elevs = new int[nElevs]; + for (int i = 0; i < elevs.length; ++i) + elevs[i] = (int) (ls.nextDouble() * 10.0); + + Matcher m = p.matcher(id); + if (m.matches()) + vcp = Integer.parseInt(m.group(1)); + else if (id.equals("OTR")) + vcp = ElevationInfo.OTR_OR_RMR_CODE; + else + /* RMR is the same as OTR. We do not care about the TDWR + * entries, we will use the radar-specific one. Actually, + * we shouldn't bother with VCP80 and VCP90 either (TODO: ?) + */ + continue; + Sel sel = new Sel(radarID, vcp); + staticInfo.put(sel, elevs); + } catch (NoSuchElementException e) { + // TODO: + } + } + } + public static void loadTdwrElevationInfo(Scanner fs, HashMap staticInfo) { ArrayList elevs = new ArrayList(25); diff --git a/RadarServer/com.raytheon.rcm.lib/src/com/raytheon/rcm/products/radarInfo.txt b/RadarServer/com.raytheon.rcm.lib/src/com/raytheon/rcm/products/radarInfo.txt index 103afdfe13..b2f5dcfb31 100644 --- a/RadarServer/com.raytheon.rcm.lib/src/com/raytheon/rcm/products/radarInfo.txt +++ b/RadarServer/com.raytheon.rcm.lib/src/com/raytheon/rcm/products/radarInfo.txt @@ -123,6 +123,7 @@ 136|256 | 0 | 4.0 | 0 | SO | SuperOb (SO) | SuperOb | | | | | | | | | |82 137| 16 | 9 | 1.0 | 230 | ULR | User Selectable Lyr Refl (ULR)| Radial | | | | | | | | | |88 139| 0 | 0 | 0.0 | 230 | MRU | Rapid Update Mesocyclone (MRU)| Graphic | y | | | | | | | | |91 +140| 0 | 0 | 0.0 | 230 | GFM | Gust Front MIGFA (GFM) | Generic | | | | | | | | | |28 141| 0 | 0 | 0.0 | 230 | MD | Mesocyclone (MD) | Graphic | | | | | | | | | |92 143| 0 | 0 | 0.0 | 230 | TRU | TVS Rapid Update (TRU) | Graphic | y | | | | | | | | |93 149| 0 | 0 | 0.0 | 230 | DMD | Digital Meso Detection (DMD) | Generic | y | | | | | | | | |94 diff --git a/RadarServer/com.raytheon.rcm.lib/src/com/raytheon/rcm/products/ssssElevationLists.txt b/RadarServer/com.raytheon.rcm.lib/src/com/raytheon/rcm/products/ssssElevationLists.txt new file mode 100644 index 0000000000..2d959cc0c0 --- /dev/null +++ b/RadarServer/com.raytheon.rcm.lib/src/com/raytheon/rcm/products/ssssElevationLists.txt @@ -0,0 +1,28 @@ +#This file stores elevation lists for SSSS radars +#This file stores the elevation angle lists for the OTR, RPS and RMR. +# +#The format is, +#radarID, List-Name type number-of-values value1 value2... valueN +#radarID: klgx is the only radar for now +#List-Name: Name for a angle set. It can be OTR, RMR or VCPxx. +#type: Type of the list. for VCP is the storm or clear-air. For the OTR and +# RMR is none. +#number-of-values: How many angles is in this list. +#valuen: A elevation angle value. +# +#Keep one list one line! +# klgx +#For the OTR of WSR-88D +klgx OTR none 40 0.2 0.5 0.9 1.3 1.5 1.8 2.1 2.4 2.5 2.9 3.1 3.4 3.5 3.8 4.0 4.3 4.5 4.8 5.1 5.3 6.0 6.1 6.2 6.4 7.5 7.7 8.0 8.7 9.7 9.9 10.0 12.0 12.2 12.5 14.0 14.6 15.5 15.6 16.7 19.5 +#For RMR of WSR-88D +klgx RMR none 40 0.2 0.5 0.9 1.3 1.5 1.8 2.1 2.4 2.5 2.9 3.1 3.4 3.5 3.8 4.0 4.3 4.5 4.8 5.1 5.3 6.0 6.1 6.2 6.4 7.5 7.7 8.0 8.7 9.7 9.9 10.0 12.0 12.2 12.5 14.0 14.6 15.5 15.6 16.7 19.5 +#For RPS of WSR-88D +klgx VCP11 storm 15 0.2 0.5 1.5 2.4 3.4 4.3 5.3 6.2 7.5 8.7 10.0 12.0 14.0 16.7 19.5 +klgx VCP12 storm 15 0.2 0.5 0.9 1.3 1.8 2.4 3.1 4.0 5.1 6.4 8.0 10.0 12.5 15.6 19.5 +klgx VCP21 storm 10 0.2 0.5 1.5 2.4 3.4 4.3 6.0 9.9 14.6 19.5 +klgx VCP121 storm 10 0.2 0.5 1.5 2.4 3.4 4.3 6.0 9.9 14.6 19.5 +klgx VCP211 storm 15 0.2 0.5 1.5 2.4 3.4 4.3 5.3 6.2 7.5 8.7 10.0 12.0 14.0 16.7 19.5 +klgx VCP212 storm 15 0.2 0.5 0.9 1.3 1.8 2.4 3.1 4.0 5.1 6.4 8.0 10.0 12.5 15.6 19.5 +klgx VCP221 storm 10 0.2 0.5 1.5 2.4 3.4 4.3 6.0 9.9 14.6 19.5 +klgx VCP31 clear-air 6 0.2 0.5 1.5 2.5 3.5 4.5 +klgx VCP32 clear-air 6 0.2 0.5 1.5 2.5 3.5 4.5 diff --git a/cave/build/static/common/cave/etc/aviation/python/CCFPMonitor.py b/cave/build/static/common/cave/etc/aviation/python/CCFPMonitor.py index 7337190d73..dcdc42b0cb 100644 --- a/cave/build/static/common/cave/etc/aviation/python/CCFPMonitor.py +++ b/cave/build/static/common/cave/etc/aviation/python/CCFPMonitor.py @@ -59,7 +59,7 @@ # Relationship Type: In Response to # Status: TEST # Title: AvnFPS: tpo indicator not monitoring properly -# +# # import logging, time import Avn, AvnLib, Globals, MonitorP diff --git a/cave/build/static/common/cave/etc/colormaps/solar/Blue.cmap b/cave/build/static/common/cave/etc/colormaps/solar/Blue.cmap new file mode 100644 index 0000000000..031fd3c574 --- /dev/null +++ b/cave/build/static/common/cave/etc/colormaps/solar/Blue.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/colormaps/solar/Gray.cmap b/cave/build/static/common/cave/etc/colormaps/solar/Gray.cmap new file mode 100644 index 0000000000..f8b759c86f --- /dev/null +++ b/cave/build/static/common/cave/etc/colormaps/solar/Gray.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/colormaps/solar/Green.cmap b/cave/build/static/common/cave/etc/colormaps/solar/Green.cmap new file mode 100644 index 0000000000..7bcdadcb95 --- /dev/null +++ b/cave/build/static/common/cave/etc/colormaps/solar/Green.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/colormaps/solar/Orange.cmap b/cave/build/static/common/cave/etc/colormaps/solar/Orange.cmap new file mode 100644 index 0000000000..996a09e378 --- /dev/null +++ b/cave/build/static/common/cave/etc/colormaps/solar/Orange.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_131.cmap b/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_131.cmap new file mode 100644 index 0000000000..aa8f673b09 --- /dev/null +++ b/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_131.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_1600.cmap b/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_1600.cmap new file mode 100644 index 0000000000..a9afc963d8 --- /dev/null +++ b/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_1600.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_1700.cmap b/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_1700.cmap new file mode 100644 index 0000000000..9beac7cc9e --- /dev/null +++ b/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_1700.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_171.cmap b/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_171.cmap new file mode 100644 index 0000000000..04e3285e8f --- /dev/null +++ b/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_171.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_193.cmap b/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_193.cmap new file mode 100644 index 0000000000..15b198380a --- /dev/null +++ b/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_193.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_211.cmap b/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_211.cmap new file mode 100644 index 0000000000..3ad4f95928 --- /dev/null +++ b/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_211.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_304.cmap b/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_304.cmap new file mode 100644 index 0000000000..a082d39753 --- /dev/null +++ b/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_304.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_335.cmap b/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_335.cmap new file mode 100644 index 0000000000..d7dcba2e3b --- /dev/null +++ b/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_335.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_4500.cmap b/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_4500.cmap new file mode 100644 index 0000000000..2b98bca045 --- /dev/null +++ b/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_4500.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_94.cmap b/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_94.cmap new file mode 100644 index 0000000000..f51a815e60 --- /dev/null +++ b/cave/build/static/common/cave/etc/colormaps/solar/SDO_AIA_94.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/colormaps/solar/SDO_Thematic.cmap b/cave/build/static/common/cave/etc/colormaps/solar/SDO_Thematic.cmap new file mode 100644 index 0000000000..eda4e65399 --- /dev/null +++ b/cave/build/static/common/cave/etc/colormaps/solar/SDO_Thematic.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/colormaps/solar/SOHO_EIT_171.cmap b/cave/build/static/common/cave/etc/colormaps/solar/SOHO_EIT_171.cmap new file mode 100644 index 0000000000..6545547496 --- /dev/null +++ b/cave/build/static/common/cave/etc/colormaps/solar/SOHO_EIT_171.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/colormaps/solar/SOHO_EIT_195.cmap b/cave/build/static/common/cave/etc/colormaps/solar/SOHO_EIT_195.cmap new file mode 100644 index 0000000000..75eef587f7 --- /dev/null +++ b/cave/build/static/common/cave/etc/colormaps/solar/SOHO_EIT_195.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/colormaps/solar/SOHO_EIT_284.cmap b/cave/build/static/common/cave/etc/colormaps/solar/SOHO_EIT_284.cmap new file mode 100644 index 0000000000..2645be0878 --- /dev/null +++ b/cave/build/static/common/cave/etc/colormaps/solar/SOHO_EIT_284.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/colormaps/solar/SOHO_EIT_304.cmap b/cave/build/static/common/cave/etc/colormaps/solar/SOHO_EIT_304.cmap new file mode 100644 index 0000000000..8ab0dc8cbe --- /dev/null +++ b/cave/build/static/common/cave/etc/colormaps/solar/SOHO_EIT_304.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/colormaps/solar/Yellow.cmap b/cave/build/static/common/cave/etc/colormaps/solar/Yellow.cmap new file mode 100644 index 0000000000..c333a25cde --- /dev/null +++ b/cave/build/static/common/cave/etc/colormaps/solar/Yellow.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/TCMWindTool.py b/cave/build/static/common/cave/etc/gfe/userPython/procedures/TCMWindTool.py index 504da304cf..4672b7593c 100644 --- a/cave/build/static/common/cave/etc/gfe/userPython/procedures/TCMWindTool.py +++ b/cave/build/static/common/cave/etc/gfe/userPython/procedures/TCMWindTool.py @@ -31,6 +31,11 @@ # Author: Tom LeFebvre # Contributor: Pablo Santos # ---------------------------------------------------------------------------- +# SOFTWARE HISTORY +# Date Ticket# Engineer Description +# ------------ ---------- ----------- -------------------------- +# 3/6/2013 15658 ryu Merge in change from AWIPS I DR 21414, which fixed +# makeMaxWindGrid() for when center is outside domain. # The MenuItems list defines the GFE menu item(s) under which the # Procedure is to appear. @@ -1336,52 +1341,16 @@ class Procedure (SmartScript.SmartScript): startTime = interpFcstList[0]["validTime"] endTime = startTime + (123 * 3600) # 123 hours later - fcstIndex = 0 - while fcstIndex < len(interpFcstList)-1: - f1 = interpFcstList[fcstIndex] - f2 = interpFcstList[fcstIndex + 1] - - f1Time = interpFcstList[fcstIndex]['validTime'] - f2Time = interpFcstList[fcstIndex + 1]['validTime'] - - print "Interpolating from:", time.asctime(time.gmtime(f1Time)), \ - "to", time.asctime(time.gmtime(f2Time)) - - lat1, lon1 = f1['centerLocation'] - lat2, lon2 = f2['centerLocation'] - - x1, y1 = self.getGridCell(lat1, lon1) - x2, y2 = self.getGridCell(lat2, lon2) - - if x1 is None or y1 is None or x2 is None or y2 is None: - fcstIndex += 1 - continue - - dx = abs(x2 - x1) - dy = abs(y2 - y1) - - dmax = max(dx, dy) - - newInterval = float(interval) / dmax - - newFcstList = self.interpolateWindFcst(f1, f2, newInterval) - - print "Created", len(newFcstList), "new wind forecasts." - - for f in newFcstList: - mag, dir = self.makeRankine(f, latGrid, lonGrid, pieSlices, radiiFactor) - - maxWindGrid = where(greater(mag, maxWindGrid), mag, maxWindGrid) - - fcstIndex += 1 - - if f2["validTime"] >= endTime: - break start = AbsTime.AbsTime(startTime) end = AbsTime.AbsTime(endTime) timeRange = TimeRange.TimeRange(start, end) + # Used getGrids to calculate the maximum wind grid. + # + # Fetch the max of the wind grids just generated as this is very fast. + maxWindGrid, maxDirGrid = self.getGrids("Fcst", "Wind", "SFC", timeRange, mode="Max") + maxWindGrid = self.smoothGrid(maxWindGrid, 3) self.createGrid("Fcst", "TCMMaxWindComposite", "SCALAR", maxWindGrid, timeRange, @@ -1485,7 +1454,7 @@ class Procedure (SmartScript.SmartScript): # # Use this method to fetch a product from the text database if productID == "preTCM": - textProduct = self.getTextProductFromFile("/tmp/Irene.txt") + textProduct = self.getTextProductFromFile("/tmp/Isaac.txt") decoder = TCMDecoder() decoder.decodeTCMProduct(textProduct, self.dialogEyeDiameter) fcstList = decoder.getFcstList() @@ -1588,14 +1557,6 @@ class Procedure (SmartScript.SmartScript): # get the lat, lon grids latGrid, lonGrid = self.getLatLonGrids() - # interpolate through forecast period to very high resolution and make - # a composite maxWind grid from those wind grids - if maxwindswath is "Yes": - t1 = time.time() - self.makeMaxWindGrid(interpFcstList, interval, latGrid, lonGrid, pieSlices, - radiiFactor) - print time.time() - t1, "seconds to generate Max wind composite." - # make a grid for each interpolate forecast gridCount = 0 for f in interpFcstList: @@ -1621,6 +1582,14 @@ class Procedure (SmartScript.SmartScript): print "TCMWindTool:", productID, "- Generated",gridCount, \ "out of", len(interpFcstList), "grids", time.asctime(time.gmtime(timeRange.startTime().unixTime())) + # interpolate through forecast period to very high resolution and make + # a composite maxWind grid from those wind grids + if maxwindswath is "Yes": + t1 = time.time() + self.makeMaxWindGrid(interpFcstList, interval, latGrid, lonGrid, pieSlices, + radiiFactor) + print time.time() - t1, "seconds to generate Max wind composite." + if msg != "": self.statusBarMsg(msg, "S") diff --git a/cave/build/static/common/cave/etc/gfe/userPython/utilities/ProductParser.py b/cave/build/static/common/cave/etc/gfe/userPython/utilities/ProductParser.py index 0cea29c727..d15deaa24a 100644 --- a/cave/build/static/common/cave/etc/gfe/userPython/utilities/ProductParser.py +++ b/cave/build/static/common/cave/etc/gfe/userPython/utilities/ProductParser.py @@ -2,19 +2,19 @@ ## # 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. ## @@ -119,7 +119,7 @@ nnn = r'(?:[A-Z]{2}[ZC])?\d{3}' purge = r'(?P\d{6})-' ugc = r'\n(?P' + r'[A-Z]{2}[Z|C](?:(?:\d{3})|(?:ALL))' + r'(?:[->]\n?' + nnn + \ r')*-\n?' + purge + el + r')' -cityh = r'-\n(?P(?:\s*\n)*(?:INCLUDING THE (?:CITIES|CITY) OF...)?)' +cityh = r'(?<=-\n(?!.*-\n))(?P(?:.*\n))' body = r'(?P(?:^.*\n)*?)' #body = r'.*' @@ -192,20 +192,20 @@ class ProductParser: #l = headline_re.finditer(str) l = single_head_re.finditer(str) for m in l: - if m is not None: + if m is not None: #print 'phl m = ', m newstart = start + m.start() m = headline_re.match(m.group(0)) if m is not None: hdlns.append(self.dumpMatch(m, newstart)) - + #print 'hdlns = ', hdlns rval['headInfo'] = hdlns def dumpMatch(self, m, offset=0, rval=None): if rval is None: rval = {} - + #print 'dumpmatch m = ', m.groupdict() for k in m.groupdict().keys(): if m.start(k) != -1 and m.start(k) != m.end(k): @@ -234,7 +234,7 @@ class ProductParser: segs = [] l = ugch_re.finditer(self._str) - + for m in l: if m is not None: m1 = cityh_re.search(self._str, m.end()) @@ -250,7 +250,7 @@ class ProductParser: else: continue m4 = head_re.search(self._str, m.end(), m3.end()) - + d = self.dumpMatch(m) d = self.dumpMatch(m2, rval=d) d = self.dumpMatch(m3, rval=d) @@ -266,7 +266,7 @@ class ProductParser: else: d['city'] = (self.tkc(m2.start()), self.tkc(m2.start())) - + if m4 is not None: #print 'm4 = ', m4.group() d = self.dumpMatch(m4, rval=d) @@ -284,7 +284,7 @@ class ProductParser: rval['frames'] = frames return rval - + def parseFromJava(self, text): self._str = text self._ci = None @@ -295,13 +295,13 @@ class ProductParser: lc.append(count) count += l self._totals = lc - + #print 'text START ----------------------' #print text #print 'text END ------------------------' - + result = self.parse() - + #print 'result = ', result - + return JUtil.pyDictToJavaMap(result) diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/24-hr_obs_pcpn_al.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/24-hr_obs_pcpn_al.attr index b42d0485f2..eabbcb81ec 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/24-hr_obs_pcpn_al.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/24-hr_obs_pcpn_al.attr @@ -17,7 +17,7 @@ FINT = .01;.1;.25;.5;.75;1;1.25;1.5;1.75;2;2.25;2.5;2.75;3;3.25;3.5;3.75;4 FLINE = 0;21-30;14-20;5 HILO = 31;0/x#2////y HLSYM = 1.5 -!CLRBAR= 1 +!CLRBAR = 1 WIND = 0 TITLE = 1/-1/~ 24-HR OBS PRECIP (RFC, 40km avg) !0 COLORS = 2 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/24-hr_obs_pcpn_spc_al.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/24-hr_obs_pcpn_spc_al.attr index 0699452f56..b2a012d72d 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/24-hr_obs_pcpn_spc_al.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/24-hr_obs_pcpn_spc_al.attr @@ -17,7 +17,7 @@ FINT = .01;.10;.25;.5;1;1.5;2;2.5;3;3.5;4;4.5;5;6;8;10.0 FLINE = 0;11;18;8;6;25;21;22;7;30;4;24;20;17;15;14;31 HILO = 0 HLSYM = 0 -!CLRBAR= 1//CL/0;.5/.75;.01 +!CLRBAR = 1//CL/0;.5/.75;.01 WIND = TITLE = 1/-1/COOPERATIVE RAINFALL REPORTS FOR 24 hrs ENDING 12 UTC: ~ COLORS = diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/850mb_h2o_transport_nam.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/850mb_h2o_transport_nam.attr index 546475c7b9..e7ec607a54 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/850mb_h2o_transport_nam.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/850mb_h2o_transport_nam.attr @@ -22,7 +22,7 @@ FINT = 6;12;18;24;30;36 FLINE = 0;23;22;21;14;15;2 HILO = 0 !5/H#;L#!0 HLSYM = 0 !1;1//22;22/2;2/hw!0 -!CLRBAR= 1/V/LL!0 +!CLRBAR = 1/V/LL!0 WIND = 16/0.9/2/211/0.5 TITLE = 1/-1/~ @ MOISTURE TRANSPORT, HGHT, BL THTAE!0 COLORS = 2 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/850mb_wind_pw_ncf_nam.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/850mb_wind_pw_ncf_nam.attr index dd271a577d..70e6cee265 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/850mb_wind_pw_ncf_nam.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/850mb_wind_pw_ncf_nam.attr @@ -18,7 +18,7 @@ FINT = FLINE = HILO = 0 HLSYM = 0 -!CLRBAR= 0 +!CLRBAR = 0 WIND = 9/0.9/2/112 TITLE = 1/-1/~ 850mb WIND (KTS) and PRECIP WATER COLORS = 2 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/ETA212-standard.xml b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/ETA212-standard.xml new file mode 100644 index 0000000000..ac3448e7e4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/ETA212-standard.xml @@ -0,0 +1,6 @@ + + + ETA212 + standard + 1000-500_thkn,1000-850_thkn,1000mb_hght_tmp_wind,200mb_div_isotachs,200mb_hght_wind,250mb_ageo_div_isotachs,250mb_hght_wind,250mb_wind_and_rel_vort,300mb_div_isotachs,500mb_hght_absv,500mb_hght_absv_adv,500mb_hght_absv_wind,500mb_hght_color,500mb_hght_geoabsv,500mb_hght_wind,500mb_hght_tmp_wind,700mb_hght_rh_omega,700mb_hght_tmp_wind,850-700_thkn,850mb_hght_tmp_wind,pmsl,pmsl_thkn,pmsl_and_bl_wind_global,300-200mb_pv,400-200mb_pv,400-250mb_pv_global,500-250mb_pv,500-300mb_pv + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/ETA218-standard.xml b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/ETA218-standard.xml new file mode 100644 index 0000000000..3033633970 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/ETA218-standard.xml @@ -0,0 +1,6 @@ + + + ETA218 + standard + 1000-500_thkn,1000-850_thkn,1000mb_hght_tmp_wind,200mb_div_isotachs,200mb_hght_wind,250mb_ageo_div_isotachs,250mb_hght_wind,250mb_wind_and_rel_vort,300mb_div_isotachs,500mb_hght_absv,500mb_hght_absv_adv,500mb_hght_absv_wind,500mb_hght_color,500mb_hght_geoabsv,500mb_hght_wind,500mb_hght_tmp_wind,700mb_hght_rh_omega,700mb_hght_tmp_wind,850-700_thkn,850mb_hght_tmp_wind,pmsl,pmsl_thkn,pmsl_and_bl_wind_global,300-200mb_pv,400-200mb_pv,400-250mb_pv_global,500-250mb_pv,500-300mb_pv + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/GFS212-standard.xml b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/GFS212-standard.xml new file mode 100644 index 0000000000..c65ca5b07f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/GFS212-standard.xml @@ -0,0 +1,6 @@ + + + GFS212 + standard + 1000-500_thkn,1000-850_thkn,1000mb_hght_tmp_wind,200mb_div_isotachs,200mb_hght_wind,250mb_ageo_div_isotachs,250mb_hght_wind,250mb_wind_and_rel_vort,300mb_div_isotachs,500mb_hght_absv,500mb_hght_absv_adv,500mb_hght_absv_wind,500mb_hght_color,500mb_hght_geoabsv,500mb_hght_wind,500mb_hght_tmp_wind,700mb_hght_rh_omega,700mb_hght_tmp_wind,850-700_thkn,850mb_hght_tmp_wind,pmsl,pmsl_thkn,pmsl_and_bl_wind_global,300-200mb_pv,400-200mb_pv,400-250mb_pv_global,500-250mb_pv,500-300mb_pv + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/RUC130-standard.xml b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/RUC130-standard.xml new file mode 100644 index 0000000000..73229772be --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/RUC130-standard.xml @@ -0,0 +1,6 @@ + + + RUC130 + standard + 1000-500_thkn,1000-850_thkn,1000mb_hght_tmp_wind,200mb_div_isotachs,200mb_hght_wind,250mb_ageo_div_isotachs,250mb_hght_wind,250mb_wind_and_rel_vort,300mb_div_isotachs,500mb_hght_absv,500mb_hght_absv_adv,500mb_hght_absv_wind,500mb_hght_color,500mb_hght_geoabsv,500mb_hght_wind,500mb_hght_tmp_wind,700mb_hght_rh_omega,700mb_hght_tmp_wind,850-700_thkn,850mb_hght_tmp_wind,pmsl,pmsl_thkn,pmsl_and_bl_wind_global,300-200mb_pv,400-200mb_pv,400-250mb_pv_global,500-250mb_pv,500-300mb_pv + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/RUC236-standard.xml b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/RUC236-standard.xml new file mode 100644 index 0000000000..59be806285 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/RUC236-standard.xml @@ -0,0 +1,6 @@ + + + RUC236 + standard + 1000-500_thkn,1000-850_thkn,1000mb_hght_tmp_wind,200mb_div_isotachs,200mb_hght_wind,250mb_ageo_div_isotachs,250mb_hght_wind,250mb_wind_and_rel_vort,300mb_div_isotachs,500mb_hght_absv,500mb_hght_absv_adv,500mb_hght_absv_wind,500mb_hght_color,500mb_hght_geoabsv,500mb_hght_wind,500mb_hght_tmp_wind,700mb_hght_rh_omega,700mb_hght_tmp_wind,850-700_thkn,850mb_hght_tmp_wind,pmsl,pmsl_thkn,pmsl_and_bl_wind_global,300-200mb_pv,400-200mb_pv,400-250mb_pv_global,500-250mb_pv,500-300mb_pv + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/SREF212-standard.xml b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/SREF212-standard.xml new file mode 100644 index 0000000000..93edbc974d --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/SREF212-standard.xml @@ -0,0 +1,6 @@ + + + SREF212 + standard + 1000-500_thkn,1000-850_thkn,1000mb_hght_tmp_wind,200mb_div_isotachs,200mb_hght_wind,250mb_ageo_div_isotachs,250mb_hght_wind,250mb_wind_and_rel_vort,300mb_div_isotachs,500mb_hght_absv,500mb_hght_absv_adv,500mb_hght_absv_wind,500mb_hght_color,500mb_hght_geoabsv,500mb_hght_wind,500mb_hght_tmp_wind,700mb_hght_rh_omega,700mb_hght_tmp_wind,850-700_thkn,850mb_hght_tmp_wind,pmsl,pmsl_thkn,pmsl_and_bl_wind_global,300-200mb_pv,400-200mb_pv,400-250mb_pv_global,500-250mb_pv,500-300mb_pv + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/bestcape_cin_nam.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/bestcape_cin_nam.attr index 300557f096..0648c61eb1 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/bestcape_cin_nam.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/bestcape_cin_nam.attr @@ -19,7 +19,7 @@ FINT = 1000;2000;3000;4000;5000 FLINE = 0;23;30;15;2;5 HILO = 0!0 HLSYM = 1;1//22;22/2;2/hw -!CLRBAR= 1/V/LL!0 +!CLRBAR = 1/V/LL!0 WIND = 0 TITLE = 1/-1/~ 0-180 MB AGL BEST CAPE (jkg-1) & CIN (cyan)!0 COLORS = 2 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/bestcape_cin_ncf_nam.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/bestcape_cin_ncf_nam.attr index 47be90b0d6..6127c7ab79 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/bestcape_cin_ncf_nam.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/bestcape_cin_ncf_nam.attr @@ -19,7 +19,7 @@ FINT = 0 FLINE = 0 HILO = 0!0 HLSYM = 0 -!CLRBAR= 0 +!CLRBAR = 0 WIND = 0 TITLE = 1/-1/~ BEST CAPE (0-180 MB AGL)(jkg-1) & CIN (cyan)!0 COLORS = 2 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/bl_h2o_conv_nam.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/bl_h2o_conv_nam.attr index f32edecc58..a2ade5506d 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/bl_h2o_conv_nam.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/bl_h2o_conv_nam.attr @@ -20,7 +20,7 @@ FINT = -9;-7;-5;-3;-1 FLINE = 2;15;21;22;23;0 HILO = !!!!6/H#;L#/1020-1070;900-1016 HLSYM = 1;1/2//4;1.5/0 -!CLRBAR= 1 +!CLRBAR = 1 WIND = 10/0.75/1.5/112 TITLE = 1/-1/~ BL (18MB AGL)MOISTURE CONVERGENCE, WIND (KTS) and THTAE!0 COLORS = 2 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/bl_h2o_conv_ncf_nam.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/bl_h2o_conv_ncf_nam.attr index 10b4d59247..cc5c0ff048 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/bl_h2o_conv_ncf_nam.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/bl_h2o_conv_ncf_nam.attr @@ -19,7 +19,7 @@ FINT = 0 FLINE = 0 HILO = 0 HLSYM = 0 -!CLRBAR= 1 +!CLRBAR = 1 WIND = 10/0.75/1.5/112 TITLE = 1/-1/~ BL (18MB AGL) MOIST CONV, WIND (KTS) and THTAE!0 COLORS = 2 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/bl_thte_ncf_cmc.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/bl_thte_ncf_cmc.attr index 74ddcee305..9f19cc2152 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/bl_thte_ncf_cmc.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/bl_thte_ncf_cmc.attr @@ -17,7 +17,7 @@ FINT = FLINE = HILO = 0 HLSYM = 0 -!CLRBAR= 1/V/LL +!CLRBAR = 1/V/LL WIND = TITLE = 1/-1/~ BL THTE!0 COLORS = 2 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/bl_thte_ncf_nam.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/bl_thte_ncf_nam.attr index 3bedab10c5..11ae503949 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/bl_thte_ncf_nam.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/bl_thte_ncf_nam.attr @@ -17,7 +17,7 @@ FINT = 0 FLINE = 0 HILO = 0 HLSYM = 0 -!CLRBAR= 1 +!CLRBAR = 1 WIND = TITLE = 1/-1/~ BL (18MB AGL) THTAE!0 COLORS = 2 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/marine_fronts_nam.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/marine_fronts_nam.attr index 19678e8f3a..056f3bc65a 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/marine_fronts_nam.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/marine_fronts_nam.attr @@ -17,7 +17,7 @@ FINT = -9;-7;-5;-3;-1 ! FLINE = 2;15;21;22;23;0 ! HILO = HLSYM = -!CLRBAR= 1 +!CLRBAR = 1 WIND = 9/0.7/1.5/112 TITLE = 1/-1/~ 1000-850mb THK, BL MOISTURE CONVERGENCE & WIND = (KT)!0 COLORS = 2 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/pcpn_potential_ncf_nam.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/pcpn_potential_ncf_nam.attr index a44fbbb2a1..941fbdc23d 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/pcpn_potential_ncf_nam.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/pcpn_potential_ncf_nam.attr @@ -18,7 +18,7 @@ FINT = FLINE = HILO = 0 HLSYM = 0 -!CLRBAR= 1 +!CLRBAR = 1 WIND = TITLE = 1/-2/~ PCPN POTENTIAL (PW X (1000-470 MB RH)) INCHES OF PW!0 COLORS = 2 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/pmsl_1000-850_thk_nam.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/pmsl_1000-850_thk_nam.attr index 5259aad4d3..c4ea3e4454 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/pmsl_1000-850_thk_nam.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/pmsl_1000-850_thk_nam.attr @@ -19,7 +19,7 @@ FINT = FLINE = HILO = !26;2/H#;L#/1020-1070;900-1012/3/30;30/y HLSYM = 2;1.5//21//hw -!CLRBAR= 1 +!CLRBAR = 1 WIND = 9/0.7/2/112 TITLE = 1/-1/~ PMSL, 1000-850mb THKN & BL (0-30 MB AGL) WIND (KTS)!0 COLORS = 2 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/pmsl_1000-850thk_nam.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/pmsl_1000-850thk_nam.attr index d439a29384..f106140b21 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/pmsl_1000-850thk_nam.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/pmsl_1000-850thk_nam.attr @@ -17,7 +17,7 @@ FINT = FLINE = HILO = !26;2/H#;L#/1020-1070;900-1012/3/30;30/y HLSYM = 1;1//22;22/1.4;1.4/hw -!CLRBAR= 1 +!CLRBAR = 1 WIND = TITLE = 1/-1/~ PMSL, 1000-850mb THKN !0 COLORS = 2 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/pmsl_only_nogaps.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/pmsl_only_nogaps.attr index 69c47ebd18..1c7f333bd4 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/pmsl_only_nogaps.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/pmsl_only_nogaps.attr @@ -11,7 +11,7 @@ FINT = FLINE = HILO = 26;2/H#;L#/1020-1070;900-1012 HLSYM = 1;1//22;22/1.4;1.4/hw -!CLRBAR= 0 +!CLRBAR = 0 WIND = TITLE = 1/-1/~ PMSL COLORS = 2 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/pmsl_thkn_wind_mono_nam.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/pmsl_thkn_wind_mono_nam.attr index 663470829c..e19c13c445 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/pmsl_thkn_wind_mono_nam.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/pmsl_thkn_wind_mono_nam.attr @@ -18,7 +18,7 @@ FINT = FLINE = HILO = !! 23;23/H#;L#/1018-1070;900-1012//30;30/y HLSYM = 2;1.5//21//hw -!CLRBAR= 1 +!CLRBAR = 1 WIND = 23/0.8/1/112 TITLE = 23/-1/~ PMSL, 1000-500 MB THICKNESS, BL WIND =!0 COLORS = 2 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/precip_type_vv_ncf_nam.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/precip_type_vv_ncf_nam.attr index 9c6a51e1c5..06f45ee336 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/precip_type_vv_ncf_nam.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/precip_type_vv_ncf_nam.attr @@ -18,7 +18,7 @@ FINT = 50;200!50;200!50;200!50;200 FLINE = 0;23;23!0;25;25!0;30;30!0;15;15 HILO = 0 HLSYM = 0 -!CLRBAR= 1/V/LL!0 +!CLRBAR = 1/V/LL!0 WIND = 9/0.7/2/112 TITLE = 1/-1/~ Precip Type, 1000-470 MB RH & 700-500 MB Vertical Velocity!0 COLORS = 2 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/ransnocsi_500-850.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/ransnocsi_500-850.attr index e1ffea18ca..8ab03d4191 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/ransnocsi_500-850.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/ransnocsi_500-850.attr @@ -7,7 +7,7 @@ ! GLEVEL = 850:700!700!700!850!850!30:0!30:0!850:500 GVCORD = PRES!PRES!PRES!PRES!PRES!pdly!pdly!PRES -SKIP = +SKIP= FILTER=y SCALE = 0!0!0!0!0!0!0!6 GDPFUN = lav(relh)!tmpc!tmpc!tmpc!tmpc!tmpc!tmpc!sm9s(pvor(thte,wnd)) @@ -18,6 +18,6 @@ FINT = 70;80;90 FLINE = 0;24;23;22 HILO = HLSYM = -!CLRBAR = 1 +!CLRBAR= 1 WIND = TITLE = 1/-2/~ 850-700 RH,T(BL y,850 r,700 cyan),850-500 EPV|~ 850-700 RH, R/S T, EPV!0 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/sig_wave_and_mslp_feet.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/sig_wave_and_mslp_feet.attr index a496b4f80d..f23db375f7 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/sig_wave_and_mslp_feet.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/sig_wave_and_mslp_feet.attr @@ -6,7 +6,7 @@ ! T. Piper/GSC 5/99 Added -1 line position for TITLE = ! T. Lee/SAIC 2/04 Changed AVN to GFS ! -GDFILE nww3 ! nww3 ! gfs +GDFILE = nww3 ! nww3 ! gfs GLEVEL = 0 GVCORD = none SKIP = 0 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/sig_wave_and_mslp_meters.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/sig_wave_and_mslp_meters.attr index 3b8e5bcd3d..efdb8ef792 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/sig_wave_and_mslp_meters.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/sig_wave_and_mslp_meters.attr @@ -6,7 +6,7 @@ ! T. Piper/GSC 5/99 Added -1 line position for TITLE = ! T. Lee/SAIC 2/04 Changed AVN to GFS ! -GDFILE nww3 ! nww3 ! gfs +GDFILE = nww3 ! nww3 ! gfs GLEVEL = 0 GVCORD = none SKIP = 0 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/sig_wave_gridded_mslp_feet.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/sig_wave_gridded_mslp_feet.attr index a0aac8f2d6..a7666239e6 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/sig_wave_gridded_mslp_feet.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/sig_wave_gridded_mslp_feet.attr @@ -7,7 +7,7 @@ ! J.L.Partain/MPC 5/01 Set filter=n and added SKIP = ! T. Lee/SAIC 2/04 Changed AVN to GFS ! -GDFILE nww3 ! gfs ! gfs +GDFILE = nww3 ! gfs ! gfs GLEVEL = 0 GVCORD = none SKIP = 0/-1;1 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/sig_wave_gridded_mslp_feet_nw.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/sig_wave_gridded_mslp_feet_nw.attr index 364039968d..db1198e689 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/sig_wave_gridded_mslp_feet_nw.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/sig_wave_gridded_mslp_feet_nw.attr @@ -7,7 +7,7 @@ ! J.L.Partain/MPC 5/01 Set filter=n and added SKIP = ! T. Lee/SAIC 2/04 Changed AVN to GFS ! -GDFILE nww3 ! gfs +GDFILE = nww3 ! gfs GLEVEL = 0 GVCORD = none SKIP = 0/-1;1 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/sig_wave_gridded_mslp_meters.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/sig_wave_gridded_mslp_meters.attr index 26279bb66f..2ea7733a54 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/sig_wave_gridded_mslp_meters.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/sig_wave_gridded_mslp_meters.attr @@ -7,7 +7,7 @@ ! J.L.Partain/MPC 5/01 Set filter=n and added SKIP = ! T. Lee/SAIC 2/04 Changed AVN to GFS ! -GDFILE nww3 ! gfs ! gfs +GDFILE = nww3 ! gfs ! gfs GLEVEL = 0 GVCORD = none SKIP = 0/-1;1 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/sig_wave_gridded_mslp_meters_nw.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/sig_wave_gridded_mslp_meters_nw.attr index c5f015481e..37a3cdf9a5 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/sig_wave_gridded_mslp_meters_nw.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/sig_wave_gridded_mslp_meters_nw.attr @@ -7,7 +7,7 @@ ! J.L.Partain/MPC 5/01 Set filter=n and added SKIP = ! T. Lee/SAIC 2/04 Changed AVN to GFS ! -GDFILE nww3 ! gfs +GDFILE = nww3 ! gfs GLEVEL = 0 GVCORD = none SKIP = 0/-1;1 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/svrwx_nam.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/svrwx_nam.attr index 3d9ae179cf..db076cd132 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/svrwx_nam.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/ModelFcstGridContours/svrwx_nam.attr @@ -20,6 +20,6 @@ FINT = 0;50 !50;56;62;68;74 FLINE = 0;8;0 !0;23;22;30;14;2 HILO = 0!0!0!0!5/H#;L#/1080-2000;900-1012!0 HLSYM = !!!!!1.5;1.5//22/3/hw! -!CLRBAR= 0!1/V/LL!0 +!CLRBAR = 0!1/V/LL!0 WIND = !!!!!!9/0.8/2/112!6/.3/2/221/.4 TITLE = 1/-2/~ BL (0-30 MB AGL)DWPT & WIND =, 700mb TEMP, RH & WND, EMSL!0 diff --git a/cave/build/static/common/cave/etc/ncep/Bundles/GoesSXIImage.xml b/cave/build/static/common/cave/etc/ncep/Bundles/GoesSXIImage.xml index d01d4d9462..5a6bc97d7a 100644 --- a/cave/build/static/common/cave/etc/ncep/Bundles/GoesSXIImage.xml +++ b/cave/build/static/common/cave/etc/ncep/Bundles/GoesSXIImage.xml @@ -1,10 +1,10 @@ - + - + @@ -16,12 +16,12 @@ - + - + - + @@ -36,7 +36,7 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/Bundles/GoesSXIImageMultipane.xml b/cave/build/static/common/cave/etc/ncep/Bundles/GoesSXIImageMultipane.xml index 1d106b482f..7bc8c390f9 100644 --- a/cave/build/static/common/cave/etc/ncep/Bundles/GoesSXIImageMultipane.xml +++ b/cave/build/static/common/cave/etc/ncep/Bundles/GoesSXIImageMultipane.xml @@ -1,5 +1,5 @@ - + @@ -17,12 +17,12 @@ - + - + - + @@ -56,12 +56,12 @@ - + - + - + @@ -95,12 +95,12 @@ - + - + - + @@ -134,12 +134,12 @@ - + - + - + diff --git a/cave/build/static/common/cave/etc/ncep/Bundles/HalphaImage.xml b/cave/build/static/common/cave/etc/ncep/Bundles/HalphaImage.xml index d0ffa5b1b2..cbc22adaf2 100644 --- a/cave/build/static/common/cave/etc/ncep/Bundles/HalphaImage.xml +++ b/cave/build/static/common/cave/etc/ncep/Bundles/HalphaImage.xml @@ -1,11 +1,11 @@ - + - + @@ -17,21 +17,24 @@ - + - + - + + + + - + diff --git a/cave/build/static/common/cave/etc/ncep/Bundles/SDO_AIAImage.xml b/cave/build/static/common/cave/etc/ncep/Bundles/SDO_AIAImage.xml index 5edd004cea..c2002f28f1 100644 --- a/cave/build/static/common/cave/etc/ncep/Bundles/SDO_AIAImage.xml +++ b/cave/build/static/common/cave/etc/ncep/Bundles/SDO_AIAImage.xml @@ -1,5 +1,5 @@ - + @@ -16,13 +16,13 @@ - + - + - - + + @@ -33,7 +33,7 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/Bundles/SDO_AIA_MultiImage.xml b/cave/build/static/common/cave/etc/ncep/Bundles/SDO_AIA_MultiImage.xml index 049d69142c..2ab51dfb98 100644 --- a/cave/build/static/common/cave/etc/ncep/Bundles/SDO_AIA_MultiImage.xml +++ b/cave/build/static/common/cave/etc/ncep/Bundles/SDO_AIA_MultiImage.xml @@ -1,10 +1,10 @@ - + - + - + @@ -16,16 +16,16 @@ - + - + - - + + - + @@ -34,7 +34,7 @@ - + @@ -46,16 +46,16 @@ - + - + - - + + - + @@ -64,7 +64,7 @@ - + @@ -76,16 +76,16 @@ - + - + - - + + - + @@ -93,7 +93,7 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/Bundles/SDO_HMIImage.xml b/cave/build/static/common/cave/etc/ncep/Bundles/SDO_HMIImage.xml index 809ea1e37d..85828a6b8c 100644 --- a/cave/build/static/common/cave/etc/ncep/Bundles/SDO_HMIImage.xml +++ b/cave/build/static/common/cave/etc/ncep/Bundles/SDO_HMIImage.xml @@ -1,11 +1,11 @@ - + - + @@ -17,13 +17,13 @@ - + - + - - + + @@ -31,7 +31,7 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/Bundles/SOHOEitImage.xml b/cave/build/static/common/cave/etc/ncep/Bundles/SOHOEitImage.xml index 461eccbce3..740046bf1e 100644 --- a/cave/build/static/common/cave/etc/ncep/Bundles/SOHOEitImage.xml +++ b/cave/build/static/common/cave/etc/ncep/Bundles/SOHOEitImage.xml @@ -1,11 +1,11 @@ - + - + @@ -17,12 +17,12 @@ - + - + - + @@ -34,7 +34,7 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/Bundles/SOHOLascoImage.xml b/cave/build/static/common/cave/etc/ncep/Bundles/SOHOLascoImage.xml index 71e31c389f..c94b1e05cf 100644 --- a/cave/build/static/common/cave/etc/ncep/Bundles/SOHOLascoImage.xml +++ b/cave/build/static/common/cave/etc/ncep/Bundles/SOHOLascoImage.xml @@ -1,11 +1,11 @@ - + - + @@ -17,24 +17,21 @@ - + - + - + - - - - + diff --git a/cave/build/static/common/cave/etc/ncep/Bundles/STEREOImage.xml b/cave/build/static/common/cave/etc/ncep/Bundles/STEREOImage.xml index 005cb2f958..206d1e04fa 100644 --- a/cave/build/static/common/cave/etc/ncep/Bundles/STEREOImage.xml +++ b/cave/build/static/common/cave/etc/ncep/Bundles/STEREOImage.xml @@ -1,10 +1,11 @@ - + - + + @@ -17,33 +18,31 @@ - + - + - - + + - - - - + - + + @@ -55,27 +54,26 @@ - + - + - - + + - - - - + + + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosETA/standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosETA/standard.xml index 5bdaa5f0b2..4a04c3ec0e 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosETA/standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosETA/standard.xml @@ -1,31 +1,31 @@ - + LR - + UR - + TC - + LL diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/12hrpop.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/12hrpop.xml index ca0447d468..a3314e1771 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/12hrpop.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/12hrpop.xml @@ -1,7 +1,7 @@ - + UR diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/6hrpop.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/6hrpop.xml index 3acbca874e..921189ab50 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/6hrpop.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/6hrpop.xml @@ -1,7 +1,7 @@ - + UR diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/fosb.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/fosb.xml index ddf3ab8381..b57e59c65e 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/fosb.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/fosb.xml @@ -1,7 +1,7 @@ - + UL diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/misc.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/misc.xml index c22f0fc486..a2d2384b00 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/misc.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/misc.xml @@ -1,83 +1,83 @@ - + BC - + LL - + TC - + LR - + TC - + BC - + TC - + BC - + UR - + UR - + LR - + LL - + UL - + BC - + TC - + LR diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/standard.xml index 7e1e149183..f4466e4f11 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/standard.xml @@ -1,52 +1,52 @@ - + UL - + UR - + TC - + LL - + LR - + BC - + UL - + UR - + TC - + LL - + LR - + UR diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosLAMP/standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosLAMP/standard.xml index ff96fa5276..416f55409b 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosLAMP/standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosLAMP/standard.xml @@ -1,38 +1,38 @@ - + UL - + LL - + SC - + LR diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosMRF/standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosMRF/standard.xml index f7c3b9546d..d26d9416a3 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosMRF/standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosMRF/standard.xml @@ -1,16 +1,16 @@ - + LR diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosNGM/standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosNGM/standard.xml index b5641eb14a..6f0cb0ab79 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosNGM/standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosNGM/standard.xml @@ -1,14 +1,14 @@ - + UL - + LL - + LR diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrua/standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrua/standard.xml index 7f7db0bd60..129423f520 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrua/standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrua/standard.xml @@ -5,23 +5,23 @@ plugin="bufrua" name="standard" svgTemplate="standardPlotModelTemplate.svg"> - + UL - + UR - + LL - + LR - + WD diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/modelsounding/basicNAM.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/modelsounding/basicNAM.xml index ecc003f6cb..c5f902b362 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/modelsounding/basicNAM.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/modelsounding/basicNAM.xml @@ -1,49 +1,49 @@ - + MC - + UL - + LL - + ML - + MR - + TR - + BR - + LC - + BC - + TC - - - + UL - + LL - - + MR - + LR - - - + UC - + UR - + MC - + LC - + UL - diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/ncpafm/standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/ncpafm/standard.xml index 23cd2b455e..18cc22ee5d 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/ncpafm/standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/ncpafm/standard.xml @@ -1,50 +1,50 @@ - + TC - + UL - + UC - + UR - + ML - + MR - + LL - + LC - + WD diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/ncpirep/standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/ncpirep/standard.xml index db0b3c9f70..55214b2228 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/ncpirep/standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/ncpirep/standard.xml @@ -9,21 +9,21 @@ params have been commented out since all the parameters have not been implemented yet for airep --> - - + UC - + MC - + LC - + UL - + UR diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/ncscd/standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/ncscd/standard.xml index 5df78b487b..77135efff6 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/ncscd/standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/ncscd/standard.xml @@ -1,34 +1,34 @@ - + UL - + ML - + LL - + UR - + LR - + BC diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/simple.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/simple.xml index dbd95ad9a8..54995b61a1 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/simple.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/simple.xml @@ -1,38 +1,38 @@ - + UL - + LL - + SC - + WD - - + LR - + TC - + UR - + LM diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/standard.xml index a1a967caad..ae6797c545 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/standard.xml @@ -1,14 +1,14 @@ - + SC - + ML - + LR diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/tempo_flt_condition.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/tempo_flt_condition.xml index 0e6ff9cdfa..a2a51d9cb4 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/tempo_flt_condition.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/tempo_flt_condition.xml @@ -1,30 +1,30 @@ - + UL - + LL - + SC - + UR - + LR - + TC - + BC diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/tempo_prob.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/tempo_prob.xml index 949ee03688..6a56946958 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/tempo_prob.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/tempo_prob.xml @@ -1,30 +1,30 @@ - + UL - + LL - + SC - + UR - + LR - + TC - + BC diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/ncuair/standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/ncuair/standard.xml index 4d351e8460..31fac65b46 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/ncuair/standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/ncuair/standard.xml @@ -5,23 +5,23 @@ plugin="ncuair" name="standard" svgTemplate="standardPlotModelTemplate.svg"> - + UL - + UR - + LL - + LR - + WD diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/obs/simple.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/obs/simple.xml index 6681d64d69..5d84f376fb 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/obs/simple.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/obs/simple.xml @@ -4,7 +4,7 @@ plugin="obs" svgTemplate="standardPlotModelTemplate.svg"> - + UL @@ -12,7 +12,7 @@ ML - + LL diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/obs/standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/obs/standard.xml index 4678fb19fc..040e40e359 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/obs/standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/obs/standard.xml @@ -1,40 +1,40 @@ - + UL - + LL - + BC - + LR - + UR - + SC - + WD - + ML - + MR diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/obs/standard2.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/obs/standard2.xml index 45944bc6d7..4ee3b750b5 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/obs/standard2.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/obs/standard2.xml @@ -1,42 +1,42 @@ - + UL - + LL - + BC - + LR - + UR - + SC - + WD - + ML - + MR - + LC diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/sfcobs/bouys.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/sfcobs/bouys.xml index 5cbd00d02d..a5a33c96a3 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/sfcobs/bouys.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/sfcobs/bouys.xml @@ -1,18 +1,18 @@ - + WD - + UL - + UR - + ML diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/sfcobs/ship_standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/sfcobs/ship_standard.xml index d6e3e566d6..4f6986941e 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/sfcobs/ship_standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/sfcobs/ship_standard.xml @@ -1,44 +1,44 @@ - + UL - + ML - + LL - + SC - + WD - + UR - + MR - + LR - + TC - + BC diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/sfcobs/synop_standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/sfcobs/synop_standard.xml index 8d1b41bbdf..e75555d3ec 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/sfcobs/synop_standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/sfcobs/synop_standard.xml @@ -1,42 +1,42 @@ - + UL - + ML - + LL - + SC - + WD - + UR - + MR - + LR - + BC - + LC diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/standardPlotModelTemplate.svg b/cave/build/static/common/cave/etc/ncep/PlotModels/standardPlotModelTemplate.svg index 1fd72b0a35..2b6e038fc3 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/standardPlotModelTemplate.svg +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/standardPlotModelTemplate.svg @@ -10,35 +10,6 @@ xmlns:xlink="http://www.w3.org/1999/xlink" style="stroke: rgb(255,255,255);"> @font-face { font-family: "WindSymbolFont"; src: url(../ncep/PlotModels/WindSymbols.svg#WindSymbols); } - @font-face { font-family: "StandardFont"; - src: url(../ncep/PlotModels/Standard.svg#Standard); } - - @font-face { font-family: "CourierNormalFont"; - src: url(../ncep/PlotModels/CourierNormal.svg#CourierNormal); } - @font-face { font-family: "CourierItalicFont"; - src: url(../ncep/PlotModels/CourierItalic.svg#CourierItalic); } - @font-face { font-family: "CourierBoldFont"; - src: url(../ncep/PlotModels/CourierBold.svg#CourierBold); } - @font-face { font-family: "CourierBold-ItalicFont"; - src: url(../ncep/PlotModels/CourierBoldItalic.svg#CourierBoldItalic); } - - @font-face { font-family: "TimesNormalFont"; - src: url(../ncep/PlotModels/TimesNormal.svg#TimesNormal); } - @font-face { font-family: "TimesItalicFont"; - src: url(../ncep/PlotModels/TimesItalic.svg#TimesItalic); } - @font-face { font-family: "TimesBoldFont"; - src: url(../ncep/PlotModels/TimesBold.svg#TimesBold); } - @font-face { font-family: "TimesBold-ItalicFont"; - src: url(../ncep/PlotModels/TimesBoldItalic.svg#TimesBoldItalic); } - - @font-face { font-family: "HelveticaNormalFont"; - src: url(../ncep/PlotModels/HelveticaNormal.svg#HelveticaNormal); } - @font-face { font-family: "HelveticaItalicFont"; - src: url(../ncep/PlotModels/HelveticaItalic.svg#HelveticaItalic); } - @font-face { font-family: "HelveticaBoldFont"; - src: url(../ncep/PlotModels/HelveticaBold.svg#HelveticaBold); } - @font-face { font-family: "HelveticaBold-ItalicFont"; - src: url(../ncep/PlotModels/HelveticaBoldItalic.svg#HelveticaBoldItalic); } @font-face { font-family: "WxSymbolFont"; src: url(../ncep/PlotModels/NcWxSymbols.svg#NcWxSymbols); } @@ -61,21 +32,21 @@ xmlns:xlink="http://www.w3.org/1999/xlink" style="stroke: rgb(255,255,255);"> --> - err - err - err + + + - err - err + + - err + - err - err + + - err - err - err + + + arrow @@ -85,5 +56,5 @@ xmlns:xlink="http://www.w3.org/1999/xlink" style="stroke: rgb(255,255,255);"> - + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/ETA212/ETA212.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/ETA212/ETA212.xml new file mode 100644 index 0000000000..23f6279210 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/ETA212/ETA212.xml @@ -0,0 +1,21 @@ + + + true + true + ETA212 + GRID + +GDFILE=ETA212 +pluginName=grid + + Forecast,SBN + ModelFcstGridContours + + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 384 + BasicWX_US + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/ETA218/ETA218.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/ETA218/ETA218.xml new file mode 100644 index 0000000000..b074bcd6a9 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/ETA218/ETA218.xml @@ -0,0 +1,21 @@ + + + true + true + ETA218 + GRID + +GDFILE=ETA218 +pluginName=grid + + Forecast,SBN + ModelFcstGridContours + + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 384 + BasicWX_US + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/GFS212/GFS212.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/GFS212/GFS212.xml new file mode 100644 index 0000000000..86e3ac6c57 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/GFS212/GFS212.xml @@ -0,0 +1,21 @@ + + + true + true + GFS212 + GRID + +GDFILE=GFS212 +pluginName=grid + + Forecast,SBN + ModelFcstGridContours + + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 384 + BasicWX_US + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/RUC130/RUC130.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/RUC130/RUC130.xml new file mode 100644 index 0000000000..a4fab7c883 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/RUC130/RUC130.xml @@ -0,0 +1,21 @@ + + + true + true + RUC130 + GRID + +GDFILE=RUC130 +pluginName=grid + + Forecast,SBN + ModelFcstGridContours + + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 384 + BasicWX_US + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/RUC236/RUC236.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/RUC236/RUC236.xml new file mode 100644 index 0000000000..aeb6a04d60 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/RUC236/RUC236.xml @@ -0,0 +1,21 @@ + + + true + true + RUC236 + GRID + +GDFILE=RUC236 +pluginName=grid + + Forecast,SBN + ModelFcstGridContours + + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 384 + BasicWX_US + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/SREF212/SREF212.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/SREF212/SREF212.xml new file mode 100644 index 0000000000..a63a74c709 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/SREF212/SREF212.xml @@ -0,0 +1,21 @@ + + + true + true + SREF212 + GRID + +GDFILE=SREF212 +pluginName=grid + + Forecast,SBN + ModelFcstGridContours + + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 384 + BasicWX_US + \ No newline at end of file diff --git a/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/ui/dialogs/FfmpBasinTableDlg.java b/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/ui/dialogs/FfmpBasinTableDlg.java index 2f39fbe43a..ef99c516d4 100644 --- a/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/ui/dialogs/FfmpBasinTableDlg.java +++ b/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/ui/dialogs/FfmpBasinTableDlg.java @@ -106,8 +106,8 @@ import com.raytheon.viz.ui.dialogs.ICloseCallback; * Changes for non-blocking AttributeThresholdDlg. * Changes for non-blocking LoadSaveConfigDlg. * Jan 23, 2013 14907 gzhang GUID not in Thresholds menu even ColorCell true + * Mar 01, 2013 13228 gzhang Adding field rowName for VGB in County * - * * @author lvenable * @version 1.0 */ @@ -235,7 +235,9 @@ public class FfmpBasinTableDlg extends CaveSWTDialog implements private FFMPTableDataLoader dataRetrieveThread = null; private boolean groupLabelFlag = true; - + + private String rowName="";// DR 13228 + public FfmpBasinTableDlg(Shell parent, FFMPTableData tData, FFMPResource resource) { super(parent, SWT.DIALOG_TRIM | SWT.RESIZE, CAVE.INDEPENDENT_SHELL @@ -1707,7 +1709,7 @@ public class FfmpBasinTableDlg extends CaveSWTDialog implements || allOnlySmallBasinsMI.getSelection()) { groupLbl.setText(name); } - + rowName=name;// DR 13228 shell.setCursor(getDisplay().getSystemCursor(SWT.CURSOR_WAIT)); fireScreenRecenterEvent(pfaf, 1); } @@ -2171,4 +2173,9 @@ public class FfmpBasinTableDlg extends CaveSWTDialog implements groupLbl.setText(""); } } + + // DR 13228 + public String getRowName(){ + return this.rowName; + } } diff --git a/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/ui/rsc/FFMPDataGenerator.java b/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/ui/rsc/FFMPDataGenerator.java index 3e9d644cff..d2c7d9ffba 100644 --- a/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/ui/rsc/FFMPDataGenerator.java +++ b/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/ui/rsc/FFMPDataGenerator.java @@ -64,8 +64,8 @@ import com.raytheon.uf.viz.monitor.ffmp.ui.dialogs.FfmpTableConfigData; * ------------ ---------- ----------- -------------------------- * Jul 20, 2009 dhladky Initial creation * Jan 25, 2012 DR 13839 gzhang Use paintTime for QPF + * Mar 01, 2013 DR 13228 gzhang Get VGB county info for row name * - * * @author dhladky * @version 1.0 */ @@ -209,7 +209,7 @@ public class FFMPDataGenerator { for (Long id : ft .getVirtualGageBasinLookupIds( siteKey, - key)) { + key,huc,resource.basinTableDlg.getRowName()/* DR 13228 */)) { setFFMPRow( virtualBasin .get(id), @@ -281,7 +281,7 @@ public class FFMPDataGenerator { for (Long id : ft .getVirtualGageBasinLookupIds( siteKey, - key)) { + key,huc,resource.basinTableDlg.getRowName()/* DR 13228 */)) { setFFMPRow( virtualBasin .get(id), @@ -305,7 +305,7 @@ public class FFMPDataGenerator { return tData; } - private void setFFMPRow(FFMPBasin cBasin, FFMPTableData tData, + private void setFFMPRow(/*FFMPVirtualGageBasinMetaData md,*/FFMPBasin cBasin, FFMPTableData tData, boolean isVGB, String domain) { try { if (cBasin instanceof FFMPVirtualGageBasin) { diff --git a/cave/com.raytheon.uf.viz.ncep.displays.feature/feature.xml b/cave/com.raytheon.uf.viz.ncep.displays.feature/feature.xml index 6720e6148c..6b24a835ff 100644 --- a/cave/com.raytheon.uf.viz.ncep.displays.feature/feature.xml +++ b/cave/com.raytheon.uf.viz.ncep.displays.feature/feature.xml @@ -358,4 +358,11 @@ version="0.0.0" fragment="true"/> + + diff --git a/cave/com.raytheon.uf.viz.npp.crimss/META-INF/MANIFEST.MF b/cave/com.raytheon.uf.viz.npp.crimss/META-INF/MANIFEST.MF index c0299fc9b0..5400bdff33 100644 --- a/cave/com.raytheon.uf.viz.npp.crimss/META-INF/MANIFEST.MF +++ b/cave/com.raytheon.uf.viz.npp.crimss/META-INF/MANIFEST.MF @@ -46,7 +46,6 @@ Import-Package: com.raytheon.uf.common.dataplugin, gov.noaa.nws.ncep.edex.common.sounding, gov.noaa.nws.ncep.ui.nsharp, gov.noaa.nws.ncep.ui.nsharp.natives, - gov.noaa.nws.ncep.ui.nsharp.skewt, javax.measure.converter, javax.measure.unit, org.eclipse.swt.graphics, diff --git a/cave/com.raytheon.uf.viz.npp.crimss/src/com/raytheon/uf/viz/npp/crimss/CrimssDataDefinition.java b/cave/com.raytheon.uf.viz.npp.crimss/src/com/raytheon/uf/viz/npp/crimss/CrimssDataDefinition.java index 59d1f33848..3613914da5 100644 --- a/cave/com.raytheon.uf.viz.npp.crimss/src/com/raytheon/uf/viz/npp/crimss/CrimssDataDefinition.java +++ b/cave/com.raytheon.uf.viz.npp.crimss/src/com/raytheon/uf/viz/npp/crimss/CrimssDataDefinition.java @@ -19,7 +19,7 @@ **/ package com.raytheon.uf.viz.npp.crimss; -import gov.noaa.nws.ncep.ui.nsharp.skewt.NsharpSkewTEditor; +import gov.noaa.nws.ncep.ui.nsharp.display.NsharpEditor; import java.util.ArrayList; import java.util.Arrays; @@ -211,7 +211,7 @@ public class CrimssDataDefinition */ @Override protected IDisplayPaneContainer openNewEditor(String editorId) { - if (NsharpSkewTEditor.EDITOR_ID.equals(editorId)) { + if (NsharpEditor.EDITOR_ID.equals(editorId)) { return UiUtil.createEditor(editorId, new D2DNSharpDisplay()); } else { return super.openNewEditor(editorId); diff --git a/cave/com.raytheon.uf.viz.radarapps.core/src/com/raytheon/uf/viz/radarapps/products/ui/ProductMenu.xml b/cave/com.raytheon.uf.viz.radarapps.core/src/com/raytheon/uf/viz/radarapps/products/ui/ProductMenu.xml index fb6803d571..88b2f1b6e6 100644 --- a/cave/com.raytheon.uf.viz.radarapps.core/src/com/raytheon/uf/viz/radarapps/products/ui/ProductMenu.xml +++ b/cave/com.raytheon.uf.viz.radarapps.core/src/com/raytheon/uf/viz/radarapps/products/ui/ProductMenu.xml @@ -60,6 +60,7 @@ + diff --git a/cave/com.raytheon.viz.awipstools/src/com/raytheon/viz/awipstools/common/stormtrack/StormTrackDisplay.java b/cave/com.raytheon.viz.awipstools/src/com/raytheon/viz/awipstools/common/stormtrack/StormTrackDisplay.java index 60bdb1afe9..01db4413b7 100644 --- a/cave/com.raytheon.viz.awipstools/src/com/raytheon/viz/awipstools/common/stormtrack/StormTrackDisplay.java +++ b/cave/com.raytheon.viz.awipstools/src/com/raytheon/viz/awipstools/common/stormtrack/StormTrackDisplay.java @@ -58,6 +58,7 @@ import com.raytheon.viz.awipstools.common.StormTrackData; import com.raytheon.viz.awipstools.common.stormtrack.StormTrackState.DisplayType; import com.raytheon.viz.awipstools.common.stormtrack.StormTrackState.Mode; import com.raytheon.viz.awipstools.common.stormtrack.StormTrackState.StormCoord; +import com.raytheon.viz.awipstools.ui.layer.DistanceSpeedLayer; import com.raytheon.viz.core.rsc.jts.JTSCompiler; import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.Geometry; @@ -97,6 +98,8 @@ import com.vividsolutions.jts.geom.LineString; * when the track was created. * 10-27-2010 #6964 bkowal The LineStyle is now passed as a parameter to * the IGraphicsTarget drawWireframeShape method. + * 05Mar2013 15693 mgamazaychikov Made sure that magnification capability works + * for DispanceSpeedLayer * * * @@ -641,10 +644,17 @@ public class StormTrackDisplay implements IRenderable { Double magnification = 1.0; for (ResourcePair rp : descriptor.getResourceList()) { if (rp != null) { - magnification = rp.getResource() - .getCapability(MagnificationCapability.class) - .getMagnification(); - break; + /* + * 15693 - make sure magnification capability works for + * DistanceSpeedLayer + */ + if (rp.getResource() instanceof DistanceSpeedLayer) { + magnification = rp.getResource() + .getCapability(MagnificationCapability.class) + .getMagnification(); + break; + } + } } diff --git a/cave/com.raytheon.viz.awipstools/src/com/raytheon/viz/awipstools/ui/layer/DistanceBearingToolLayer.java b/cave/com.raytheon.viz.awipstools/src/com/raytheon/viz/awipstools/ui/layer/DistanceBearingToolLayer.java index 5eab4c9b62..e693cf3eda 100644 --- a/cave/com.raytheon.viz.awipstools/src/com/raytheon/viz/awipstools/ui/layer/DistanceBearingToolLayer.java +++ b/cave/com.raytheon.viz.awipstools/src/com/raytheon/viz/awipstools/ui/layer/DistanceBearingToolLayer.java @@ -33,11 +33,14 @@ import com.raytheon.uf.viz.core.IGraphicsTarget; import com.raytheon.uf.viz.core.IGraphicsTarget.HorizontalAlignment; import com.raytheon.uf.viz.core.IGraphicsTarget.LineStyle; import com.raytheon.uf.viz.core.IGraphicsTarget.TextStyle; +import com.raytheon.uf.viz.core.drawables.IFont; import com.raytheon.uf.viz.core.drawables.IWireframeShape; import com.raytheon.uf.viz.core.drawables.PaintProperties; import com.raytheon.uf.viz.core.exception.VizException; +import com.raytheon.uf.viz.core.drawables.IFont.Style; import com.raytheon.uf.viz.core.rsc.LoadProperties; import com.raytheon.uf.viz.core.rsc.capabilities.ColorableCapability; +import com.raytheon.uf.viz.core.rsc.capabilities.MagnificationCapability; import com.raytheon.uf.viz.core.rsc.capabilities.OutlineCapability; import com.raytheon.uf.viz.core.rsc.tools.AbstractMovableToolLayer; import com.raytheon.uf.viz.core.rsc.tools.AwipsToolsResourceData; @@ -73,6 +76,7 @@ import com.vividsolutions.jts.geom.LineSegment; * in the super class. * 06-09-10 #5620 bkowal The tool will load in an editable state by * default now. + * 05Mar2013 15693 mgamazaychikov Added magnification capability. * * * @@ -82,6 +86,8 @@ import com.vividsolutions.jts.geom.LineSegment; public class DistanceBearingToolLayer extends AbstractMovableToolLayer implements IContextMenuContributor { + + private IFont labelFont; public static final String DEFAULT_NAME = "Distance Bearing"; @@ -100,6 +106,10 @@ public class DistanceBearingToolLayer extends LoadProperties loadProperties) { super(resourceData, loadProperties, true); getCapabilities().addCapability(new OutlineCapability()); + /* + * 15693 - add magnification capability + */ + getCapabilities().addCapability(new MagnificationCapability()); deleteElementAction = new AbstractRightClickAction() { public void run() { deleteSelected(); @@ -126,6 +136,12 @@ public class DistanceBearingToolLayer extends super.initInternal(target); setObjects(ToolsDataManager.getInstance().getDistanceBearings()); gc = new GeodeticCalculator(descriptor.getCRS()); + /* + * 15693 - initialize font for magnification capability + */ + labelFont = target.initializeFont( + target.getDefaultFont().getFontName(), 12.0f, + new Style[] { Style.BOLD }); } protected void paint(IGraphicsTarget target, PaintProperties paintProps, @@ -157,14 +173,19 @@ public class DistanceBearingToolLayer extends } } String label = computeRangeAndAzimuth(line); + /* + * 15693 - set font for magnification capability + */ + labelFont.setMagnification(getCapability(MagnificationCapability.class) + .getMagnification().floatValue()); double[] center = descriptor.worldToPixel(new double[] { line.p0.x, line.p0.y }); double labelLoc[] = target.getPointOnCircle(center[0], center[1], 0.0, radius, 0); - target.drawString(null, label, labelLoc[0], labelLoc[1], 0.0, + target.drawString(labelFont, label, labelLoc[0], labelLoc[1], 0.0, TextStyle.NORMAL, color, HorizontalAlignment.LEFT, null); - target.drawWireframeShape(wireframeShape, color, lineWidth, lineStyle); + target.drawWireframeShape(wireframeShape, color, lineWidth, lineStyle, labelFont); wireframeShape.dispose(); } diff --git a/cave/com.raytheon.viz.awipstools/src/com/raytheon/viz/awipstools/ui/layer/DistanceSpeedLayer.java b/cave/com.raytheon.viz.awipstools/src/com/raytheon/viz/awipstools/ui/layer/DistanceSpeedLayer.java index ffa26b5a73..39e231c209 100644 --- a/cave/com.raytheon.viz.awipstools/src/com/raytheon/viz/awipstools/ui/layer/DistanceSpeedLayer.java +++ b/cave/com.raytheon.viz.awipstools/src/com/raytheon/viz/awipstools/ui/layer/DistanceSpeedLayer.java @@ -28,6 +28,7 @@ import com.raytheon.uf.viz.core.drawables.PaintProperties; import com.raytheon.uf.viz.core.exception.VizException; import com.raytheon.uf.viz.core.map.MapDescriptor; import com.raytheon.uf.viz.core.rsc.LoadProperties; +import com.raytheon.uf.viz.core.rsc.capabilities.MagnificationCapability; import com.raytheon.uf.viz.core.rsc.tools.AwipsToolsResourceData; import com.raytheon.viz.awipstools.common.stormtrack.AbstractStormTrackResource; import com.raytheon.viz.awipstools.common.stormtrack.StormTrackState; @@ -50,6 +51,7 @@ import com.raytheon.viz.ui.VizWorkbenchManager; * 02/15/2011 7975 bkowal The Distance Speed Tools will * operate independently of each other; * the dialogs will have unique titles. + * 05Mar2013 15693 mgamazaychikov Added magnification capability. * * * @@ -72,6 +74,10 @@ public class DistanceSpeedLayer extends AbstractStormTrackResource { AwipsToolsResourceData resourceData, LoadProperties loadProperties, MapDescriptor descriptor) { super(resourceData, loadProperties, descriptor); + /* + * 15693 - add magnification capability + */ + getCapabilities().addCapability(new MagnificationCapability()); this.determineDialogTitle(); reopenDialog(); } diff --git a/cave/com.raytheon.viz.awipstools/src/com/raytheon/viz/awipstools/ui/layer/HomeToolLayer.java b/cave/com.raytheon.viz.awipstools/src/com/raytheon/viz/awipstools/ui/layer/HomeToolLayer.java index 04d1a58ba0..1a13362883 100644 --- a/cave/com.raytheon.viz.awipstools/src/com/raytheon/viz/awipstools/ui/layer/HomeToolLayer.java +++ b/cave/com.raytheon.viz.awipstools/src/com/raytheon/viz/awipstools/ui/layer/HomeToolLayer.java @@ -39,10 +39,13 @@ import com.raytheon.uf.viz.core.IDisplayPaneContainer; import com.raytheon.uf.viz.core.IGraphicsTarget; import com.raytheon.uf.viz.core.IGraphicsTarget.HorizontalAlignment; import com.raytheon.uf.viz.core.IGraphicsTarget.TextStyle; +import com.raytheon.uf.viz.core.drawables.IFont; import com.raytheon.uf.viz.core.drawables.PaintProperties; +import com.raytheon.uf.viz.core.drawables.IFont.Style; import com.raytheon.uf.viz.core.exception.VizException; import com.raytheon.uf.viz.core.rsc.LoadProperties; import com.raytheon.uf.viz.core.rsc.capabilities.ColorableCapability; +import com.raytheon.uf.viz.core.rsc.capabilities.MagnificationCapability; import com.raytheon.uf.viz.core.rsc.tools.AbstractMovableToolLayer; import com.raytheon.uf.viz.core.rsc.tools.AwipsToolsResourceData; import com.raytheon.uf.viz.points.IPointChangedListener; @@ -66,6 +69,7 @@ import com.vividsolutions.jts.geom.Coordinate; * 20Dec2007 #645 ebabin Updated to fix sampling. * 15Jan2007 ebabin Update for lat/lon put home cursor bug. * 10-21-09 #1049 bsteffen Refactor to common MovableTool model + * 05Mar2013 15693 mgamazaychikov Added magnification capability. * * * @author ebabin @@ -75,6 +79,8 @@ import com.vividsolutions.jts.geom.Coordinate; public class HomeToolLayer extends AbstractMovableToolLayer implements IContextMenuContributor, IPointChangedListener { + + private IFont labelFont; public static final String DEFAULT_NAME = "Home Location"; @@ -89,6 +95,10 @@ public class HomeToolLayer extends AbstractMovableToolLayer public HomeToolLayer(AwipsToolsResourceData resourceData, LoadProperties loadProperties) { super(resourceData, loadProperties, false); + /* + * 15693 - add magnification capability + */ + getCapabilities().addCapability(new MagnificationCapability()); selectLocationAction = new AbstractRightClickAction() { @Override public void run() { @@ -115,6 +125,12 @@ public class HomeToolLayer extends AbstractMovableToolLayer @Override protected void initInternal(IGraphicsTarget target) throws VizException { + /* + * 15693 - initialize font for magnification capability + */ + labelFont = target.initializeFont( + target.getDefaultFont().getFontName(), 12.0f, + new Style[] { Style.BOLD }); super.initInternal(target); resetHome(); gc = new GeodeticCalculator(descriptor.getCRS()); @@ -132,6 +148,11 @@ public class HomeToolLayer extends AbstractMovableToolLayer protected void paint(IGraphicsTarget target, PaintProperties paintProps, Coordinate home, SelectionStatus status) throws VizException { RGB color = getCapability(ColorableCapability.class).getColor(); + /* + * 15693 - set font for magnification capability + */ + labelFont.setMagnification(getCapability(MagnificationCapability.class) + .getMagnification().floatValue()); if (status == SelectionStatus.SELECTED) { color = GRAY; } @@ -154,6 +175,7 @@ public class HomeToolLayer extends AbstractMovableToolLayer dString.basics.z = 0.0; dString.textStyle = TextStyle.NORMAL; dString.horizontalAlignment = HorizontalAlignment.LEFT; + dString.font = labelFont; target.drawStrings(dString); } diff --git a/cave/com.raytheon.viz.lightning/src/com/raytheon/viz/lightning/LightningResource.java b/cave/com.raytheon.viz.lightning/src/com/raytheon/viz/lightning/LightningResource.java index 54e4232210..9604088b04 100644 --- a/cave/com.raytheon.viz.lightning/src/com/raytheon/viz/lightning/LightningResource.java +++ b/cave/com.raytheon.viz.lightning/src/com/raytheon/viz/lightning/LightningResource.java @@ -91,7 +91,8 @@ import com.raytheon.uf.viz.core.rsc.capabilities.MagnificationCapability; * text will be updated when the user changes * the magnification level now. * Sep 4, 2012 15335 kshresth Will now display lightning/wind - * fields when magnification set to 0 + * fields when magnification set to 0 + * Feb 27, 2013 DCS 152 jgerth/elau Support for WWLLN and multiple sources * * * @@ -121,14 +122,17 @@ public class LightningResource extends private BinOffset offset; private DataTime frameTime; - + + private String lightSource; + private List newRecords = new ArrayList(); private List processed = new ArrayList(); - public LightningFrameMetadata(DataTime frameTime, BinOffset offset) { + public LightningFrameMetadata(DataTime frameTime, BinOffset offset, String ls) { this.frameTime = frameTime; this.offset = offset; + this.lightSource = ls; } @Override @@ -161,6 +165,11 @@ public class LightningResource extends return false; } else if (!offset.equals(other.offset)) return false; + if (lightSource == null) { + if (other.lightSource != null) + return false; + } else if (!lightSource.equals(other.lightSource)) + return false; return true; } @@ -223,6 +232,10 @@ public class LightningResource extends private boolean needsUpdate; private String resourceName; + + private String lightSource; + + private int posAdj; private IFont font; @@ -231,12 +244,14 @@ public class LightningResource extends private List currNegList = null; public LightningResource(LightningResourceData resourceData, - LoadProperties loadProperties) { + LoadProperties loadProperties, String ls, int pa) { super(resourceData, loadProperties); resourceData.addChangeListener(this); this.dataTimes = new ArrayList(); this.cacheObjectMap = new ConcurrentHashMap>(); + this.lightSource = ls; + this.posAdj = pa; } /* @@ -308,7 +323,11 @@ public class LightningResource extends this.resourceName = timeString; } - this.resourceName += " Lightning Plot "; + String lightType = " "; + if (!this.lightSource.isEmpty()) { + lightType += this.lightSource + " "; + } + this.resourceName += lightType + "Lightning Plot "; } private String convertTimeIntervalToString(int time) { @@ -427,7 +446,8 @@ public class LightningResource extends if (this.resourceData.isHandlingPositiveStrikes()) { DrawableString pos = new DrawableString(posCount + " + Strikes", color); - pos.setCoordinates(225, height * 2); + pos.setCoordinates(225, height * (2 + 2*this.posAdj)); + // jjg above pos.font = font; pos.verticallAlignment = VerticalAlignment.TOP; pos.horizontalAlignment = HorizontalAlignment.RIGHT; @@ -437,7 +457,8 @@ public class LightningResource extends if (this.resourceData.isHandlingNegativeStrikes()) { DrawableString neg = new DrawableString(negCount + " - Strikes", color); - neg.setCoordinates(225, height * 3); + neg.setCoordinates(225, height * (3 + 2*this.posAdj)); + // jjg above neg.font = font; neg.verticallAlignment = VerticalAlignment.TOP; neg.horizontalAlignment = HorizontalAlignment.RIGHT; @@ -466,28 +487,30 @@ public class LightningResource extends Map> recordMap = new HashMap>(); for (BinLightningRecord obj : objs) { - DataTime time = new DataTime(obj.getStartTime()); - DataTime end = new DataTime(obj.getStopTime()); - time = this.getResourceData().getBinOffset() - .getNormalizedTime(time); - end = this.getResourceData().getBinOffset().getNormalizedTime(end); + if (obj.getLightSource().equals(this.lightSource) || this.lightSource.isEmpty()) { + DataTime time = new DataTime(obj.getStartTime()); + DataTime end = new DataTime(obj.getStopTime()); + time = this.getResourceData().getBinOffset() + .getNormalizedTime(time); + end = this.getResourceData().getBinOffset().getNormalizedTime(end); - // check for frames in the middle - // get interval ( in seconds ) between frames - int interval = this.getResourceData().getBinOffset().getInterval(); - while (end.greaterThan(time) || end.equals(time)) { - List records = recordMap.get(time); - if (records == null) { - records = new ArrayList(); - recordMap.put(time, records); - } - records.add(obj); + // check for frames in the middle + // get interval ( in seconds ) between frames + int interval = this.getResourceData().getBinOffset().getInterval(); + while (end.greaterThan(time) || end.equals(time)) { + List records = recordMap.get(time); + if (records == null) { + records = new ArrayList(); + recordMap.put(time, records); + } + records.add(obj); - // increment to the next time - long newTime = time.getRefTime().getTime() + (interval * 1000); - TimeRange range = new TimeRange(newTime, newTime); - time = new DataTime(newTime, range); - } + // increment to the next time + long newTime = time.getRefTime().getTime() + (interval * 1000); + TimeRange range = new TimeRange(newTime, newTime); + time = new DataTime(newTime, range); + } + } } for (Map.Entry> entry : recordMap @@ -505,7 +528,7 @@ public class LightningResource extends if (co == null) { // New frame frame = new LightningFrameMetadata(dt, - resourceData.getBinOffset()); + resourceData.getBinOffset(), this.lightSource); co = CacheObject.newCacheObject(frame, resourceBuilder); cacheObjectMap.put(dt, co); dataTimes.add(dt); diff --git a/cave/com.raytheon.viz.lightning/src/com/raytheon/viz/lightning/LightningResourceData.java b/cave/com.raytheon.viz.lightning/src/com/raytheon/viz/lightning/LightningResourceData.java index 10340b221c..68a01c7ab7 100644 --- a/cave/com.raytheon.viz.lightning/src/com/raytheon/viz/lightning/LightningResourceData.java +++ b/cave/com.raytheon.viz.lightning/src/com/raytheon/viz/lightning/LightningResourceData.java @@ -28,6 +28,8 @@ import javax.xml.bind.annotation.XmlAttribute; import com.raytheon.uf.common.dataplugin.PluginDataObject; import com.raytheon.uf.common.dataplugin.binlightning.BinLightningRecord; +import com.raytheon.uf.common.dataquery.requests.RequestConstraint; +import com.raytheon.uf.common.dataquery.requests.RequestConstraint.ConstraintType; import com.raytheon.uf.common.status.IUFStatusHandler; import com.raytheon.uf.common.status.UFStatus; import com.raytheon.uf.common.status.UFStatus.Priority; @@ -44,6 +46,7 @@ import com.raytheon.uf.viz.core.rsc.LoadProperties; * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * Feb 18, 2009 chammack Initial creation + * Feb 27, 2013 DCS 152 jgerth Support for WWLLN and multiple sources * * * @@ -61,10 +64,29 @@ public class LightningResourceData extends AbstractRequestableResourceData { @XmlAttribute private boolean handlingNegativeStrikes = true; + @XmlAttribute + private String plotLightSource = ""; + + @XmlAttribute + private int countPosition = 0; + @Override protected AbstractVizResource constructResource( LoadProperties loadProperties, PluginDataObject[] objects) { - LightningResource rsc = new LightningResource(this, loadProperties); + // jjg add + String ls = ""; + if (this.metadataMap.containsKey("lightSource")) + ls = this.metadataMap.get("lightSource").getConstraintValue(); + else if (!plotLightSource.isEmpty()) { + ls = plotLightSource; + RequestConstraint lsrc = new RequestConstraint(ls, ConstraintType.EQUALS); + this.metadataMap.put("lightSource", lsrc); + } + int pa = 0; + if (countPosition != 0) + pa = countPosition; + // end + LightningResource rsc = new LightningResource(this, loadProperties, ls, pa); List records = new ArrayList( objects.length); for (PluginDataObject pdo : objects) { @@ -83,6 +105,8 @@ public class LightningResourceData extends AbstractRequestableResourceData { @Override public boolean isUpdatingOnMetadataOnly() { + if (this.isUpdatingOnMetadataOnly == false) + return false; return true; } @@ -121,6 +145,38 @@ public class LightningResourceData extends AbstractRequestableResourceData { this.handlingNegativeStrikes = handlingNegativeStrikes; } + /** + * @return plotLightSource + * the lightSource to get - JJG + */ + public String getPlotLightSource() { + return plotLightSource; + } + + /** + * @param plotLightSource + * the lightSource to set - JJG + */ + public void setPlotLightSource(String plotLightSource) { + this.plotLightSource = plotLightSource; + } + + /** + * @return countPosition + * the countPosition to get - JJG + */ + public int getCountPosition() { + return countPosition; + } + + /** + * @param countPosition + * the countPosition to set - JJG + */ + public void setCountPosition(int countPosition) { + this.countPosition = countPosition; + } + @Override public boolean equals(Object obj) { // TODO Auto-generated method stub @@ -133,7 +189,8 @@ public class LightningResourceData extends AbstractRequestableResourceData { } LightningResourceData other = (LightningResourceData) obj; - return (this.handlingNegativeStrikes == other.handlingNegativeStrikes && this.handlingPositiveStrikes == other.handlingPositiveStrikes); + return (this.handlingNegativeStrikes == other.handlingNegativeStrikes && this.handlingPositiveStrikes == other.handlingPositiveStrikes && + this.plotLightSource == other.plotLightSource && this.countPosition == other.countPosition); } } diff --git a/cave/com.raytheon.viz.mpe.ui/src/com/raytheon/viz/mpe/ui/dialogs/QcPrecipOptionsDialog.java b/cave/com.raytheon.viz.mpe.ui/src/com/raytheon/viz/mpe/ui/dialogs/QcPrecipOptionsDialog.java index 094b866943..396611c0a6 100644 --- a/cave/com.raytheon.viz.mpe.ui/src/com/raytheon/viz/mpe/ui/dialogs/QcPrecipOptionsDialog.java +++ b/cave/com.raytheon.viz.mpe.ui/src/com/raytheon/viz/mpe/ui/dialogs/QcPrecipOptionsDialog.java @@ -23,6 +23,8 @@ import java.util.ArrayList; import java.util.Date; import org.eclipse.swt.SWT; +import org.eclipse.swt.events.KeyAdapter; +import org.eclipse.swt.events.KeyEvent; import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; @@ -63,6 +65,8 @@ import com.raytheon.viz.mpe.util.DailyQcUtils.Ts; * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * Nov 12, 2008 snaples Initial creation + * Mar 7, 2013 15657 lbousaidi fixed DQC slider and added listener to the Keys + * when pressed. * * * @@ -888,14 +892,15 @@ public class QcPrecipOptionsDialog extends AbstractMPEDialog { gd.horizontalSpan = 2; pntFilter = new Scale(pntControlComp, SWT.BORDER); pntFilter.setMinimum(0); - pntFilter.setMaximum(500); + pntFilter.setMaximum(5000); + pntFilter.setIncrement(10); pntFilter.setSelection(0); pntFilter.setLayoutData(gd); pntFilter.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { int sel = pntFilter.getSelection(); - pfvalueLabel.setText(String.format("%4.2f", sel / 100.0f)); + pfvalueLabel.setText(String.format("%4.2f", sel / 1000.0f)); } }); pntFilter.addMouseListener(new org.eclipse.swt.events.MouseAdapter() { @@ -906,6 +911,25 @@ public class QcPrecipOptionsDialog extends AbstractMPEDialog { }); + /** + * Add a key listener for up and down arrows + * to move up and down through the filter + * scale + */ + + pntFilter.addKeyListener(new KeyAdapter() { + @Override + public void keyPressed(KeyEvent e) { + if (e.keyCode == SWT.ARROW_RIGHT) { + opo.refresh_exposure(); + } else if (e.keyCode == SWT.ARROW_LEFT) { + opo.refresh_exposure(); + } + + } + + }); + /** * Point reverse filter scale */ @@ -924,15 +948,15 @@ public class QcPrecipOptionsDialog extends AbstractMPEDialog { gd.horizontalSpan = 2; pntRevFilter = new Scale(pntControlComp, SWT.BORDER); pntRevFilter.setMinimum(0); - pntRevFilter.setMaximum(2000); + pntRevFilter.setMaximum(20000); pntRevFilter.setIncrement(10); pntRevFilter.setSelection(0); pntRevFilter.setLayoutData(gd); pntRevFilter.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { - int sel = 2000 - pntRevFilter.getSelection(); - prvalueLabel.setText(String.format("%4.2f", sel / 100.0f)); + int sel = 20000 - pntRevFilter.getSelection(); + prvalueLabel.setText(String.format("%4.2f", sel / 1000.0f)); } }); pntRevFilter @@ -943,6 +967,23 @@ public class QcPrecipOptionsDialog extends AbstractMPEDialog { } }); + /** + * Add a key listener for up and down arrows + * to move up and down through the reverse filter + * scale + */ + pntRevFilter.addKeyListener(new KeyAdapter() { + @Override + public void keyPressed(KeyEvent e) { + if (e.keyCode == SWT.ARROW_RIGHT) { + opo.refresh_exposure(); + } else if (e.keyCode == SWT.ARROW_LEFT) { + opo.refresh_exposure(); + } + + } + + }); /** * Point elevation scale @@ -1050,12 +1091,12 @@ public class QcPrecipOptionsDialog extends AbstractMPEDialog { } public static float getPointFilterValue() { - float sel = pntFilter.getSelection() / 100.0f; + float sel = pntFilter.getSelection() / 1000.0f; return sel; } public static float getPointFilterReverseValue() { - float sel = (2000 - pntRevFilter.getSelection()) / 100.0f; + float sel = (20000 - pntRevFilter.getSelection()) / 1000.0f; return sel; } diff --git a/cave/com.raytheon.viz.radar/localization/menus/radar/baseRadarGraphics.xml b/cave/com.raytheon.viz.radar/localization/menus/radar/baseRadarGraphics.xml index d08e4940f0..9182242a82 100644 --- a/cave/com.raytheon.viz.radar/localization/menus/radar/baseRadarGraphics.xml +++ b/cave/com.raytheon.viz.radar/localization/menus/radar/baseRadarGraphics.xml @@ -82,6 +82,14 @@ + + + + + + + @@ -118,4 +126,4 @@ - \ No newline at end of file + diff --git a/cave/com.raytheon.viz.radar/localization/menus/radar/dualPol/baseRadarAlgorithmOverlays.xml b/cave/com.raytheon.viz.radar/localization/menus/radar/dualPol/baseRadarAlgorithmOverlays.xml index d9af69f2d9..c67e70aff6 100644 --- a/cave/com.raytheon.viz.radar/localization/menus/radar/dualPol/baseRadarAlgorithmOverlays.xml +++ b/cave/com.raytheon.viz.radar/localization/menus/radar/dualPol/baseRadarAlgorithmOverlays.xml @@ -215,6 +215,14 @@ + + + + + + + @@ -236,4 +244,4 @@ - \ No newline at end of file + diff --git a/cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseLocalRadarMenu.xml b/cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseLocalRadarMenu.xml new file mode 100644 index 0000000000..b97074018a --- /dev/null +++ b/cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseLocalRadarMenu.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarAlgorithmOverlays.xml b/cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarAlgorithmOverlays.xml new file mode 100644 index 0000000000..a9a026d1e1 --- /dev/null +++ b/cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarAlgorithmOverlays.xml @@ -0,0 +1,247 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarBestResBase.xml b/cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarBestResBase.xml new file mode 100644 index 0000000000..b343d9f553 --- /dev/null +++ b/cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarBestResBase.xml @@ -0,0 +1,1303 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarBestResZSRM.xml b/cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarBestResZSRM.xml new file mode 100644 index 0000000000..f8d653f720 --- /dev/null +++ b/cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarBestResZSRM.xml @@ -0,0 +1,314 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarBestResZV.xml b/cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarBestResZV.xml new file mode 100644 index 0000000000..2605b6b893 --- /dev/null +++ b/cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarBestResZV.xml @@ -0,0 +1,314 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarDataQuality.xml b/cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarDataQuality.xml new file mode 100644 index 0000000000..4f1d88e12e --- /dev/null +++ b/cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarDataQuality.xml @@ -0,0 +1,285 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarDerivedProducts.xml b/cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarDerivedProducts.xml new file mode 100644 index 0000000000..1a58c86847 --- /dev/null +++ b/cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarDerivedProducts.xml @@ -0,0 +1,400 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /radar/%/${icao}/137/% + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarFourPanel.xml b/cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarFourPanel.xml new file mode 100644 index 0000000000..c5cee15621 --- /dev/null +++ b/cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarFourPanel.xml @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarLegacy.xml b/cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarLegacy.xml new file mode 100644 index 0000000000..dd4459a170 --- /dev/null +++ b/cave/com.raytheon.viz.radar/localization/menus/radar/klgx/baseRadarLegacy.xml @@ -0,0 +1,1874 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/com.raytheon.viz.radar/localization/styleRules/RadarUpperText.xml b/cave/com.raytheon.viz.radar/localization/styleRules/RadarUpperText.xml index 1a590304e5..2c0833dbc7 100644 --- a/cave/com.raytheon.viz.radar/localization/styleRules/RadarUpperText.xml +++ b/cave/com.raytheon.viz.radar/localization/styleRules/RadarUpperText.xml @@ -393,5 +393,9 @@ + + + + \ No newline at end of file diff --git a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/RadarHelper.java b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/RadarHelper.java index 8725fd770f..f74b87a4ad 100644 --- a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/RadarHelper.java +++ b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/RadarHelper.java @@ -70,6 +70,8 @@ import com.raytheon.viz.awipstools.common.StormTrackData; * ------------ ---------- ----------- -------------------------- * Feb 16, 2009 mnash Initial creation * 03/07/2012 DR 14660 D. Friedman Added time-based getSTIData* functions. + * 03/01/2013 DR 15496 zwang Handle the expanded GSM + * Correct some status according to B14 ICD * * * @@ -138,19 +140,19 @@ public class RadarHelper { private static char DEGREE_SYMBOL = 0xB0; public static final String[] rdaOpStatusStr = { - "Automatic Calibration Disabled", "Online", + null, "Online", "Maintenance Action Required", "Maintenance Action Mandatory", - "Command Shutdown", "Inoperable", "Missing", "Wideband Disconnect" }; + "Command Shutdown", "Inoperable", null, "Wideband Disconnect" }; public static final String[] rpgNarrowbandStatus = { "Commanded Disconnect", "Narrowband Loadshed" }; public static final String[] rdaStatusStr = { null, "Startup", "Standby", - "Restart", "Operate", "Missing", "Off-line Operate" }; + "Restart", "Operate", null, "Off-line Operate" }; public static final String[] rdaAlarmStr = { "Indeterminate", "Tower/Utilities", "Pedestal", "Transmitter", - "Receiver/Signal Processor", "RDA Control", "RDA Communications" }; + "Receiver", "RDA Control", "RDA Communications", "Signal Processor" }; public static final String[] dteStr = { null, "None", "Reflectivity", "Velocity", "Spectrum Width", "Dual Polarization" }; @@ -160,20 +162,23 @@ public class RadarHelper { "Commanded Shutdown" }; public static final String[] rpgAlarmStr = { "No Alarms", - "Node Connectivity", null, "RPG Control Task Failure", + "Node Connectivity", "Wideband Failure", "RPG Control Task Failure", "Data Base Failure", null, "RPG Input Buffer Loadshed (Wideband)", null, "Product Storage Loadshed", null, null, null, "RPG/RPG Intercomputer Link Failure", "Redundant Channel Error", "Task Failure", "Media Failure" }; public static final String[] rpgStatusStr = { "Restart", "Operate", - "Standby", null, "Test Mode" }; + "Standby"}; public static final String[] productAvailStr = { "Product Availability", "Degraded Availability", "Not Available" }; public static final String[] rdaChannelStr = { "NWS Single Thread", "RDA 1", "RDA 2" }; + + public static final String[] vcpInfoStr = { "AVSET", + "SAILS", "Site-Specific VCP" }; /** * The default maximimum difference in time used when retrieving STI data (15 minutes.) diff --git a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/interrogators/RadarGFMInterrogator.java b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/interrogators/RadarGFMInterrogator.java new file mode 100644 index 0000000000..4061420171 --- /dev/null +++ b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/interrogators/RadarGFMInterrogator.java @@ -0,0 +1,257 @@ +/** + * This software was developed and / or modified by Raytheon Company, + * pursuant to Contract DG133W-05-CQ-1067 with the US Government. + * + * U.S. EXPORT CONTROLLED TECHNICAL DATA + * This software product contains export-restricted data whose + * export/transfer/disclosure is restricted by U.S. law. Dissemination + * to non-U.S. persons whether in the United States or abroad requires + * an export license or other authorization. + * + * Contractor Name: Raytheon Company + * Contractor Address: 6825 Pine Street, Suite 340 + * Mail Stop B8 + * Omaha, NE 68106 + * 402.291.0100 + * + * See the AWIPS II Master Rights File ("Master Rights File.pdf") for + * further licensing information. + **/ +package com.raytheon.viz.radar.interrogators; + +import java.text.DecimalFormat; +import java.text.NumberFormat; +import java.util.HashMap; +import java.util.Map; + +import javax.measure.converter.UnitConverter; +import javax.measure.unit.NonSI; +import javax.measure.unit.SI; + +import org.opengis.referencing.operation.MathTransform; + +import com.raytheon.uf.common.dataplugin.radar.RadarDataKey; +import com.raytheon.uf.common.dataplugin.radar.RadarDataPoint; +import com.raytheon.uf.common.dataplugin.radar.RadarRecord; +import com.raytheon.uf.common.dataplugin.radar.level3.generic.AreaComponent; +import com.raytheon.uf.common.dataplugin.radar.level3.generic.GenericDataComponent; +import com.raytheon.uf.common.dataplugin.radar.level3.GFMPacket; +import com.raytheon.uf.common.dataplugin.radar.level3.GFMPacket.GFMAttributeIDs; +import com.raytheon.uf.common.geospatial.CRSCache; +import com.raytheon.uf.viz.core.drawables.ColorMapParameters; +import com.vividsolutions.jts.geom.Coordinate; +import com.vividsolutions.jts.geom.Envelope; + +/** + * Interrogator class for Radar GFM sampling. + * + *
+ * 
+ * SOFTWARE HISTORY
+ * Date         Ticket#    Engineer    Description
+ * ------------ ---------- ----------- --------------------------
+ * 03/04/2013   DCS51      zwang       Initial creation
+ * 
+ * 
+ * + * @author zwang + * @version 1.0 + */ + +public class RadarGFMInterrogator extends RadarGraphicInterrogator implements + IRadarInterrogator { + + public RadarGFMInterrogator() { + super(); + } + + /* + * (non-Javadoc) + * + * @see + * com.raytheon.viz.radar.interrogators.IRadarInterrogator#sample(com.raytheon + * .edex.plugin.radar.RadarRecord, com.vividsolutions.jts.geom.Coordinate, + * com.raytheon.uf.viz.core.drawables.ColorMapParameters) + */ + @Override + public Map sample(RadarRecord record, Coordinate latLon, + ColorMapParameters params) { + Map dataMap = new HashMap(); + if (latLon == null) { + return null; + } + double[] input = { latLon.x, latLon.y }; // rr + double[] output = new double[2]; // rr + try { + MathTransform mt = CRSCache.getInstance().getTransformFromLatLon( + record.getCRS()); + + mt.transform(input, 0, output, 0, 1); + dataMap.put("crsLocation", output == null ? "-1,-1" : output[0] + + "," + output[1]); + } catch (Exception e) { + return null; + } + + dataMap.put("ICAO", record.getIcao()); + dataMap.put("Mnemonic", record.getMnemonic()); + addParameters(record, latLon, dataMap); + return dataMap; + } + + /* + * (non-Javadoc) + * + * @see + * com.raytheon.viz.radar.interrogators.IRadarInterrogator#addParameters + * (com.raytheon.uf.common.dataplugin.radar.RadarRecord, + * com.vividsolutions.jts.geom.Coordinate, java.util.Map) + */ + @Override + public int addParameters(RadarRecord radarRecord, Coordinate latLon, + Map dataMap) { + dataMap.put("Value", getDataValues(radarRecord, latLon)); + return 0; + } + + private String getDataValues(RadarRecord radarRecord, Coordinate latLon) { + StringBuffer rval = new StringBuffer(); + + Coordinate c1 = new Coordinate(latLon.x + .025, latLon.y + .025); + Coordinate c2 = new Coordinate(latLon.x - .025, latLon.y - .025); + Envelope env = new Envelope(c1, c2); + + UnitConverter metersPerSecondToKnots = SI.METERS_PER_SECOND + .getConverterTo(NonSI.KNOT); + + NumberFormat formatter = new DecimalFormat("###"); + + String windX, windY; + double pU = 0.0; + double pV = 0.0; + double pSpd = 0.0; + double pDir = 0.0; + double wX = 0.0; + double wY = 0.0; + + if (radarRecord.getProductCode() == 140) { + + for (RadarDataKey key : radarRecord.getSymbologyData().keySet()) { + + // Get the data for the select feature + RadarDataPoint currPoint = radarRecord.getSymbologyData() + .get(key); + + AreaComponent currFeature; + HashMap> currPointData = currPoint + .getDisplayGenericPointData(); + + for (Integer type : currPointData.keySet()) { + for (GenericDataComponent currComp : currPointData + .get(type).values()) { + currFeature = (AreaComponent) currComp; + + int numParam = currFeature.getParameters().size(); + + if (numParam == 11) { + windX = currFeature.getValue(GFMPacket.GFMAttributeIDs.WINDBEHINDX.getName()); + if ((windX != null) && (windX.length() > 0)) { + wX = Float.parseFloat(windX); + } + windY = currFeature.getValue(GFMPacket.GFMAttributeIDs.WINDBEHINDY.getName()); + if ((windY != null) && (windY.length() > 0)) { + wY = Float.parseFloat(windY); + } + + // windX/windY unit is 1km, convert to 1/4km + Coordinate currStorm = radarRecord + .convertStormLatLon(wX * 4.0, wY * 4.0); + + if (env.contains(currStorm) && currPoint.isVisible()) { + + // propU + String pUStr = currFeature + .getValue(GFMAttributeIDs.PROPU.toString()); + if ((pUStr != null) && (pUStr.length() > 0)) { + pU = metersPerSecondToKnots.convert(new Double(pUStr)); + } + + // propV + String pVStr = currFeature + .getValue(GFMAttributeIDs.PROPV.toString()); + if ((pVStr != null) && (pVStr.length() > 0)) { + pV = metersPerSecondToKnots.convert(new Double(pVStr)); + } + pSpd = getSpeed(pU, pV); + pDir = getDir(pU, pV); + + // avg_speed + String spdStr = currFeature + .getValue(GFMAttributeIDs.AVG_SPEED.toString()); + if ((spdStr != null) && (spdStr.length() > 0)) { + double spd = metersPerSecondToKnots + .convert(new Double(spdStr)); + spdStr = formatter.format(spd); + } + + // avg_direction + String dirStr = currFeature + .getValue(GFMAttributeIDs.AVG_DIRECTION.toString()); + + if ((dirStr != null) && (dirStr.length() > 0)) { + double dir = new Double(dirStr); + dirStr = formatter.format(dir); + } + + // wsHarzard + String wsStr = currFeature + .getValue(GFMAttributeIDs.WSHAZARD.toString()); + if ((wsStr != null) && (wsStr.length() > 0)) { + double ws = metersPerSecondToKnots + .convert(new Double(wsStr)); + wsStr = formatter.format(ws); + } + + rval.append("Movement " + formatter.format(pSpd) + "kts@" + + formatter.format(pDir) + "\n"); + rval.append("Wind Behind " + spdStr + "kts@" + dirStr + "\n"); + rval.append("Wind Shear Hazard " + wsStr + "kts "); + + } + break; + } + } + } + + } + } + + return rval.toString(); + } + + // Get wind speed from (u,v) + private double getSpeed(double u, double v) { + double spd = 0.0; + spd = Math.sqrt(u * u + v * v); + + return spd; + } + + // Get wind direction from (u,v) + private double getDir(double u, double v) { + double R_EQ_ZERO = 1.0E-10; + double DEG_HALF_PI = 180.0; + + double spd = 0.0; + double dir = 0.0; + spd = Math.sqrt(u * u + v * v); + + if (spd < R_EQ_ZERO) { + dir = 0.0; + } else { + dir = (double)(Math.toDegrees(Math.atan2(u, v)) + DEG_HALF_PI + 1.0E-3); + } + + return dir; + } +} diff --git a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/rsc/RadarProductFactory.java b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/rsc/RadarProductFactory.java index 15cec62b99..794c1b13f3 100644 --- a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/rsc/RadarProductFactory.java +++ b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/rsc/RadarProductFactory.java @@ -30,6 +30,7 @@ import com.raytheon.uf.viz.core.map.MapDescriptor; import com.raytheon.uf.viz.core.rsc.LoadProperties; import com.raytheon.viz.radar.interrogators.IRadarInterrogator; import com.raytheon.viz.radar.interrogators.RadarDMDInterrogator; +import com.raytheon.viz.radar.interrogators.RadarGFMInterrogator; import com.raytheon.viz.radar.interrogators.RadarDefaultInterrogator; import com.raytheon.viz.radar.interrogators.RadarEETInterrogator; import com.raytheon.viz.radar.interrogators.RadarGraphicInterrogator; @@ -57,6 +58,7 @@ import com.raytheon.viz.radar.ui.xy.RadarXsectXYResource; * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * Aug 4, 2010 mnash Initial creation + * 03/04/2013 DCS51 zwang Handle GFM product * * * @@ -93,6 +95,9 @@ public class RadarProductFactory { } else if ("Graphic".equals(format)) { if (productCode == 149) { interrogator = new RadarDMDInterrogator(); + } + else if (productCode == 140) { + interrogator = new RadarGFMInterrogator(); } else { interrogator = new RadarGraphicInterrogator(); } diff --git a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/rsc/graphic/RadarGraphicsDisplay.java b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/rsc/graphic/RadarGraphicsDisplay.java index ef35f9c409..069615f012 100644 --- a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/rsc/graphic/RadarGraphicsDisplay.java +++ b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/rsc/graphic/RadarGraphicsDisplay.java @@ -69,6 +69,7 @@ import com.vividsolutions.jts.geom.Coordinate; * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * Jan 13, 2009 chammack Initial creation + * 03/04/2013 DCS51 zwang Handle GFM product * * * @@ -134,11 +135,14 @@ public class RadarGraphicsDisplay implements IRenderable { new GeneralGridEnvelope(new int[] { 0, 0 }, new int[] { 4096, 4096 }, false), generalEnvelope); IWireframeShape ws = target.createWireframeShape(true, mapDescriptor); + + // Used for GFM forecast positions + IWireframeShape gfmWs = target.createWireframeShape(true, mapDescriptor); symbologyData = radarRecord.getSymbologyData(); if (symbologyData != null) { RadarGraphicsPage rgp = new RadarGraphicsPage(mapDescriptor, gg, - ws, target, color); + ws, gfmWs, target, color); this.symbologyPages.add(rgp); // Determine if each set of Storm data should be displayed @@ -158,7 +162,8 @@ public class RadarGraphicsDisplay implements IRenderable { // logic in createSymbologyImages() rgp.addImages(currStorm, CoordinateSystem.LOCAL); - if (currStorm.getDataType().equals(RadarProductType.GENERIC)) { + //Handle DMD table data + if (radarRecord.getProductCode() == 149) { // Handle the tabular display data in the Generic Packet String data = GraphicDataUtil.getDMDGraphicDataValue( tableModifier, radarRecord, @@ -170,6 +175,7 @@ public class RadarGraphicsDisplay implements IRenderable { addTableRow(tableData, featureData); processTableData = true; } + } } @@ -203,10 +209,21 @@ public class RadarGraphicsDisplay implements IRenderable { } } } + // handle GFM product + else { + this.currentPage = pageNum; + + RadarGraphicsPage gab = this.pageMap.get(pageNum); + if (gab == null) { + gab = new RadarGraphicsPage(mapDescriptor, gg, ws, gfmWs, + target, color); + this.pageMap.put(pageNum, gab); + } + } this.currentPage = 0; } - + // Graphic block is organized into pages for display. The data for each // page is contained in packets. GraphicBlock gb = radarRecord.getGraphicBlock(); diff --git a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/rsc/graphic/RadarGraphicsPage.java b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/rsc/graphic/RadarGraphicsPage.java index 8ea8b1a2c3..6b4ae4321e 100644 --- a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/rsc/graphic/RadarGraphicsPage.java +++ b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/rsc/graphic/RadarGraphicsPage.java @@ -24,6 +24,12 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.UUID; +import java.awt.image.BufferedImage; + +import javax.measure.converter.UnitConverter; +import javax.measure.unit.NonSI; +import javax.measure.unit.SI; import org.eclipse.swt.graphics.RGB; import org.geotools.coverage.grid.GeneralGridGeometry; @@ -36,6 +42,7 @@ import com.raytheon.uf.common.dataplugin.radar.level3.CellTrendDataPacket; import com.raytheon.uf.common.dataplugin.radar.level3.CellTrendVolumeScanPacket; import com.raytheon.uf.common.dataplugin.radar.level3.CorrelatedShearPacket; import com.raytheon.uf.common.dataplugin.radar.level3.DMDPacket.DMDAttributeIDs; +import com.raytheon.uf.common.dataplugin.radar.level3.GFMPacket; import com.raytheon.uf.common.dataplugin.radar.level3.ETVSPacket; import com.raytheon.uf.common.dataplugin.radar.level3.HailPositivePacket; import com.raytheon.uf.common.dataplugin.radar.level3.HailProbablePacket; @@ -76,14 +83,19 @@ import com.raytheon.uf.viz.core.DrawableLine; import com.raytheon.uf.viz.core.DrawableString; import com.raytheon.uf.viz.core.IGraphicsTarget; import com.raytheon.uf.viz.core.IGraphicsTarget.VerticalAlignment; +import com.raytheon.uf.viz.core.IGraphicsTarget.LineStyle; +import com.raytheon.uf.viz.core.data.prep.IODataPreparer; import com.raytheon.uf.viz.core.drawables.IDescriptor; import com.raytheon.uf.viz.core.drawables.IFont; import com.raytheon.uf.viz.core.drawables.IRenderable; import com.raytheon.uf.viz.core.drawables.IWireframeShape; import com.raytheon.uf.viz.core.drawables.PaintProperties; import com.raytheon.uf.viz.core.drawables.ext.ICanvasRenderingExtension; +import com.raytheon.uf.viz.core.drawables.IImage; import com.raytheon.uf.viz.core.exception.VizException; import com.raytheon.viz.core.rsc.jts.JTSCompiler; +import com.raytheon.viz.pointdata.PointWindDisplay; +import com.raytheon.viz.pointdata.PointWindDisplay.DisplayType; import com.raytheon.viz.pointdata.drawables.IPointImageExtension; import com.raytheon.viz.pointdata.drawables.IPointImageExtension.PointImage; import com.raytheon.viz.radar.RadarHelper; @@ -107,6 +119,7 @@ import com.vividsolutions.jts.geom.LineString; * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * Jan 8, 2009 chammack Initial creation + * 03/05/2013 DCS51 zwang Handle GFM product * * * @@ -129,6 +142,8 @@ public class RadarGraphicsPage implements IRenderable { private JTSCompiler compiler; private IWireframeShape wireframeShape; + + private IWireframeShape gfmFcstWireframeShape; /** Map of ascii strings in local coordinate system */ private Map localStringMap; @@ -174,7 +189,14 @@ public class RadarGraphicsPage implements IRenderable { private boolean drawBorder = false; private int recordsPerPage = 5; - + + // for GFM product, add gfmFcstWireframeShape + public RadarGraphicsPage(IDescriptor descriptor, GeneralGridGeometry gg, + IWireframeShape shape, IWireframeShape gfmShape, IGraphicsTarget target, RGB color) { + this(descriptor, gg, shape, target, color); + this.gfmFcstWireframeShape = gfmShape; + } + public RadarGraphicsPage(IDescriptor descriptor, GeneralGridGeometry gg, IWireframeShape shape, IGraphicsTarget target, RGB color, DmdModifier tableModifier) { @@ -443,6 +465,25 @@ public class RadarGraphicsPage implements IRenderable { } } } + // GFM + else if (type == 140) { + List gfmImages = new ArrayList(); + + // Handle each Feature in the GFM Packet + for (GenericDataComponent currComponent : stormData + .getDisplayGenericPointData().get(type).values()) { + // Handle Graphic portion + gfmImages = getGfmImage(currComponent); + + if (gfmImages.isEmpty()) { + displayStormID = false; + stormData.setVisible(false); + } else { + images.addAll(gfmImages); + stormData.setVisible(true); + } + } + } } // Only display storm id if other information is being displayed @@ -848,6 +889,135 @@ public class RadarGraphicsPage implements IRenderable { return image; } + // Handle GFM product + private List getGfmImage(GenericDataComponent currPt) + throws VizException { + List images = new ArrayList(); + + UnitConverter metersPerSecondToKnots = SI.METERS_PER_SECOND.getConverterTo(NonSI.KNOT); + + boolean isFcst = false; + double x,y; + Coordinate pos1, pos2; + + int imgSize = 64; + + AreaComponent currFeature = (AreaComponent) currPt; + + int numPoints = currFeature.getPoints().size(); + int numParam = currFeature.getParameters().size(); + + String propU, propV, windU, windV, windX, windY; + double pU = 0.0; + double pV = 0.0; + double wU = 0.0; + double wV = 0.0; + double wX = 0.0; + double wY = 0.0; + + // if the component only has dectect ID and DeltaT + if (numParam == 2) { + isFcst = true; + } + // 11 parameters + else { + propU = currFeature.getValue(GFMPacket.GFMAttributeIDs.PROPU.getName()); + if ((propU != null) && (propU.length() > 0)) { + pU = metersPerSecondToKnots.convert(new Double(propU)); + } + propV = currFeature.getValue(GFMPacket.GFMAttributeIDs.PROPV.getName()); + if ((propV != null) && (propV.length() > 0)) { + pV = metersPerSecondToKnots.convert(new Double(propV)); + } + windU = currFeature.getValue(GFMPacket.GFMAttributeIDs.WINDBEHINDU.getName()); + if ((windU != null) && (windU.length() > 0)) { + wU = metersPerSecondToKnots.convert(new Double(windU)); + } + windV = currFeature.getValue(GFMPacket.GFMAttributeIDs.WINDBEHINDV.getName()); + if ((windV != null) && (windV.length() > 0)) { + wV = metersPerSecondToKnots.convert(new Double(windV)); + } + windX = currFeature.getValue(GFMPacket.GFMAttributeIDs.WINDBEHINDX.getName()); + if ((windX != null) && (windX.length() > 0)) { + wX = Float.parseFloat(windX); + } + windY = currFeature.getValue(GFMPacket.GFMAttributeIDs.WINDBEHINDY.getName()); + if ((windY != null) && (windY.length() > 0)) { + wY = Float.parseFloat(windY); + } + + // Prop wind arrow + PlotObject poWind = new PlotObject(); + PointWindDisplay barb = new PointWindDisplay(imgSize * 0.4, 0.5, 2, 0); + barb.setImageParameters(imgSize, imgSize, 255, 255, 255, 1); + barb.setColor(this.color); + + // plot the wind arrow in the same length as 50 kts + double spd = Math.sqrt(pU * pU + pV * pV); + if (spd > 0) { + pU *= 50.0 / spd; + pV *= 50.0 / spd; + } + + barb.setWind(pU, pV, false); + BufferedImage imgBuf = barb.getWindImage(false, DisplayType.ARROW, 0.2); + IImage img = this.target.initializeRaster(new IODataPreparer(imgBuf, UUID.randomUUID().toString(), 0), null); + poWind.image = img; + + // Wind barb behind front + PlotObject wWind = new PlotObject(); + PointWindDisplay barb1 = new PointWindDisplay(imgSize * 0.4, 0.5, 2, 0); + barb1.setImageParameters(imgSize, imgSize, 255, 255, 255, 1); + barb1.setColor(this.color); + barb1.setWind(wU, wV, false); + BufferedImage imgBuf1 = barb1.getWindImage(false, DisplayType.BARB, 1); + IImage img1 = this.target.initializeRaster(new IODataPreparer(imgBuf1, UUID.randomUUID().toString(), 0), null); + wWind.image = img1; + + ReferencedCoordinate rc = referencedGfmCoord(wX, wY); + try { + poWind.coord = rc.asPixel(this.descriptor.getGridGeometry()); + poWind.pixelOffset = new int[] { 0, 0 }; + images.add(poWind); + + wWind.coord = rc.asPixel(this.descriptor.getGridGeometry()); + wWind.pixelOffset = new int[] { 0, 0 }; + images.add(wWind); + + } catch (Exception e) { + throw new VizException("Unable to transform coordinates", e); + } + } + + // Draw GFM fronts + x = currFeature.getPoints().get(0).getCoordinate1(); + y = currFeature.getPoints().get(0).getCoordinate2(); + try { + pos1 = referencedGfmCoord(x, y).asLatLon(); + + for (int k = 1; k < numPoints; k++) { + x = currFeature.getPoints().get(k).getCoordinate1(); + y = currFeature.getPoints().get(k).getCoordinate2(); + //convert xy to latlon + pos2 = referencedGfmCoord(x, y).asLatLon(); + + // Connect the dots + if (isFcst) { + gfmFcstWireframeShape.addLineSegment(new Coordinate[] {pos1, pos2 }); + } + else { + wireframeShape.addLineSegment(new Coordinate[] {pos1, pos2 }); + } + pos1 = pos2; + } + } catch (TransformException e) { + throw new VizException(e); + } catch (FactoryException e) { + throw new VizException(e); + } + return images; + } + private PlotObject getImage(HdaHailPoint currPt) throws VizException { PlotObject image = null; @@ -1045,7 +1215,12 @@ public class RadarGraphicsPage implements IRenderable { } // Paint map-relative vectors - if (this.wireframeShape != null) { + // GFM forecast positions should be dashed thick lines + if (this.gfmFcstWireframeShape != null) { + target.drawWireframeShape(this.wireframeShape, this.color, 3.0f); + target.drawWireframeShape(this.gfmFcstWireframeShape, this.color, 3.0f, LineStyle.DASHED); + } + else if (this.wireframeShape != null) { target.drawWireframeShape(this.wireframeShape, this.color, 1.0f); } @@ -1320,4 +1495,13 @@ public class RadarGraphicsPage implements IRenderable { this.tableX = this.startTableX; this.tableY = this.startTableY; } + + /** + * Need to convert x/y to lon/lat for GFM product + */ + public ReferencedCoordinate referencedGfmCoord(double i, double j) { + return new ReferencedCoordinate(rectifyCoordinate(new Coordinate(i * 4, j * 4)), + this.gridGeometry, Type.GRID_CENTER); + } + } diff --git a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/rsc/graphic/RadarGraphicsResource.java b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/rsc/graphic/RadarGraphicsResource.java index 02bbce856f..a8dc49589b 100644 --- a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/rsc/graphic/RadarGraphicsResource.java +++ b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/rsc/graphic/RadarGraphicsResource.java @@ -47,6 +47,7 @@ import com.raytheon.viz.radar.interrogators.IRadarInterrogator; import com.raytheon.viz.radar.rsc.AbstractRadarResource; import com.raytheon.viz.radar.rsc.RadarResourceData; import com.raytheon.viz.radar.ui.RadarDisplayManager; +import com.raytheon.viz.radar.VizRadarRecord; import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.Envelope; @@ -61,6 +62,7 @@ import com.vividsolutions.jts.geom.Envelope; * May 13, 2010 mnash Initial creation * Jul 20, 2010 #6187 bkowal The cache will be cleared out every time * a refresh is required. + * 03/05/2013 DCS51 zwang Handle GFM product * * * @@ -161,7 +163,15 @@ public class RadarGraphicsResource extends AbstractRadarResource */ @Override public String[] getUpperText(DataTime time) { - // Upper text would interfere with the table + + VizRadarRecord record = getRadarRecord(time); + + // Use upper text to display gfmCount for GFM (140) + if (record != null && record.getProductCode() == 140) { + return super.getUpperText(time); + } + + // Upper text would interfere with the table return null; } diff --git a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/textcontributors/GfmTextContributor.java b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/textcontributors/GfmTextContributor.java new file mode 100644 index 0000000000..1f4398e333 --- /dev/null +++ b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/textcontributors/GfmTextContributor.java @@ -0,0 +1,70 @@ +/** + * This software was developed and / or modified by Raytheon Company, + * pursuant to Contract DG133W-05-CQ-1067 with the US Government. + * + * U.S. EXPORT CONTROLLED TECHNICAL DATA + * This software product contains export-restricted data whose + * export/transfer/disclosure is restricted by U.S. law. Dissemination + * to non-U.S. persons whether in the United States or abroad requires + * an export license or other authorization. + * + * Contractor Name: Raytheon Company + * Contractor Address: 6825 Pine Street, Suite 340 + * Mail Stop B8 + * Omaha, NE 68106 + * 402.291.0100 + * + * See the AWIPS II Master Rights File ("Master Rights File.pdf") for + * further licensing information. + **/ +package com.raytheon.viz.radar.textcontributors; + +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import com.raytheon.uf.common.dataplugin.radar.RadarRecord; + + +/** + * + * Format GFM detection count for the upper text + * + *
+ * 
+ * SOFTWARE HISTORY
+ * Date         Ticket#    Engineer    Description
+ * ------------ ---------- ----------- --------------------------
+ * 03/05/2013   DCS51      zwang       Initial creation
+ * 
+ * 
+ * + * @author n + * @version 1.0 + */ +public class GfmTextContributor implements IRadarTextContributor { + + @Override + public String contributeText(RadarRecord record) { + + // Get the count of the GFM + int gfmCount = 0; + // One GFM detect ID has 3 Forecast time: 0, 10 minutes, 20 minutes + List stormIDList = record.getStormIDList(); + + if (stormIDList.size() == 0) { + return "GF detection count: " + gfmCount; + } + + Set gfmIDSet = new HashSet (); + + // get GFM IDs + // GFM storm ID is in format gfmID:forecastTime (1:10) + for (int i=0; i * @@ -59,6 +60,7 @@ public class UpperText { @XmlElement(name = "productDependentDate", type = ProdDepDateTextContributor.class), @XmlElement(name = "productDependentUSPMax", type = USPMaxTextContributor.class), @XmlElement(name = "productDependentDVLMax", type = DigitalVilMaxTextContributor.class), + @XmlElement(name = "gfmCount", type = GfmTextContributor.class), @XmlElement(name = "srmMovement", type = SrmMovementTextContributor.class), @XmlElement(name = "srmSource", type = SrmSourceTextContributor.class) }) protected List lines = new ArrayList(); @@ -66,4 +68,4 @@ public class UpperText { @XmlAttribute(name = "productCodes", required = true) protected List codes = new ArrayList(); -} \ No newline at end of file +} diff --git a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/ui/xy/RadarGSMResource.java b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/ui/xy/RadarGSMResource.java index 7fceda18e3..f36e4ca821 100644 --- a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/ui/xy/RadarGSMResource.java +++ b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/ui/xy/RadarGSMResource.java @@ -54,6 +54,7 @@ import com.raytheon.viz.radar.rsc.RadarResourceData; * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * May 13, 2010 mnash Initial creation + * 03/01/2013 DR 15496 zwang Handled expanded GSM, display more status * * * @@ -147,7 +148,13 @@ public class RadarGSMResource extends AbstractRadarResource { "Op Mode/VCP = " + temp + "/VCP" + message.getVolumeCoveragePattern(), xOffset, yOffset, target, color); - + yOffset += lineSpace; + drawNexradString( + "VCP Supplemental Info = " + + RadarHelper.formatBits( + (short) message.getVcpInfo(), + RadarHelper.vcpInfoStr), xOffset, yOffset, + target, color); yOffset += lineSpace; rdaAvailString = RadarHelper.formatBits( (short) message.getProductAvail(), @@ -161,6 +168,7 @@ public class RadarGSMResource extends AbstractRadarResource { (short) message.getDataTransmissionEnable(), RadarHelper.dteStr), xOffset, yOffset, target, color); + yOffset += lineSpace; if (message.getCmdStatus() > 0) drawNexradString("CMD = Enabled", xOffset, yOffset, target, @@ -188,7 +196,7 @@ public class RadarGSMResource extends AbstractRadarResource { rpgNarrow = RadarHelper.formatBits( (short) message.getRpgNarrowbandStatus(), RadarHelper.rpgNarrowbandStatus); - if ("".equals(temp)) { + if ("".equals(rpgNarrow)) { rpgNarrow = "Normal"; } drawNexradString("RPG Narrowband = " + rpgNarrow, xOffset, yOffset, @@ -242,7 +250,7 @@ public class RadarGSMResource extends AbstractRadarResource { temp = RadarHelper.formatBits((short) message.getRdaAlarms(), RadarHelper.rdaAlarmStr); if ("".equals(temp)) { - temp = "No Data"; + temp = "No Alarms"; } drawNexradString("RDA Alarm = " + temp, xOffset, yOffset, target, @@ -277,7 +285,7 @@ public class RadarGSMResource extends AbstractRadarResource { double[] elevations = message.getElevation().clone(); char[] charArray = Integer.toBinaryString( message.getSuperResolutionCuts()).toCharArray(); - + elevations = Arrays.copyOf(elevations, message.getNumCuts()); Arrays.sort(elevations); for (int left = 0, right = elevations.length - 1; left < right; left++, right--) { diff --git a/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/dialogs/AlarmAlertBell.java b/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/dialogs/AlarmAlertBell.java index 099e8c73c6..7ee967f8e0 100644 --- a/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/dialogs/AlarmAlertBell.java +++ b/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/dialogs/AlarmAlertBell.java @@ -68,6 +68,8 @@ import com.raytheon.viz.texteditor.alarmalert.util.FlashBellJob; * 03/19/2012 D. Friedman Fix alarming. Disable runloop in open(). * May 18, 2012 jkorman Added flashing alarm image. * Jul 25, 2012 15122 rferrel Add sound delay interval. + * Mar 06 2013 15827 mgamazaychikov Prevent Alarm Bell window from stealing focus + * from Text Editor. * * * @author mnash @@ -219,7 +221,6 @@ public class AlarmAlertBell extends Dialog implements MouseMoveListener, } alarmShell.setVisible(true); alarmShell.pack(); - alarmShell.setActive(); active = true; // Start a new flash job only if one isn't currently running! if (flasher == null) { diff --git a/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/dialogs/AlarmAlertDlg.java b/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/dialogs/AlarmAlertDlg.java index f934a7a059..5705bd3512 100644 --- a/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/dialogs/AlarmAlertDlg.java +++ b/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/dialogs/AlarmAlertDlg.java @@ -32,6 +32,8 @@ import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.ShellAdapter; import org.eclipse.swt.events.ShellEvent; import org.eclipse.swt.graphics.Font; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; @@ -71,6 +73,8 @@ import com.raytheon.viz.ui.dialogs.ModeListener; * Sep 9, 2009 mnash Initial creation * Oct 31,2011 8510 rferrel Cleaned up code made more robust * Sep 20,2011 1196 rferrel Change dialogs so they do not block. + * Mar 05,2013 15173 mgamazaychikov Set the initial location and dimension of + * dialog as it is in A1. * * * @@ -116,6 +120,10 @@ public class AlarmAlertDlg extends CaveSWTDialog { private static File currentFile; + private static final int HEIGHT_HINT = 150; + private static final int WIDTH_HINT = 500; + private static Point shellLocation = null; + private ILocalizationFileObserver listener = new ILocalizationFileObserver() { @Override public void fileUpdated(FileUpdatedMessage message) { @@ -182,14 +190,28 @@ public class AlarmAlertDlg extends CaveSWTDialog { preOpened(); opened(); + + setLocation(); } - @Override + /** + * Sets the shell location. + */ + private void setLocation() { + int shellSizeX = getShell().getSize().x; + int shellSizeY = getShell().getSize().y; + Rectangle displayArea = shell.getDisplay().getClientArea(); + int locationX = displayArea.width - shellSizeX; + int locationY = displayArea.y + shellSizeY; + shellLocation = new Point(locationX, locationY); + shell.setLocation(locationX, locationY); + return; + } + + @Override protected void initializeComponents(Shell shell) { setReturnValue(false); - shell.setMinimumSize(500, 0); - // make a composite that covers the entire shell shellComp = new Composite(shell, SWT.NONE); GridData gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false); @@ -200,6 +222,11 @@ public class AlarmAlertDlg extends CaveSWTDialog { // Initialize all of the controls and layouts initializeComponents(); + + // Set the shell location + if (shellLocation != null) { + shell.setLocation(shellLocation); + } shell.addShellListener(new ShellAdapter() { public void shellClosed(ShellEvent event) { @@ -535,7 +562,8 @@ public class AlarmAlertDlg extends CaveSWTDialog { alarmAlertLabel.setLayoutData(gd); gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false); - gd.heightHint = 200; + gd.widthHint = WIDTH_HINT; + gd.heightHint = HEIGHT_HINT; aaList = new List(shellComp, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL); aaList.setLayoutData(gd); aaList.addSelectionListener(new SelectionAdapter() { @@ -567,7 +595,8 @@ public class AlarmAlertDlg extends CaveSWTDialog { proximityAlarmLabel.setLayoutData(gd); gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false); - gd.heightHint = 200; + gd.widthHint = WIDTH_HINT; + gd.heightHint = HEIGHT_HINT; paList = new List(shellComp, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL); paList.setLayoutData(gd); paList.addSelectionListener(new SelectionAdapter() { diff --git a/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/dialogs/CurrentAlarmQueue.java b/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/dialogs/CurrentAlarmQueue.java index 8d8d0e62ce..31c0300df0 100644 --- a/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/dialogs/CurrentAlarmQueue.java +++ b/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/dialogs/CurrentAlarmQueue.java @@ -37,6 +37,7 @@ import org.eclipse.swt.events.ShellAdapter; import org.eclipse.swt.events.ShellEvent; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; @@ -96,6 +97,9 @@ import com.raytheon.viz.ui.dialogs.ModeListener; * Alarm Queue" GUI * Sep 6, 2012 13365 rferrel Accumulate and Display fix. * Sep 25, 2012 1196 lvenable Dialog refactor for AlarmDisplayWindow. + * Mar 05,2013 15173 mgamazaychikov The dimensions and location of closed window + * are saved and set on the next open. + * * * * @author mnash @@ -134,14 +138,26 @@ public class CurrentAlarmQueue extends CaveSWTDialog implements private static CurrentAlarmQueue INSTANCE; - private static Point closeLocation; + /** + * Location and dimensions of the dialog on the close. + */ + private static Point closeLocation = null; + + private static Point closeDimensions = null; /** * Redraw flag indicating if the window should redraw on a resize. */ private boolean canRedraw = true; - private static final int MIN_WIDTH = 350; + /** + * Maximum width,initial height and offset of the window + */ + private static final int SHELL_WIDTH = 350; + + private static final int INIT_HEIGHT = 200; + + private static final int INIT_OFFSET = 15; /** * @param parentShell @@ -237,7 +253,6 @@ public class CurrentAlarmQueue extends CaveSWTDialog implements protected void initializeComponents(final Shell shell) { setReturnValue(false); - shell.setMinimumSize(MIN_WIDTH, 200); // Create the main layout for the shell. font = new Font(shell.getDisplay(), "Helvetica", 11, SWT.BOLD); @@ -246,6 +261,18 @@ public class CurrentAlarmQueue extends CaveSWTDialog implements shellComp = new Composite(shell, SWT.NONE); shellComp.setLayout(constructShellLayout()); shellComp.setLayoutData(gd); + + /* + * DR15173 - Create a listener to save the location + * and dimensions of closed window. + */ + shell.addShellListener(new ShellAdapter() { + public void shellClosed(ShellEvent event) { + closeLocation = getShell().getLocation(); + closeDimensions = getShell().getSize(); + shell.dispose(); + } + }); shell.addControlListener(new ControlAdapter() { @Override @@ -256,25 +283,53 @@ public class CurrentAlarmQueue extends CaveSWTDialog implements final Shell resizedShell = (Shell) e.getSource(); final Point point = resizedShell.getSize(); + final Point location = resizedShell.getLocation(); - if (point.x != MIN_WIDTH) { - canRedraw = false; - Display.getDefault().asyncExec(new Runnable() { - @Override - public void run() { - // resizedShell.setMinimumSize(MIN_WIDTH, point.y); - canRedraw = true; - } - }); - } + canRedraw = false; + Display.getDefault().asyncExec(new Runnable() { + @Override + public void run() { + /* + * DR15173 - Enforce that the window width does not exceed the SHELL_WIDTH. + */ + shell.setBounds(location.x, location.y, SHELL_WIDTH, point.y); + shell.setMinimumSize(SHELL_WIDTH, 0); + canRedraw = true; + } + }); } }); // Initialize all of the controls and layouts initializeComponents(); + + // Set the shell location and dimensions. + setShellGeometry(); } /** + * Sets the geometry for the Current Alarm Queue shell + */ + private void setShellGeometry() { + Rectangle displayArea = shell.getDisplay().getClientArea(); + int locationX = displayArea.x + INIT_OFFSET; + int locationY = displayArea.y + INIT_OFFSET; + int width = SHELL_WIDTH; + int height = INIT_HEIGHT; + if (CurrentAlarmQueue.closeLocation != null) { + locationX = CurrentAlarmQueue.closeLocation.x; + locationY = CurrentAlarmQueue.closeLocation.y; + } + if (CurrentAlarmQueue.closeDimensions != null) { + height = CurrentAlarmQueue.closeDimensions.y; + } + shell.setMinimumSize(width, height); + shell.setLocation(locationX, locationY); + return; + } + + + /** * Initializes each component of the shell */ private void initializeComponents() { @@ -611,25 +666,4 @@ public class CurrentAlarmQueue extends CaveSWTDialog implements protected void opened() { // shell.setSize(600, 300); } - - /* - * (non-Javadoc) - * - * @see com.raytheon.viz.ui.dialogs.CaveSWTDialog#preOpened() - */ - @Override - protected void preOpened() { - super.preOpened(); - - shell.addShellListener(new ShellAdapter() { - @Override - public void shellClosed(ShellEvent event) { - closeLocation = getShell().getLocation(); - } - }); - - if (closeLocation != null) { - getShell().setLocation(closeLocation); - } - } } diff --git a/cave/com.raytheon.viz.volumebrowser/DataSelectionMenuItems.xml b/cave/com.raytheon.viz.volumebrowser/DataSelectionMenuItems.xml index ac341a164d..c6d6e8a80d 100644 --- a/cave/com.raytheon.viz.volumebrowser/DataSelectionMenuItems.xml +++ b/cave/com.raytheon.viz.volumebrowser/DataSelectionMenuItems.xml @@ -24,7 +24,6 @@ NAMWX NGM80 NICIE - RUC80 TPC-HurWind TPCWindProb WNAwave diff --git a/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/ModelFamilies.xml b/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/ModelFamilies.xml index 54556827c4..dad9eee026 100644 --- a/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/ModelFamilies.xml +++ b/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/ModelFamilies.xml @@ -58,10 +58,10 @@
- + menuText="RAP13" id="rap13" useReferenceTime="true"> + - + @@ -114,10 +114,10 @@ - + menuText="RAP13" id="rap13" useReferenceTime="true"> + - + @@ -170,10 +170,10 @@ - + menuText="RAP13" id="rap13" useReferenceTime="true"> + - + @@ -226,10 +226,10 @@ - + menuText="RAP13" id="rap13" useReferenceTime="true"> + - + @@ -275,10 +275,10 @@ - - + + - + @@ -322,10 +322,10 @@ - - + + - + @@ -369,10 +369,10 @@ - - + + - + @@ -416,10 +416,10 @@ - - + + - + @@ -463,10 +463,10 @@ - - + + - + @@ -510,10 +510,10 @@ - - + + - + @@ -564,10 +564,10 @@ - + menuText="RAP13" id="rap13" useReferenceTime="true"> + - + @@ -620,10 +620,10 @@ - + menuText="RAP13" id="rap13" useReferenceTime="true"> + - + @@ -676,10 +676,10 @@ - + menuText="RAP13" id="rap13" useReferenceTime="true"> + - + @@ -732,10 +732,10 @@ - + menuText="RAP13" id="rap13" useReferenceTime="true"> + - + @@ -788,10 +788,10 @@ - + menuText="RAP13" id="rap13" useReferenceTime="true"> + - + @@ -844,10 +844,10 @@ - + menuText="RAP13" id="rap13" useReferenceTime="true"> + - + @@ -900,10 +900,10 @@ - + menuText="RAP13" id="rap13" useReferenceTime="true"> + - + diff --git a/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseFamilies.xml b/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseFamilies.xml index a56c423e0f..bb291d2438 100644 --- a/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseFamilies.xml +++ b/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseFamilies.xml @@ -88,10 +88,10 @@ - + menuText="RAP13" id="rap13" useReferenceTime="true"> + - + diff --git a/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseFourPanelFamilies.xml b/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseFourPanelFamilies.xml index 5402739342..0ff4a96526 100644 --- a/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseFourPanelFamilies.xml +++ b/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseFourPanelFamilies.xml @@ -60,10 +60,10 @@ - + menuText="RAP13" id="rap134panel" useReferenceTime="true"> + - + diff --git a/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseStdEnvPackage.xml b/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseStdEnvPackage.xml index 883da804eb..d6415decc9 100644 --- a/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseStdEnvPackage.xml +++ b/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseStdEnvPackage.xml @@ -43,8 +43,8 @@ - + menuText="RAP13" id="rap13stdenv" useReferenceTime="true"> + diff --git a/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseSurfaceFamilies.xml b/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseSurfaceFamilies.xml index 8f43c1a04d..6952018a44 100644 --- a/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseSurfaceFamilies.xml +++ b/cave/com.raytheon.viz.volumebrowser/localization/menus/volume/baseSurfaceFamilies.xml @@ -55,8 +55,8 @@ - + menuText="RAP13" id="rap13surface" useReferenceTime="true"> + + diff --git a/deltaScripts/13.3.1/lightsourcecolumn.sql b/deltaScripts/13.3.1/lightsourcecolumn.sql new file mode 100644 index 0000000000..91a42af77e --- /dev/null +++ b/deltaScripts/13.3.1/lightsourcecolumn.sql @@ -0,0 +1,3 @@ +ALTER TABLE binlightning ADD COLUMN lightsource character varying(5); +ALTER TABLE binlightning ALTER COLUMN lightsource SET STORAGE EXTENDED; +ALTER TABLE binlightning ALTER COLUMN lightsource SET DEFAULT 'NLDN'::character varying; diff --git a/edexOsgi/build.edex/esb/conf/modes.xml b/edexOsgi/build.edex/esb/conf/modes.xml index a1d57a7d67..b513457152 100644 --- a/edexOsgi/build.edex/esb/conf/modes.xml +++ b/edexOsgi/build.edex/esb/conf/modes.xml @@ -99,6 +99,7 @@ nctaf-ingest.xml nctext-ingest.xml ncuair-ingest.xml + ntrans-ingest.xml ffmp-ingest.xml diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/NsharpGridInventory.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/NsharpGridInventory.xml new file mode 100644 index 0000000000..6cdc8021c6 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/NsharpGridInventory.xml @@ -0,0 +1,10 @@ + + + NsharpGridInventory + pluginName,info.datasetId,dataTime + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/radar/ssssRadars.txt b/edexOsgi/build.edex/esb/data/utility/common_static/base/radar/ssssRadars.txt new file mode 100644 index 0000000000..5b3b10bde1 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/radar/ssssRadars.txt @@ -0,0 +1 @@ +klgx diff --git a/edexOsgi/build.edex/esb/data/utility/edex_static/base/smartinit/NAM12.py b/edexOsgi/build.edex/esb/data/utility/edex_static/base/smartinit/NAM12.py index c3554eabc4..5d07364d34 100644 --- a/edexOsgi/build.edex/esb/data/utility/edex_static/base/smartinit/NAM12.py +++ b/edexOsgi/build.edex/esb/data/utility/edex_static/base/smartinit/NAM12.py @@ -47,7 +47,7 @@ # Date Ticket# Engineer Description # ------------ ---------- ----------- -------------------------- # 02/16/12 14439 jdynina modified Haines calculation -# +# 03/04/13 15585 jzeng Modified wxtype range in calcWx() # ## USE_WETBULB = 1 @@ -417,7 +417,7 @@ class NAM12Forecaster(Forecaster): # and add those # prob = popprobs[popcat] - for iwx in range(13): + for iwx in range(1, 13): wxstring = wxtypes[iwx] ispopwx = logical_and(ispopcat, equal(wx, iwx)) some = logical_or.reduce(logical_or.reduce(ispopwx)) diff --git a/edexOsgi/com.raytheon.edex.plugin.radar/src/com/raytheon/edex/plugin/radar/util/RadarMenuUtil.java b/edexOsgi/com.raytheon.edex.plugin.radar/src/com/raytheon/edex/plugin/radar/util/RadarMenuUtil.java index a5652c5d60..be6defcae9 100644 --- a/edexOsgi/com.raytheon.edex.plugin.radar/src/com/raytheon/edex/plugin/radar/util/RadarMenuUtil.java +++ b/edexOsgi/com.raytheon.edex.plugin.radar/src/com/raytheon/edex/plugin/radar/util/RadarMenuUtil.java @@ -34,6 +34,7 @@ import java.util.List; import java.util.Map; import com.raytheon.uf.common.dataplugin.radar.util.RadarsInUseUtil; +import com.raytheon.uf.common.dataplugin.radar.util.SsssRadarUtil; import com.raytheon.uf.common.dataplugin.radar.util.TerminalRadarUtils; import com.raytheon.uf.common.menus.xml.CommonAbstractMenuContribution; import com.raytheon.uf.common.menus.xml.CommonIncludeMenuContribution; @@ -49,6 +50,7 @@ import com.raytheon.uf.common.status.UFStatus; import com.raytheon.uf.common.status.UFStatus.Priority; import com.raytheon.uf.edex.menus.AbstractMenuUtil; + /** * Builds menus using JAXB * @@ -58,7 +60,8 @@ import com.raytheon.uf.edex.menus.AbstractMenuUtil; * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * Jun 30, 2010 mnash Initial creation - * Feb 25, 2013 DR14418 zwang Change radar menu to dual pol style + * Feb 25, 2013 DR14418 zwang Change radar menu to dual pol style + * 03/07/2013 DR15495 zwang Handle additional elevation for ssss radars * * * @@ -72,7 +75,7 @@ public class RadarMenuUtil extends AbstractMenuUtil implements .getHandler(RadarMenuUtil.class); private final int NUM_POSSIBLE_RADARS = 25; - + /** * */ @@ -138,9 +141,17 @@ public class RadarMenuUtil extends AbstractMenuUtil implements } includeMenuItem.substitutions = vars; } else { - includeMenuItem.fileName = new File(path - + "dualPol" + File.separator - + "baseLocalRadarMenu.xml"); + if (SsssRadarUtil.isSsssRadar(radars.get(i).toLowerCase())) { + String ssssRadar = radars.get(i).toLowerCase(); + includeMenuItem.fileName = new File(path + + ssssRadar + File.separator + + "baseLocalRadarMenu.xml"); + } + else { + includeMenuItem.fileName = new File(path + + "dualPol" + File.separator + + "baseLocalRadarMenu.xml"); + } vars = new VariableSubstitution[1]; vars[0] = new VariableSubstitution(); vars[0].key = "icao"; @@ -206,9 +217,17 @@ public class RadarMenuUtil extends AbstractMenuUtil implements includeMenuContribution.substitutions = vars; terminal = true; } else { - includeMenuContribution.fileName = new File(path - + "dualPol" + File.separator - + "baseLocalRadarMenu.xml"); + if (SsssRadarUtil.isSsssRadar(radars.get(i).toLowerCase())) { + String ssssRadar = radars.get(i).toLowerCase(); + includeMenuContribution.fileName = new File(path + + ssssRadar + File.separator + + "baseLocalRadarMenu.xml"); + } + else { + includeMenuContribution.fileName = new File(path + + "dualPol" + File.separator + + "baseLocalRadarMenu.xml"); + } vars = new VariableSubstitution[1]; vars[0] = new VariableSubstitution(); vars[0].key = "icao"; diff --git a/edexOsgi/com.raytheon.edex.plugin.radar/utility/common_static/base/radarInfo.txt b/edexOsgi/com.raytheon.edex.plugin.radar/utility/common_static/base/radarInfo.txt index 331f63b908..3b000d835d 100644 --- a/edexOsgi/com.raytheon.edex.plugin.radar/utility/common_static/base/radarInfo.txt +++ b/edexOsgi/com.raytheon.edex.plugin.radar/utility/common_static/base/radarInfo.txt @@ -138,6 +138,7 @@ 136|256 |0 |4.0 |0 |SO |SuperOb |SuperOb |SO |SuperOb| | | | | | | | | |82 | 137|16 |9 |1.0 |230 |ULR |User Selectable Lyr Refl |{S} User Sel Layer Ref ({U}) |{S} ULR |Radial | | | | | | | | | |88 |dBZ 139|0 |0 |0.0 |230 |MRU |Rapid Update Mesocyclone |{S} Meso Rapid Update Page {P}/{P#} |{S} MRU All {P}/{P#} |Graphic|y | | | | | | | | |91 | +140|0 |0 |0.0 |230 |GFM |Gust Front MIGFA |{S} Gust Front MIGFA |{S} GFM |Graphic| | | | | | | | | |28 | 141|0 |0 |0.0 |230 |MD |Mesocyclone |{S} Mesocyclone {P}/{P#} |{S} Mesocyclone {P}/{P#} |Graphic| | | | | | | | | |92 | 143|0 |0 |0.0 |230 |TRU |TVS Rapid Update |{T} {S} TVS Rapid Update Page {P}/{P#} |{S} TRU All Pg {P}/{P#} |Graphic|y | | | | | | | | |93 | 149|0 |0 |0.0 |230 |DMD |Digital Mesocyclone Data |{S} {T} Digital Mesocyclone Data {P}/{P#} |{S} {T} DMD {P}/{P#} |Graphic|y | | | | | | | | |94 | diff --git a/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/ShefDecoder.java b/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/ShefDecoder.java index fea8674e45..1387f04e5a 100644 --- a/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/ShefDecoder.java +++ b/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/ShefDecoder.java @@ -55,6 +55,7 @@ import com.raytheon.uf.edex.decodertools.core.DecoderTools; * 01/14/2009 1864 J. Sanchez Update parse method to handle missing record identifier. * 01/15/2009 1892 J. Sanchez Update parse method, set obsTimeFlag to false when done. * 12/--/2009 jkorman Major refactor - split into ShefDecoder/SHEFParser + * 03/07/2013 15071 W. Kwock Skip empty data files. * */ public class ShefDecoder { @@ -93,6 +94,10 @@ public class ShefDecoder { String traceId = null; + if (data == null || data.length == 0){ + return null; + } + if (headers != null) { traceId = (String) headers.get(DecoderTools.INGEST_FILE_NAME); } diff --git a/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/database/PostShef.java b/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/database/PostShef.java index 2b9ff78110..e1b9239756 100644 --- a/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/database/PostShef.java +++ b/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/database/PostShef.java @@ -104,6 +104,7 @@ import com.raytheon.uf.edex.decodertools.time.TimeTools; * Changed default value for alertAlarm * 05/28/2009 2410 J. Sanchez Posted data for unknstnvalue. * 12/11/2009 2488 M. Duff Fixed problem with storing text products. + * 03/07/2013 15545 w. kwock Added Observe time to log * * * @@ -137,7 +138,7 @@ public class PostShef { private static final String POST_START_MSG = "Posting process started for LID [%s] PEDTSEP [%s] value [%s]"; - private static final String LOV_POST_MSG = "Data [%s] for LID [%s] posted to the latestObsTable for PE [%s]"; + private static final String LOV_POST_MSG = "Data [%s] ObsTime[%s] for LID [%s] posted to the latestObsValue for PE [%s]"; private static final String SHEF_ON = "ON"; @@ -714,7 +715,8 @@ public class PostShef { qualityCode, prodId, prodTime, shefPostDuplicateDef, stats, postDate); if (dataLog) { - log.info(String.format(LOV_POST_MSG, dataValue, locId, + log.info(String.format(LOV_POST_MSG, dataValue, + data.getObservationTimeObj(), locId, data.getPhysicalElement().getCode())); } } diff --git a/edexOsgi/com.raytheon.edex.plugin.textlightning/src/com/raytheon/edex/plugin/textlightning/impl/TextLightningParser.java b/edexOsgi/com.raytheon.edex.plugin.textlightning/src/com/raytheon/edex/plugin/textlightning/impl/TextLightningParser.java index 5f080b4e69..67c5f4389b 100644 --- a/edexOsgi/com.raytheon.edex.plugin.textlightning/src/com/raytheon/edex/plugin/textlightning/impl/TextLightningParser.java +++ b/edexOsgi/com.raytheon.edex.plugin.textlightning/src/com/raytheon/edex/plugin/textlightning/impl/TextLightningParser.java @@ -44,6 +44,7 @@ import com.raytheon.uf.common.dataplugin.binlightning.impl.LtgStrikeType; * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * Dec 15, 2009 3983 jsanchez Initial creation + * Feb 27, 2013 DCS 152 jgerth/elau Support for WWLLN * * * @@ -66,7 +67,10 @@ public class TextLightningParser { // 10:03:24:13:35:00.68 72.000 157.000 -14.2 1 private static final String LIGHTNING_PTRN_B = "(\\d{2,2}:\\d{2,2}:\\d{2,2}:\\d{2,2}:\\d{2,2}:\\d{2,2}\\.\\d{2,2})\\s{1,}(\\d{1,2}\\.\\d{2,})\\s{1,}(-?\\d{1,3}\\.\\d{2,})\\s{1,}(-?\\d{1,3}\\.\\d{1,})\\s{1,}(\\d{1,2}).*"; private static final Pattern LTG_PTRN_B = Pattern.compile(LIGHTNING_PTRN_B); - + + // 2012-03-14T18:58:00,-5.5021,-45.9669,0.0,1 + private static final String LIGHTNING_PTRN_C = "(\\d{4,4}-\\d{2,2}-\\d{2,2})T(\\d{2,2}:\\d{2,2}:\\d{2,2}),(-?\\d{1,2}.\\d{1,4}),(-?\\d{1,3}.\\d{1,4}),(0.0),(1)"; + private static final Pattern LTG_PTRN_C = Pattern.compile(LIGHTNING_PTRN_C); /** * default constructor. @@ -169,6 +173,7 @@ public class TextLightningParser { strike.setMillis(0); strike.setMsgType(LtgMsgType.STRIKE_MSG_FL); strike.setType(LtgStrikeType.STRIKE_CG); + strike.setLightSource("UNKN"); reports.add(strike); } else { m = LTG_PTRN_B.matcher(line); @@ -206,11 +211,49 @@ public class TextLightningParser { strike.setMillis(Integer.parseInt(msec)*10); strike.setMsgType(LtgMsgType.STRIKE_MSG_FL); strike.setType(LtgStrikeType.STRIKE_CG); + strike.setLightSource("UNKN"); reports.add(strike); + } else { + m = LTG_PTRN_C.matcher(line); + if (m.matches()) { + String[] datec = m.group(1).split("-"); + String[] timec = m.group(2).split(":"); + String year = datec[0]; + String month = datec[1]; + String day = datec[2]; + String hour = timec[0]; + String min = timec[1]; + String sec = timec[2]; + String msec = "0"; + String sls = "WWLLN"; + + String latitude = m.group(3); + String longitude= m.group(4); + String strength = m.group(5); + String count = m.group(6); + + strike = new LightningStrikePoint( + Double.parseDouble(latitude),Double.parseDouble(longitude)); + strike.setStrikeStrength(Double.parseDouble(strength)); + strike.setStrikeCount(Integer.parseInt(count)); + strike.setMonth(Integer.parseInt(month)); + strike.setDay(Integer.parseInt(day)); + strike.setYear(Integer.parseInt(year)); + strike.setHour(Integer.parseInt(hour)); + strike.setMinute(Integer.parseInt(min)); + strike.setSecond(Integer.parseInt(sec)); + strike.setMillis(Integer.parseInt(msec)*10); + strike.setMsgType(LtgMsgType.STRIKE_MSG_FL); + strike.setType(LtgStrikeType.STRIKE_CG); + strike.setLightSource(sls); + reports.add(strike); + } else { + logger.error("Cannot match lightning input " + line); + } } } } catch (NumberFormatException e){ - logger.debug("Invalid numerical value", e); + logger.debug("Invalid numerical value", e); } } } diff --git a/edexOsgi/com.raytheon.edex.plugin.textlightning/utility/edex_static/base/distribution/textlightning.xml b/edexOsgi/com.raytheon.edex.plugin.textlightning/utility/edex_static/base/distribution/textlightning.xml index 55f357382e..f7ff1aa5f7 100644 --- a/edexOsgi/com.raytheon.edex.plugin.textlightning/utility/edex_static/base/distribution/textlightning.xml +++ b/edexOsgi/com.raytheon.edex.plugin.textlightning/utility/edex_static/base/distribution/textlightning.xml @@ -21,4 +21,5 @@ AWIPS_* FAA_* + WWLLN_* \ No newline at end of file diff --git a/edexOsgi/com.raytheon.edex.rpgenvdata/src/com/raytheon/edex/rpgenvdata/RPGEnvironmentalDataManager.java b/edexOsgi/com.raytheon.edex.rpgenvdata/src/com/raytheon/edex/rpgenvdata/RPGEnvironmentalDataManager.java index 0211fedc9a..30dbcfa3d7 100644 --- a/edexOsgi/com.raytheon.edex.rpgenvdata/src/com/raytheon/edex/rpgenvdata/RPGEnvironmentalDataManager.java +++ b/edexOsgi/com.raytheon.edex.rpgenvdata/src/com/raytheon/edex/rpgenvdata/RPGEnvironmentalDataManager.java @@ -37,6 +37,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.measure.converter.UnitConverter; +import javax.measure.unit.SI; import javax.measure.unit.Unit; import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; @@ -45,6 +46,7 @@ import org.apache.tools.bzip2.CBZip2OutputStream; import org.geotools.coverage.grid.GridEnvelope2D; import org.geotools.coverage.grid.GridGeometry2D; import org.geotools.geometry.DirectPosition2D; +import org.opengis.metadata.spatial.PixelOrientation; import org.opengis.referencing.datum.PixelInCell; import org.opengis.referencing.operation.MathTransform; @@ -92,7 +94,7 @@ import com.raytheon.uf.edex.database.query.DatabaseQuery; * ?? ?? Initial Creation * 1-3-2013 DR 15667 M.Porricelli Made EnvironParamsLevelTable.xml * accessible from SITE level -* +* 03/04/2013 DR 14770 D. Friedman Correct clipped grid coordinates. **/ public class RPGEnvironmentalDataManager { private static final transient IUFStatusHandler statusHandler = UFStatus @@ -538,26 +540,24 @@ public class RPGEnvironmentalDataManager { GridGeometry2D gridGeom = MapUtil.getGridGeometry(gridCoverage); GridEnvelope2D ge = gridGeom.getGridRange2D(); int maxY = ge.getHigh(1); - MathTransform llToGrid; MathTransform gridToLL; + MathTransform llToCRS; + MathTransform crsToGrid; - llToGrid = TransformFactory.latLonToGrid(gridGeom, - PixelInCell.CELL_CORNER); + llToCRS = MapUtil.getTransformFromLatLon(gridGeom.getCoordinateReferenceSystem()); + crsToGrid = gridGeom.getCRSToGrid2D(PixelOrientation.CENTER); gridToLL = TransformFactory.gridToLatLon(gridGeom, - PixelInCell.CELL_CORNER); + PixelInCell.CELL_CENTER); DirectPosition2D stationLL = new DirectPosition2D( radarStation.getLon(), radarStation.getLat()); - DirectPosition2D stationIJx = new DirectPosition2D(0, 0); + DirectPosition2D stationXY = new DirectPosition2D(0, 0); - llToGrid.transform(stationLL, stationIJx); + llToCRS.transform(stationLL, stationXY); - long radarI = Math.round(stationIJx.x); - long radarJ = maxY - Math.round(stationIJx.y); int i1, j1, i2, j2; + double delta; - // TODO: get this from the math transform?... - long radInPointsI, radInPointsJ; if (gridCoverage instanceof LambertConformalGridCoverage) { LambertConformalGridCoverage lcgc = (LambertConformalGridCoverage) gridCoverage; Unit spacingUnit = Unit.valueOf(lcgc.getSpacingUnit()); @@ -569,11 +569,8 @@ public class RPGEnvironmentalDataManager { "Grid spacing units (%s) not compatible clip radius units (%s)", spacingUnit, clipRadUnit)); } - UnitConverter uc = spacingUnit.getConverterTo(clipRadUnit); - radInPointsI = Math.round(configuration.clipRadius.value - / uc.convert(lcgc.getDx())); - radInPointsJ = Math.round(configuration.clipRadius.value - / uc.convert(lcgc.getDy())); + UnitConverter uc = clipRadUnit.getConverterTo(SI.METER); + delta = uc.convert(configuration.clipRadius.value); result.tangentPoint = new DirectPosition2D(lcgc.getLov(), lcgc.getLatin1()); @@ -582,10 +579,18 @@ public class RPGEnvironmentalDataManager { "Only Lambert conformal projection is supported"); } - i1 = (int) (radarI - radInPointsI); - i2 = (int) (radarI + radInPointsI); - j1 = (int) (radarJ - radInPointsJ); - j2 = (int) (radarJ + radInPointsJ); + double cx1 = stationXY.x - delta; + double cy1 = stationXY.y - delta; + double cx2 = stationXY.x + delta; + double cy2 = stationXY.y + delta; + + DirectPosition2D c = new DirectPosition2D(); + crsToGrid.transform(new DirectPosition2D(cx1, cy1), c); + i1 = (int) Math.round(c.x); + j1 = maxY - (int) Math.round(c.y); + crsToGrid.transform(new DirectPosition2D(cx2, cy2), c); + i2 = (int) Math.round(c.x); + j2 = maxY - (int) Math.round(c.y); if (i1 < ge.getLow(0) || i2 > ge.getHigh(0) || j1 < ge.getLow(1) || j2 > ge.getHigh(1)) { diff --git a/edexOsgi/com.raytheon.uf.common.dataplugin.binlightning/src/com/raytheon/uf/common/dataplugin/binlightning/BinLightningRecord.java b/edexOsgi/com.raytheon.uf.common.dataplugin.binlightning/src/com/raytheon/uf/common/dataplugin/binlightning/BinLightningRecord.java index 67e0fd5d92..83a6b9f80f 100644 --- a/edexOsgi/com.raytheon.uf.common.dataplugin.binlightning/src/com/raytheon/uf/common/dataplugin/binlightning/BinLightningRecord.java +++ b/edexOsgi/com.raytheon.uf.common.dataplugin.binlightning/src/com/raytheon/uf/common/dataplugin/binlightning/BinLightningRecord.java @@ -68,6 +68,7 @@ import com.raytheon.uf.edex.decodertools.time.TimeTools; * 20080107 720 jkorman remove default assignments from attributes. * 20080708 1174 jkorman Added persistenceTime handling. * 20090206 1990 bphillip Removed populateDataStore method + * 20130227 DCS 152 jgerth/elau Support for WWLLN and multiple sources * * * @author jkorman @@ -135,6 +136,13 @@ public class BinLightningRecord extends @DynamicSerializeElement @XmlAttribute private Calendar stopTime; + + // JJG - source of lightning data + @Column(length = 5) + @DataURI(position = 3) + @XmlAttribute + @DynamicSerializeElement + private String lightSource; // Used to track @Transient @@ -207,7 +215,24 @@ public class BinLightningRecord extends * A strike report to add. */ public void addStrike(LightningStrikePoint strike) { - if (insertIndex < obsTimes.length) { + // jjg add + if (lightSource == null) { + if (strike.getLightSource() == null) { + lightSource = (String) "NLDN"; + } else if (strike.getLightSource().isEmpty()) { + lightSource = (String) "UNKN"; + } else { + lightSource = (String) strike.getLightSource(); + } + } else { + if (strike.getLightSource() == null) { + lightSource = (String) "NLDN"; + } else if (!lightSource.equals(strike.getLightSource())) + lightSource = (String) "UNKN"; + } + // end + + if (insertIndex < obsTimes.length) { long t1 = startTimeMillis; Calendar c = TimeTools.getBaseCalendar(strike.getYear(), @@ -380,6 +405,24 @@ public class BinLightningRecord extends return strikeCounts; } + /** + * JJG - Get the lightning source + * + * @return + */ + public String getLightSource() { + return lightSource; + } + + /** + * JJG - Set the lightning source + * + * @param lightSource + */ + public void setLightSource(String lightSource) { + this.lightSource = lightSource; + } + /** * Get the IDecoderGettable reference for this record. * diff --git a/edexOsgi/com.raytheon.uf.common.dataplugin.binlightning/src/com/raytheon/uf/common/dataplugin/binlightning/impl/LightningStrikePoint.java b/edexOsgi/com.raytheon.uf.common.dataplugin.binlightning/src/com/raytheon/uf/common/dataplugin/binlightning/impl/LightningStrikePoint.java index 62d9cb26ed..4d6f6071bb 100644 --- a/edexOsgi/com.raytheon.uf.common.dataplugin.binlightning/src/com/raytheon/uf/common/dataplugin/binlightning/impl/LightningStrikePoint.java +++ b/edexOsgi/com.raytheon.uf.common.dataplugin.binlightning/src/com/raytheon/uf/common/dataplugin/binlightning/impl/LightningStrikePoint.java @@ -31,6 +31,7 @@ import com.raytheon.uf.edex.decodertools.core.BasePoint; * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * 20070810 379 jkorman Initial Coding from prototype. + * 20130227 DCS 152 jgerth Support for WWLLN and multiple sources * * * @@ -49,6 +50,9 @@ public class LightningStrikePoint extends BasePoint // Number of strikes for this record. private int strikeCount; + + // JJG - Lightning data source + private String lightSource; /** * Construct a LightningStrikePoint using given data. @@ -150,6 +154,24 @@ public class LightningStrikePoint extends BasePoint this.msgType = msgType; } + /** + * JJG - Get the lightning source + * @return + */ + public String getLightSource() + { + return lightSource; + } + + /** + * JJG - Set the lightning source + * @param lightSource + */ + public void setLightSource(String lightSource) + { + this.lightSource = lightSource; + } + /** * Format this lightning strike report using the NCDC strike observation format. * diff --git a/edexOsgi/com.raytheon.uf.common.dataplugin.ffmp/src/com/raytheon/uf/common/dataplugin/ffmp/FFMPTemplates.java b/edexOsgi/com.raytheon.uf.common.dataplugin.ffmp/src/com/raytheon/uf/common/dataplugin/ffmp/FFMPTemplates.java index 3cf3a8edfa..4b7b38b257 100644 --- a/edexOsgi/com.raytheon.uf.common.dataplugin.ffmp/src/com/raytheon/uf/common/dataplugin/ffmp/FFMPTemplates.java +++ b/edexOsgi/com.raytheon.uf.common.dataplugin.ffmp/src/com/raytheon/uf/common/dataplugin/ffmp/FFMPTemplates.java @@ -82,7 +82,7 @@ import com.vividsolutions.jts.io.WKBReader; * 07/29/09 2152 D. Hladky Initial release * 07/09/10 3914 D. Hladky Localization work * 12/13/10 7484 D. Hladky Service Backup - * + * 03/01/13 DR13228 G. Zhang Add VGB county and related code * * * @author dhladky @@ -105,6 +105,8 @@ public class FFMPTemplates { private HashMap>>> virtualGageBasinsInParentPfaf = null; + private HashMap>>> vgbsInCounty = null;// DR 13228 + private HashMap>> virtualDomainMap = null; private Map>> cwaRawGeometries = new ConcurrentHashMap>>(); @@ -224,7 +226,8 @@ public class FFMPTemplates { virtualGageBasinsInParentPfaf = new HashMap>>>(); ftcm = FFMPTemplateConfigurationManager.getInstance(); frcm = FFMPRunConfigurationManager.getInstance(); - + vgbsInCounty = new HashMap>>>();// DR 13228 + try { ftcm.readConfigXml(); @@ -1346,7 +1349,9 @@ public class FFMPTemplates { writeVGBFile(virtuals, cwa, dataKey); } } else { + virtuals = readVGBFile("VIRTUAL", cwa, dataKey); + } return virtuals; @@ -1379,26 +1384,49 @@ public class FFMPTemplates { virtualmap.put(cwa, map); + HashMap> vgbMap = new HashMap>();// DR 13228 + HashMap> virtualGageBasins = new HashMap>( (int) (map.size() * 1.3)); + for (FFMPVirtualGageBasinMetaData vgb : map.values()) { - Long id = vgb.getParentPfaf(); + Long id = vgb.getParentPfaf(); + String stateCommaCnty=vgb.getState()+", "+vgb.getCounty();// DR 13228 see getCountyStateName(,) + ArrayList list = virtualGageBasins - .get(id); + .get(id); + ArrayList list2=vgbMap.get(stateCommaCnty.toUpperCase());// DR 13228 + if (list == null) { list = new ArrayList(); virtualGageBasins.put(id, list); } - list.add(vgb); + list.add(vgb); + + // DR 13228 + if(list2==null){ + list2=new ArrayList(); + vgbMap.put(stateCommaCnty.toUpperCase(),list2); + } + list2.add(vgb);// DR 13228 } + HashMap>> vMapCounty = vgbsInCounty.get(dataKey);// DR 13228 HashMap>> virtualMapPfaf = virtualGageBasinsInParentPfaf .get(dataKey); if (virtualMapPfaf == null) { virtualMapPfaf = new HashMap>>(); } + + // DR 13228 + if(vMapCounty==null) { + vMapCounty = new HashMap>>();// DR 13228 + } + vMapCounty.put(cwa, vgbMap);// DR 13228 + vgbsInCounty.put(dataKey,vMapCounty);// DR 13228 + virtualMapPfaf.put(cwa, virtualGageBasins); virtualGageBasinsInParentPfaf.put(dataKey, virtualMapPfaf); } @@ -1583,9 +1611,9 @@ public class FFMPTemplates { * @param pfaf * @return */ - public synchronized ArrayList getVirtualGageBasinLookupIds( - String dataKey, Long pfaf) { - + public synchronized /*ArrayList*/ArrayList getVirtualGageBasinLookupIds( + String dataKey, Long pfaf, String huc, String rowName) { +if(isCountyRow(huc, rowName)) return getVgbLookupIdsByCounty(dataKey, pfaf, huc, rowName); HashMap>> virtualMap = virtualGageBasinsInParentPfaf .get(dataKey); @@ -1596,15 +1624,15 @@ public class FFMPTemplates { if (map != null) { ArrayList list = map.get(pfaf); if (list != null && !list.isEmpty()) { - ArrayList result = new ArrayList(); + ArrayList result = new ArrayList();//ArrayList vgblist = new ArrayList(); for (FFMPVirtualGageBasinMetaData md : list) - result.add(md.getLookupId()); - return result; + /*vgblist.add(md);*/result.add(md.getLookupId()); + return /*vgblist;*/result; } } } - return new ArrayList(); + return /*new ArrayList();*/new ArrayList(); } @@ -2321,4 +2349,44 @@ public class FFMPTemplates { } } } + + /** + * DR 13228 + */ + public static boolean isCountyRow(String huc, String rowName){ + + return "COUNTY".equals(huc) && rowName.contains(",");// see getCountyStateName(,) + + } + + /** + * DR 13228 + */ + public synchronized ArrayList getVgbLookupIdsByCounty( + String dataKey, Long pfaf, String huc, String rowName) { + + String stateCommaCnty = rowName;//.split(",")[1]; + + HashMap>> virtualMap = vgbsInCounty.get(dataKey); + + for (DomainXML domain : domains) { + + HashMap> map = virtualMap + .get(domain.getCwa()); + if (map != null) { + ArrayList list = map.get(stateCommaCnty.trim().toUpperCase()); + + if (list != null && !list.isEmpty()) { + ArrayList result = new ArrayList(); + for (FFMPVirtualGageBasinMetaData md : list){ + result.add(md.getLookupId()); + + } + return result; + } + } + } + return new ArrayList(); + } + } diff --git a/edexOsgi/com.raytheon.uf.common.dataplugin.ffmp/src/com/raytheon/uf/common/dataplugin/ffmp/FFMPUtils.java b/edexOsgi/com.raytheon.uf.common.dataplugin.ffmp/src/com/raytheon/uf/common/dataplugin/ffmp/FFMPUtils.java index a7d3fb4e02..623d3aab02 100644 --- a/edexOsgi/com.raytheon.uf.common.dataplugin.ffmp/src/com/raytheon/uf/common/dataplugin/ffmp/FFMPUtils.java +++ b/edexOsgi/com.raytheon.uf.common.dataplugin.ffmp/src/com/raytheon/uf/common/dataplugin/ffmp/FFMPUtils.java @@ -79,8 +79,8 @@ import com.vividsolutions.jts.io.WKTWriter; * ------------ ---------- ----------- -------------------------- * 06/22/09 2152 D. Hladky Initial release * 06/18/12 DR 15108 G. Zhang Fix County FIPS 4-digit issue + * 03/01/13 DR 13228 G. Zhang Add state for VGB query and related code * - * * @author dhladky * @version 1 */ @@ -195,7 +195,7 @@ public class FFMPUtils { double extent, String cwa, String mode) { LinkedHashMap virtualBasins = new LinkedHashMap(); - String sql = "SELECT lid, county, name, lat, lon FROM location " + String sql = "SELECT lid, county, name, lat, lon, state FROM location "// DR 13228 state added + "where lid in " + "(select distinct(lid) from IngestFilter " + "where pe in ('PC', 'PP') " + "and ingest = 'T' " + "and dur < 2000)"; @@ -800,7 +800,7 @@ public class FFMPUtils { public static Geometry getCwaGeometry(String cwa, String mode) { // convert buffer to km, then degrees String sql = "Select asBinary(" - + ScanUtils.getStandardResolutionLevel("cwa") + + ScanUtils.getHighResolutionLevel("cwa") // DR 13228.getStandardResolutionLevel("cwa") + ") from mapdata.cwa where cwa = '" + cwa + "'"; ISpatialQuery sq = null; @@ -1214,7 +1214,11 @@ public class FFMPUtils { if ((lat != Double.NaN) && (lon != Double.NaN)) { basin.setCoordinate(new Coordinate(lon, lat)); } - + + if (dbResult[5] != null) { + basin.setState((String) dbResult[5]);// DR 13228 + } + return basin; } diff --git a/edexOsgi/com.raytheon.uf.common.dataplugin.ffmp/src/com/raytheon/uf/common/dataplugin/ffmp/FFMPVirtualGageBasinMetaData.java b/edexOsgi/com.raytheon.uf.common.dataplugin.ffmp/src/com/raytheon/uf/common/dataplugin/ffmp/FFMPVirtualGageBasinMetaData.java index fc45cd29b1..80b70c2157 100644 --- a/edexOsgi/com.raytheon.uf.common.dataplugin.ffmp/src/com/raytheon/uf/common/dataplugin/ffmp/FFMPVirtualGageBasinMetaData.java +++ b/edexOsgi/com.raytheon.uf.common.dataplugin.ffmp/src/com/raytheon/uf/common/dataplugin/ffmp/FFMPVirtualGageBasinMetaData.java @@ -14,7 +14,7 @@ import com.vividsolutions.jts.geom.Coordinate; * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * 01may10 3937 dhladky Setup - * + * 01mar13 DR13228 gzhang Add basin state * * * @author dhladky @@ -39,6 +39,10 @@ public class FFMPVirtualGageBasinMetaData implements ISerializableObject { /** basin county **/ @DynamicSerializeElement public String county; + + /** basin state DR 13228 **/ + @DynamicSerializeElement + public String state; /** basin county **/ @DynamicSerializeElement @@ -88,6 +92,14 @@ public class FFMPVirtualGageBasinMetaData implements ISerializableObject { this.county = county; } + public String getState() { + return state;// DR 13228 + } + + public void setState(String state) { + this.state = state;// DR 13228 + } + public Long getParentPfaf() { return parentPfaf; } diff --git a/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/RadarDataPoint.java b/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/RadarDataPoint.java index 2ab28dff5f..70f273ec40 100644 --- a/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/RadarDataPoint.java +++ b/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/RadarDataPoint.java @@ -26,6 +26,7 @@ import com.raytheon.uf.common.dataplugin.radar.level3.StormIDPacket; import com.raytheon.uf.common.dataplugin.radar.level3.SymbologyPacket; import com.raytheon.uf.common.dataplugin.radar.level3.SymbologyPoint; import com.raytheon.uf.common.dataplugin.radar.level3.DMDPacket.DMDAttributeIDs; +import com.raytheon.uf.common.dataplugin.radar.level3.GFMPacket.GFMAttributeIDs; import com.raytheon.uf.common.dataplugin.radar.level3.StormIDPacket.StormIDPoint; import com.raytheon.uf.common.dataplugin.radar.level3.generic.GenericDataComponent; import com.raytheon.uf.common.serialization.ISerializableObject; @@ -42,6 +43,7 @@ import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement; * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * Feb 17, 2009 2000 askripsk Initial creation + * 03/04/2013 DCS51 zwang Handle GFM product * * * @@ -286,8 +288,23 @@ public class RadarDataPoint implements ISerializableObject { */ public void addDisplayData(int type, T point) { - String stormID = point.getValue(DMDAttributeIDs.ASSOCIATE_STORM_ID - .toString()); + + String stormID = ""; + // DMD + if (type == 149) { + stormID = point.getValue(DMDAttributeIDs.ASSOCIATE_STORM_ID + .toString()); + } + // GFM + else if (type == 140) { + stormID = point.getValue(GFMAttributeIDs.DETECT_ID + .toString()); + String deltaT = point.getValue(GFMAttributeIDs.FORECAST_DELTA_T + .toString()); + + stormID += ":"; + stormID += deltaT; + } if (!"".equalsIgnoreCase(stormID)) { this.stormID = stormID; diff --git a/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/RadarRecord.java b/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/RadarRecord.java index f5861b687c..ca3d1c2b25 100644 --- a/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/RadarRecord.java +++ b/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/RadarRecord.java @@ -59,6 +59,8 @@ import com.raytheon.uf.common.dataplugin.radar.level3.CellTrendDataPacket; import com.raytheon.uf.common.dataplugin.radar.level3.CellTrendVolumeScanPacket; import com.raytheon.uf.common.dataplugin.radar.level3.DMDPacket; import com.raytheon.uf.common.dataplugin.radar.level3.DMDPacket.DMDAttributeIDs; +import com.raytheon.uf.common.dataplugin.radar.level3.GFMPacket; +import com.raytheon.uf.common.dataplugin.radar.level3.GFMPacket.GFMAttributeIDs; import com.raytheon.uf.common.dataplugin.radar.level3.DataLevelThreshold; import com.raytheon.uf.common.dataplugin.radar.level3.GSMBlock.GSMMessage; import com.raytheon.uf.common.dataplugin.radar.level3.GenericDataPacket; @@ -114,6 +116,7 @@ import com.vividsolutions.jts.geom.Coordinate; * getPersistenceTime() from new IPersistable * 10/09/2007 465 randerso Updated to better represent level 3 data * 20071129 472 jkorman Added IDecoderGettable interface. + * 03/04/2013 DCS51 zwang Handle MIGFA product * * * @author bphillip @@ -1034,9 +1037,19 @@ public class RadarRecord extends PersistablePluginDataObject implements private void addPacketData(double i, double j, String stormID, int type, RadarProductType productType, T currData, boolean needToConvert) { - if (needToConvert) { - // switch to lat/lon - Coordinate coor = convertStormLatLon(i, j); + + // Convert x/y to lon/lat + if (needToConvert) { + Coordinate coor; + + // for MIGFA, i/j unit is 1km, for other radar products, unit is 1/4km + if (type == 140) { + coor = convertStormLatLon(i * 4.0, j * 4.0); + } + else { + coor = convertStormLatLon(i, j); + } + i = coor.x; j = coor.y; } @@ -1310,7 +1323,45 @@ public class RadarRecord extends PersistablePluginDataObject implements currFeature, convertLatLon); } continue PACKET; - } else if (currPacket instanceof GenericDataPacket) { + } else if (currPacket instanceof GFMPacket) { + // Need to get each component/feature out and located the + // thing + GFMPacket packet = (GFMPacket) currPacket; + + // need to convert x/y to lon/lat + convertLatLon = true; + + Map map = new HashMap(); + + for (GenericDataParameter param : packet.getParams() + .values()) { + + GFMAttributeIDs id = null; + id = GFMAttributeIDs.getAttribute(param.getId()); + + if (id != null) { + for (MapValues vals : MapValues.values()) { + if (id.getName().equals(vals.getName())) { + map.put(vals, param.getValue()); + } + } + } + } + getMapRecordVals().put(MapValues.GFM_TYPE, map); + + AreaComponent currFeature; + for (GenericDataComponent currComponent : packet + .getFeatures().values()) { + currFeature = (AreaComponent) currComponent; + //first point of GFM + i = currFeature.getPoints().get(0).getCoordinate1(); + j = currFeature.getPoints().get(0).getCoordinate2(); + + addPacketData(i, j, type, RadarProductType.GENERIC, + currFeature, convertLatLon); + } + continue PACKET; + }else if (currPacket instanceof GenericDataPacket) { // Generic Packet will contain most of the data for the // product, so, in general, nothing probably needs to be // done here diff --git a/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/level3/GFMPacket.java b/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/level3/GFMPacket.java new file mode 100644 index 0000000000..ac11cda541 --- /dev/null +++ b/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/level3/GFMPacket.java @@ -0,0 +1,219 @@ +/** + * This software was developed and / or modified by Raytheon Company, + * pursuant to Contract DG133W-05-CQ-1067 with the US Government. + * + * U.S. EXPORT CONTROLLED TECHNICAL DATA + * This software product contains export-restricted data whose + * export/transfer/disclosure is restricted by U.S. law. Dissemination + * to non-U.S. persons whether in the United States or abroad requires + * an export license or other authorization. + * + * Contractor Name: Raytheon Company + * Contractor Address: 6825 Pine Street, Suite 340 + * Mail Stop B8 + * Omaha, NE 68106 + * 402.291.0100 + * + * See the AWIPS II Master Rights File ("Master Rights File.pdf") for + * further licensing information. + **/ +package com.raytheon.uf.common.dataplugin.radar.level3; + +import java.io.DataInputStream; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import com.raytheon.uf.common.dataplugin.radar.level3.generic.GenericDataComponent; +import com.raytheon.uf.common.dataplugin.radar.level3.generic.GenericDataParameter; +import com.raytheon.uf.common.serialization.annotations.DynamicSerialize; +import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement; + +/** + * This is a GFM centric version of the Generic Packet + * + *
+ * 
+ * SOFTWARE HISTORY
+ * Date         Ticket#    Engineer    Description
+ * ------------ ---------- ----------- --------------------------
+ * 03/04/13     DCS51      zwang       Initial creation
+ * 
+ * 
+ * + * @author zwang + * @version 1.0 + */ + +@DynamicSerialize +public class GFMPacket extends GenericDataPacket { + public static enum GFMAttributeIDs { + DETECT_ID("detect_num"), FORECAST_DELTA_T("forecast_delta_t"), + PROPU("propU"), PROPV("propV"), + AVG_SPEED("avg_speed"), AVG_DIRECTION("avg_direction"), + WINDBEHINDU("windBehindU"), WINDBEHINDV("windBehindV"), + WINDBEHINDX("windBehindX"), WINDBEHINDY("windBehindY"), + WSHAZARD("wsHazard"); + + private String name; + + private GFMAttributeIDs(String name) { + this.name = name; + } + + /** + * @return the name + */ + public String getName() { + return name; + } + + /** + * @param name + * the name to set + */ + public void setName(String name) { + this.name = name; + } + + public static GFMAttributeIDs getAttribute(String name) { + for (GFMAttributeIDs id : GFMAttributeIDs.values()) { + if (name.equals(id.getName())) { + return id; + } + } + return null; + } + + @Override + public String toString() { + return name; + } + } + + private static final int GFM_PRODUCT_CODE = 140; + + @DynamicSerializeElement + private List featureIDs; + + // Organizes the components/features based on gfm_ID(DETECT_ID:DELTA_T) + @DynamicSerializeElement + private HashMap features; + + @DynamicSerializeElement + private HashMap params; + + static { + PacketFactory.registerGenericPacketType(GFMPacket.class, + GFM_PRODUCT_CODE); + } + + public GFMPacket(int packetId, DataInputStream in) throws IOException { + super(packetId, in); + } + + public GFMPacket() { + + } + + public String getValue(String featureID, GFMAttributeIDs attributeID) { + String rval = ""; + + rval = features.get(featureID).getValue(attributeID.toString()); + + return rval; + } + + /** + * @return the featureIDs + */ + public List getFeatureIDs() { + return featureIDs; + } + + /** + * @param featureIDs + * the featureIDs to set + */ + public void setFeatureIDs(List featureIDs) { + this.featureIDs = featureIDs; + } + + /** + * @return the features + */ + public HashMap getFeatures() { + return features; + } + + /** + * @param features + * the features to set + */ + public void setFeatures(HashMap features) { + this.features = features; + } + + public GenericDataComponent getFeature(String eventID) { + GenericDataComponent rval = null; + + rval = this.features.get(eventID); + + return rval; + } + + public HashMap getParams() { + return params; + } + + public void setParams(HashMap params) { + this.params = params; + } + + /** + * Converts the components to GFM Features and groups by gfmID + */ + private void groupFeatures() { + features = new HashMap(); + featureIDs = new ArrayList(); + params = new HashMap(); + String detectID = ""; + String deltaT = ""; + String gfmID = ""; + + for (GenericDataParameter param : parameters) { + params.put(param.getId(), param); + } + // Get the DETECT_ID out of each component + for (GenericDataComponent currFeature : components) { + // Loop through the values for the DETECT_ID + for (GenericDataParameter currParam : currFeature.getParameters()) { + if (currParam.getId().equalsIgnoreCase( + GFMAttributeIDs.DETECT_ID.toString())) + detectID = currParam.getValue(); + if (currParam.getId().equalsIgnoreCase( + GFMAttributeIDs.FORECAST_DELTA_T.toString())) + deltaT = currParam.getValue(); + } + + // combine the detectID and deltaT to form a new ID (gfmID) + gfmID = detectID + ":" + deltaT; + features.put(gfmID, currFeature); + featureIDs.add(gfmID); + } + } + + @Override + protected void init(DataInputStream in) throws IOException { + super.init(in); + + // Relates all of the GFM feature based on the gfmID + groupFeatures(); + } + + @Override + public String toString() { + return super.toString(); + } +} diff --git a/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/level3/GSMBlock.java b/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/level3/GSMBlock.java index f7868a6c7d..fcfc24e587 100644 --- a/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/level3/GSMBlock.java +++ b/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/level3/GSMBlock.java @@ -35,6 +35,7 @@ import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement; * ------------ ---------- ----------- -------------------------- * 1-26-2009 mnash Initial creation * 1-20-2010 DR 4059 Zihou Wang Decode more GSM status + * 03/01/13 DR15496 zwang Decode expanded GSM * * * @author mnash @@ -121,6 +122,9 @@ public class GSMBlock extends AbstractBlock implements ISerializableObject { @DynamicSerializeElement public int buildVersion; + @DynamicSerializeElement + public int vcpInfo; + /** * @return the mode */ @@ -420,7 +424,22 @@ public class GSMBlock extends AbstractBlock implements ISerializableObject { public void setBuildVersion(int buildVersion) { this.buildVersion = buildVersion; } + + /** + * @return the vcpSupInfo + */ + public int getVcpInfo() { + return vcpInfo; + } + /** + * @param vcpSupInfo + * the vcpSupInfo to set + */ + public void setVcpInfo(int vcpInfo) { + this.vcpInfo = vcpInfo; + } + @Override public String toString() { return String @@ -459,10 +478,9 @@ public class GSMBlock extends AbstractBlock implements ISerializableObject { message.operabilityStatus = in.readShort(); message.volumeCoveragePattern = in.readShort(); message.numCuts = in.readShort(); - message.elevation = new double[20]; + message.elevation = new double[25]; for (int j = 0; j < 20; j++) { message.elevation[j] = in.readShort(); - } message.rdaStatus = in.readShort(); message.rdaAlarms = in.readShort(); @@ -480,7 +498,17 @@ public class GSMBlock extends AbstractBlock implements ISerializableObject { message.rdaChannelNum = in.readShort(); in.skip(4); message.buildVersion = in.readShort(); - + + // GSM size is increased to 200 bytes since Build 14.0 + if (message.buildVersion >= 140) { + for (int j = 0; j < 5; j++) { + message.elevation[20+j] = in.readShort(); + } + message.vcpInfo = in.readShort(); + } + else { + message.vcpInfo = 0; + } } @Override diff --git a/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/level3/PacketFactory.java b/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/level3/PacketFactory.java index cac4332f14..ea202f3a91 100644 --- a/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/level3/PacketFactory.java +++ b/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/level3/PacketFactory.java @@ -38,7 +38,7 @@ import com.raytheon.uf.common.status.UFStatus.Priority; * SOFTWARE HISTORY * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- - * + * 03/04/2013 DCS51 zwang Handle GFM product * * * @@ -103,6 +103,7 @@ public class PacketFactory { GenericDataPacket.class.getName(), LinkedContourVectorPacket.class.getName(), UnlinkedContourVectorPacket.class.getName(), + GFMPacket.class.getName(), DMDPacket.class.getName() }; // Properties props = diff --git a/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/level3/generic/AreaComponent.java b/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/level3/generic/AreaComponent.java index 5c69506536..11447fe523 100644 --- a/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/level3/generic/AreaComponent.java +++ b/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/level3/generic/AreaComponent.java @@ -37,7 +37,7 @@ import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement; * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * May 19, 2009 askripsk Initial creation - * + * 03/04/2013 DCS51 zwang Handle product GFM * * * @author askripsk @@ -223,7 +223,7 @@ public class AreaComponent extends GenericDataComponent { @Override public String toString() { - return "Point 1: " + coordinate1 + " Point 2: " + coordinate2; + return "Coord 1: " + coordinate1 + " Coord 2: " + coordinate2; } } @@ -238,23 +238,22 @@ public class AreaComponent extends GenericDataComponent { @Override public void parseData(DataInputStream in) throws IOException { - this.setParameters(GenericUtil.parseParameters(in)); - - GenericUtil.handlePointer(in); - - // Set the format of the component - this.setFormat(AreaPointFormat.valueOf(in.readByte())); - - // Skip the two bytes between the type and format, since the encoding - // is: 0x?00? - in.readShort(); + this.setParameters(GenericUtil.parseParameters(in)); + // Set the format of the component (0x?000?) + this.setFormat(AreaPointFormat.valueOf(in.readShort())); + // Read in the byte that determines the type - this.setType(AreaPointType.valueOf(in.readByte())); - + this.setType(AreaPointType.valueOf(in.readShort())); + // Get the number of points in the component int pointCount = in.readInt(); - + + if (pointCount != 0) { + // redundant + pointCount = in.readInt(); + } + AreaPoint currPoint; for (int i = 0; i < pointCount; i++) { currPoint = new AreaPoint(); @@ -262,7 +261,7 @@ public class AreaComponent extends GenericDataComponent { currPoint.parseData(in); points.add(currPoint); - } + } } /** diff --git a/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/util/RadarConstants.java b/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/util/RadarConstants.java index f2a3e3e0b9..11a2b6d1e5 100644 --- a/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/util/RadarConstants.java +++ b/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/util/RadarConstants.java @@ -31,6 +31,7 @@ import java.util.regex.Pattern; * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * Feb 18, 2009 mnash Initial creation + * 03/04/2013 DCS51 zwang Add a map type for GFM product * * * @@ -47,7 +48,7 @@ public class RadarConstants { DMD_TYPE, RCM_TYPE, STI_TYPE, MESO_TYPE, LEG_MESO_TYPE, TVS_TYPE, VAD_TYPE, HAIL_TYPE, STORM_ID, DMD_ELEV_TIMES( "elev_time"), DMD_ELEV_ANGLES("elev_angle"), DMD_LAST_ELEV( "last_elev_flag"), DMD_AVG_SPD("avg_spd"), DMD_AVG_DIR( - "avg_dir"), HI_MAX_HAIL_SIZE, STI_AVG_SPEED, STI_AVG_DIRECTION, HI_POSH, HI_POH, STI_AZIMUTH_DIRECTION, STI_AZIMUTH_RANGE, STI_MOVEMENT_DIRECTION, STI_MOVEMENT_SPEED, STI_FORECAST_15_DIRECTION, STI_FORECAST_15_RANGE, STI_FORECAST_30_DIRECTION, STI_FORECAST_30_RANGE, STI_FORECAST_45_DIRECTION, STI_FORECAST_45_RANGE, STI_FORECAST_60_DIRECTION, STI_FORECAST_60_RANGE, STI_ERROR_FCST, STI_ERROR_MEAN, STI_DEF_DIR, STI_DEF_SPD, STI_MAX_TIME, STI_NUM_PAST_VOLS, STI_CORR_SPD, STI_THRESH_MIN_SPD, STI_ALLOW_ERROR, STI_FORECAST_INT, STI_NUM_INT, STI_ERROR_INT, MESO_STORM_ID, MESO_FEATURE_TYPE, MESO_BASE_KFT, MESO_TOP_KFT, MESO_AZIMUTH_DIRECTION, MESO_AZIMUTH_RANGE, MESO_HGT, MESO_DIAM_RAD, MESO_DIAM_AZ, MESO_SHEAR, VAD_U, VAD_W, VAD_V, VAD_DIR, VAD_SPD, VAD_RMS, VAD_DIV, VAD_SRNG, VAD_ELEV, VAD_ANALYSIS_SLANT_RNG, VAD_BEGIN_AZIMUTH_ANGLE, VAD_END_AZIMUTH_ANGLE, VAD_NUM_PASSES, VAD_RMS_THRESHOLD, TVS_FEATURE_TYPE, TVS_AZIMUTH, TVS_RANGE, TVS_AVGDV, TVS_LLDV, TVS_MXDV, TVS_DVHGT, TVS_DEPTH, TVS_BASE, TVS_TOP, TVS_MXSHR, TVS_SHRHGT, TVS_MIN_REFLECT, TVS_CIRC_RADIUS_1, TVS_CIRC_RADIUS_2, TVS_VECTOR_VEL_DIFF, TVS_MAX_PATTERN_VEC_RANGE, TVS_CIRC_RADIUS_RANGE, TVS_MAX_PATTER_VECTOR_HEIGHT, TVS_MAX_2D_FEATURES, TVS_MAX_NUM_PATTERN_VECTORS, TVS_MIN_2D_FEATURES, TVS_DIFF_VEL_1, TVS_DIFF_VEL_2, TVS_DIFF_VEL_3, TVS_DIFF_VEL_4, TVS_DIFF_VEL_5, TVS_DIFF_VEL_6, TVS_MIN_3D_FEATURE_DEPTH, TVS_MIN_3D_FEATURE_LOW_LVL_DELTA, TVS_MIN_TVS_DELTA_VEL, TVS_MAX_3D_FEATURES, TVS_MAX_TVS, TVS_MAX_ELEVATED_TVS, TVS_MIN_VECTORS, TVS_MIN_TVS_BASE_HEIGHT, TVS_2D_VECTOR_RADIAL_DISTANCE, TVS_MIN_TVS_ELEVATION, TVS_2D_VECTOR_AZIMUTHAL_DIST, TVS_MIN_AVG_DELTA_VEL_HEIGHT, TVS_2D_FEATURE_ASPECT_RATIO, TVS_MAX_STORM_ASSOCIATION_DIST, MESO_CIRC_ID, MESO_SR, MESO_RV, MESO_DV, MESO_BASE, MESO_DEPTH, MESO_DEPTH_PERCENT, MESO_MAX_RV, MESO_MAX_RV_SPD, MESO_TVS_TYPE, MESO_MOTION_DIR, MESO_MOTION_SPD, MESO_MSI, RCM_RDA_SITE, RCM_TIME, RCM_PROD_CAT, RCM_OPER_MODE, RCM_SCAN_STRAT, RCM_TOT_INTENS, RCM_REFL_STRING, RCM_MT_HGT, RCM_MT_LOC, RCM_NCEN, RCM_CENTROIDS, VAD_WINDS, RCM_NUM_TVS, RCM_NUM_MESO, RCM_NUM_CENTROIDS, RCM_CENT, RCM_MESO, RCM_TVS; + "avg_dir"), HI_MAX_HAIL_SIZE, STI_AVG_SPEED, STI_AVG_DIRECTION, HI_POSH, HI_POH, STI_AZIMUTH_DIRECTION, STI_AZIMUTH_RANGE, STI_MOVEMENT_DIRECTION, STI_MOVEMENT_SPEED, STI_FORECAST_15_DIRECTION, STI_FORECAST_15_RANGE, STI_FORECAST_30_DIRECTION, STI_FORECAST_30_RANGE, STI_FORECAST_45_DIRECTION, STI_FORECAST_45_RANGE, STI_FORECAST_60_DIRECTION, STI_FORECAST_60_RANGE, STI_ERROR_FCST, STI_ERROR_MEAN, STI_DEF_DIR, STI_DEF_SPD, STI_MAX_TIME, STI_NUM_PAST_VOLS, STI_CORR_SPD, STI_THRESH_MIN_SPD, STI_ALLOW_ERROR, STI_FORECAST_INT, STI_NUM_INT, STI_ERROR_INT, MESO_STORM_ID, MESO_FEATURE_TYPE, MESO_BASE_KFT, MESO_TOP_KFT, MESO_AZIMUTH_DIRECTION, MESO_AZIMUTH_RANGE, MESO_HGT, MESO_DIAM_RAD, MESO_DIAM_AZ, MESO_SHEAR, VAD_U, VAD_W, VAD_V, VAD_DIR, VAD_SPD, VAD_RMS, VAD_DIV, VAD_SRNG, VAD_ELEV, VAD_ANALYSIS_SLANT_RNG, VAD_BEGIN_AZIMUTH_ANGLE, VAD_END_AZIMUTH_ANGLE, VAD_NUM_PASSES, VAD_RMS_THRESHOLD, TVS_FEATURE_TYPE, TVS_AZIMUTH, TVS_RANGE, TVS_AVGDV, TVS_LLDV, TVS_MXDV, TVS_DVHGT, TVS_DEPTH, TVS_BASE, TVS_TOP, TVS_MXSHR, TVS_SHRHGT, TVS_MIN_REFLECT, TVS_CIRC_RADIUS_1, TVS_CIRC_RADIUS_2, TVS_VECTOR_VEL_DIFF, TVS_MAX_PATTERN_VEC_RANGE, TVS_CIRC_RADIUS_RANGE, TVS_MAX_PATTER_VECTOR_HEIGHT, TVS_MAX_2D_FEATURES, TVS_MAX_NUM_PATTERN_VECTORS, TVS_MIN_2D_FEATURES, TVS_DIFF_VEL_1, TVS_DIFF_VEL_2, TVS_DIFF_VEL_3, TVS_DIFF_VEL_4, TVS_DIFF_VEL_5, TVS_DIFF_VEL_6, TVS_MIN_3D_FEATURE_DEPTH, TVS_MIN_3D_FEATURE_LOW_LVL_DELTA, TVS_MIN_TVS_DELTA_VEL, TVS_MAX_3D_FEATURES, TVS_MAX_TVS, TVS_MAX_ELEVATED_TVS, TVS_MIN_VECTORS, TVS_MIN_TVS_BASE_HEIGHT, TVS_2D_VECTOR_RADIAL_DISTANCE, TVS_MIN_TVS_ELEVATION, TVS_2D_VECTOR_AZIMUTHAL_DIST, TVS_MIN_AVG_DELTA_VEL_HEIGHT, TVS_2D_FEATURE_ASPECT_RATIO, TVS_MAX_STORM_ASSOCIATION_DIST, MESO_CIRC_ID, MESO_SR, MESO_RV, MESO_DV, MESO_BASE, MESO_DEPTH, MESO_DEPTH_PERCENT, MESO_MAX_RV, MESO_MAX_RV_SPD, MESO_TVS_TYPE, MESO_MOTION_DIR, MESO_MOTION_SPD, MESO_MSI, RCM_RDA_SITE, RCM_TIME, RCM_PROD_CAT, RCM_OPER_MODE, RCM_SCAN_STRAT, RCM_TOT_INTENS, RCM_REFL_STRING, RCM_MT_HGT, RCM_MT_LOC, RCM_NCEN, RCM_CENTROIDS, VAD_WINDS, RCM_NUM_TVS, RCM_NUM_MESO, RCM_NUM_CENTROIDS, RCM_CENT, RCM_MESO, RCM_TVS, GFM_TYPE; private String name; diff --git a/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/util/SsssRadarUtil.java b/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/util/SsssRadarUtil.java new file mode 100644 index 0000000000..33579f2b58 --- /dev/null +++ b/edexOsgi/com.raytheon.uf.common.dataplugin.radar/src/com/raytheon/uf/common/dataplugin/radar/util/SsssRadarUtil.java @@ -0,0 +1,128 @@ +/** + * This software was developed and / or modified by Raytheon Company, + * pursuant to Contract DG133W-05-CQ-1067 with the US Government. + * + * U.S. EXPORT CONTROLLED TECHNICAL DATA + * This software product contains export-restricted data whose + * export/transfer/disclosure is restricted by U.S. law. Dissemination + * to non-U.S. persons whether in the United States or abroad requires + * an export license or other authorization. + * + * Contractor Name: Raytheon Company + * Contractor Address: 6825 Pine Street, Suite 340 + * Mail Stop B8 + * Omaha, NE 68106 + * 402.291.0100 + * + * See the AWIPS II Master Rights File ("Master Rights File.pdf") for + * further licensing information. + **/ +package com.raytheon.uf.common.dataplugin.radar.util; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import com.raytheon.uf.common.localization.LocalizationContext; +import com.raytheon.uf.common.localization.LocalizationFile; +import com.raytheon.uf.common.localization.PathManager; +import com.raytheon.uf.common.localization.LocalizationContext.LocalizationLevel; +import com.raytheon.uf.common.localization.LocalizationContext.LocalizationType; +import com.raytheon.uf.common.localization.PathManagerFactory; +import com.raytheon.uf.common.status.IUFStatusHandler; +import com.raytheon.uf.common.status.UFStatus; +import com.raytheon.uf.common.status.UFStatus.Priority; + +/** + * TODO Add Description + * + *
+ * SOFTWARE HISTORY
+ * Date         Ticket#    Engineer    Description
+ * ------------ ---------- ----------- --------------------------
+ * 03/07/13     DR15495    zwang       Handle SSSS radars
+ * 
+ * 
+ * + * @author zwang + * @version 1.0 + */ + +public class SsssRadarUtil { + + private static final transient IUFStatusHandler statusHandler = UFStatus + .getHandler(RadarsInUseUtil.class); + + private static final IUFStatusHandler handler = UFStatus + .getHandler(RadarsInUseUtil.class); + + private static List ssssRadars; + + private static boolean parsed = false; + + private static synchronized void parseFile() throws IOException{ + PathManager pm = (PathManager) PathManagerFactory.getPathManager(); + LocalizationContext context = pm.getContext(LocalizationType.COMMON_STATIC, + LocalizationLevel.BASE); + + if (parsed) { + return; + } + + parsed = true; + ssssRadars = new ArrayList(); + LocalizationFile file = pm.getLocalizationFile(context, "radar" + + File.separator + "ssssRadars.txt"); + + if (!file.exists()) { + statusHandler.info("File ssssRadars.txt not found "); + } + else{ + BufferedReader buf = new BufferedReader(new FileReader( + file.getFile())); + String temp = buf.readLine(); + while (temp != null) { + temp = temp.trim(); + if (temp.startsWith("#")) { + // Skip comment lines if any + break; + } else if (!temp.trim().isEmpty()) { + ssssRadars.add(temp); + } + temp = buf.readLine(); + } + buf.close(); + } + } + + public static List getSsssRadars() { + if (parsed) + return ssssRadars; + else { + try { + parseFile(); + } catch (IOException e) { + handler.handle(Priority.ERROR, "Error occurred looking up radars", + e); + } + } + return ssssRadars; + } + + public static boolean isSsssRadar(String radar) { + if (!parsed) { + try { + parseFile(); + } catch (IOException e) { + handler.handle(Priority.ERROR, "Error occurred looking up radars", + e); + } + } + + return ssssRadars.contains(radar); + } + +} diff --git a/edexOsgi/com.raytheon.uf.edex.plugin.qc/META-INF/MANIFEST.MF b/edexOsgi/com.raytheon.uf.edex.plugin.qc/META-INF/MANIFEST.MF index d9f7a9a3d2..412794d00c 100644 --- a/edexOsgi/com.raytheon.uf.edex.plugin.qc/META-INF/MANIFEST.MF +++ b/edexOsgi/com.raytheon.uf.edex.plugin.qc/META-INF/MANIFEST.MF @@ -12,7 +12,8 @@ Require-Bundle: com.raytheon.edex.common;bundle-version="1.11.17", com.raytheon.uf.common.python;bundle-version="1.11.17", org.jep;bundle-version="1.0.0", com.raytheon.uf.common.localization;bundle-version="1.11.17", - javax.persistence;bundle-version="1.0.0" + javax.persistence;bundle-version="1.0.0", + ucar.nc2;bundle-version="1.0.0" Export-Package: com.raytheon.uf.edex.plugin.qc.common Import-Package: com.raytheon.edex.uengine.tasks.query, com.raytheon.uf.common.message.response, diff --git a/edexOsgi/com.raytheon.uf.edex.plugin.qc/src/com/raytheon/uf/edex/plugin/qc/QCScanner.java b/edexOsgi/com.raytheon.uf.edex.plugin.qc/src/com/raytheon/uf/edex/plugin/qc/QCScanner.java index 7cd845f7d4..a9e8cb558f 100644 --- a/edexOsgi/com.raytheon.uf.edex.plugin.qc/src/com/raytheon/uf/edex/plugin/qc/QCScanner.java +++ b/edexOsgi/com.raytheon.uf.edex.plugin.qc/src/com/raytheon/uf/edex/plugin/qc/QCScanner.java @@ -21,31 +21,51 @@ package com.raytheon.uf.edex.plugin.qc; import java.io.File; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; +import java.util.Arrays; +import java.util.Date; import java.util.Map; +import java.util.regex.Pattern; -import jep.JepException; +import ucar.ma2.Array; +import ucar.ma2.ArrayChar; +import ucar.ma2.Section; +import ucar.nc2.Attribute; +import ucar.nc2.NetcdfFile; +import ucar.nc2.Variable; import com.raytheon.uf.common.dataplugin.PluginDataObject; +import com.raytheon.uf.common.dataplugin.PluginException; +import com.raytheon.uf.common.dataplugin.qc.QCRecord; import com.raytheon.uf.common.dataplugin.qc.internal.QCPaths; -import com.raytheon.uf.common.python.thread.PythonScriptManager; -import com.raytheon.uf.common.python.thread.PythonScriptManager.ScriptRequest; +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.raytheon.uf.edex.database.plugin.PluginFactory; +import com.raytheon.uf.edex.plugin.qc.dao.QCDao; +/** + * Scans NetCDF files generated by A1 legacy applications and generates + * QCRecord instances that refer to their records. + * + *
+ * 
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    Engineer    Description
+ * ------------ ---------- ----------- --------------------------
+ * 2010-12-03   #4775      D. Friedman Initial version
+ * ...
+ * 2013-03-07   DR 15842   D. Friedman Use Java NetCDF library instead of pupynere 
+ * 
+ * 
+ * + * @author dfriedma + * @version 1.0 + */ public class QCScanner { - private static PythonScriptManager psm; - - static { - try { - psm = new PythonScriptManager( - QCPaths.getPythonScriptPath("qcScanner.py"), - QCPaths.PYTHON_INCLUDE_PATH, 2); - } catch (JepException e) { - throw new RuntimeException( - "Failed to initialize QCScanner Python scripting. QCScanner python calls will Fail!"); - } - } + private static final transient IUFStatusHandler statusHandler = UFStatus + .getHandler(QCScanner.class); private Integer maxRecordsInChunk; @@ -55,41 +75,14 @@ public class QCScanner { } - @SuppressWarnings({ "unchecked", "rawtypes" }) - private PluginDataObject[] scan() throws Exception, JepException { - // TODO: need to prevent multiple threads from accessing... - List result = new ArrayList(); - + public void scanInChunks() throws Exception { Map paths = QCPaths.getPaths(); - for (String key : paths.keySet()) { - HashMap args = new HashMap(); - File qcDataFile = paths.get(key); - args.put("directory", qcDataFile.getPath()); - args.put("qcType", key); - - psm.callScript(new ScriptRequest("init", args)); - args = null; - if (maxRecordsInChunk != null) { - args = new HashMap(); - args.put("max_records", maxRecordsInChunk); - } - result.addAll((List) psm - .callScript(new ScriptRequest("scan", args))); - } - - return (PluginDataObject[]) result.toArray(new PluginDataObject[result - .size()]); - } - - public void scanInChunks() throws Exception, JepException { - PluginDataObject[] chunk; - while (true) { - chunk = scan(); - if (chunk != null && chunk.length > 0) - target.acceptRecords(chunk); - else - break; + for (Map.Entry entry : paths.entrySet()) { + String type = entry.getKey(); + File directory = entry.getValue(); + QCDirectoryScanner scanner = new QCDirectoryScanner(type, directory); + scanner.scan(); } } @@ -123,4 +116,112 @@ public class QCScanner { this.target = target; } + private static final Pattern filePattern = Pattern.compile("^\\d+_\\d+$"); + + // Approximate total max length of vars listed in idVariables attributes. + private static final int ID_LENGTH = 24; + + private class QCDirectoryScanner { + private String qcType; + private File directory; + private QCDao qcDao; + + public QCDirectoryScanner(String qcType, File directory) { + this.qcType = qcType; + this.directory = directory; + } + + public void scan() throws PluginException { + qcDao = (QCDao) PluginFactory.getInstance().getPluginDao("qc"); + + for (String fn : directory.list()) { + if (filePattern.matcher(fn).matches()) { + try { + scanFile(fn); + } catch (Exception e) { + statusHandler.error(String.format("error reading %s/%s: %s", + directory, fn, e.getMessage()), e); + } + } + } + } + + private void scanFile(String fn) throws Exception { + NetcdfFile nc = NetcdfFile.open(new File(directory, fn).toString()); + try { + int index = qcDao.getMaxRecordIndex(qcType, fn); + if (index < 0) + index = 0; + else + index += 1; + int nRecords = nc.getUnlimitedDimension().getLength(); + if (index >= nRecords) + return; + String[] idVariablesNames = nc + .findGlobalAttribute("idVariables") + .getStringValue().split(","); + Variable[] idVariables = new Variable[idVariablesNames.length]; + for (int i = 0; i < idVariables.length; ++i) + idVariables[i] = nc.findVariable(idVariablesNames[i]); + Variable vObsTime = nc.findVariable("observationTime"); + double vObsTimeFillValue = vObsTime.findAttribute("_FillValue").getNumericValue().doubleValue(); + Double vObsTimeMissingValue = null; + Attribute a = vObsTime.findAttribute("missing_value"); + if (a != null) + vObsTimeMissingValue = a.getNumericValue().doubleValue(); + Variable vLat = nc.findVariable("latitude"); + Variable vLon = nc.findVariable("longitude"); + Variable vElev = nc.findVariable("elevation"); + + while (index < nRecords) { + PluginDataObject[] records = new PluginDataObject[Math.min(maxRecordsInChunk, nRecords - index)]; + int[] ofs = new int[] { index }; + int[] len = new int[] { records.length }; + Section sec = new Section(); + sec.appendRange(index, index + records.length - 1); + sec.appendRange(); + Array dObsTime = vObsTime.read(ofs, len); + Array dLat = vLat.read(ofs, len); + Array dLon = vLon.read(ofs, len); + Array dElev = vElev.read(ofs, len); + ArrayChar[] dIDs = new ArrayChar[idVariables.length]; + for (int i = 0; i < dIDs.length; ++i) + dIDs[i] = (ArrayChar) idVariables[i].read(sec); + int ri = 0; + int oi = 0; + while (ri < records.length) { + QCRecord r = new QCRecord(); + r.setPluginName("qc"); + double obsTime = dObsTime.getDouble(ri); + if (obsTime != vObsTimeFillValue && + (vObsTimeMissingValue == null || + vObsTimeMissingValue != obsTime)) { + r.setDataTime(new DataTime(new Date((long)(obsTime * 1000)))); + SurfaceObsLocation loc = new SurfaceObsLocation(); + loc.assignLocation(dLat.getDouble(ri), dLon.getDouble(ri)); + loc.setElevation(dElev.getInt(ri)); + StringBuilder stationId = new StringBuilder(ID_LENGTH); + for (ArrayChar idArray : dIDs) { + stationId.append(idArray.getString(ri)); + } + loc.setStationId(stationId.toString()); + r.setLocation(loc); + r.setNcSet(fn); + r.setNcIndex(index); + r.setQcType(qcType); + r.constructDataURI(); + records[oi++] = r; + } + ++index; + ++ri; + } + if (oi < records.length) + records = Arrays.copyOf(records, oi); + target.acceptRecords(records); + } + } finally { + nc.close(); + } + } + } } diff --git a/edexOsgi/com.raytheon.uf.edex.plugin.qc/src/com/raytheon/uf/edex/plugin/qc/dao/QCDao.java b/edexOsgi/com.raytheon.uf.edex.plugin.qc/src/com/raytheon/uf/edex/plugin/qc/dao/QCDao.java index 5b7f2f3b20..46405834a0 100644 --- a/edexOsgi/com.raytheon.uf.edex.plugin.qc/src/com/raytheon/uf/edex/plugin/qc/dao/QCDao.java +++ b/edexOsgi/com.raytheon.uf.edex.plugin.qc/src/com/raytheon/uf/edex/plugin/qc/dao/QCDao.java @@ -268,12 +268,12 @@ public class QCDao extends PointDataPluginDao { "Operation not supported on the QC plugin"); } - // Support function for Python script. Too much of a pain to get it to work - // in Python - public int getMaxRecordIndex(String setName) + /** Support function for the QCScanner */ + public int getMaxRecordIndex(String qcType, String setName) throws DataAccessLayerException { DatabaseQuery q = new DatabaseQuery(daoClass.getName()); q.setMaxResults(1); + q.addQueryParam("qcType", qcType); q.addQueryParam("ncSet", setName); q.addReturnedField("pointDataView.curIdx"); q.addOrder("pointDataView.curIdx", false); diff --git a/nativeLib/build.native/build-notification.sh b/nativeLib/build.native/build-notification.sh index 93d40400d9..2bb5a68c36 100644 --- a/nativeLib/build.native/build-notification.sh +++ b/nativeLib/build.native/build-notification.sh @@ -122,7 +122,7 @@ if [ $? -ne 0 ]; then echo "ERROR: Unable to create directory - ${BUILD_ROOT}/workspace_/notification/bin." exit 1 fi -mkdir ${BUILD_ROOT}/awips2/notification/lib +mkdir ${BUILD_ROOT}/awips2/notification/${FOSS_LIB_DIR} if [ $? -ne 0 ]; then echo "ERROR: Unable to create directory - ${BUILD_ROOT}/workspace_/notification/lib." exit 1 @@ -141,14 +141,14 @@ fi # libedex_com.so -> notification/lib if [ -f "${BUILD_ROOT}/workspace_/edex_com/${BUILD_CONFIGURATION}/libedex_com.so" ]; then cp -v "${BUILD_ROOT}/workspace_/edex_com/${BUILD_CONFIGURATION}/libedex_com.so" \ - ${BUILD_ROOT}/awips2/notification/lib + ${BUILD_ROOT}/awips2/notification/${FOSS_LIB_DIR} if [ $? -ne 0 ]; then echo "ERROR: Failed to copy libedex_com.so to its destination." exit 1 fi else cp -v "${WORKSPACE}/edex_com/${BUILD_CONFIGURATION}/libedex_com.so" \ - ${BUILD_ROOT}/awips2/notification/lib + ${BUILD_ROOT}/awips2/notification/${FOSS_LIB_DIR} if [ $? -ne 0 ]; then echo "ERROR: Failed to copy libedex_com.so to its destination." exit 1 @@ -192,14 +192,14 @@ if [ $? -ne 0 ]; then fi # org.apache.thrift lib -> notification/lib cp -vPf ${BUILD_ROOT}/workspace_/org.apache.thrift/${FOSS_LIB_DIR}/* \ - ${BUILD_ROOT}/awips2/notification/lib + ${BUILD_ROOT}/awips2/notification/${FOSS_LIB_DIR} if [ $? -ne 0 ]; then echo "ERROR: Failed to copy the org.apache.thrift lib to its destination." exit 1 fi # org.apache.qpid lib -> notification/lib cp -vPf ${BUILD_ROOT}/workspace_/org.apache.qpid/${FOSS_LIB_DIR}/* \ - ${BUILD_ROOT}/awips2/notification/lib + ${BUILD_ROOT}/awips2/notification/${FOSS_LIB_DIR} if [ $? -ne 0 ]; then echo "ERROR: Failed to copy the org.apache.qpid lib to its destination." exit 1 diff --git a/ncep/com.raytheon.uf.edex.ncep.feature/feature.xml b/ncep/com.raytheon.uf.edex.ncep.feature/feature.xml index d2d1940b9a..a435e60aea 100644 --- a/ncep/com.raytheon.uf.edex.ncep.feature/feature.xml +++ b/ncep/com.raytheon.uf.edex.ncep.feature/feature.xml @@ -31,7 +31,6 @@ version="0.0.0" unpack="false"/> - + + + + diff --git a/ncep/gov.noaa.nws.ncep.common.dataplugin.ncairep/src/gov/noaa/nws/ncep/common/dataplugin/ncairep/NcAirepRecord.java b/ncep/gov.noaa.nws.ncep.common.dataplugin.ncairep/src/gov/noaa/nws/ncep/common/dataplugin/ncairep/NcAirepRecord.java index 156b519095..d8297739f5 100644 --- a/ncep/gov.noaa.nws.ncep.common.dataplugin.ncairep/src/gov/noaa/nws/ncep/common/dataplugin/ncairep/NcAirepRecord.java +++ b/ncep/gov.noaa.nws.ncep.common.dataplugin.ncairep/src/gov/noaa/nws/ncep/common/dataplugin/ncairep/NcAirepRecord.java @@ -268,7 +268,7 @@ public class NcAirepRecord extends PluginDataObject implements ISpatialEnabled, @Embedded @DynamicSerializeElement - private PointDataView pdv; + private PointDataView pointDataView; /** * @@ -866,7 +866,7 @@ public class NcAirepRecord extends PluginDataObject implements ISpatialEnabled, */ @Override public PointDataView getPointDataView() { - return this.pdv; + return this.pointDataView; } /* @@ -878,7 +878,7 @@ public class NcAirepRecord extends PluginDataObject implements ISpatialEnabled, */ @Override public void setPointDataView(PointDataView pdv) { - this.pdv = pdv; + this.pointDataView = pdv; } } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/.classpath b/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/.classpath similarity index 88% rename from ncep/gov.noaa.nws.ncep.metParameters/.classpath rename to ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/.classpath index 4d017d74db..ad32c83a78 100644 --- a/ncep/gov.noaa.nws.ncep.metParameters/.classpath +++ b/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/.classpath @@ -3,6 +3,5 @@ - diff --git a/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/.project b/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/.project new file mode 100644 index 0000000000..17faaa5c8f --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/.project @@ -0,0 +1,28 @@ + + + gov.noaa.nws.ncep.common.dataplugin.ntrans + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/.settings/org.eclipse.jdt.core.prefs b/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000..910602e68d --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,12 @@ +#Tue Feb 19 10:47:44 EST 2013 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/META-INF/MANIFEST.MF b/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..08e5f04928 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/META-INF/MANIFEST.MF @@ -0,0 +1,21 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Ntrans Plug-in +Bundle-SymbolicName: gov.noaa.nws.ncep.common.dataplugin.ntrans +Bundle-Version: 1.0.0.qualifier +Eclipse-RegisterBuddy: com.raytheon.edex.common, com.raytheon.uf.common.serialization +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Require-Bundle: com.raytheon.edex.common;bundle-version="1.11.7", + javax.persistence;bundle-version="1.0.0", + org.apache.log4j;bundle-version="1.0.0", + org.apache.commons.logging;bundle-version="1.0.4", + gov.noaa.nws.ncep.common;bundle-version="1.0.0", + org.eclipse.ui;bundle-version="3.4.1", + org.eclipse.core.runtime;bundle-version="3.4.0" +Export-Package: gov.noaa.nws.ncep.common.dataplugin.ntrans, + gov.noaa.nws.ncep.common.dataplugin.ntrans.dao +Bundle-Vendor: AWIPS II migration +Import-Package: com.raytheon.uf.edex.decodertools.core, + com.raytheon.uf.edex.decodertools.time, + com.raytheon.uf.edex.wmo.message, + org.junit diff --git a/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/META-INF/services/com.raytheon.uf.common.serialization.ISerializableObject b/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/META-INF/services/com.raytheon.uf.common.serialization.ISerializableObject new file mode 100644 index 0000000000..5e43035463 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/META-INF/services/com.raytheon.uf.common.serialization.ISerializableObject @@ -0,0 +1 @@ +gov.noaa.nws.ncep.common.dataplugin.ntrans.NtransRecord diff --git a/ncep/gov.noaa.nws.ncep.metParameters/build.properties b/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/build.properties similarity index 100% rename from ncep/gov.noaa.nws.ncep.metParameters/build.properties rename to ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/build.properties diff --git a/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/component-deploy.xml b/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/component-deploy.xml new file mode 100644 index 0000000000..82d3846fdd --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/component-deploy.xml @@ -0,0 +1,11 @@ + + + + + + + diff --git a/ncep/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1Vcrd/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1Vcrd.ecl b/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/gov.noaa.nws.ncep.common.dataplugin.ntrans.ecl similarity index 100% rename from ncep/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1Vcrd/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1Vcrd.ecl rename to ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/gov.noaa.nws.ncep.common.dataplugin.ntrans.ecl diff --git a/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/src/gov/noaa/nws/ncep/common/dataplugin/ntrans/NtransRecord.java b/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/src/gov/noaa/nws/ncep/common/dataplugin/ntrans/NtransRecord.java new file mode 100644 index 0000000000..50c96bb228 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/src/gov/noaa/nws/ncep/common/dataplugin/ntrans/NtransRecord.java @@ -0,0 +1,187 @@ +/** + * NtransRecord + * + * This java class performs the mapping to the database table for NTRANS Metafiles + * + * HISTORY + * + * Date Author Description + * ------------ ---------- ----------- -------------------------- + * 02/2013 B. Hebbard Initial creation + * + * This code has been developed by the SIB for use in the AWIPS2 system. + */ + +package gov.noaa.nws.ncep.common.dataplugin.ntrans; + +import java.util.Calendar; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; +import javax.persistence.Transient; +import javax.persistence.UniqueConstraint; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +import com.raytheon.uf.common.dataplugin.IDecoderGettable; +import com.raytheon.uf.common.dataplugin.annotations.DataURI; +import com.raytheon.uf.common.dataplugin.persist.PersistablePluginDataObject; +import com.raytheon.uf.common.serialization.annotations.DynamicSerialize; +import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement; + +@Entity +@Table(name = "ntrans", uniqueConstraints = { @UniqueConstraint(columnNames = { "dataURI" }) }) +@Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL) +@XmlRootElement +@XmlAccessorType(XmlAccessType.NONE) +@DynamicSerialize +public class NtransRecord extends PersistablePluginDataObject { + + private static final long serialVersionUID = 1L; + + @Column + @DataURI(position=1) + @XmlElement + @DynamicSerializeElement + private String validTimeString; + + @Column + @DataURI(position=2) + @XmlElement + @DynamicSerializeElement + private String productNameString; + + @Column + @DataURI(position=3) + @XmlElement + @DynamicSerializeElement + private Calendar startTime; + + @Column + @DataURI(position=4) + @XmlElement + @DynamicSerializeElement + private Calendar endTime; + + @Column + //@DataURI(position=5) + @XmlElement + @DynamicSerializeElement + private String reportType; + + @Column + //@DataURI(position=6) + @XmlElement + @DynamicSerializeElement + private String inputFile; + + @Transient + private byte[] convertedMessage; + + @Column + //@DataURI(position=7) + @XmlElement + @DynamicSerializeElement + private int recordLength; + + /** + * Default Constructor + */ + public NtransRecord() { + } + + /** + * Constructs an NTRANS record from a dataURI + * + * @param uri + * The dataURI + */ + public NtransRecord(String uri) { + super(uri); + } + + public String getValidTimeString() { + return validTimeString; + } + + public void setValidTimeString(String validTimeString) { + this.validTimeString = validTimeString; + } + + public String getProductNameString() { + return productNameString; + } + + public void setProductNameString(String productNameString) { + this.productNameString = productNameString; + } + + public Calendar getStartTime() { + return startTime; + } + + public void setStartTime(Calendar startTime) { + this.startTime = startTime; + } + + public Calendar getEndTime() { + return endTime; + } + + public void setEndTime(Calendar endTime) { + this.endTime = endTime; + } + + public String getReportType() { + return reportType; + } + + public void setReportType(String reportType) { + this.reportType = reportType; + } + + public String getInputFile() { + return inputFile; + } + + public void setInputFile(String inputFile) { + this.inputFile = inputFile; + } + + public byte[] getConvertedMessage() { + return convertedMessage; + } + + public void setConvertedMessage(byte[] convertedMessage) { + this.convertedMessage = convertedMessage; + } + + @Override + public IDecoderGettable getDecoderGettable() { + // TODO Auto-generated method stub + return null; + } + + public static long getSerialVersionUID() { + return serialVersionUID; + } + + @Override + public void setIdentifier(Object dataURI) { + this.identifier = dataURI; + } + + public int getRecordLength() { + return recordLength; + } + + public void setRecordLength(int recordLength) { + this.recordLength = recordLength; + } +} diff --git a/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/src/gov/noaa/nws/ncep/common/dataplugin/ntrans/dao/NtransDao.java b/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/src/gov/noaa/nws/ncep/common/dataplugin/ntrans/dao/NtransDao.java new file mode 100644 index 0000000000..92a32bf069 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/src/gov/noaa/nws/ncep/common/dataplugin/ntrans/dao/NtransDao.java @@ -0,0 +1,90 @@ +/** + * NtransDao + * + * This java class performs the dataaccess layer functionality to the HDF5 for ASCAT,Quikscat + * + * HISTORY + * + * Date Author Description + * ------------ ---------- ----------- -------------------------- + * 11/2009 Uma Josyula Initial creation + * + * This code has been developed by the SIB for use in the AWIPS2 system. + */ +package gov.noaa.nws.ncep.common.dataplugin.ntrans.dao; + +import java.util.ArrayList; +import java.util.List; + + +import gov.noaa.nws.ncep.common.dataplugin.ntrans.NtransRecord; +import com.raytheon.uf.common.dataplugin.PluginDataObject; +import com.raytheon.uf.common.dataplugin.PluginException; +import com.raytheon.uf.common.dataplugin.persist.IPersistable; +import com.raytheon.uf.common.datastorage.IDataStore; +import com.raytheon.uf.common.datastorage.StorageException; +import com.raytheon.uf.common.datastorage.records.ByteDataRecord; +import com.raytheon.uf.common.datastorage.records.IDataRecord; +import com.raytheon.uf.edex.database.plugin.PluginDao; + +public class NtransDao extends PluginDao{ + public NtransDao(String pluginName) throws PluginException { + super(pluginName); + } + + @Override + protected IDataStore populateDataStore(IDataStore dataStore, + IPersistable record) throws StorageException { + + NtransRecord ntransRecord = (NtransRecord) record; + int msgLength = (ntransRecord.getConvertedMessage()).length; + long nx,ny; + System.out.println("@@ came into NtransDao"); + + nx = 1; + ny = msgLength; + + long[] sizes = new long[] { nx, ny }; + IDataRecord storageRecord = new ByteDataRecord("Ntrans", ntransRecord.getDataURI(), + (byte[]) ntransRecord.getConvertedMessage(), 2, sizes); + System.out.println("@@ came into NtransDao and storageRecord set"); + + storageRecord.setCorrelationObject(ntransRecord); + dataStore.addDataRecord(storageRecord); + System.out.println("@@ NtransDao about to return datastore"); + + return dataStore; + } + + + + @Override + public List getHDF5Data(List objects, + int tileSet) throws PluginException { + List retVal = new ArrayList(); + System.out.println("In decoderDao getHDF5Data"); + + for (PluginDataObject obj : objects) { + IDataRecord[] record = null; + if (obj instanceof IPersistable) { + /* connect to the data store and retrieve the data */ + try { + record = getDataStore((IPersistable) obj).retrieve( + obj.getDataURI()); + } catch (Exception e) { + throw new PluginException( + "Error retrieving NTRANS HDF5 data", e); + } + retVal.add(record); + } + } + + return retVal; + } + + + + +} + + diff --git a/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/src/gov/noaa/nws/ncep/common/dataplugin/ntrans/dao/package-info.java b/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/src/gov/noaa/nws/ncep/common/dataplugin/ntrans/dao/package-info.java new file mode 100644 index 0000000000..4735d700ad --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/src/gov/noaa/nws/ncep/common/dataplugin/ntrans/dao/package-info.java @@ -0,0 +1,4 @@ +/** +* Contains data access object for NTRANS data. +*/ +package gov.noaa.nws.ncep.common.dataplugin.ntrans.dao; diff --git a/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/src/gov/noaa/nws/ncep/common/dataplugin/ntrans/package-info.java b/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/src/gov/noaa/nws/ncep/common/dataplugin/ntrans/package-info.java new file mode 100644 index 0000000000..d7cb36ab4b --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.common.dataplugin.ntrans/src/gov/noaa/nws/ncep/common/dataplugin/ntrans/package-info.java @@ -0,0 +1,4 @@ +/** +* Contains table record for decoder plug-ins +*/ +package gov.noaa.nws.ncep.common.dataplugin.ntrans; diff --git a/ncep/gov.noaa.nws.ncep.common.dataplugin.solarimage/src/gov/noaa/nws/ncep/common/dataplugin/solarimage/SolarImageRecord.java b/ncep/gov.noaa.nws.ncep.common.dataplugin.solarimage/src/gov/noaa/nws/ncep/common/dataplugin/solarimage/SolarImageRecord.java index f197f90d29..0d8f76a2b6 100644 --- a/ncep/gov.noaa.nws.ncep.common.dataplugin.solarimage/src/gov/noaa/nws/ncep/common/dataplugin/solarimage/SolarImageRecord.java +++ b/ncep/gov.noaa.nws.ncep.common.dataplugin.solarimage/src/gov/noaa/nws/ncep/common/dataplugin/solarimage/SolarImageRecord.java @@ -26,6 +26,8 @@ import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement; * Date Ticket# Engineer Description * ------------ ---------- ---------------- -------------------------- * 12/05/2012 865 sgurung, qzhou Initial creation. + * 01/07/2013 865 qzhou Added "Site" for Halpha. + * 01/28/2013 865 qzhou Changed float to double for intTime. * * * @author sgurung, qzhou @@ -77,7 +79,16 @@ public class SolarImageRecord extends PersistablePluginDataObject { @Column @DynamicSerializeElement @XmlAttribute - private float intTime; + private Double intTime; + + /** + * Site + */ + @DataURI(position = 5) + @Column + @DynamicSerializeElement + @XmlAttribute + private String site; /** * hdu containing image data @@ -90,6 +101,7 @@ public class SolarImageRecord extends PersistablePluginDataObject { /** * report type */ + @DataURI(position = 6) @Column @DynamicSerializeElement @XmlAttribute @@ -167,7 +179,7 @@ public class SolarImageRecord extends PersistablePluginDataObject { /** * @return the intTime */ - public float getIntTime() { + public Double getIntTime() { return intTime; } @@ -175,10 +187,25 @@ public class SolarImageRecord extends PersistablePluginDataObject { * @param intTime * the intTime to set */ - public void setIntTime(float intTime) { + public void setIntTime(Double intTime) { this.intTime = intTime; } + /** + * @return the site + */ + public String getSite() { + return site; + } + + /** + * @param site + * the site to set + */ + public void setSite(String site) { + this.site = site; + } + /** * @return the reportType */ diff --git a/ncep/gov.noaa.nws.ncep.common.staticdata/src/gov/noaa/nws/ncep/common/staticdata/IStaticDataProvider.java b/ncep/gov.noaa.nws.ncep.common.staticdata/src/gov/noaa/nws/ncep/common/staticdata/IStaticDataProvider.java index 2fef1455be..71aa511009 100644 --- a/ncep/gov.noaa.nws.ncep.common.staticdata/src/gov/noaa/nws/ncep/common/staticdata/IStaticDataProvider.java +++ b/ncep/gov.noaa.nws.ncep.common.staticdata/src/gov/noaa/nws/ncep/common/staticdata/IStaticDataProvider.java @@ -22,6 +22,7 @@ import com.raytheon.uf.common.localization.LocalizationContext.LocalizationLevel import com.raytheon.uf.common.localization.LocalizationContext.LocalizationType; import com.vividsolutions.jts.geom.Geometry; import com.vividsolutions.jts.geom.MultiPolygon; +import com.vividsolutions.jts.geom.Polygon; /** * Interface that contains all methods to load NCEP static data. @@ -34,7 +35,8 @@ import com.vividsolutions.jts.geom.MultiPolygon; * 02/12 ? B. Yin Initial Creation. * 05/12 734 J. Zeng add getAllRfcs() and getAllCwas() * 08/12 #770 Q. Zhou added loadContWatchNum() - * 09/05 ? B. Yin Changed county cluster return type. + * 09/12 ? B. Yin Changed county cluster return type. + * 01/13 #966 B. Yin Added methods to load bounds into. * * * @author B. Yin @@ -97,4 +99,10 @@ public interface IStaticDataProvider { //for continuing watches public List loadContWatchNum(); + + //for clipping bounds + public List getBoundsTableList(); + public List getBoundsNames( String table ); + public Polygon loadBounds( String boundsTable, String boundsName ); + } diff --git a/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/tools/decoder/LatLonLocTbl.java b/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/tools/decoder/LatLonLocTbl.java index 84cc63656f..da8833bdb0 100755 --- a/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/tools/decoder/LatLonLocTbl.java +++ b/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/tools/decoder/LatLonLocTbl.java @@ -35,6 +35,7 @@ import org.apache.commons.logging.LogFactory; import com.raytheon.uf.common.localization.IPathManager; import com.raytheon.uf.common.localization.LocalizationContext; import com.raytheon.uf.common.localization.LocalizationContext.LocalizationLevel; +import com.raytheon.uf.common.localization.LocalizationFile; import com.raytheon.uf.common.localization.PathManagerFactory; import com.raytheon.uf.edex.decodertools.core.LatLonPoint; @@ -58,24 +59,25 @@ public class LatLonLocTbl { public static void readLocTable(String tableName) throws Exception { - final String NCEP_DIR = "ncep"; - final String stnsDir = "stns"; - final String vorsLocTableName = "vors.xml"; +// final String NCEP_DIR = "ncep"; +// final String stnsDir = "stns"; +// final String vorsLocTableName = "vors.xml"; + final String VORS_TABLE = "ncep" + File.separator + "stns" + File.separator + "vors.xml"; IPathManager manager = PathManagerFactory.getPathManager(); LocalizationContext baseContext = null; - File baseDir = null; - String stnsFileName = null; - baseContext = manager.getContext(EDEX_STATIC, LocalizationLevel.BASE); - baseContext.setContextName(NCEP_DIR); - baseDir = manager.getFile(baseContext, ""); + + baseContext = manager.getContext( + LocalizationContext.LocalizationType.EDEX_STATIC, + LocalizationContext.LocalizationLevel.BASE); + LocalizationFile file = null; if (tableName == "vors") { - stnsFileName = baseDir + File.separator + stnsDir + File.separator - + vorsLocTableName; + file = manager.getStaticLocalizationFile(VORS_TABLE); } - logger.debug(" stnsFileName=" + stnsFileName); - myloc = new StationTable(stnsFileName); + + if ( file != null ) + myloc = new StationTable(file.getFile().getAbsolutePath()); } diff --git a/ncep/gov.noaa.nws.ncep.edex.plugin.airmet/utility/edex_static/base/distribution/airmet.xml b/ncep/gov.noaa.nws.ncep.edex.plugin.airmet/utility/edex_static/base/distribution/airmet.xml index ef05f4697f..3a4ab06e89 100644 --- a/ncep/gov.noaa.nws.ncep.edex.plugin.airmet/utility/edex_static/base/distribution/airmet.xml +++ b/ncep/gov.noaa.nws.ncep.edex.plugin.airmet/utility/edex_static/base/distribution/airmet.xml @@ -1,4 +1,6 @@ - ^WAUS4[1-6].* + ^WAUS4[1-6] KKCI + ^WAHW[03]1 PHFO + ^WAAK4[7-9] PAWU diff --git a/ncep/gov.noaa.nws.ncep.edex.plugin.aww/src/gov/noaa/nws/ncep/edex/plugin/aww/decoder/AwwDecoder.java b/ncep/gov.noaa.nws.ncep.edex.plugin.aww/src/gov/noaa/nws/ncep/edex/plugin/aww/decoder/AwwDecoder.java index f18691734f..5653e062d7 100644 --- a/ncep/gov.noaa.nws.ncep.edex.plugin.aww/src/gov/noaa/nws/ncep/edex/plugin/aww/decoder/AwwDecoder.java +++ b/ncep/gov.noaa.nws.ncep.edex.plugin.aww/src/gov/noaa/nws/ncep/edex/plugin/aww/decoder/AwwDecoder.java @@ -132,7 +132,7 @@ public class AwwDecoder extends AbstractDecoder { boolean isWtchFlag = AwwDecoder.isWtch(record);//Ticket 456 - boolean isSevereWeatherStatusFlag = AwwDecoder.isSevereWeatherStatus(record); +// boolean isSevereWeatherStatusFlag = AwwDecoder.isSevereWeatherStatus(record); // Get report type String reportType = AwwParser.getReportType(theBulletin); @@ -213,7 +213,7 @@ public class AwwDecoder extends AbstractDecoder { /* * construct VTEC object and then add it to the current Ugc for SevereWeatherStatus aww reocrd */ - if(isSevereWeatherStatusFlag && AwwParser.isSegmentTextValid(segment)) { + if( AwwParser.isSegmentTextValid(segment)) { /* * parse and then set the Watch Number for Status Report */ @@ -239,6 +239,7 @@ public class AwwDecoder extends AbstractDecoder { } } + } } catch (Exception e) { @@ -250,6 +251,10 @@ public class AwwDecoder extends AbstractDecoder { * Check the AWW record object. If not, throws exception. */ if (record != null) { + //T976 - check if the record has a valid UGC. If not return an empty PluginDataObject array + if ( record.getAwwUGC() == null || record.getAwwUGC().size() == 0 ) + return new PluginDataObject[0]; + record.setReportType(reportType.trim().replace(' ', '_')); record.setTraceId(traceId); record.setPluginName(pluginName); @@ -300,14 +305,13 @@ public class AwwDecoder extends AbstractDecoder { public static boolean isWtch(AwwRecord ar){ if(ar == null) return false; - - return "WWUS30".equalsIgnoreCase(ar.getWmoHeader()); + return ("WWUS30".equalsIgnoreCase(ar.getWmoHeader())); } - public static boolean isSevereWeatherStatus(AwwRecord awwReocrd) { - boolean isSevereWeatherStatus = false; - if("WOUS20".equalsIgnoreCase(awwReocrd.getWmoHeader())) - isSevereWeatherStatus = true; - return isSevereWeatherStatus; - } +// public static boolean isSevereWeatherStatus(AwwRecord awwReocrd) { +// boolean isSevereWeatherStatus = false; +// if("WOUS20".equalsIgnoreCase(awwReocrd.getWmoHeader())) +// isSevereWeatherStatus = true; +// return isSevereWeatherStatus; +// } } diff --git a/ncep/gov.noaa.nws.ncep.edex.plugin.aww/src/gov/noaa/nws/ncep/edex/plugin/aww/util/AwwParser.java b/ncep/gov.noaa.nws.ncep.edex.plugin.aww/src/gov/noaa/nws/ncep/edex/plugin/aww/util/AwwParser.java index 84f119f658..082b2e1e26 100644 --- a/ncep/gov.noaa.nws.ncep.edex.plugin.aww/src/gov/noaa/nws/ncep/edex/plugin/aww/util/AwwParser.java +++ b/ncep/gov.noaa.nws.ncep.edex.plugin.aww/src/gov/noaa/nws/ncep/edex/plugin/aww/util/AwwParser.java @@ -235,11 +235,11 @@ public class AwwParser { // "WW\\s\\d{3}\\sTORNADO\\s([A-Z]{2}\\s)+CW\\s(\\d{6}Z)\\s\\-\\s(\\d{6}Z)" // Pattern used to extract Thunderstorm watch number for WATCH // String THUNDERSTORM_WATCH_NUMBER_EXP = "WW\\s(\\d{3})\\sTHUNDERSTORM"; - String THUNDERSTORM_WATCH_NUMBER_EXP = "WW\\s(\\d{3})\\sSEVERE\\sTHUNDERSTORM"; + String THUNDERSTORM_WATCH_NUMBER_EXP = "WW\\s(\\d{1,4})\\sSEVERE\\sTHUNDERSTORM"; //T976 - replaced (\\d{3}) with (\\d{1,4} Pattern thunderstormWatchNumberPattern = Pattern.compile(THUNDERSTORM_WATCH_NUMBER_EXP); Matcher thunderstormWatchNumberMatcher = thunderstormWatchNumberPattern.matcher(segment); - String THUNDERSTORM_WATCH_NUMBER_EXP2 = "WW\\s(\\d{3})\\sSEVERE\\sTSTM"; + String THUNDERSTORM_WATCH_NUMBER_EXP2 = "WW\\s(\\d{1,4})\\sSEVERE\\sTSTM"; //T976 - replaced (\\d{3}) with (\\d{1,4} Pattern thunderstormWatchNumberPattern2 = Pattern.compile(THUNDERSTORM_WATCH_NUMBER_EXP2); Matcher thunderstormWatchNumberMatcher2 = thunderstormWatchNumberPattern2.matcher(segment); @@ -250,7 +250,7 @@ public class AwwParser { watchNumber = thunderstormWatchNumberMatcher2.group(1).trim(); // System.out.println("in processUgcToRetrieveWatchNumber - find THUNDERSTORM_WATCH_NUMBER using 'SEVERE TSTM' key word=" + watchNumber); } else { - String TORNADO_WATCH_NUMBER_EXP = "WW\\s(\\d{3})\\sTORNADO"; + String TORNADO_WATCH_NUMBER_EXP = "WW\\s(\\d{1,4})\\sTORNADO"; //T976 - replaced (\\d{3}) with (\\d{1,4} Pattern tornadoWatchNumberPattern = Pattern.compile(TORNADO_WATCH_NUMBER_EXP); Matcher tornadoWatchNumberMatcher = tornadoWatchNumberPattern.matcher(segment); if(tornadoWatchNumberMatcher.find()) { @@ -264,7 +264,7 @@ public class AwwParser { public static String processUgcToRetrieveWatchNumberForStatusReport(String segment) { String watchNumber = ""; - String STATUS_REPORT_WATCH_NUMBER_EXP = "STATUS REPORT ON WW\\s(\\d{3})"; + String STATUS_REPORT_WATCH_NUMBER_EXP = "STATUS REPORT ON WW\\s(\\d{1,4})"; //T976 - replaced (\\d{3}) with (\\d{1,4} Pattern statusReportWatchNumberPattern = Pattern.compile(STATUS_REPORT_WATCH_NUMBER_EXP); Matcher statusReportWatchNumberMatcher = statusReportWatchNumberPattern.matcher(segment); if(statusReportWatchNumberMatcher.find()) { @@ -276,7 +276,7 @@ public class AwwParser { public static boolean isSegmentTextValid(String segment) { boolean isSegmentValid = false; - String STATUS_REPORT_WATCH_NUMBER_EXP = "STATUS REPORT ON WW\\s(\\d{3})"; + String STATUS_REPORT_WATCH_NUMBER_EXP = "STATUS REPORT ON WW\\s(\\d{1,4})"; //T976 - replaced (\\d{3}) with (\\d{1,4} Pattern statusReportWatchNumberPattern = Pattern.compile(STATUS_REPORT_WATCH_NUMBER_EXP); Matcher statusReportWatchNumberMatcher = statusReportWatchNumberPattern.matcher(segment); if(statusReportWatchNumberMatcher.find()) { @@ -355,6 +355,8 @@ public class AwwParser { // Add current P-VTEC message to set. currentUgc.addAwwVtecLine(currentVtec); } + }else{ + return null; //T976 } AwwParser.processFips(ugcline, currentUgc, mndTime); @@ -517,7 +519,7 @@ public class AwwParser { // Regular expression for VTEC line final String VTEC_EXP = "(/([A-Z]{1}).([A-Z]{3}).([A-Z]{4}).([A-Z]{2}).([A-Z]{1}).([0-9]{4}).([0-9]{6}T[0-9]{4})Z-([0-9]{6}T[0-9]{4})Z/\\x0d\\x0d\\x0a)+"; //final String WTCH_VTEC_EXP = "WW\\s\\d{3}\\sTORNADO\\s([A-Z]{2}\\s)+CW\\s(\\d{6}Z)\\s\\-\\s(\\d{6}Z)"; -final String WTCH_VTEC_EXP = "WW\\s(\\d{3})\\s(TORNADO|SEVERE TSTM)\\s((\\w|\\s)*)\\s(\\d{6}Z)\\s\\-\\s(\\d{6}Z)"; +final String WTCH_VTEC_EXP = "WW\\s(\\d{1,4})\\s(TORNADO|SEVERE TSTM)\\s((\\w+|\\s+)*)\\s(\\d{6}Z)\\s\\-\\s(\\d{6}Z)"; // Pattern used to extract VTEC line // final Pattern vtecPattern = Pattern.compile(VTEC_EXP); //final Pattern wtchVtecPattern = Pattern.compile(WTCH_VTEC_EXP); @@ -575,6 +577,9 @@ if(wtchVtecMatcher.find()) { } } + if (currentUgc.getAwwVtecLine() == null || currentUgc.getAwwVtecLine().size() == 0 ) //T976 - If the UGC has no VTEC/HVTEC info, return null. + return null; + AwwParser.processFips(ugcline, currentUgc, mndTime); latlonIndex[0] = 0; diff --git a/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/.classpath b/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/.classpath new file mode 100644 index 0000000000..ad32c83a78 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/ncep/gov.noaa.nws.ncep.metParameters/.project b/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/.project similarity index 92% rename from ncep/gov.noaa.nws.ncep.metParameters/.project rename to ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/.project index ca528e9b3e..3efd3a40ab 100644 --- a/ncep/gov.noaa.nws.ncep.metParameters/.project +++ b/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/.project @@ -1,6 +1,6 @@ - gov.noaa.nws.ncep.metParameters + gov.noaa.nws.ncep.edex.plugin.ntrans diff --git a/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/.settings/org.eclipse.jdt.core.prefs b/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000..ff9196c13d --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,12 @@ +#Tue Feb 19 10:48:27 EST 2013 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/META-INF/MANIFEST.MF b/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..1b6853482e --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/META-INF/MANIFEST.MF @@ -0,0 +1,16 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: NTRANS PlugIn +Bundle-SymbolicName: gov.noaa.nws.ncep.edex.plugin.ntrans +Bundle-Version: 1.0.0.qualifier +Eclipse-RegisterBuddy: com.raytheon.edex.common, com.raytheon.uf.common.serialization +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Require-Bundle: com.raytheon.edex.common;bundle-version="1.11.22", + gov.noaa.nws.ncep.edex.common;bundle-version="1.0.0", + javax.persistence;bundle-version="1.0.0", + org.apache.commons.logging;bundle-version="1.0.4", + gov.noaa.nws.ncep.common;bundle-version="1.0.0", + com.raytheon.uf.edex.decodertools;bundle-version="1.11.22", + gov.noaa.nws.ncep.common.dataplugin.ntrans;bundle-version="1.0.0" +Import-Package: org.apache.log4j +Export-Package: gov.noaa.nws.ncep.edex.plugin.ntrans.decoder diff --git a/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/build.properties b/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/build.properties new file mode 100644 index 0000000000..5791d48d5f --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/build.properties @@ -0,0 +1,5 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + res/ diff --git a/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/component-deploy.xml b/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/component-deploy.xml new file mode 100644 index 0000000000..82d3846fdd --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/component-deploy.xml @@ -0,0 +1,11 @@ + + + + + + + diff --git a/ncep/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1VcrdTable/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1VcrdTable.ecl b/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/gov.noaa.nws.ncep.edex.plugin.ntrans.ecl similarity index 100% rename from ncep/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1VcrdTable/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1VcrdTable.ecl rename to ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/gov.noaa.nws.ncep.edex.plugin.ntrans.ecl diff --git a/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/res/spring/ntrans-common.xml b/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/res/spring/ntrans-common.xml new file mode 100644 index 0000000000..4ebbb136ff --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/res/spring/ntrans-common.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/res/spring/ntrans-ingest.xml b/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/res/spring/ntrans-ingest.xml new file mode 100644 index 0000000000..06597f58f6 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/res/spring/ntrans-ingest.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + ntrans + + + + + + + + + + + + + + + + + + + + java.lang.Throwable + + + + + + java.lang.Throwable + + + + + + + \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/src/gov/noaa/nws/ncep/edex/plugin/ntrans/decoder/NtransDecoder.java b/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/src/gov/noaa/nws/ncep/edex/plugin/ntrans/decoder/NtransDecoder.java new file mode 100644 index 0000000000..84c258a979 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/src/gov/noaa/nws/ncep/edex/plugin/ntrans/decoder/NtransDecoder.java @@ -0,0 +1,199 @@ +/** + * + * NTRANS Decoder + * + * This class decodes legacy NTRANS Metafiles. + * + * HISTORY + * + * Date Author Description + * ------------ ---------- ----------- -------------------------- + * 03/2013 B. Hebbard Initial creation + * + * This code has been developed by the SIB for use in the AWIPS2 system. + */ + +package gov.noaa.nws.ncep.edex.plugin.ntrans.decoder; + + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.nio.ByteBuffer; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import gov.noaa.nws.ncep.common.dataplugin.ntrans.NtransRecord; + +import com.raytheon.edex.exception.DecoderException; +import com.raytheon.edex.plugin.AbstractDecoder; +import com.raytheon.uf.common.dataplugin.PluginDataObject; +import com.raytheon.uf.common.dataplugin.PluginException; +import com.raytheon.uf.common.time.DataTime; +import com.raytheon.edex.esb.Headers; + + +public class NtransDecoder extends AbstractDecoder { + + private static String pluginName ;//= "NTRANS"; + /** + * Constructor + * + * @throws DecoderException + */ + public NtransDecoder(String name) throws DecoderException { + pluginName = name; + } + + private class FrameHeader { + String validTimeString; + String productNameString; + int startPos; + int endPos; + } + + /** + * + * @param inputFile : ingest file to be decoded + * @return + * @throws DecoderException + * @throws PluginException + * + */ + public synchronized PluginDataObject[] decodeNtransMetafile(File inputFile) throws DecoderException, PluginException { + byte [] fileData = null; + byte [] headerData = null; + InputStream inputStream = null; + String fileTitle = null; + short fileMaxFrame = 0; + short fileVersion = 0; + short fileMachineTypes = 0; + byte [] fileReservedSpace = new byte[42]; + + List frameHeaders = new ArrayList(); + List records = new ArrayList(); + List pdolist = new ArrayList(); + + try { + + fileName = inputFile.getName(); + inputStream = new FileInputStream(inputFile); + + // Read NTRANS metafile header + + /* + headerData = new byte[80]; + int headerBytesRead = inputStream.read(headerData); + */ + + byte[] fileTitleBytes = new byte[32]; + int fileTitleBytesRead = inputStream.read(fileTitleBytes); + fileTitle = new String(fileTitleBytes); + //System.out.println("[File title: " + fileTitle + "]"); + + byte[] remHeaderBytes = new byte[48]; + int remHeaderBytesRead = inputStream.read(remHeaderBytes); + ByteBuffer byteBuffer = null; + byteBuffer = ByteBuffer.allocate(48); + byteBuffer.put(remHeaderBytes,0,48); + byteBuffer.rewind(); + + fileMaxFrame = byteBuffer.getShort(); + fileVersion = byteBuffer.getShort(); + fileMachineTypes = byteBuffer.getShort(); + + // Read NTRANS frame headers (follow file header; precede frame contents) + + for (int frame = 0 ; frame < fileMaxFrame-1 ; frame++) { + if (frame>=500) break; + byte[] frameHeaderBytes = new byte[72]; + int frameHeaderBytesRead = inputStream.read(frameHeaderBytes); + if (frameHeaderBytes[0] == 0x00 && frameHeaderBytes[1] == 0x20) break; // hit data + byteBuffer = ByteBuffer.allocate(72); + byteBuffer.put(frameHeaderBytes); + byteBuffer.rewind(); + byte[] labelTitleBytes = new byte[64]; + byteBuffer.get(labelTitleBytes); + String labelTitle = new String(labelTitleBytes); + int startPos = byteBuffer.getInt(); + int endPos = byteBuffer.getInt(); + //System.out.println("[startPos " + startPos + " endPos " + endPos + "]"); + FrameHeader fh = new FrameHeader (); + fh.validTimeString = labelTitle.substring(0, 8); + fh.productNameString = labelTitle.substring(9); + fh.startPos = startPos; + fh.endPos = endPos; + frameHeaders.add(fh); + } + + System.out.println("this"); + + // Read NTRANS frames (CGM coded images) + + for (FrameHeader fh : frameHeaders) { + int startPos = fh.startPos; + int endPos = fh.endPos; + byte[] frameImage = { 0x04 , 0x02 }; // test + //byte[] frameImage = new byte[endPos - startPos + 0]; + //int imageBytesRead = inputStream.read(frameImage); + System.out.println("stop"); + + // Create NTRANS record (PDO) + + NtransRecord record = new NtransRecord(); + record.setInputFile(inputFile.getName()); + record.setConvertedMessage(frameImage); + record.setValidTimeString(fh.validTimeString); + record.setProductNameString(fh.productNameString); + Calendar dummyTBD = Calendar.getInstance(); + record.setStartTime(dummyTBD); + record.setEndTime(dummyTBD); + record.setRecordLength(0); + record.setDataTime(new DataTime(dummyTBD)); + + if (record != null) { + try { + record.setPluginName(pluginName); + record.constructDataURI(); + } + catch (PluginException e) { + throw new DecoderException("Error constructing dataURI", e); + } + } + + records.add(record); + } + + } + catch (IOException ioe) { + logger.error("Error reading input file " + inputFile.getName(), ioe); + fileData = null; + } + catch (Exception e) { + fileData = null; + } + finally { + if (inputStream != null) { + try { + inputStream.close(); + } catch (IOException ioe) { + logger.error("Could not close input file " + inputFile.getName()); + } + } + } + + if (records.isEmpty()) { + return new PluginDataObject[0]; + } else { + PluginDataObject[] pdos = records.toArray(new PluginDataObject[0]); + return pdos; + } + + + } +} + + diff --git a/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/src/gov/noaa/nws/ncep/edex/plugin/ntrans/decoder/package-info.java b/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/src/gov/noaa/nws/ncep/edex/plugin/ntrans/decoder/package-info.java new file mode 100644 index 0000000000..4d1dadc8da --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/src/gov/noaa/nws/ncep/edex/plugin/ntrans/decoder/package-info.java @@ -0,0 +1,4 @@ +/** +* Contains decoder.java for decoder plug-ins +*/ +package gov.noaa.nws.ncep.edex.plugin.ntrans.decoder;; diff --git a/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/utility/common_static/base/purge/ntransPurgeRules.xml b/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/utility/common_static/base/purge/ntransPurgeRules.xml new file mode 100644 index 0000000000..8ec526365d --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/utility/common_static/base/purge/ntransPurgeRules.xml @@ -0,0 +1,6 @@ + + + + 02-00:00:00 + + diff --git a/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/utility/edex_static/base/distribution/ntrans.xml b/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/utility/edex_static/base/distribution/ntrans.xml new file mode 100644 index 0000000000..405e30cfe4 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.edex.plugin.ntrans/utility/edex_static/base/distribution/ntrans.xml @@ -0,0 +1,3 @@ + + + diff --git a/ncep/gov.noaa.nws.ncep.edex.plugin.solarimage/src/gov/noaa/nws/ncep/edex/plugin/solarimage/SolarImageDecoder.java b/ncep/gov.noaa.nws.ncep.edex.plugin.solarimage/src/gov/noaa/nws/ncep/edex/plugin/solarimage/SolarImageDecoder.java index f0309ac732..56cda08657 100644 --- a/ncep/gov.noaa.nws.ncep.edex.plugin.solarimage/src/gov/noaa/nws/ncep/edex/plugin/solarimage/SolarImageDecoder.java +++ b/ncep/gov.noaa.nws.ncep.edex.plugin.solarimage/src/gov/noaa/nws/ncep/edex/plugin/solarimage/SolarImageDecoder.java @@ -26,6 +26,8 @@ import com.raytheon.uf.common.time.DataTime; * Date Ticket# Engineer Description * ------------ ---------- --------------- ------------------------ * 12/05/2012 865 qzhou, sgurung Initial creation. + * 01/07/2013 865 qzhou Change "_" to "-". Add wavelength default "NA". Add "Site" for Halpha. + * 01/28/2013 865 qzhou Changed float to double for intTime. * * * @author qzhou, sgurung @@ -47,6 +49,8 @@ public class SolarImageDecoder extends AbstractDecoder { private static final String INT_TIME = "INT_TIME"; + private static final String SITE = "SITE"; + private static final String[] OBS_TIME_STRINGS = { "DATE_OBS", "DATE-OBS", "DATEOBS"}; private static final String[] THEMATIC = { "themes", "covariances", "channels", "means" }; @@ -89,7 +93,7 @@ public class SolarImageDecoder extends AbstractDecoder { } catch (FitsException e) { // TODO Auto-generated catch block. Please revise as appropriate. logger.error(e); - return new PluginDataObject[0]; + //return new PluginDataObject[0]; } if (hdu == null) { @@ -99,15 +103,29 @@ public class SolarImageDecoder extends AbstractDecoder { record.setReportType("SOLARIMAGE"); record.setImageHDUNum(imageHDUNum); - record.setInstrument(hdu.getInstrument() + ((hdu.getTrimmedString(DETECTOR)!=null) ? "-" + hdu.getTrimmedString(DETECTOR) :"")); + + // combine instrument-detector to instrument + String instrument = hdu.getInstrument(); + String detector = hdu.getTrimmedString(DETECTOR); + if (instrument == null) + instrument = "NA"; + else + instrument = instrument.replaceAll("_", "-"); + record.setInstrument(instrument + ((detector!=null) ? "-" + detector.replaceAll("_", "-") :"")); + String telescope = hdu.getTelescope(); if (telescope != null && telescope.startsWith("SDO/")) telescope = telescope.substring(0, 3); - if (telescope != null && telescope.equals(STEREO)) // find which one (A or B) - telescope = hdu.getTrimmedString(OBSERVATORY); - record.setSatellite(telescope); + if (telescope != null && telescope.equals(STEREO)) { // find which one (A or B) + telescope = hdu.getTrimmedString(OBSERVATORY); //STEREO_A, STEREO_B + } + record.setSatellite(telescope.replaceAll("_", "-")); + if (telescope.equals("NSO-GONG")) + record.setSite(hdu.getTrimmedString(SITE)); + else + record.setSite("NA"); String wavelen = hdu.getTrimmedString(WAVELENGTH); if (wavelen == null) { @@ -115,35 +133,29 @@ public class SolarImageDecoder extends AbstractDecoder { if (hdu.getHeader().containsKey(WAVELENGTH)) wavelen = hdu.getHeader().findCard(WAVELENGTH).getValue(); } - record.setWavelength(wavelen); + + if (wavelen == null || wavelen.isEmpty() || wavelen.trim().equals("0") || wavelen.trim().equals("0.0")) + wavelen = "NA"; + + record.setWavelength(wavelen.toUpperCase().replaceAll("_", "-")); // Temporary hack for Thematic data - if (wavelen == null && hdu.getTelescope().startsWith("SDO/AIA")) { + if (hdu.getTrimmedString(WAVELENGTH) == null && hdu.getTelescope().startsWith("SDO/AIA")) { BasicHDU tempHDU = fits.getHDU(1); if (tempHDU != null) { String value = tempHDU.getTrimmedString("TTYPE1"); if (value != null ) { for (String str: THEMATIC) { if (value.contains(str)) { - record.setWavelength("Thematic"); + record.setWavelength("THEMATIC"); break; } } } } } -// if (wavelen == null) { -// String themes = "themes"; -// BasicHDU tempHDU = fits.getHDU(1); -// if (tempHDU != null) { -// String value = tempHDU.getTrimmedString("TTYPE1"); -// if (value != null && value.equals(themes)) { -// record.setWavelength(themes); -// } -// } -// } - record.setIntTime(hdu.getHeader().getFloatValue(INT_TIME)); + record.setIntTime(hdu.getHeader().getDoubleValue(INT_TIME)); Calendar obTime = Calendar.getInstance(TimeZone.getTimeZone("GMT")); obTime.setTime(getObservationTime(hdu)); diff --git a/ncep/gov.noaa.nws.ncep.edex.plugin.solarimage/utility/common_static/base/purge/solarimagePurgeRules.xml b/ncep/gov.noaa.nws.ncep.edex.plugin.solarimage/utility/common_static/base/purge/solarimagePurgeRules.xml index 2ebbdc4194..1ab725f9dd 100644 --- a/ncep/gov.noaa.nws.ncep.edex.plugin.solarimage/utility/common_static/base/purge/solarimagePurgeRules.xml +++ b/ncep/gov.noaa.nws.ncep.edex.plugin.solarimage/utility/common_static/base/purge/solarimagePurgeRules.xml @@ -5,7 +5,6 @@ solarimage default - - true + 27-00:00:00 \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.edex.uengine/src/gov/noaa/nws/ncep/edex/uengine/tasks/profile/MdlSoundingQuery.java b/ncep/gov.noaa.nws.ncep.edex.uengine/src/gov/noaa/nws/ncep/edex/uengine/tasks/profile/MdlSoundingQuery.java index 17cdad73db..8b513a5b71 100644 --- a/ncep/gov.noaa.nws.ncep.edex.uengine/src/gov/noaa/nws/ncep/edex/uengine/tasks/profile/MdlSoundingQuery.java +++ b/ncep/gov.noaa.nws.ncep.edex.uengine/src/gov/noaa/nws/ncep/edex/uengine/tasks/profile/MdlSoundingQuery.java @@ -70,7 +70,7 @@ import com.vividsolutions.jts.geom.Polygon; import com.vividsolutions.jts.geom.impl.CoordinateArraySequence; public class MdlSoundingQuery { - private static final String NCGRIB_TBL_NAME = "ncgrib"; + private static final String NCGRIB_TBL_NAME = "ncgrib";//obsoleting.... private static final String D2DGRIB_TBL_NAME = "grid"; private static String NC_PARMS = "HGHT, UREL, VREL, TMPK, OMEG, RELH"; @@ -89,10 +89,11 @@ public class MdlSoundingQuery { .getConverterTo(SI.CELSIUS); private static final UnitConverter metersPerSecondToKnots = SI.METERS_PER_SECOND.getConverterTo(NonSI.KNOT); + //Note; we are using NCInventory now. So, this api is actually not used. public static NcSoundingTimeLines getMdlSndTimeLine(String mdlType, String currentDBTblName) { NcSoundingTimeLines tl = new NcSoundingTimeLines(); - + /* if(currentDBTblName.equals(NCGRIB_TBL_NAME)){ Object[] refTimeAry = null; String queryStr = new String("Select Distinct reftime FROM " @@ -120,8 +121,19 @@ public class MdlSoundingQuery { e.printStackTrace(); } - } + } */ + //Chin: modified for Unified Grid DB + // Use the following SQL statement + //Select Distinct reftime FROM grid FULL JOIN grid_info ON grid.info_id=grid_info.id where grid_info.datasetid='gfs' ORDER BY reftime DESC + Object[] refTimeAry = null; + String queryStr = new String("Select Distinct reftime FROM grid FULL JOIN grid_info ON grid.info_id=grid_info.id where grid_info.datasetid='" + + mdlType + + "' ORDER BY reftime DESC"); + + CoreDao dao = new CoreDao(DaoConfig.forClass(NcgribRecord.class)); + refTimeAry = (Object[]) dao.executeSQLQuery(queryStr); + tl.setTimeLines(refTimeAry); return tl; @@ -130,6 +142,7 @@ public class MdlSoundingQuery { public static NcSoundingTimeLines getMdlSndRangeTimeLine(String mdlType, String refTimeStr, String currentDBTblName) { NcSoundingTimeLines tl = new NcSoundingTimeLines(); + /* if(currentDBTblName.equals(NCGRIB_TBL_NAME)){ Object[] refTimeAry = null; String queryStr = new String("Select Distinct rangestart FROM " @@ -159,9 +172,56 @@ public class MdlSoundingQuery { } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); - } + }*/ + //Chin: modified for Unified Grid DB + // make sure data in DB is not just nHour data, as those data are not used by Nsharp. And when query to it, the returned will be + // null. We do not want to show such sounding time line to user. + // use this SQL query string for gfs as example. + /* + * Select Distinct rangestart FROM grid FULL JOIN grid_info ON grid.info_id=grid_info.id where + * grid.reftime = '2012-01-26 00:00:00' AND grid.rangestart = grid.rangeend AND grid_info.datasetid='mesoEta212' AND + * grid_info.parameter_abbreviation='T' order by rangestart + */ + Object[] soundingTimeAry = null; + List reSoundingTimeAry = new ArrayList(); + String queryStr = new String("Select Distinct rangestart FROM grid FULL JOIN grid_info ON grid.info_id=grid_info.id where grid.reftime = '" + + refTimeStr + ":00:00' AND grid.rangestart = grid.rangeend AND grid_info.datasetid='"+mdlType+"' AND grid_info.parameter_abbreviation='T' order by rangestart"); + //System.out.println("queryStr " + queryStr); + CoreDao dao = new CoreDao(DaoConfig.forClass(GridRecord.class)); + soundingTimeAry = (Object[]) dao.executeSQLQuery(queryStr); + for(int i=0; i< soundingTimeAry.length; i++){ + /* + * Chin: make sure the time line has more than 5 T(temp) values at pressure (levelone) greater/equal than/to 100 hPa (mbar) + * use this SQL : + * Select count(rangestart) FROM (select rangestart FROM grid FULL JOIN grid_info ON grid.info_id=grid_info.id + * FULL JOIN level ON grid_info.level_id= level.id + * where grid.rangestart = '2012-01-26 03:00:00.0' AND + * grid.rangestart = grid.rangeend AND grid_info.datasetid='mesoEta212' AND + * grid_info.parameter_abbreviation='T' AND level.levelonevalue > 99) X HAVING count(X.rangestart) >5 + */ + String queryStr1 = new String("Select count(rangestart) FROM (select rangestart FROM grid FULL JOIN grid_info ON grid.info_id=grid_info.id FULL JOIN level ON grid_info.level_id= level.id where grid.rangestart = '" + + soundingTimeAry[i] + "' AND grid.rangestart = grid.rangeend AND grid_info.datasetid='"+mdlType+"' AND grid_info.parameter_abbreviation='T' AND level.levelonevalue > 99) X HAVING count(X.rangestart) >5"); + Object[] countAry = null; + //System.out.println("queryStr1 " + queryStr1); + countAry = (Object[]) dao.executeSQLQuery(queryStr1); + java.math.BigInteger count = new java.math.BigInteger("0"); + if(countAry.length >0 ){ + //System.out.println("rangestart =" +soundingTimeAry[i]+" number="+countAry[0]); + count = (java.math.BigInteger)countAry[0]; + } + //else{ + // System.out.println("rangestart =" +soundingTimeAry[i]+" return null"); + //} + if(count.intValue() > 5){ + Object timeLine= soundingTimeAry[i]; + reSoundingTimeAry.add(timeLine); + } } + + tl.setTimeLines(reSoundingTimeAry.toArray()); + + //} return tl; } // public static NcSoundingProfile getMdlSndData(double lat, double lon, // String stn, long refTimeL, long validTimeL, String sndTypeStr, diff --git a/ncep/gov.noaa.nws.ncep.edex.uengine/src/gov/noaa/nws/ncep/edex/uengine/tasks/profile/NcSoundingDrv.java b/ncep/gov.noaa.nws.ncep.edex.uengine/src/gov/noaa/nws/ncep/edex/uengine/tasks/profile/NcSoundingDrv.java index c2d8b7e63c..1c84703775 100644 --- a/ncep/gov.noaa.nws.ncep.edex.uengine/src/gov/noaa/nws/ncep/edex/uengine/tasks/profile/NcSoundingDrv.java +++ b/ncep/gov.noaa.nws.ncep.edex.uengine/src/gov/noaa/nws/ncep/edex/uengine/tasks/profile/NcSoundingDrv.java @@ -154,7 +154,7 @@ public class NcSoundingDrv { public void setUseNcSoundingLayer2(boolean useNcSoundingLayer2) { this.useNcSoundingLayer2 = useNcSoundingLayer2; - System.out.println("useNcSoundingLayer2 set to "+useNcSoundingLayer2); + //System.out.println("useNcSoundingLayer2 set to "+useNcSoundingLayer2); } public long[] getRangeTimeArr() { @@ -173,7 +173,7 @@ public class NcSoundingDrv { String tStr= String.format("%1$tY-%1$tm-%1$td %1$tH:00:00", timeCal); this.rangeTimeStringLst.add(tStr); this.rangeTimeCalLst.add(timeCal); - System.out.println("setRangeTimeArr: time in long="+rangeTimeArr[i]+ " in str="+tStr); + //System.out.println("setRangeTimeArr: time in long="+rangeTimeArr[i]+ " in str="+tStr); } } public String[] getStnIdArr() { diff --git a/ncep/gov.noaa.nws.ncep.edex.uengine/src/gov/noaa/nws/ncep/edex/uengine/tasks/profile/ObservedSoundingQuery.java b/ncep/gov.noaa.nws.ncep.edex.uengine/src/gov/noaa/nws/ncep/edex/uengine/tasks/profile/ObservedSoundingQuery.java index 38705202be..06ae3e9471 100644 --- a/ncep/gov.noaa.nws.ncep.edex.uengine/src/gov/noaa/nws/ncep/edex/uengine/tasks/profile/ObservedSoundingQuery.java +++ b/ncep/gov.noaa.nws.ncep.edex.uengine/src/gov/noaa/nws/ncep/edex/uengine/tasks/profile/ObservedSoundingQuery.java @@ -292,7 +292,7 @@ public class ObservedSoundingQuery { return tl; } synopTimeAry = (Object[]) dao.executeSQLQuery(queryStr); - //*System.out.println("size of synoptictime " + synopTimeAry.length); + //System.out.println("size of synoptictime " + synopTimeAry.length); //for(int i=0; i < synopTimeAry.length; i++){ // if(synopTimeAry[i] != null) @@ -997,14 +997,14 @@ public class ObservedSoundingQuery { result = request.execute(); long t002 = System.currentTimeMillis(); //totalRqTime=totalRqTime+(t002-t001); - System.out.println("getObservedSndNcUairDataGeneric data query alone took "+(t002-t001)+"ms"); + //System.out.println("getObservedSndNcUairDataGeneric data query alone took "+(t002-t001)+"ms"); if (result != null) { long t003 = System.currentTimeMillis(); returnedDbRecords = NcUairToRecord.toNcUairRecordsList(result); if(returnedDbRecords!= null && returnedDbRecords.size() > 0){ - System.out.println("getObservedSndNcUairDataGeneric Before loop: Number of records in returnedDbRecords="+returnedDbRecords.size()); + //System.out.println("getObservedSndNcUairDataGeneric Before loop: Number of records in returnedDbRecords="+returnedDbRecords.size()); //Chin: keep list of records for same station //search through all returned records and keep same staion's records in one list int loopLen; @@ -1114,13 +1114,13 @@ public class ObservedSoundingQuery { } long t004 = System.currentTimeMillis(); - System.out.println(" sorting return records took "+(t004-t003)+"ms"); + //System.out.println(" sorting return records took "+(t004-t003)+"ms"); } } catch (Exception e) { e.printStackTrace(); } - System.out.println("getObservedSndNcUairDataGeneric Number profiles (record[]s) in finalRecordArrayList="+finalRecordArrayList.size()); + //System.out.println("getObservedSndNcUairDataGeneric Number profiles (record[]s) in finalRecordArrayList="+finalRecordArrayList.size()); return finalRecordArrayList; } /* diff --git a/ncep/gov.noaa.nws.ncep.edex.uengine/src/gov/noaa/nws/ncep/edex/uengine/tasks/profile/PfcSoundingQuery.java b/ncep/gov.noaa.nws.ncep.edex.uengine/src/gov/noaa/nws/ncep/edex/uengine/tasks/profile/PfcSoundingQuery.java index 3e3d1f9da9..4223d48f01 100644 --- a/ncep/gov.noaa.nws.ncep.edex.uengine/src/gov/noaa/nws/ncep/edex/uengine/tasks/profile/PfcSoundingQuery.java +++ b/ncep/gov.noaa.nws.ncep.edex.uengine/src/gov/noaa/nws/ncep/edex/uengine/tasks/profile/PfcSoundingQuery.java @@ -566,9 +566,9 @@ public class PfcSoundingQuery { d=d.substring(0, d.length()-1);//get rid of last "," values.add(d); //rangestart data type defined in SoundingSite is "Date" operands.add("in"); - for (int i=0; i < fields.size(); i++) { - System.out.println("getPfcSndDataGeneric: field ="+ fields.get(i) + " value= "+ values.get(i) + " operand= "+operands.get(i)); - } + //for (int i=0; i < fields.size(); i++) { + // System.out.println("getPfcSndDataGeneric: field ="+ fields.get(i) + " value= "+ values.get(i) + " operand= "+operands.get(i)); + //} List parameters = new ArrayList(12); parameters.addAll(ModelSoundingPointDataTransform.LVL_PARAMETERS); parameters.add(ModelSoundingPointDataTransform.P_LATITUDE); @@ -583,8 +583,8 @@ public class PfcSoundingQuery { long t01 = System.currentTimeMillis(); lSndSiteRecords = ModelSoundingPointDataTransform.getSoundingSites(fields, values, operands, parameters); long t02 = System.currentTimeMillis(); - System.out.println("getPfcSndDataGeneric sounding site record size = "+ lSndSiteRecords.size()+ - " took "+(t02-t01)+ " ms"); + //System.out.println("getPfcSndDataGeneric sounding site record size = "+ lSndSiteRecords.size()+ + // " took "+(t02-t01)+ " ms"); for(SoundingSite sndSite:lSndSiteRecords){ //set pf data NcSoundingProfile pf = new NcSoundingProfile(); diff --git a/ncep/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1Vcrd/.project b/ncep/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1Vcrd/.project deleted file mode 100644 index e545c70a90..0000000000 --- a/ncep/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1Vcrd/.project +++ /dev/null @@ -1,11 +0,0 @@ - - - gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1Vcrd - - - - - - - - diff --git a/ncep/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1VcrdTable/.project b/ncep/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1VcrdTable/.project deleted file mode 100644 index cd07ab7253..0000000000 --- a/ncep/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1VcrdTable/.project +++ /dev/null @@ -1,11 +0,0 @@ - - - gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1VcrdTable - - - - - - - - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/META-INF/MANIFEST.MF b/ncep/gov.noaa.nws.ncep.metParameters/META-INF/MANIFEST.MF deleted file mode 100644 index 619a865372..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/META-INF/MANIFEST.MF +++ /dev/null @@ -1,20 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: MetParameters -Bundle-SymbolicName: gov.noaa.nws.ncep.metParameters;singleton:=true -Bundle-Version: 1.0.0.qualifier -Bundle-Activator: gov.noaa.nws.ncep.metparameters.Activator -Require-Bundle: org.eclipse.ui, - com.raytheon.viz.core;bundle-version="1.12.1142", - org.eclipse.core.runtime, - org.junit -Bundle-ActivationPolicy: lazy -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 -Import-Package: com.vividsolutions.jts.geom, - com.vividsolutions.jts.io, - gov.noaa.nws.ncep.common.log.logger, - javax.measure.converter, - javax.measure.quantity, - javax.measure.unit -Export-Package: gov.noaa.nws.ncep.metParameters.parameterConversion, - gov.noaa.nws.ncep.metparameters diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metParameters/parameterConversion/GempakConstants.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metParameters/parameterConversion/GempakConstants.java deleted file mode 100644 index 66d7a3421d..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metParameters/parameterConversion/GempakConstants.java +++ /dev/null @@ -1,100 +0,0 @@ -package gov.noaa.nws.ncep.metParameters.parameterConversion; - -/** - *
- * 
- * SOFTWARE HISTORY
- * 
- * Date         Ticket# Engineer    Description
- * ------------ ------- ----------- --------------------------
- *        2011	398		Archana		Initial Creation
- * 04 Apr 2011	398		F. J. Yen	Change fields in METERS_TO_KILOMETERS. FEET_TO_MILES,
- * 									METERS_TO_DECAMETERS to floating point.
- * 
- * - * @author archana - */ -public class GempakConstants { - - /**Missing Float value*/ - public static final float RMISSD = -9999.0f; - - /**Missing Integer value*/ - public static final float IMISSD = -9999; - - /**Missing value fuzziness*/ - public static final float RDIFFD = 0.1f; - - /**Earth's radius*/ - public static final float RADIUS = 6371200.f; - - /**Earth's angular velocity*/ - public static final float OMEGA = 7.2921E-5f; - - /**Acceleration of gravity*/ - public static final float GRAVTY = 9.80616f; - - public static final float RDGAS = 287.04f; - - /** Gas constant of dry air*/ - public static final float RKAP = RDGAS / GRAVTY; - - /**Centigrade -> Kelvin*/ - public static final float TMCK = 273.15f; - - /**US standard atmospheric lapse rate*/ - public static final float GAMUSD = 6.5f; - - /**Poisson constant*/ - public static final float RKAPPA = 2.0f / 7.0f; - - /**Inverse Poisson constant*/ - public static final float AKAPPA = 7.0f / 2.0f; - - /** Used in conversion from Celsius to Farenheit*/ - public static final float RPRM = 9.0f / 5.0f; - - public static final float PI = 3.14159265f; - - public static final float HALFPI = PI / 2.0f; - - public static final float TWOPI = 2 * PI; - - public static final float PI4TH = PI / 4; - - public static final float DTR = PI / 180; - - public static final float RTD = 180 / PI; - - public static final float FEET_TO_METERS = 0.3048f; - - public static final float METERS_TO_FEET = 3.28084f; - - public static final float MILES_PER_HOUR_TO_KNOTS = 0.868976f; - - public static final float KNOTS_TO_MILES_PER_HOUR = 1 / 0.868976f; - - public static final float METERS_PER_SEC_TO_KNOTS = 1.9425f; - - public static final float KNOTS_TO_METERS_PER_SEC = 1 / 1.9425f; - - public static final float FEET_TO_MILES = 1f / 5280f; - - public static final float MILES_TO_FEET = 5280; - - public static final float METERS_TO_KILOMETERS = 1 / 1000f; - - public static final float KILOMETERS_TO_METERS = 1000.0f; - - public static final float METERS_TO_DECAMETERS = 1f / 10f; - - public static final float DECAMETERS_TO_METERS = 10.0f; - - public static final float NAUTICAL_MILES_TO_METERS = 1852.0f; - - public static final float METERS_TO_NAUTICAL_MILES = 1 / 1852.0f; - - public static final float INCHES_TO_MILLIMETERS = 25.4f; - - public static final float MILLIMETERS_TO_INCHES = .0393701f; -} \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metParameters/parameterConversion/NcUnits.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metParameters/parameterConversion/NcUnits.java deleted file mode 100644 index 6adb42fb8e..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metParameters/parameterConversion/NcUnits.java +++ /dev/null @@ -1,54 +0,0 @@ -package gov.noaa.nws.ncep.metParameters.parameterConversion; - - -import gov.noaa.nws.ncep.metParameters.quantity.RateOfChangeInTemperatureWithHeight; -import gov.noaa.nws.ncep.metParameters.quantity.RateOfChangeInTemperatureWithPressure; - -import javax.measure.quantity.Length; -import javax.measure.quantity.Pressure; -import javax.measure.unit.NonSI; -import javax.measure.unit.ProductUnit; -import javax.measure.unit.SI; -import javax.measure.unit.Unit; -import javax.measure.unit.UnitFormat; -/** - * @author archana - * - */ -public class NcUnits { - public static final Unit GRAMS_PER_KILOGRAM = SI.GRAM.divide(SI.KILOGRAM) ; - public static final Unit HUNDREDS_OF_FEET = NonSI.FOOT.times( 100 ); - public static Unit INCHES_PER_THREE_HOURS = NonSI.INCH.divide(NonSI.HOUR.times( 3 ) ); - public static final Unit JOULES_PER_KILOGRAM = SI.JOULE.divide(SI.KILOGRAM) ; - //public static final Unit KILOGRAM_PER_METER_CUBE = VolumetricDensity.UNIT; - public static final Unit MILLIBAR = SI.HECTO( SI.PASCAL ); - public static final Unit FREQUENCY_SQUARED = SI.HERTZ.times(SI.HERTZ); - //TODO Rename CELSIUS_PER_KILOMETER to TEMPERATURE_PER_UNIT_HEIGHT ?? - - public static final Unit CELSIUS_PER_KILOMETER = - new ProductUnit( SI.CELSIUS.divide( SI.KILOMETER ) ); - public static final Unit KELVIN_PER_MILLIBAR = - new ProductUnit( SI.KELVIN.divide( NcUnits.MILLIBAR ) ); - - public static void register(){ - if( UnitFormat.getUCUMInstance().isValidIdentifier( "100*inHg") ) { - System.out.println("100*inHg is invalid"); - } - UnitFormat.getUCUMInstance().label( NonSI.INCH_OF_MERCURY.divide(100), "centi_inHg" ); - UnitFormat.getUCUMInstance().label( HUNDREDS_OF_FEET, "hecto_ft" ); -// UnitFormat.getUCUMInstance().label( GRAMS_PER_KILOGRAM, "g/kg" ); -// UnitFormat.getUCUMInstance().label( JOULES_PER_KILOGRAM, "J/kg" ); - UnitFormat.getUCUMInstance().label( MILLIBAR, "mb" ); -// UnitFormat.getUCUMInstance().label( CELSIUS_PER_KILOMETER, "℃/km" ); -// UnitFormat.getUCUMInstance().label( KELVIN_PER_MILLIBAR, "K/mb" ); - - // UnitFormat.getUCUMInstance().label( KILOGRAM_PER_METER_CUBE, "kg/m³" ); -// UnitFormat.getUCUMInstance().label( INCHES_PER_THREE_HOURS, "in/hr*3" ); -// UnitFormat.getUCUMInstance().label( FREQUENCY_SQUARED, "Hz^2" ); //not sure if this will parse... - - // aliases to make editing the plotParameter.xml files easier (ie no non-ascii chars) - UnitFormat.getUCUMInstance().label( NonSI.DEGREE_ANGLE, "degree" ); - - - } -} \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metParameters/parameterConversion/PRLibrary.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metParameters/parameterConversion/PRLibrary.java deleted file mode 100644 index 68f4fd8d19..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metParameters/parameterConversion/PRLibrary.java +++ /dev/null @@ -1,2205 +0,0 @@ -/* - * - * PRLibrary - * - * Date created 04 May 2011 - * - * This code has been developed by the SIB for use in the AWIPS2 system. - */ -package gov.noaa.nws.ncep.metParameters.parameterConversion; - -import gov.noaa.nws.ncep.metparameters.Amount; - -import java.util.Arrays; - -import javax.measure.converter.UnitConverter; -import javax.measure.quantity.Temperature; -import javax.measure.quantity.VolumetricDensity; -import javax.measure.unit.NonSI; -import javax.measure.unit.SI; -import javax.measure.unit.Unit; - -import com.raytheon.uf.viz.core.exception.VizException; - - -public final class PRLibrary { - - /** - * Computes altimeter from the station pressure and elevation - * @param pres - pressure at the station - * @param selv - elevation of the station - * @return the computed altimeter in Inches - * @throws NullPointerException - * @throws InvalidValueException - */ - public static final Amount prAltp( Amount pres, Amount selv) throws InvalidValueException, NullPointerException{ - System.out.println("From prAltp:"); - System.out.println(" pres = " + pres.doubleValue()); - System.out.println(" selv = " + selv.doubleValue()); - - checkNullOrInvalidValue( pres ); - checkNullOrInvalidValue( selv ); - selv = checkAndConvertInputAmountToExpectedUnits(selv, SI.METER ); - pres = checkAndConvertInputAmountToExpectedUnits(pres, NcUnits.MILLIBAR); - double seaLevelTempInKelvin = GempakConstants.TMCK + 15; - double hgtk = selv.getUnit().getConverterTo( SI.KILOMETER ).convert( selv.doubleValue() ) ; - double exponent = - ( GempakConstants.GRAVTY / ( GempakConstants.GAMUSD * GempakConstants.RDGAS ) * 1000 ); - // double base = pres * ( 1.0f - ( hgtk * GempakConstants.GAMUSD / seaLevelTempInKelvin ) ); - // float altm = (float) Math.pow( base, Math.exp( exponent ) ); - // return prAlti( pres * altm ); - double base = ( 1.0 - ( hgtk * GempakConstants.GAMUSD / seaLevelTempInKelvin ) ); - double altm = Math.pow( base, exponent ); - double altp = pres.doubleValue() * altm; - return ( new Amount ( altp, NonSI.INCH_OF_MERCURY ) ); - } - - - - - /*** - * Computes the Ceiling converted to Mean Sea Level in hundreds of feet - * @param ceil - Ceiling in hundreds of feet - * @param selv - Station elevation in meters - * @return The ceiling converted to Mean Sea Level in hundreds of feet - * @throws NullPointerException - * @throws InvalidValueException - */ - public static final Amount prCmsl( Amount ceil, Amount selv) throws InvalidValueException, NullPointerException{ - System.out.println("From prCmsl:"); - System.out.println(" ceil = " + ceil.doubleValue()); - System.out.println(" selv = " + selv.doubleValue()); - /*Sanity check*/ - checkNullOrInvalidValue( ceil ); - checkNullOrInvalidValue( selv ); - selv = checkAndConvertInputAmountToExpectedUnits(selv, NcUnits.HUNDREDS_OF_FEET); - ceil = checkAndConvertInputAmountToExpectedUnits(ceil, NcUnits.HUNDREDS_OF_FEET); - return ( new Amount ( selv.doubleValue() + ceil.doubleValue() , NcUnits.HUNDREDS_OF_FEET ) ); - } - - /** - * Computes the wind direction in degrees from the input u and v components of velocity, - * both of which must be in the same units (either meters/second or knots) - * @param uX - U component of velocity - * @param vX- V component of velocity - * @return The wind direction in degrees - * @throws NullPointerException - * @throws InvalidValueException - */ - public static final Amount prDrct ( Amount uX, Amount vX) throws InvalidValueException, NullPointerException{ - System.out.println("From prDrct:"); - System.out.println(" uX = " + uX.doubleValue()); - System.out.println(" vX = " + vX.doubleValue()); - - checkNullOrInvalidValue(uX); - checkNullOrInvalidValue(vX); - double vXVal = Double.NaN; - double uXVal = Double.NaN; - if ( uX.getUnit() != vX.getUnit() && uX.getUnit().isCompatible(vX.getUnit() )) { - vXVal = vX.getUnit().getConverterTo(uX.getUnit() ).convert(vX.doubleValue() ); - vX = new Amount ( vXVal, uX.getUnit() ); - } - uXVal = uX.doubleValue(); - double prDrct = 0.0; - - if ( ( uXVal != 0 ) || ( vXVal != 0 ) ){ - prDrct = Math.atan2(-uXVal, -vXVal) * GempakConstants.RTD; - if ( prDrct <= 0 ) - prDrct += 360; - } - return ( new Amount ( prDrct , NonSI.DEGREE_ANGLE )); - - } - - /** - * Computes the density of dry air given the pressure (in mb) - * and temperature (in Celsius) - * @param pres - Pressure in millibars - * @param tmpc - Temperature in Celsius - * @return Density of dry air in kg/(m**3) - * @throws InvalidRangeException - * @throws NullPointerException - * @throws InvalidValueException - */ - public static final Amount prDden ( Amount pres, Amount tmpc ) throws InvalidRangeException, InvalidValueException, NullPointerException{ - System.out.println("From prDden:"); - System.out.println(" pres = " + pres.doubleValue()); - System.out.println(" tmpc = " + tmpc.doubleValue()); - - double prdden = GempakConstants.RMISSD; - /*Check for bad data*/ - checkNullOrInvalidValue(pres); - checkNullOrInvalidValue(tmpc); - pres = checkAndConvertInputAmountToExpectedUnits( pres, NcUnits.MILLIBAR ); - tmpc = checkAndConvertInputAmountToExpectedUnits( tmpc, SI.CELSIUS ); - - double tmpcVal = tmpc.doubleValue(); - if ( tmpcVal < -GempakConstants.TMCK ) - throw new InvalidRangeException("From prDden: temperature must be greater than or equal to -273.15 "); - - /* Convert temperature and compute*/ - double tmpk = tmpc.getUnit().getConverterTo( SI.KELVIN ).convert( tmpcVal ); - prdden = 100 * pres.doubleValue() / ( GempakConstants.RDGAS * tmpk ); - - return new Amount ( prdden, VolumetricDensity.UNIT ); - } - - /*** - * Computes the dewpoint depression, from tmpx and dwpx, both of which - * must be in the same units (one of Kelvin, Celsius or Farenheit) - * @param tmpx - Air temperature - * @param dwpx - Dewpoint temperature - * @return the dewpoint depresssion (in the same units are tmpx and dwpx) - * if both tmpx and dwpx are valid values - */ - - public static final Amount prDdep ( Amount tmpx, Amount dwpx) throws InvalidValueException, NullPointerException{ - System.out.println("From prDdep:"); - System.out.println(" tmpx = " + tmpx.doubleValue()); - System.out.println(" dwpx = " + dwpx.doubleValue()); - checkNullOrInvalidValue(tmpx); - checkNullOrInvalidValue(tmpx); - Amount prDdep = null; - - dwpx = checkAndConvertInputAmountToExpectedUnits( dwpx, tmpx.getUnit() ); - double dewpointDepression = tmpx.doubleValue() - dwpx.doubleValue(); - prDdep = new Amount ( dewpointDepression , tmpx.getUnit()); - return prDdep; - } - - /** - * Computes DMAX, the maximum temperature obtained by - * comparing the 6-hour maximum at 00Z, - * the 6-hour maximum at 06Z and - * the local midnight maximum (reported at 00 LST) - * if either of the 6-hour values is missing, the maximum is set to missing. - * The inputs are in Celsius, the output in degrees Farenheit - * @param t00x - 6-hour maximum temperature at 00Z, Celsius - * @param t06x - 6-hour maximum temperature at 06Z, Celsius - * @param tdxc - Local midnight max temperature at 00 LST, Celsius - * @return The maximum of the 3 temperature values (in Farenheit) - * @throws NullPointerException - * @throws InvalidValueException - */ - public static final Amount prDmax ( Amount t00x, Amount t06x, Amount tdxc) throws InvalidValueException, NullPointerException{ - System.out.println("From prDmax:"); - System.out.println(" t00x = " + t00x.doubleValue()); - System.out.println(" t06x = " + t06x.doubleValue()); - System.out.println(" tdxc= " + tdxc.doubleValue()); - - checkNullOrInvalidValue(t00x); - checkNullOrInvalidValue(t06x); - t00x = checkAndConvertInputAmountToExpectedUnits( t00x, SI.CELSIUS ); - t06x = checkAndConvertInputAmountToExpectedUnits( t06x, SI.CELSIUS ); - - if ( tdxc != null && tdxc.doubleValue() > -9999 ) { - tdxc = checkAndConvertInputAmountToExpectedUnits( tdxc, SI.CELSIUS ); - double[] tempArray = { t00x.doubleValue(), t06x.doubleValue(), tdxc.doubleValue() }; - - Arrays.sort(tempArray); - double newTemp = SI.CELSIUS.getConverterTo(NonSI.FAHRENHEIT).convert(tempArray[2]); - return ( new Amount ( newTemp , NonSI.FAHRENHEIT ) ); - } - else{ - double t00xVal = t00x.doubleValue(); - double t06xVal = t06x.doubleValue(); - Amount dmax = ( t00xVal > t06xVal - ? checkAndConvertInputAmountToExpectedUnits(t00x, NonSI.FAHRENHEIT) - : checkAndConvertInputAmountToExpectedUnits(t06x, NonSI.FAHRENHEIT ) ); - return dmax; - } - - } - - /** - *
-	 * Computes the minimum temperature obtained by
-	 * comparing the 6-hour minimum at 12Z and the 6-hour minimum at 18Z.
-	 * if either of the 6-hour values is missing, the minimum is set to missing.
-	 * The inputs are in degrees C, the output in degrees F.
-	 *  
- * @param t12n - 6-hour minimum temperature at 12Z, deg Celsius - * @param t18n - 6-hour minimum temperature at 18Z, deg Celsius - * @return the minimum temperature (in Farenheit) after comparing the two input values, if they exist - * @throws NullPointerException - * @throws InvalidValueException - */ - public static final Amount prDmin ( Amount t12n, Amount t18n ) throws InvalidValueException, NullPointerException{ - System.out.println("From prDmin:"); - System.out.println(" t12n = " + t12n.doubleValue()); - System.out.println(" t18n = " + t18n.doubleValue()); - checkNullOrInvalidValue( t12n ); - checkNullOrInvalidValue( t18n ); - t12n = checkAndConvertInputAmountToExpectedUnits( t12n,SI.CELSIUS); - t18n = checkAndConvertInputAmountToExpectedUnits( t18n,SI.CELSIUS); - Amount minValue = ( t12n.doubleValue() < t18n.doubleValue() ? t12n : t18n); - return ( checkAndConvertInputAmountToExpectedUnits(minValue, NonSI.FAHRENHEIT) ); - - } - - /** - * Computes the dewpoint as the difference between the input temperature and dewpoint depression - * @param tmpx - temperature (in Celsius or Farenheit or Kelvin) - * @param dpdx - the dewpoint depression ( in the same units as the temperature) - * @return the dewpoint in the same units as ( in the same units as the temperature) - * @throws NullPointerException - * @throws InvalidValueException - */ - public static final Amount prDwdp( Amount tmpx, Amount dpdx ) throws InvalidValueException, NullPointerException{ - System.out.println("From prDwdp:"); - System.out.println(" tmpx = " + tmpx.doubleValue()); - System.out.println(" dpdx = " + dpdx.doubleValue()); - - checkNullOrInvalidValue(tmpx); - checkNullOrInvalidValue(dpdx); - Unit tempUnits = (Unit) tmpx.getUnit(); - Unit dewpointDepUnits = (Unit) dpdx.getUnit(); - if ( !tempUnits.equals( dewpointDepUnits) && tempUnits.isCompatible(dewpointDepUnits)){ - double dewpointDepValue= (double) dewpointDepUnits.getConverterTo(tempUnits).convert(dpdx.doubleValue()); - dpdx = new Amount ( dewpointDepValue, tempUnits); - } - - Amount dewpointTemperature = new Amount ( tmpx.doubleValue() - dpdx.doubleValue(), tempUnits ); - return dewpointTemperature; - } - - /** - * Computes the dewpoint ( in Celsius ) from the mixing ratio (in grams/kilogram) - * and the pressure (in mb) - * @param rmix - the mixing ratio (in grams/kilogram) - * @param pres - the pressure (in mb) - * @return the dewpoint (in Celsius), if both the input values are valid - * @throws InvalidRangeException - * @throws NullPointerException - * @throws InvalidValueException - */ - public static final Amount prDwpt( Amount rmix, Amount pres) throws InvalidRangeException, InvalidValueException, NullPointerException{ - System.out.println("From prDwpt:"); - System.out.println(" rmix = " + rmix.doubleValue()); - System.out.println(" pres = " + pres.doubleValue()); - Amount prDwpt = null; - checkNullOrInvalidValue( rmix ); - checkNullOrInvalidValue( pres ); - rmix = checkAndConvertInputAmountToExpectedUnits( rmix, Unit.ONE ); - pres = checkAndConvertInputAmountToExpectedUnits( pres, NcUnits.MILLIBAR ); - double mixingRatioValue = rmix.doubleValue() ; - double pressureValue = pres.doubleValue(); - if ( mixingRatioValue <= 0 ) - throw new InvalidRangeException("From prDwpt() - mixing ratio must be greater than 0"); - - if ( pressureValue <= 0 ) - throw new InvalidRangeException("From prDwpt() - pres must be greater than 0"); - - /*Convert gram/kilogram to gram/gram*/ - double ratio = mixingRatioValue / 1000; - - /*Calculate vapor pressure from mixing ratio and pressure*/ - double vaporPressure = ( pressureValue * ratio ) / ( 0.62197 + ratio ); - - /*Correct vapor pressure*/ - vaporPressure = vaporPressure / ( 1.001 + ( ( pressureValue - 100.0 ) / 900) * .0034 ) ; - - /*Calculate dewpoint*/ - double dewPointValue = ( double ) ( Math.log ( vaporPressure / 6.112 ) * 243.5 / ( 17.67 - Math.log( vaporPressure / 6.112 ) ) ) ; - prDwpt = new Amount ( dewPointValue, SI.CELSIUS); - return prDwpt; - } - - /*** - * Computes the Fosberg index from the temperature, relative humidity and wind speed - * at the surface. - * @param tmpc - Temperature in Celsius - * @param relh - Relative humidity in percent - * @param sped - Wind speed in meters/second - * @return the Fosberg index - * @throws NullPointerException - * @throws InvalidValueException - */ - public static final Amount prFosb( Amount tmpc, Amount relh, Amount sped) throws InvalidValueException, NullPointerException{ - System.out.println("From prFosb:"); - System.out.println("Temperature ( in K ) is: " + tmpc.doubleValue()); - System.out.println("Relative Humidity is: " + relh.doubleValue()); - System.out.println("Wind Speed is: " + sped.doubleValue()); - checkNullOrInvalidValue( tmpc ); - - checkNullOrInvalidValue( relh ); - checkNullOrInvalidValue( sped ); - - // tmpc = checkAndConvertInputAmountToExpectedUnits( tmpc, SI.CELSIUS ); - tmpc = checkAndConvertInputAmountToExpectedUnits( tmpc, NonSI.RANKINE); - relh = checkAndConvertInputAmountToExpectedUnits( relh, NonSI.PERCENT ); - sped = checkAndConvertInputAmountToExpectedUnits( sped, SI.METERS_PER_SECOND ); - - /*Change temperature to degrees Fahrenheit*/ - // double tf = tmpc.getUnit().getConverterTo(NonSI.FAHRENHEIT).convert(tmpc.doubleValue()); - Unit unit = tmpc.getUnit(); - // UnitConverter unitConvert = unit.getConverterTo(NonSI.FAHRENHEIT); - UnitConverter unitConvert = unit.getConverterTo(NonSI.RANKINE); - double tf = unit.getConverterTo(NonSI.FAHRENHEIT).convert(tmpc.doubleValue()); - - /*Convert wind speed from meters/second to knots*/ - double smph = sped.getUnit().getConverterTo( NonSI.MILES_PER_HOUR ).convert( sped.doubleValue() ); - - - double A = 0.03229; - double B = 0.281073; - double C = 0.000578; - double D = 2.22749; - double E = 0.160107; - double F = 0.014784; - double G = 21.0606; - double H = 0.005565; - double P = 0.00035; - double Q = 0.483199; - double R = 0.3002; - // float T = 9.0f/5.0f; - // float U = 1.9425f; - // float V = 0.868976f; - double fw = GempakConstants.RMISSD; - double relhVal = relh.doubleValue(); - if ( relhVal <= 10 ) { - fw = A + B * relhVal - C * relhVal * tf; - } - else if ( relhVal <= 50 ) { - fw = D + E * relhVal - F * tf; - } - else{ - fw = G + H *relhVal*relhVal - P * relhVal * tf - Q * relhVal; - } - - double sss = ( double ) ( Math.sqrt ( 1. + ( smph * smph ) )); - double fwd = fw / 30; - double fwd2 = fwd * fwd; - double fwd3 = fwd2 * fwd; - double fire = 1 - 2 * fwd + 1.5f * fwd2 - 0.5f * fwd3; - - /*Find the Fosberg Index*/ - - double prfosb = ( fire * sss ) / R; - - return ( new Amount ( prfosb , Unit.ONE ) ); - } - - /** - *
-	 * Computes the Southern Region/CPC Rothfusz heat index.
-	 * 
-	 * The Rothfusz regression is optimal for TMPF > ~80 and RELH > ~40%.   
-	 * This code applies a simple heat index formula and then resorts to   
-	 * the Rothfusz regression only if the simple heat index exceeds 80,   
-	 * implying temperatures near, but slightly below 80.  To make the    
-	 * simple calculation continuous with the values obtained from the   
-	 * Rothfusz regression, the simple result is averaged with TMPF in    
-	 * computing the simple heat index value.                               
-	 * Source:  NWS Southern Region SSD Technical Attachment SR 90-23  7/1/90.  
-	 * Heat Index was originally known as the apparent temperature index 
-	 * (Steadman, JAM, July, 1979).                                                                  
-	 * This code includes adjustments made by the CPC for low RELH at high  
-	 * TMPF and high RELH for TMPF in the mid 80's.
-	 * 
-	 * 
-	 * @param tmpf  - the input air temperature
-	 * @param relh   - the relative humidity 
-	 * @return the heat index (in deg Farenheit) if both 
-	 * the input air temperature and relative humidity
-	 * are valid values 
-	 * 
- * @throws NullPointerException - * @throws InvalidValueException - */ - public static final Amount prHeat( Amount tmpf, Amount relh ) throws InvalidValueException, NullPointerException{ - System.out.println("From prHeat:"); - System.out.println(" tmpf = " + tmpf.doubleValue()); - System.out.println(" relh = " + relh.doubleValue()); - - double prheat = GempakConstants.RMISSD; - checkNullOrInvalidValue( tmpf ); - checkNullOrInvalidValue( relh ); - tmpf = checkAndConvertInputAmountToExpectedUnits( tmpf, NonSI.FAHRENHEIT ); - relh = checkAndConvertInputAmountToExpectedUnits( relh, NonSI.PERCENT ); - double tmpfVal = tmpf.doubleValue(); - double relhVal = relh.doubleValue(); - /*If the temperature is less than 40 degrees, set the heat index to the temperature*/ - if ( tmpfVal <= 40 ) - prheat = tmpfVal; - else{ - /* - * Compute a simple heat index. If the value is less than 80 deg F - * use it - */ - prheat = ( float ) ( 61 + ( tmpfVal - 68 ) * 1.2 + relhVal * 0.094); - prheat = ( float ) ( ( tmpfVal + prheat ) * 0.5); - /*Else compute the full regression value*/ - if ( prheat >= 80.0 ){ - double t2 = tmpfVal * tmpfVal; - double r2 = relhVal * relhVal; - prheat = ( float ) ( -42.379 - + 2.04901523 * tmpfVal - + 10.14333127 * relhVal - - 0.22475541 * tmpfVal * relhVal - - 0.00683783 * t2 - - 0.05481717 * r2 - + 0.00122874 * t2 * relhVal - + 0.00085282 * tmpfVal *r2 - - 0.00000199 * t2 * r2 ); - /* - * Adjust for high regression at low relative humidity for temperatures above 80 degrees F. - */ - if ( ( relhVal <= 13.0 ) && ( ( tmpfVal >= 80.0 ) &&( tmpfVal <= 112.0 ) ) ) { - float adj1 = ( float) ( ( 13. - relhVal ) / 4 ); - float adj2 = ( float ) ( Math.sqrt ( ( 17 - Math.abs (tmpfVal - 95) ) / 17 ) ); - float adj = adj1 * adj2; - prheat -= adj; - } - /* - * Adjust for low regression at high relative humidity and temperatures in the mid-80s - */ - else if ( ( relhVal > 85 ) && ( ( tmpfVal >= 80.0 ) &&( tmpfVal <= 87.0 ) ) ){ - float adj1 = ( float) ( ( relhVal - 85.0 ) / 10.0 ); - float adj2 = ( float ) ( ( 87.0 - tmpfVal ) / 5); - float adj = adj1 * adj2; - prheat += adj; - } - } - } - return ( new Amount ( prheat,NonSI.FAHRENHEIT ) ); - } - - /** - * Computes the humiture index from the air temperature and the dew point - * temperature using the equation: PR_HMTR = TMPF + ( PR_VAPR ( DWPC ) - 21 ) - * @param tmpf - the air temperature (in Farenheit) - * @param dwpf - the dew point (in Farenheit) - * @return the humiture index if both the air temperature and the dewpoint temperature are - * valid values - * @throws InvalidRangeException - * @throws NullPointerException - * @throws InvalidValueException - */ - public static final Amount prHmtr( Amount tmpf, Amount dwpf) throws InvalidValueException, NullPointerException, InvalidRangeException{ - System.out.println("From prHmtr:"); - System.out.println(" tmpf = " + tmpf.doubleValue()); - System.out.println(" dwpf = " + dwpf.doubleValue()); - - double prhmtr = GempakConstants.RMISSD; - checkNullOrInvalidValue(dwpf); - checkNullOrInvalidValue(tmpf); - tmpf = checkAndConvertInputAmountToExpectedUnits( tmpf, NonSI.FAHRENHEIT ); - dwpf = checkAndConvertInputAmountToExpectedUnits( dwpf, NonSI.FAHRENHEIT ); - - Amount dwpc = checkAndConvertInputAmountToExpectedUnits(dwpf, SI.CELSIUS); - prhmtr = tmpf.doubleValue() + ( prVapr( dwpc ).doubleValue() - 21 ); - - return ( new Amount ( prhmtr, Unit.ONE)); - } - - /** - * Computes the rate of ice accretion/growth of ice - * on a vessel in salt water, in units of inches per 3 hours (the WMO standard) - * The formula used is - * IGRO = ( A*pr + B*pr*pr + C*pr*pr*pr ) * CVFAC - * where - * A = 2.73 * 10e-2 - * B = 2.91 * 10e-4 - * C = 1.84 * 10e-6 - * pr = ( sped * ( -1.7 - tmpc ) ) / ( 1 + 0.4 * ( sstc + 1.7 ) ) - * (priesendorfer regression) - * and - * CVFAC = 1.1811, to convert cm/hr to in/3hr. - * - * @param tmpc - the observed surface air temperature in Celsius - * @param sstc - the observed surface sea temperature in Celsius - * @param sped - the observed wind speed - * @return the rate of ice growth if all the input values are valid and lie between specific limits - * and if the rate of ice growth that is computed is greater than or equal to 0, - * @throws NullPointerException - * @throws InvalidValueException - * @throws InvalidRangeException - */ - public static final Amount prIgro ( Amount tmpc, Amount sstc, Amount sped) throws InvalidValueException, NullPointerException, InvalidRangeException{ - System.out.println("From prIgro:"); - System.out.println(" tmpc = " + tmpc.doubleValue()); - System.out.println(" sstc = " + sstc.doubleValue()); - System.out.println(" sped = " + sped.doubleValue()); - - double prigro = GempakConstants.RMISSD; - checkNullOrInvalidValue( tmpc ) ; - checkNullOrInvalidValue( sstc ) ; - checkNullOrInvalidValue( sped ) ; - checkAndConvertInputAmountToExpectedUnits( tmpc, SI.CELSIUS ); - checkAndConvertInputAmountToExpectedUnits( sstc, SI.CELSIUS ); - - //TODO: verify that wind speed can have any unit - double tmpcVal = tmpc.doubleValue(); - double sstcVal = sstc.doubleValue(); - double spedVal = sped.doubleValue(); - - /* Check that these values are within the valid range */ - - if ( spedVal < 0 || spedVal > 50) - throw new InvalidRangeException("The wind speed must lie between 0 and 50. Both limits inclusive"); - - if ( tmpcVal < -20 || tmpcVal > 0 ) - throw new InvalidRangeException("The observed surface air temperature must lie between -20 and 0. Both limits inclusive"); - - if ( sstcVal < -1.7f || sstcVal > 12 ) - throw new InvalidRangeException("The observed surface sea temperature must lie between -1.7 and 12. Both limits inclusive"); - - double A = 0.0273f; - double B = 0.000291f; - double C = 0.00000184f; - double cvfac = 1.1811f; // to convert cm/hr to in per 3 hours - double pr = ( ( spedVal * ( -1.7 - tmpcVal ) ) / ( 1 + 0.4 * ( sstcVal + 1.7 ) ) ); // Compute the Priesendorfer regression - double pr2 = pr * pr; - prigro = ( A * pr + B * pr2 + C * pr * pr2 ) * cvfac; - if ( prigro < 0 ) - throw new InvalidRangeException("The rate of ice growth must be greater than or equal to 0"); - return ( new Amount ( prigro, NcUnits.INCHES_PER_THREE_HOURS ) ); - } - - /** - * Computes the latent heat of vaporization at constant pressure - * from the input temperature (in Celsius) using the equation: - * LHVP = ( 2.500 - .00237 * TMPC ) * 10E6 - * LHVP is in J/kg. - * @param tmpc - the input temperature (in Celsius) - * @return the latent heat of vaporization at constant pressure if - * the input temperature is valid - * @throws NullPointerException - * @throws InvalidValueException - */ - public static final Amount prLhvp( Amount tmpc) throws InvalidValueException, NullPointerException{ - - System.out.println("From prLhvp:"); - System.out.println(" tmpc = " + tmpc.doubleValue()); - - checkNullOrInvalidValue(tmpc); - tmpc = checkAndConvertInputAmountToExpectedUnits(tmpc, SI.CELSIUS); - double latentHeatOfVapr = ( float) ( (2.500 - 0.00237 * tmpc.doubleValue()) * 1000000); - return ( new Amount ( latentHeatOfVapr, NcUnits.JOULES_PER_KILOGRAM ) ); - } - - /** - * Computes the temperature of a parcel lifted (or sunk) - * adiabatically to a given pressure. - * @param thta - Potential temperature in Kelvin - * @param thte - Equivalent potential temp in Kelvin - * @param pres - Lifted pressure in millibar - * @return the lifted temperature in Celsius, if all the input parameters are valid - * @throws NullPointerException - * @throws InvalidValueException - * @throws InvalidRangeException - */ - public static final Amount prLtmp ( Amount thta, Amount thte, Amount pres ) throws InvalidValueException, NullPointerException, InvalidRangeException{ - System.out.println("From prLtmp:"); - System.out.println(" thta = " + thta.doubleValue()); - System.out.println(" thte = " + thte.doubleValue()); - System.out.println(" pres = " + pres.doubleValue()); - - double prltmp = GempakConstants.RMISSD; - checkNullOrInvalidValue(thta); - checkNullOrInvalidValue(thte); - checkNullOrInvalidValue(pres); - thta = checkAndConvertInputAmountToExpectedUnits(thta, SI.KELVIN); - thte = checkAndConvertInputAmountToExpectedUnits(thte, SI.KELVIN); - - if ( pres.doubleValue() <= 0 ) - pres = new Amount ( 500, NcUnits.MILLIBAR ); - - /*Compute parcel temperatures on moist and dry adiabats*/ - Amount tmpe = prTmst ( thte, pres, new Amount (0, SI.KELVIN )); - Amount tmpd = prTmpk ( pres, thta); - checkNullOrInvalidValue(tmpe); - checkNullOrInvalidValue(tmpd); - /* - * ( Non-Javadoc ) - * The correct parcel temperature is the warmer of the - * temperature on the dry adiabat and the temperature on the - * moist adiabat. - */ - - double tmpeVal = tmpe.doubleValue(); - double tmpdVal = tmpd.doubleValue(); - if ( tmpeVal > tmpdVal ){ - prltmp = SI.KELVIN.getConverterTo(SI.CELSIUS).convert( tmpeVal ); - }else{ - prltmp = SI.KELVIN.getConverterTo(SI.CELSIUS).convert( tmpdVal ); - } - - return ( new Amount ( prltmp, SI.CELSIUS )); - } - - /** - * Computes the mountain obscuration threshold met indicator - * @param cmsl - Ceiling converted to MSL in 100's of ft - * @param otval - Mountain obscuration threshold in 100's of ft - * @return The mountain obscuration threshold met indicator if - * the input values are valid - * @throws NullPointerException - * @throws InvalidValueException - */ - public static final Amount prMobs ( Amount cmsl, Amount otval) throws InvalidValueException, NullPointerException{ - System.out.println("From prMobs:"); - System.out.println(" cmsl = " + cmsl.doubleValue()); - System.out.println(" otval = " + otval.doubleValue()); - - checkNullOrInvalidValue( cmsl ); - checkNullOrInvalidValue( otval ); - cmsl = checkAndConvertInputAmountToExpectedUnits( cmsl, NcUnits.HUNDREDS_OF_FEET ); - otval = checkAndConvertInputAmountToExpectedUnits( otval, NcUnits.HUNDREDS_OF_FEET ); - return ( cmsl.doubleValue() < otval.doubleValue() ? new Amount ( 1, Unit.ONE) : new Amount ( 1, Unit.ONE) ); - } - - /** - * Computes the mixing ratio in grams/kilograms from the dewpoint ( in Celsius ) - * and the pressure ( in mb) using the equation: - * MIXR = .62197 * ( e / ( PRES - e ) ) * 1000. - * where - * e = VAPR * corr - * corr = (1.001 + ( ( PRES - 100. ) / 900. ) * .0034) - * ( University of Wisconsin green sheet ). - * This method can also be used for the folloiwng computations: - * MIXS from TMPC and PRES - * SMXR from DWPC and PALT - * SMXS from TMPC and PALT - * - * @param dwpc - the dewpoint ( in Celsius ) - * @param pres - the pressure ( in mb) - * @return the missing ratio ( in grams / kilograms ) if both the input - * parameters are valid - * @throws NullPointerException - * @throws InvalidValueException - * @throws InvalidRangeException - */ - public static final Amount prMixr ( Amount dwpc, Amount pres ) throws InvalidValueException, NullPointerException, InvalidRangeException{ - System.out.println("From prMixr:"); - System.out.println(" dwpc = " + dwpc.doubleValue()); - System.out.println(" pres = " + pres.doubleValue()); - - Amount prmixr = new Amount ( -9999.0, Unit.ONE); - checkNullOrInvalidValue(pres); - checkNullOrInvalidValue(dwpc); - pres = checkAndConvertInputAmountToExpectedUnits(pres, NcUnits.MILLIBAR); - dwpc = checkAndConvertInputAmountToExpectedUnits(dwpc, SI.CELSIUS); - - /*Calculate vapor pressure*/ - Amount vapr = prVapr ( dwpc ); - - checkNullOrInvalidValue(vapr); - vapr = checkAndConvertInputAmountToExpectedUnits(vapr, NcUnits.MILLIBAR); - double pressureValue = pres.doubleValue(); - double vaporPressureValue = vapr.doubleValue(); - /* - * (Non-Javadoc) - * corr is a correction to the vapor pressure since the atmosphere is not an ideal gas. - */ - double corr = ( double ) (1.001 + ( ( pressureValue - 100 ) / 900 ) * 0.0034 ); - double e = corr * vaporPressureValue; - - /* - * Test for unphysical case of large E at low PRES - */ - if ( e <= ( 0.5 * pressureValue ) ){ - /*Calculate mixing ratio */ - prmixr = new Amount ( ( double ) ( 0.62197 * ( e / ( pressureValue - e ) ) * 1000 ) , NcUnits.GRAMS_PER_KILOGRAM ); - } - return prmixr; - } - - /** - * Extracts the pressure change ( in millibars ) from - * the pressure tendency information - * @param p03d - Pressure tendency information - * @return the pressure change ( in mb ) - * @throws NullPointerException - * @throws InvalidValueException - */ - //TODO : remove it to make it a part of display options or let it stay? - public static final Amount prP03c( Amount p03d) throws InvalidValueException, NullPointerException{ - System.out.println("From prP03c:"); - System.out.println(" p03d = " + p03d.doubleValue()); - - - double prp03c = GempakConstants.RMISSD; - checkNullOrInvalidValue( p03d ); - double p03dVal = p03d.doubleValue(); - float[] psign = {1, 1, 1, 1, 0, -1, -1, -1, -1}; - int itendc = ( int ) ( p03dVal / 1000); - float ptend = ( float ) ( ( ( int ) p03dVal ) % 1000 ) / 10f; - // TODO: compare tests with legacy - if ( itendc < psign.length ) - prp03c = psign[itendc] * ptend; - - return ( new Amount ( prp03c , NcUnits.MILLIBAR ) ); - } - - - /** - * Computes station pressure from altimeter and station elevation using - * the equation - * PALT = ALTM * ( 1 - ( SELK * GAMUSD / To ) ) ** expo - * where - * SELK = SELV / 1000 - * To = US Std. Atmos. sea level temp in Kelvin - * = TMCK + 15 - * expo = GRAVTY / ( GAMUSD * RDGAS ) * 1000 - * Wallace and Hobbs. - * - * @param altm - Altimeter in millibars - * @param selv - Station elevation in meters - * @return the pressure in millibars if none of the input values are missing - * @throws NullPointerException - * @throws InvalidValueException - */ - public static final Amount prPalt ( Amount altm, Amount selv) throws InvalidValueException, NullPointerException{ - System.out.println("From prPalt:"); - System.out.println(" altm = " + altm.doubleValue()); - System.out.println(" selv = " + selv.doubleValue()); - - checkNullOrInvalidValue( altm ); - checkNullOrInvalidValue( selv ); - altm = checkAndConvertInputAmountToExpectedUnits( altm, NcUnits.MILLIBAR ); - selv = checkAndConvertInputAmountToExpectedUnits( selv, SI.METER ); - double hgtk = selv.getUnit().getConverterTo( SI.KILOMETER ).convert( selv.doubleValue() ); - - /*Calculate the exponent*/ - double expo = ( GempakConstants.GRAVTY / ( GempakConstants.GAMUSD * GempakConstants.RDGAS ) * 1000.0f); - - /*Calculate pressure*/ - double prpalt = ( altm.doubleValue() * Math.pow( ( 1 - ( hgtk * GempakConstants.GAMUSD/ ( GempakConstants.TMCK + 15 ) ) ) , expo ) ); - - return ( new Amount ( prpalt, NcUnits.MILLIBAR ) ); - } - - /** - * Computes the lifted condensation level pressure ( in mb ) for a parcel of air - * from TMPC, PRES, and TLCL. TLCL may be computed using PR_TLCL. The equation - * used is a modified Poisson equation: - * PLCL = PRES * ( TLCL / TMPK ) ** ( 1 / RKAPPA ) - * @param tmpc - Temperature ( in Celsius ) before lifting the air parcel - * @param pres - Pressure ( in mb ) before lifting the air parcel - * @param tlcl - Temperature ( in Kelvin ) at the lifted condensation level - * @return the pressure at the lifted condensation level, if all the inputs are valid - * @throws NullPointerException - * @throws InvalidValueException - */ - public static final Amount prPlcl ( Amount tmpc, Amount pres, Amount tlcl) throws InvalidValueException, NullPointerException{ - double prplcl = GempakConstants.RMISSD; - System.out.println("From prPlcl:"); - System.out.println(" tmpc = " + tmpc.doubleValue()); - System.out.println(" pres = " + pres.doubleValue()); - System.out.println(" tlcl = " + tlcl.doubleValue()); - - checkNullOrInvalidValue(tmpc); - checkNullOrInvalidValue(pres); - checkNullOrInvalidValue(tlcl); - tmpc = checkAndConvertInputAmountToExpectedUnits(tmpc, SI.CELSIUS); - pres = checkAndConvertInputAmountToExpectedUnits(pres, NcUnits.MILLIBAR); - tlcl = checkAndConvertInputAmountToExpectedUnits(tlcl, SI.KELVIN); - Amount tmpk = checkAndConvertInputAmountToExpectedUnits(tmpc, SI.KELVIN) ; - double tclValue = tlcl.doubleValue(); - double tmpkValue = tmpk.doubleValue(); - double presValue = pres.doubleValue(); - prplcl = ( double ) ( presValue * Math.pow( ( tclValue / tmpkValue ) , ( 1 / GempakConstants.RKAPPA ) ) ); - return new Amount ( prplcl, NcUnits.MILLIBAR ); - } - - /** - *
-	 *  Computes the mean sea level pressure ( in mb ) from the station pressure ( in mb ),
-	 *  the temperature ( in deg Celsius), the dewpoint ( in deg Celsius ) and 
-	 *  the station elevation ( in meters ) using the equation:
-	 *  	PMSL = PRES * EXP ( ( GRAVTY * SELV ) / ( RDGAS * TVAVE ) ) 
-	 *     where
-	 *     		 TVAVE = avg virtual temp between station and sea level 
-	 *     		        = TVRK + ( DELTV / 2 )
-	 *     		 DELTV = GAMUSD * SELV / 1000
-	 *  Wallace and Hobbs.
-	 * @param pres - the station pressure ( in mb )
-	 * @param tmpc - the temperature ( in deg Celsius)
-	 * @param dwpc - the dewpoint ( in deg Celsius )
-	 * @param selv - the station elevation ( in meters )
-	 * @return the mean sea level pressure ( in mb ) if all the inputs are valid
-	 * 
- * @throws NullPointerException - * @throws InvalidValueException - * @throws InvalidRangeException - */ - public static final Amount prPmsl ( Amount pres, Amount tmpc, Amount dwpc, Amount selv ) throws InvalidValueException, NullPointerException, InvalidRangeException{ - System.out.println("From prPmsl:"); - System.out.println(" tmpc = " + tmpc.doubleValue()); - System.out.println(" pres = " + pres.doubleValue()); - System.out.println(" dwpc = " + dwpc.doubleValue()); - System.out.println(" selv = " + selv.doubleValue()); - checkNullOrInvalidValue( pres ); - checkNullOrInvalidValue( tmpc ); - checkNullOrInvalidValue( dwpc ); - checkNullOrInvalidValue( selv ); - pres = checkAndConvertInputAmountToExpectedUnits(pres, NcUnits.MILLIBAR); - tmpc = checkAndConvertInputAmountToExpectedUnits(pres, SI.CELSIUS); - dwpc = checkAndConvertInputAmountToExpectedUnits(pres, SI.CELSIUS); - selv = checkAndConvertInputAmountToExpectedUnits(pres, SI.METER); - - /*Calculate virtual temperature*/ - Amount tv = prTvrk ( tmpc, dwpc, pres); - - /*deltaV and tVave*/ - double selvVal = selv.doubleValue(); - double deltaV = selvVal * GempakConstants.GAMUSD / 1000; - double tVave = tv.doubleValue() + ( deltaV / 2); - double mathFormula = ( GempakConstants.GRAVTY * selvVal ) / ( GempakConstants.RDGAS * tVave ); - double prpmsl = ( pres.doubleValue() * Math.exp(mathFormula)); - - return ( new Amount ( prpmsl, NcUnits.MILLIBAR ) ); - } - - /** - * Computes the maximum precipitation amount for upto 4 preciptiation values in inches - * @param p01 - First precipitation amount - * @param p02 - Second precipitation amount - * @param p03 - Third precipitation amount - * @param p04 - Fourth precipitation amount - * @return the maximum precipitation - * @throws NullPointerException - * @throws InvalidValueException - */ - - public static final Amount prPr6x ( Amount p01, Amount p02, Amount p03, Amount p04 ) throws InvalidValueException, NullPointerException{ - System.out.println("From prPr6x:"); - System.out.println(" p01 = " + p01.doubleValue()); - System.out.println(" p02 = " + p02.doubleValue()); - System.out.println(" p03 = " + p03.doubleValue()); - System.out.println(" p04 = " + p04.doubleValue()); - Amount[] tempArray = {p01, p02, p03, p04 }; - int index = 0; - double[] tempDblArray = new double[ 4 ]; - for ( Amount thisAmount : tempArray){ - checkNullOrInvalidValue(thisAmount); - - if ( thisAmount.getUnit() != NonSI.INCH ) { - thisAmount = checkAndConvertInputAmountToExpectedUnits(thisAmount, NonSI.INCH); - tempArray[index] = thisAmount; - } - tempDblArray[ index ] = thisAmount.doubleValue(); - index++; - } - - Arrays.sort(tempDblArray); - return ( new Amount ( tempDblArray[ 3 ], NonSI.INCH ) ); - } - - /** - * Computes PR24, the 24-hour precipitation calculated by - * summing four 6-hour precipitation values - * @param p01 - First 6-hour precipitation amount - * @param p02 - Second 6-hour precipitation amount - * @param p03 - Third 6-hour precipitation amount - * @param p04 - Fourth 6-hour precipitation amount - * @return the total 24-hour precipitation amount - * @throws InvalidRangeException - * @throws NullPointerException - * @throws InvalidValueException - */ - public static final Amount prPr24 ( Amount p01, Amount p02, Amount p03, Amount p04 ) throws InvalidRangeException, InvalidValueException, NullPointerException{ - System.out.println("From prPr24:"); - System.out.println(" p01 = " + p01.doubleValue()); - System.out.println(" p02 = " + p02.doubleValue()); - System.out.println(" p03 = " + p03.doubleValue()); - System.out.println(" p04 = " + p04.doubleValue()); - - checkNullOrInvalidValue( p01 ); - checkNullOrInvalidValue( p02 ); - checkNullOrInvalidValue( p03 ); - checkNullOrInvalidValue( p04 ); - - Amount[] tempArray = {p01, p02, p03, p04 }; - Arrays.sort(tempArray); - - Amount p24 = tempArray[3]; - double p01Val = p01.doubleValue(); - double p02Val = p02.doubleValue(); - double p03Val = p03.doubleValue(); - double p04Val = p04.doubleValue(); - double p24Val = p24.doubleValue(); - - if ( p24Val > 0 ){ - p24Val = 0; - if ( p01Val > 0 ) - p24Val += p01Val; - - if ( p02Val > 0 ) - p24Val += p01Val; - - if ( p03Val > 0 ) - p24Val += p01Val; - - if ( p04Val > 0 ) - p24Val += p01Val; - - } - - if ( p24Val < 0 ) - throw new InvalidRangeException("From prPr24: the total 24 hour precipitation amount cannot be less than 0 inches"); - - return ( new Amount ( p24Val, NonSI.INCH ) ); - } - - /** - * Computes the station pressure ( in mb ) from the temperature ( in deg Celsius ) - * and the potential temperature ( in Kelvin ) using Poisson's equation: - * PRES = 1000. * ( PR_TMCK (TMPC) / THTA ) ** (1 / RKAPPA) - * @param tmpc - temperature (in deg Celsius) - * @param thta - potential temperature ( in Kelvin ) - * @return the station pressure ( in mb ) if both the inputs are valid - * @throws NullPointerException - * @throws InvalidValueException - * @throws InvalidRangeException - */ - public static final Amount prPres ( Amount tmpc, Amount thta ) throws InvalidValueException, NullPointerException, InvalidRangeException{ - System.out.println("From prPres:"); - System.out.println(" tmpc = " + tmpc.doubleValue()); - System.out.println(" thta = " + thta.doubleValue()); - - - checkNullOrInvalidValue( tmpc ); - checkNullOrInvalidValue( thta ); - tmpc = checkAndConvertInputAmountToExpectedUnits( tmpc, SI.CELSIUS ); - thta = checkAndConvertInputAmountToExpectedUnits( thta, SI.KELVIN ); - double tmpcVal = tmpc.doubleValue(); - double thtaVal = thta.doubleValue(); - if ( tmpcVal <= -GempakConstants.TMCK ) - throw new InvalidRangeException("From prPres: the temperature must be greater than -273.15"); - if ( thtaVal <= 0 ) - throw new InvalidRangeException("From prPres: the potential temperature must be greater than 0"); - - double tmpkVal = tmpc.getUnit().getConverterTo( SI.KELVIN ).convert( tmpcVal ); - double prpres = ( float ) ( 1000 * Math.pow(tmpkVal / thtaVal, 1 / GempakConstants.RKAPPA ) ); - - return ( new Amount ( prpres , NcUnits.MILLIBAR ) ); - } - - - /** - * Extracts the symbol code from the pressure tendency information. - * The code number is returned follow by 999 so that the output is a 4-digit number. - * @param p03d - the pressure tendency information - * @return the pressure tendency symbol code if the input is valid - * @throws NullPointerException - * @throws InvalidValueException - */ - //TODO add it to the Met Parameters or remove it and make it part of the display options instead? - public static final Amount prPtsy ( Amount p03d ) throws InvalidValueException, NullPointerException{ - System.out.println("From prPtsy:"); - System.out.println(" p03d = " + p03d.doubleValue()); - - checkNullOrInvalidValue( p03d ); - double p03dVal = p03d.doubleValue(); - int prptsy = -9999; - if ( !( p03dVal < 0 ) & !( p03dVal >= 9000 ) ) { - prptsy = ( ( int ) ( p03dVal / 1000 ) ) * 1000 + 999 ; - } - return ( new Amount ( prptsy, Unit.ONE ) ); - } - - /** - * Computes the relative humidity ( in percent ) from the input temperature and dewpoint using - * the equation: - * RELH = VAPR / VAPS * 100 - * where - * VAPR = vapor pressure - * = PR_VAPR ( DWPC ) - * VAPS = saturation vapor pressure - * = PR_VAPR ( TMPC ) - * - * @param tmpc - temperature ( in Celsius ) - * @param dwpc - dewpoint ( in Celsius) - * @return the relative humidity ( in percent ) if both inputs are valid and RMISSD ( -9999.0 ) otherwise - * @throws NullPointerException - * @throws InvalidValueException - * @throws InvalidRangeException - */ - public static final Amount prRelh ( Amount tmpc, Amount dwpc ) throws InvalidValueException, NullPointerException, InvalidRangeException{ - System.out.println("From prRelh:"); - System.out.println(" input tmpc = " + tmpc.doubleValue()); - System.out.println(" input dwpc = " + dwpc.doubleValue()); - - if(dwpc.doubleValue() == -9999.0) { - int i = 100; - System.out.println("====, find a value of -9999.0!"); - i++; - } - double prrelh = GempakConstants.RMISSD; - checkNullOrInvalidValue(tmpc); - checkNullOrInvalidValue(dwpc); - tmpc = checkAndConvertInputAmountToExpectedUnits(tmpc, SI.CELSIUS); - System.out.println(" after calling checkAndConvertInputAmountToExpectedUnits(tmpc, SI.CELSIUS), tmpc = " + tmpc.doubleValue()); - dwpc = checkAndConvertInputAmountToExpectedUnits(dwpc, SI.CELSIUS); - System.out.println(" after calling checkAndConvertInputAmountToExpectedUnits(dwpc, SI.CELSIUS) dwpc = " + dwpc.doubleValue()); - - /* Find the vapor pressure */ - Amount e = prVapr ( dwpc ); - System.out.println(" after calling Amount e = prVapr ( dwpc ) e = " + e.doubleValue()); - - /*Find the saturated vapor pressure*/ - Amount es = prVapr ( tmpc ); - System.out.println(" after calling Amount e = prVapr ( tmpc ) es = " + es.doubleValue()); - - /*Calculate humidity*/ - prrelh = ( e.doubleValue()/es.doubleValue()) * 100; - - System.out.println("From prRelh:, before return, e.doubleValue()="+ e.doubleValue()); - System.out.println("From prRelh:, before return, es.doubleValue()="+ es.doubleValue()); - System.out.println("From prRelh:, before return, prrelh="+ prrelh); - - return new Amount(prrelh,NonSI.PERCENT); - } - - /** - * Computes the dewpoint (in Celsius) from the temperature ( in Celsius ) - * and the relative humidity ( in percent ). - * @param tmpc - the temperature ( in deg Celsius ) - * @param relh - the relative humidity ( in percent ) - * @return the dewpoint in ( deg Celsius), if both inputs are valid and the value of the vapor - * pressure computed is greater than ( 1* e^(-30)) - * @throws InvalidRangeException - * @throws NullPointerException - * @throws InvalidValueException - */ - public static final Amount prRhdp ( Amount tmpc, Amount relh) throws InvalidValueException, NullPointerException, InvalidRangeException{ - System.out.println("From prRhdp:"); - System.out.println(" imput tmpc =" + tmpc.doubleValue()); - System.out.println(" imput relh = " + relh.doubleValue()); - - checkNullOrInvalidValue(tmpc); - checkNullOrInvalidValue(relh); - tmpc = checkAndConvertInputAmountToExpectedUnits(tmpc, SI.CELSIUS); - relh = checkAndConvertInputAmountToExpectedUnits(relh, NonSI.PERCENT); - - /*Calculate saturation vapor pressure; test for existence*/ - Amount vaps = prVapr ( tmpc); - - /*Calculate vapor pressure*/ - double relativeHumidity = relh.doubleValue(); - double saturationVaporPressure = vaps.doubleValue(); - double vapr = relativeHumidity * saturationVaporPressure / 100; - - /*Calculate dewpoint. The VAPR test prevents LOG blowups*/ - double prrhdp = -191; - Amount dewpointAmount = null; - if ( vapr >= ( Math.pow(Math.E, -30) ) ){//legacy checks for 1.E-30 - prrhdp = ( double) ( 243.5 * ( Math.log(6.112) - Math.log(vapr) ) / ( Math.log(vapr) - Math.log(6.112) - 17.67 ) ); - - /* If the dew-point is less than -190 degrees C, it is treated as missing data - * Note: Legacy documents it but does not implement it. - * However, in CAVE, it was decided to implement it. - * */ - - if ( prrhdp < -190 ) - return dewpointAmount; - } - dewpointAmount = new Amount(prrhdp, SI.CELSIUS); - return dewpointAmount; - } - - - public static class RZLL{ - private static RZLL rzll; - - /**Station latitude in degrees*/ - Amount stltdg = null; - - /**Station longitude in degrees*/ - Amount stlndg = null; - - /**Range in kilometers*/ - Amount range = null; - - /**Geographic azimuth in radians*/ - Amount azim = null; - - /**Height above the ground in kilometers*/ - Amount hght = null; - - /**Latitude in degrees*/ - Amount xlat = null; - - /**Longitude in degrees*/ - Amount xlon = null; - - /** - * @return the xlat - */ - public Amount getXlat() { - return xlat; - } - /** - * @return the xlon - */ - public Amount getXlon() { - return xlon; - } - - - - private static RZLL getInstance(){ - if (rzll == null) - {rzll = new RZLL();} - return rzll; - } - - /** - * Computes the actual latitude/longitude given the station latitude/longitude, elevation - * and azimuth. - * It uses equations developed for use in the AOIPS radar. - * @param instltdg - Station latitude in degrees - * @param instlndg - Station longitude in degrees - * @param inrange - Range in kilometers - * @param inazim - Geographic azimuth in radians - * @param inhght - Height above ground in km - * @throws NullPointerException - * @throws InvalidValueException - */ - public void prRzll ( Amount instltdg,Amount instlndg,Amount inrange,Amount inazim,Amount inhght) throws InvalidValueException, NullPointerException{ - System.out.println("From prRzll:"); - System.out.println(" instltdg = " + instltdg.doubleValue()); - System.out.println(" instlndg = " + instlndg.doubleValue()); - System.out.println(" inrange = " + inrange.doubleValue()); - System.out.println(" inazim = " + inazim.doubleValue()); - System.out.println(" inhght = " + inhght.doubleValue()); - - checkNullOrInvalidValue( instltdg ); - checkNullOrInvalidValue( instlndg ); - checkNullOrInvalidValue(inrange); - checkNullOrInvalidValue(inazim); - checkNullOrInvalidValue(inhght); - instltdg = checkAndConvertInputAmountToExpectedUnits( instltdg, NonSI.DEGREE_ANGLE ); - instlndg = checkAndConvertInputAmountToExpectedUnits( instlndg, NonSI.DEGREE_ANGLE ); - inrange = checkAndConvertInputAmountToExpectedUnits(inrange, SI.KILOMETER ); - inazim = checkAndConvertInputAmountToExpectedUnits(inazim, SI.RADIAN ); - inhght = checkAndConvertInputAmountToExpectedUnits(inhght, SI.KILOMETER ); - - this.stltdg = new Amount ( instltdg.doubleValue(), NonSI.DEGREE_ANGLE ); - this.stlndg = new Amount ( instlndg.doubleValue(), NonSI.DEGREE_ANGLE ); - this.range = new Amount ( inrange.doubleValue(), SI.KILOMETER ); - this.azim = new Amount ( inazim.doubleValue(), SI.RADIAN ); - this.hght = new Amount ( inhght.doubleValue(), SI.KILOMETER ); - - double hdr = GempakConstants.RMISSD; - double elev = GempakConstants.RMISSD; - double rad = GempakConstants.RMISSD; - double radp= GempakConstants.RMISSD; - - /*Convert the station lat/lon to radians*/ - Amount stlat = checkAndConvertInputAmountToExpectedUnits( stltdg, NonSI.DEGREE_ANGLE ); - Amount stlon = checkAndConvertInputAmountToExpectedUnits( stlndg, NonSI.DEGREE_ANGLE ); - - - /*Get the elevation angle*/ - hdr = ( range.doubleValue() == 0.0f ? 0.0f : hght.doubleValue() / range.doubleValue() ); - // elev = (float) ( Math.abs(hdr) < 1.0f ? Math.asin(hdr) : 0.0f ); - elev = ( Math.abs(hdr) <= 1.0f ? Math.asin(hdr) : 0.0f ); - - double temp = (Math.pow( Math.sin(stlat.doubleValue()), 2 ) ) ; - - /*Get the earth's corrected radius*/ - rad = (6378.4 / Math.sqrt( 1 + ( 0.00677 * temp ) )); - radp = 4* ( rad / 3 ); - - double dist = GempakConstants.RMISSD; - double cx = GempakConstants.RMISSD; - double cy = GempakConstants.RMISSD; - double mathFormula1 = GempakConstants.RMISSD; - double mathFormula2 = GempakConstants.RMISSD; - - /*Calculate the distance*/ - double rangeVal = range.doubleValue(); - if ( elev > 0.2618f ) - dist = ( double ) ( rangeVal * Math.cos( elev )); - else{ - mathFormula1 = ( double ) ( (1 - ( Math.pow( elev, 2 ) / 2 ) ) - rangeVal * elev / radp); - dist = rangeVal * mathFormula1; - } - - /*Calculate the latitude and longitude*/ - double azimVal = azim.doubleValue(); - cx = ( double ) ( dist * Math.sin( azimVal ) ); - cy = ( double ) ( dist * Math.cos( azimVal ) ); - - // mathFormula2 = ( float ) ( ( ( 2 * Math.pow( rad, 2 ) ) * Math.tan( stlat ) )); - // xlat = ( float ) ( stlat + ( cy / rad ) - ( Math.pow(cx, 2) / mathFormula2 ) ); - double stlatVal = stlat.doubleValue(); - mathFormula2 = (double) ( ( Math.pow(cx, 2) / ( 2 * Math.pow( rad, 2 ) ) * Math.tan( stlatVal ) )); - double xlatVal = ( double ) ( stlatVal + ( cy / rad ) - mathFormula2 ); - double xlonVal = ( double ) ( stlon.doubleValue() + ( cx / ( rad * Math.cos( xlat.doubleValue() ) ) ) ) ; - - /*Change lat/lon to degrees*/ - xlatVal = SI.RADIAN.getConverterTo(NonSI.DEGREE_ANGLE).convert( xlatVal ); - xlonVal = SI.RADIAN.getConverterTo(NonSI.DEGREE_ANGLE).convert( xlonVal ); - - this.xlat = new Amount ( xlatVal, NonSI.DEGREE_ANGLE ); - this.xlon = new Amount ( xlonVal, NonSI.DEGREE_ANGLE ); - } - } - - - /** - * Computes the wind speed from the 'U' and 'V' components of - * the wind velocity. The formula is the square root of ( u^2 + v^2 ) - * - * @param uWnd - U component of velocity - * @param vWnd - V component of velocity - * @return the computed windspeed if both inputs are valid - * @throws NullPointerException - * @throws InvalidValueException - */ - public static final Amount prSped ( Amount uWnd, Amount vWnd) throws InvalidValueException, NullPointerException{ - System.out.println("From prSped:"); - System.out.println(" uWnd = " +uWnd.doubleValue()); - System.out.println(" vWnd = " + vWnd.doubleValue()); - - checkNullOrInvalidValue( uWnd ); - checkNullOrInvalidValue( vWnd ); - Unit uWndUnits = uWnd.getUnit(); - Unit vWndUnits = vWnd.getUnit(); - if ( uWndUnits != vWndUnits && uWndUnits.isCompatible(vWndUnits)){ - double vWndVal = vWndUnits.getConverterTo( uWndUnits ).convert( vWnd.doubleValue() ); - vWnd = new Amount ( vWndVal, uWndUnits ); - } - double prsped = ( Math.sqrt( ( Math.pow(uWnd.doubleValue(), 2) + Math.pow(vWnd.doubleValue(), 2) ) ) ); - return new Amount ( prsped, uWndUnits ); - } - - /** - * Computes the potential temperature ( in Kelvin ) from the - * temperature (in Celsius ) and the pressure ( in mb ). - * @param tmpc - The temperature ( in Celsius ) - * @param pres - The pressure ( in mb ) - * @return the potential temperature ( in Kelvin ), if both inputs are valid - * . - * @throws InvalidRangeException - * @throws NullPointerException - * @throws InvalidValueException - */ - public static Amount prThta ( Amount tmpc, Amount pres) throws InvalidRangeException, InvalidValueException, NullPointerException{ - checkNullOrInvalidValue(tmpc); - checkNullOrInvalidValue(pres); - tmpc = checkAndConvertInputAmountToExpectedUnits(tmpc, SI.CELSIUS); - pres = checkAndConvertInputAmountToExpectedUnits(pres, NcUnits.MILLIBAR); - double pressureValue = pres.doubleValue(); - if ( pressureValue <= 0 ) - throw new InvalidRangeException("From prThta( ) - pressure must be > 0 "); - - /*Change temperature in degrees Celsius to Kelvin.*/ - double temperatureInKelvin = (double) tmpc.getUnit().getConverterTo(SI.KELVIN).convert(tmpc.doubleValue() ); - - /*Calculate theta using Poisson's equation*/ - double prthta = ( double ) ( temperatureInKelvin * Math.pow( ( 1000 / pres.doubleValue()) , GempakConstants.RKAPPA) ); - return new Amount ( prthta , SI.KELVIN ); - } - - - /** - * Computes the equivalent potential temperature ( in Kelvin ) from - * the pressure ( in mb ), the temperature ( in Celsius ) and the dewpoint ( in Celsius ) - * using the equation: - * THTE = THTAM * EXP [ ( 3.376/TLCL - .00254 ) * - * ( MIXR * ( 1 + .81*.001*MIXR ) ) ] - * where - * THTAM = potential temperature of moist air - * = TMPK * (1000 / PRES) ** E - * E = RKAPPA * ( 1 - ( .28 * .001 * MIXR ) ) - * Bolton. - * - * @param pres - the pressure ( in mb ) - * @param tmpc - the temperature ( in Celsius ) - * @param dwpc - the dewpoint ( in Celsius ) - * @return the the equivalent potential temperature ( in Kelvin ), if all the input values - * are valid - * @throws NullPointerException - * @throws InvalidValueException - * @throws InvalidRangeException - */ - public static final Amount prThte ( Amount pres, Amount tmpc, Amount dwpc ) throws InvalidValueException, NullPointerException, InvalidRangeException{ - System.out.println("From prThte:"); - System.out.println(" pres = " + pres.doubleValue()); - System.out.println(" tmpc = " + tmpc.doubleValue()); - System.out.println(" dwpc = " + dwpc.doubleValue()); - - checkNullOrInvalidValue(pres); - checkNullOrInvalidValue(tmpc); - checkNullOrInvalidValue(dwpc); - if ( pres.doubleValue() <= 0) - throw new InvalidRangeException("From prThte() - Input pressure must be greater than 0 "); - - pres = checkAndConvertInputAmountToExpectedUnits( pres, NcUnits.MILLIBAR ); - dwpc = checkAndConvertInputAmountToExpectedUnits( dwpc, SI.CELSIUS ); - tmpc = checkAndConvertInputAmountToExpectedUnits( tmpc, SI.CELSIUS ); - - /*Find mixing ratio*/ - Amount rmix = prMixr ( dwpc, pres); - checkNullOrInvalidValue(rmix); - - /*Change degrees Celsius to Kelvin*/ - Amount tmpk = checkAndConvertInputAmountToExpectedUnits(tmpc, SI.KELVIN); - - - /*Calculate theta for moist air (thtam) */ - double mixingRatioVal = rmix.doubleValue(); - double pressureVal = pres.doubleValue(); - double tempVal = tmpk.doubleValue(); - - double e = ( double) ( GempakConstants.RKAPPA * (1 - (0.28 * 0.001 * mixingRatioVal) )); - double thtam = ( double ) ( tempVal * Math.pow(1000 / pressureVal, e)); - - /*Find the temperature at the lifted condensation level */ - Amount tlcl = prTlcl ( tmpc, dwpc ); - checkNullOrInvalidValue(tlcl); - double lclTemp = tlcl.doubleValue(); - e = ( ( 3.376f / lclTemp ) - 0.00254f ) * ( mixingRatioVal * ( 1 + 0.81f * 0.001f * mixingRatioVal )); - double prthte = ( double ) ( thtam * Math.exp(e)); - Amount equivPotentialTempAmount = new Amount(prthte, SI.KELVIN); - return equivPotentialTempAmount; - } - - /** - * Computes wet bulb potential temperature ( in Celsius ) from the - * pressure, temperature and dewpoint. The result is obtained by first - * computing the equivalent potential temperature (thte) of the the air parcel at level - * pres. Then the air parcel is brought to 1000 mb moist adiabatically to get the - * wet bulb potential temperature. - * @param pres - Pressure ( in millibars ) - * @param tmpc - Temperature ( in Celsius ) - * @param dwpc - Dewpoint ( in Celsius ) - * @return The wet bulb potential temperature ( in Celsius ) if all inputs are valid - * @throws NullPointerException - * @throws InvalidValueException - * @throws InvalidRangeException - */ - public static final Amount prThwc ( Amount pres, Amount tmpc, Amount dwpc) throws InvalidValueException, NullPointerException, InvalidRangeException { - System.out.println("From prThwc:"); - System.out.println(" press = " + pres.doubleValue()); - System.out.println(" tmpc = " + tmpc.doubleValue()); - System.out.println(" dwpc = " + dwpc.doubleValue()); - - /*Check for missing and invalid data*/ - checkNullOrInvalidValue( pres ); - checkNullOrInvalidValue( tmpc ); - checkNullOrInvalidValue( dwpc ); - pres = checkAndConvertInputAmountToExpectedUnits( pres , NcUnits.MILLIBAR ); - tmpc = checkAndConvertInputAmountToExpectedUnits( tmpc , SI.CELSIUS ); - dwpc = checkAndConvertInputAmountToExpectedUnits( dwpc , SI.CELSIUS ); - double presVal = pres.doubleValue(); - if ( presVal <= 0 ) - throw new InvalidRangeException("From prThwc: Pressure must be greater than 0 mb"); - - /*Compute the thte*/ - Amount thte = prThte(pres, tmpc, dwpc); - - /*Check for missing 'thte' and compute wet bulb temperature.*/ - checkNullOrInvalidValue( thte ); - - /*Compute the parcel temperature (in Kelvin)*/ - - Amount prthwc = prTmst ( thte, - new Amount ( 1000, NcUnits.MILLIBAR ), - new Amount ( 0, SI.KELVIN ) ); - checkNullOrInvalidValue( prthwc ); - - /*Convert the parcel temperature to Celsius*/ - prthwc = checkAndConvertInputAmountToExpectedUnits(prthwc, SI.CELSIUS); - - return prthwc; - } - - - /** - * Computes the temperature at the lifted condensation level for a parcel of air - * given the temperature ( in Celsius ) and the dewpoint (in Celsius) using the - * equation: - * TLCL = [ 1 / ( 1 / (DWPK-56) + ALOG (TMPK/DWPK) / 800 ) ] + 56 - * Bolton. - * @param tmpc - the temperature ( in Celsius ) - * @param dwpc - the dewpoint ( in Celsius ) - * @return the lifted condensation level temperature In Kelvin, if both input values are valid - * - * @throws NullPointerException - * @throws InvalidValueException - * @throws InvalidRangeException - */ - public static final Amount prTlcl ( Amount tmpc, Amount dwpc ) throws InvalidValueException, NullPointerException, InvalidRangeException{ - System.out.println("From prTlcl:"); - System.out.println(" tmpc = " + tmpc.doubleValue()); - System.out.println(" dwpc = " + dwpc.doubleValue()); - - - checkNullOrInvalidValue(tmpc); - checkNullOrInvalidValue(dwpc); - if ( tmpc.doubleValue() < -GempakConstants.TMCK || dwpc.doubleValue() < -GempakConstants.TMCK){ - throw new InvalidRangeException("From prTlcl: Input temperature and dewpoint cannot be less than -273.15"); - } - Amount tmpk = checkAndConvertInputAmountToExpectedUnits(tmpc, SI.KELVIN); - Amount dwpk = checkAndConvertInputAmountToExpectedUnits(dwpc, SI.KELVIN); - double tempVal = tmpk.doubleValue(); - double dewpointVal = dwpk.doubleValue(); - double lclTemp = ( double ) ( ( 800 * ( dewpointVal - 56 ) / ( 800 + ( dewpointVal - 56 ) * Math.log ( tempVal / dewpointVal ) ) ) + 56 ); - Amount prtlcl = new Amount ( lclTemp, SI.KELVIN ); - - return prtlcl; - } - - /** - * Computes the temperature ( in Kelvin ) from the pressure ( in mb ) and - * the potential temperature ( in Kelvin ) using the Poisson equation: - * TMPK = THTA * ( PRES / 1000 ) ** RKAPPA - * - * @param pres - the pressure ( in mb ) - * @param thta - the potential temperature ( in Kelvin ) - * @return the temperature ( in Kelvin ) - * @throws InvalidRangeException - * @throws NullPointerException - * @throws InvalidValueException - */ - public static final Amount prTmpk ( Amount pres, Amount thta ) throws InvalidRangeException, InvalidValueException, NullPointerException{ - System.out.println("From prTmpk:"); - System.out.println(" pres = " + pres.doubleValue()); - System.out.println("thta = " + thta.doubleValue()); - - Amount prtmpk = new Amount ( GempakConstants.RMISSD, Unit.ONE ); - - checkNullOrInvalidValue(pres); - checkNullOrInvalidValue(thta); - pres = checkAndConvertInputAmountToExpectedUnits(pres, NcUnits.MILLIBAR); - thta = checkAndConvertInputAmountToExpectedUnits(thta, SI.KELVIN); - double pressureValue = pres.doubleValue(); - double thtaValue = thta.doubleValue(); - if ( pressureValue >= 0){ - double temperature = ( double ) ( thtaValue * ( Math.pow( pressureValue / 1000f, GempakConstants.RKAPPA ) ) ); - prtmpk = new Amount ( temperature , SI.KELVIN ); - return prtmpk; - } - else{ - throw new InvalidRangeException("From prTmpk() - pressure cannot be less than 0 mb"); - } - } - - /** - *
-	 * Computes the parcel temperature ( in Kelvin ) from the equivalent potential temp ( in Kelvin ),
-	 * pressure ( in millibars ) and the first guess temperature ( in Kelvin ). 
-	 * The parcel temperature at level pres on a specified moist adiabat ( thte ). 
-	 * The computation is an iterative Newton-Raphson technique of the form:
-	 * 
-	 * x = x(guess) + [ f( x ) - f( x(guess) ) ] / f'( x(guess) )
-	 * f' is approximated with finite differences
-	 * f' = [ f( x(guess) + 1 ) - f( x(guess) ) ] / 1
-	 * 
-	 * If tguess is 0, a reasonable first guess will be made.
-	 * Convergence is not guaranteed for extreme input values.  If the
-	 * computation does not converge after 100 iterations, the missing 
-	 * data value will be returned. 
-	 * @param thte      - Equivalent potential temp ( in Kelvin )
-	 * @param pres      - Pressure ( in millibars )
-	 * @param tguess   - First guess temperature ( in Kelvin )
-	 * @return the Parcel temperature in Kelvin if all the input values are valid 
-	 * (without being extreme) and if a convergence is obtained within 100 iterations 
-	 * 
- * @throws InvalidRangeException - * @throws NullPointerException - * @throws InvalidValueException - */ - public static final Amount prTmst ( Amount thte, Amount pres, Amount tguess) throws InvalidRangeException, InvalidValueException, NullPointerException{ - double prtmst = GempakConstants.RMISSD; - System.out.println("From prTmst:"); - System.out.println(" thte = " + thte.doubleValue()); - System.out.println(" pres = " + pres.doubleValue()); - System.out.println(" tguess = " + tguess.doubleValue()); - - checkNullOrInvalidValue( thte ); - checkNullOrInvalidValue( pres ); - checkNullOrInvalidValue( tguess ); - thte = checkAndConvertInputAmountToExpectedUnits( thte, SI.KELVIN ); - pres = checkAndConvertInputAmountToExpectedUnits( pres, NcUnits.MILLIBAR ); - tguess = checkAndConvertInputAmountToExpectedUnits( tguess, SI.KELVIN ); - double thteVal = thte.doubleValue(); - double presVal = pres.doubleValue(); - double tguessVal = tguess.doubleValue(); - - if ( thteVal <= 0 ) - throw new InvalidRangeException(" From prTmst(): Potential temperature must be greater than 0"); - - else if ( presVal <= 0 ) - throw new InvalidRangeException(" From prTmst(): Pressure must be greater than 0"); - else if ( tguessVal < 0 ) - throw new InvalidRangeException(" From prTmst(): First guess temperature must be greater than 0"); - double tg = tguess.doubleValue(); - /* - * If tguess is passed as 0. it is computed from an MIT scheme - */ - if ( tg == 0 ){ - double diffVar = thte.doubleValue() - 270; - double mathFormula1 = (double) ( diffVar > 0 ? diffVar : 0.0 ); - tg = (double) ( ( thte.doubleValue() - 5.0f * ( Math.pow ( mathFormula1, 1.05f) ) ) * ( Math.pow ( pres.doubleValue() / 1000.0f, 0.2f ) ) ); - } - - /*Set convergence and initial guess in degrees Celsius*/ - double epsi = 0.01f; - double tgnu = SI.KELVIN.getConverterTo(SI.CELSIUS).convert(tg) ; - - /* - * Set a limit of 100 iterations. Compute tenu,tenup, the - * thte's at one degree above the guess temperature. - */ - int index = 0; - while( index < 100 ){ - double tgnup = tgnu + 1; - Amount tgnuAmount = new Amount ( tgnu, SI.CELSIUS ); - Amount tgnupAmount = new Amount ( tgnup, SI.CELSIUS ); - Amount tenu = prThte ( pres, tgnuAmount, tgnuAmount ); - Amount tenup = prThte ( pres, tgnupAmount, tgnupAmount ); - /*Check that the THTE's exist.*/ - checkNullOrInvalidValue(tenu); - checkNullOrInvalidValue(tenup); - - /*Compute the correction*/ - double tenuVal = tenu.doubleValue(); - double tenupVal = tenup.doubleValue(); - double cor = ( thteVal - tenuVal ) / ( tenupVal - tenuVal ); - tgnu += cor; - - if ( ( cor < epsi ) && (-cor < epsi) ){ - - /*return on convergence*/ - prtmst = tgnuAmount.getUnit().getConverterTo(SI.KELVIN).convert(tgnu); - break; - } - - index++; - } - return new Amount ( prtmst, SI.KELVIN); - } - - /** - *
-	 * Computes wet bulb temperature from the temperature, mixing ratio, and pressure.
-	 * The result is obtained by solving for the temperature at which saturation occurs,
-	 *  when the latent heat required to vaporize the water is provided by a cooling of the air.
-	 *  The equation representing the process is:
-	 *   ( tmpk - tmwb ) * cp - ( Rsat (tmwb) - rmix ) * lvap = 0  
-	 *  This implicit equation is solved by Newton's method, since the 
-	 *  saturation mixing ratio Rsat is a transcendental function of tmwb.
-	 *  The expressions for the heat of vaporization (LVAP) and saturation 
-	 *   vapor pressure are equations (2) and (10) from Bolton (MWR, 1980).
-	 *   
- * @param tmpk - Temperature (K) - * @param rmix - Mixing ratio (g/kg) - * @param pres - Pressure (mb) - * @return Wet bulb temperature (K) if all inputs are valid - * @throws NullPointerException - * @throws InvalidValueException - * @throws InvalidRangeException - */ - public static final Amount prTmwb ( Amount tmpk, Amount rmix, Amount pres) throws InvalidValueException, NullPointerException, InvalidRangeException{ - System.out.println("From prTmwb:"); - System.out.println(" tmpk = " + tmpk.doubleValue()); - System.out.println(" rmix = " + rmix.doubleValue()); - System.out.println(" pres = " + pres.doubleValue()); - - Amount prtmwb = null; - /*Check for missing and invalid data*/ - checkNullOrInvalidValue( tmpk ); - checkNullOrInvalidValue( rmix ); - checkNullOrInvalidValue( pres ); - tmpk = checkAndConvertInputAmountToExpectedUnits( tmpk, SI.KELVIN ); - rmix = checkAndConvertInputAmountToExpectedUnits( rmix , NcUnits.GRAMS_PER_KILOGRAM ); - pres = checkAndConvertInputAmountToExpectedUnits( pres , NcUnits.MILLIBAR ); - double presVal = pres.doubleValue(); - if ( presVal <= 0 ) - throw new InvalidRangeException("From prTmwb - pressure value must be greater than 0 "); - /*Change temperature to degrees Celsius.*/ - Amount tmp = checkAndConvertInputAmountToExpectedUnits(tmpk, SI.CELSIUS); - - /*Compute the latent heat of vaporization.*/ - Amount lvap = prLhvp ( tmp ); - - /*Compute the specific heat of moist air*/ - double rmixVal = rmix.doubleValue()/1000; - double cp = ( 1005.7 * ( 1.0 + 0.887 * rmixVal ) ); - - double rlocp = lvap.doubleValue() / cp; - - /*Do Newton iteration*/ - int iter = 0; - double twb = tmp.doubleValue(); - boolean isConvrg = false; - - double A = 6.112; - double B = 17.67; - double C = 243.5; - double EPSI = 0.622; - double G = B * C; - double ERRMAX = 0.001; - double tmpVal = tmp.doubleValue(); - while ( iter <= 50 && !isConvrg ){ - iter++; - double bt = B * twb; - double tpc = twb + C; - double d = ( ( presVal / A ) * Math.exp( ( -bt ) / tpc ) ); - double dm1 = d - 1; - double f = (tmpVal - twb ) - rlocp * ( EPSI / dm1 - rmixVal ); - double df = (-G) / ( tpc * tpc ); - df = d * df * rlocp * EPSI / ( dm1 * dm1 ) - 1; - double cor = f / df; - twb = twb - cor; - if ( Math.abs ( cor ) <= ERRMAX ) - isConvrg = true; - } - - if ( isConvrg ){ - Amount twk = new Amount ( twb , SI.KELVIN ); - if ( twk.doubleValue() > tmpk.doubleValue() ) - twk = new Amount ( tmpk.doubleValue(), SI.KELVIN ) ; - - prtmwb = twk; - } - // } - return prtmwb; - } - - - /** - * Computes the virtual temperature ( in Kelvin ) from the temperature ( in Celsius ), - * dewpoint ( in Celsius ) and pressure ( in mb ) where DWPC and PRES are used to compute - * MIXR. The following equation is used: - * TVRK = TMPK * (1 + .001 * MIXR / .62197) / (1 + .001 * MIXR) - * If DWPC is missing, dry air is assumed and TMPK is returned. - * - * @param tmpc - Temperature ( in Celsius ) - * @param dwpc - Dewpoint ( in Celsius ) - * @param pres - Pressure ( in mb ) - * @return the virtual temperature ( in Kelvin ) - * @throws NullPointerException - * @throws InvalidValueException - * @throws InvalidRangeException - */ - public static final Amount prTvrk( Amount tmpc, Amount dwpc, Amount pres ) throws InvalidValueException, NullPointerException, InvalidRangeException{ - System.out.println("From prTvrk:"); - System.out.println(" tmpc = " + tmpc.doubleValue()); - System.out.println(" dwpc = " + dwpc.doubleValue()); - System.out.println(" pres = " + pres.doubleValue()); - - Amount prtvrk = null; - checkNullOrInvalidValue(tmpc); - checkNullOrInvalidValue(pres); - /*If dewpoint is missing, return temperature*/ - - if ( dwpc == null || dwpc.doubleValue() == GempakConstants.RMISSD) - return checkAndConvertInputAmountToExpectedUnits(tmpc, SI.KELVIN); - - else { - /*Change temperature to Kelvin.*/ - Amount tmpk = checkAndConvertInputAmountToExpectedUnits(tmpc, SI.KELVIN); - - /* Find mixing ratio in g/kg; if missing, return temperature */ - Amount rmix = prMixr ( dwpc, pres ); - - double virtualTemp; - if (rmix.doubleValue() == GempakConstants.RMISSD ) - virtualTemp = (double) tmpc.getUnit().getConverterTo(SI.KELVIN).convert(tmpc.doubleValue()); - else{ - double mixingRatioVal = rmix.doubleValue(); - double temp = tmpk.doubleValue(); - virtualTemp =( double ) ( temp * ( 1 + 0.001 * mixingRatioVal / 0.62197 ) / ( 1 + 0.001 * mixingRatioVal ) ); - - } - prtvrk = new Amount (virtualTemp, SI.KELVIN); - } - return prtvrk; - } - - /** - * Computes the 'U' component of the wind from its speed and direction - * @param sped - wind speed - * @param drct - wind direction - * @return The 'U' component of the wind if both inputs are valid - * @throws NullPointerException - * @throws InvalidValueException - */ - public static final Amount prUwnd ( Amount sped, Amount drct) throws InvalidValueException, NullPointerException { - System.out.println("From prUwnd:"); - System.out.println(" sped = " + sped.doubleValue()); - System.out.println(" drct = " + drct.doubleValue()); - checkNullOrInvalidValue( drct ); - checkNullOrInvalidValue( sped ); - drct = checkAndConvertInputAmountToExpectedUnits(drct, NonSI.DEGREE_ANGLE ); - double pruwnd = ( ( -Math.sin( drct.doubleValue() * GempakConstants.DTR ) ) * sped.doubleValue() ); - return new Amount ( pruwnd, sped.getUnit() ); //TODO :verify the units - } - - /** - * Computes the 'V' component of the wind from its speed and direction - * @param sped - wind speed - * @param drct - wind direction - * @return The 'V' component of the wind if both inputs are valid - * @throws NullPointerException - * @throws InvalidValueException - */ - public static final Amount prVwnd ( Amount sped, Amount drct) throws InvalidValueException, NullPointerException { - System.out.println("From prVwnd:"); - System.out.println(" sped = " + sped.doubleValue()); - System.out.println(" drct = " + drct.doubleValue()); - checkNullOrInvalidValue( drct ); - checkNullOrInvalidValue( sped ); - drct = checkAndConvertInputAmountToExpectedUnits(drct, NonSI.DEGREE_ANGLE ); - double prvwnd = ( ( -Math.cos( drct.doubleValue() * GempakConstants.DTR ) ) * sped.doubleValue() ); - return new Amount ( prvwnd, sped.getUnit() ); //TODO :verify the units - } - - - /** - * Computes the vapor pressure ( in mb) from the input - * dewpoint temperature in Celsius using the equation: - * VAPR = 6.112 * EXP [ (17.67 * dewpointValue) / (dewpointValue + 243.5) ] - * @param dwpc - the dewpoint temperature ( in Celsius ) - * @return the vapor pressure ( in mb) from the dewpoint temperature if it is valid - * @throws NullPointerException - * @throws InvalidValueException - * @throws InvalidRangeException - */ - public static final Amount prVapr ( Amount dwpc) throws InvalidValueException, NullPointerException, InvalidRangeException{ - System.out.println("From prVapr:"); - System.out.println(" dwpc = " + dwpc.doubleValue()); - - checkNullOrInvalidValue(dwpc); - dwpc = checkAndConvertInputAmountToExpectedUnits(dwpc, SI.CELSIUS); - double dewpointValue = dwpc.doubleValue(); - if ( dewpointValue >= -240.0f ) - return ( new Amount ( ( 6.112 * ( Math.exp ( ( 17.67 * dewpointValue ) / ( dewpointValue + 243.5) ) ) ) , - NcUnits.MILLIBAR ) ); - else{ - throw new InvalidRangeException("Exception from prVapr() - dewpoint cannot be less than -240 "); - } - } - - /** - * Computes the visibility ( in nautical miles ) from the input visibility ( in kilometers ) - * @param vsbk - visibility ( in kilometers ) - * @return visibility ( in nautical miles ) if the input is valid - * @throws NullPointerException - * @throws InvalidValueException - */ - //TODO: remove this - since the getValueAs(Unit) offers the same facility? - public static final Amount prVskn ( Amount vsbk) throws InvalidValueException, NullPointerException { - System.out.println("From prVskn:"); - System.out.println(" vsbk = " + vsbk.doubleValue()); - - checkNullOrInvalidValue( vsbk ); - vsbk = checkAndConvertInputAmountToExpectedUnits( vsbk, SI.KILOMETER ); - return ( checkAndConvertInputAmountToExpectedUnits(vsbk, NonSI.NAUTICAL_MILE ) ); - } - - /** - * Computes the wind chill equivalent temperature ( the temperature with calm winds that produces the same - * cooling effect as the given temperature with the given wind speed) - * @param tmpf - Air temperature ( in Farenheit ) - * @param sknt - Wind speed ( in knots ) - * @return the wind chill equivalent temperature ( in Farenheit ), - * if the inputs are valid - * @throws NullPointerException - * @throws InvalidValueException - */ - public static final Amount prWceq ( Amount tmpf, Amount sknt ) throws InvalidValueException, NullPointerException{ - System.out.println("From prWceq:"); - System.out.println(" tmpf = " + tmpf.doubleValue()); - System.out.println(" sknt = " + sknt.doubleValue()); - - double prwceq = GempakConstants.RMISSD; - checkNullOrInvalidValue( tmpf ); - checkNullOrInvalidValue( sknt ); - - /*Convert input variables to Celsius and meters/second.*/ - Amount tmpc = checkAndConvertInputAmountToExpectedUnits(tmpf, SI.CELSIUS); - Amount sped = checkAndConvertInputAmountToExpectedUnits(sknt, SI.METERS_PER_SECOND) ; - - - if ( sped.doubleValue() <= 1.34) - /*If the wind speed does not exceed 1.34 m/s ( not much wind to contribute to the wind chill), - * return the input temperature as the wind chill temperature*/ - prwceq = tmpc.getUnit().getConverterTo(NonSI.FAHRENHEIT).convert(tmpc.doubleValue()); - else{ - /* - * Compute the wind chill temp if the inputs are not missing and - * and the wind speed is greater than 1.34 m/s. - * Equations for wind chill computation - * from R. Falconer, "Windchill, A Useful Wintertime Weather Variable", Weatherwise, Dec 1968. - */ - if ( sped.getUnit() == SI.METERS_PER_SECOND ){ - float windChill = ( float ) ( 33.0 - ( ( 33.0 - tmpc.doubleValue() ) * wci( sped.doubleValue() ) / wci( 1.34f ) ) ); - prwceq = tmpc.getUnit().getConverterTo(NonSI.FAHRENHEIT).convert(windChill); - } - } - - return ( new Amount ( prwceq, NonSI.FAHRENHEIT)); - } - - - // /** - // * Computes the numeric total cloud cover for the worst case aviation flight condition, - // * based on the categorical identification of flight rules for prevailing and temporary / probability conditions. - // * @param xvfr - Prevailing categorical id of flight rules - // * @param txvf - Temporary / Probability categorical id of flight rules - // * @param cfrt - Prevailing numeric total cloud cover - // * @param tcfr - Temporary / Probability numeric total cloud cover - // * @return Worst case numeric total cloud cover or RMISSD (-9999) if the computation does not fall through - // * @throws NullPointerException - // * @throws InvalidValueException - // */ - // public static final Amount prWcfr ( Amount xvfr, Amount txvf, Amount cfrt, Amount tcfr) throws InvalidValueException, NullPointerException { - // double prwcfr = GempakConstants.RMISSD; - // checkNullOrInvalidValue( tcfr ); - // checkNullOrInvalidValue( cfrt ); - // double cfrtVal = cfrt.doubleValue(); - // double tcfrVal = tcfr.doubleValue(); - // if ( ( xvfr == null || xvfr.doubleValue() == GempakConstants.RMISSD ) - // || ( txvf == null || txvf.doubleValue() == GempakConstants.RMISSD )) - // prwcfr = ( cfrtVal > tcfrVal ? cfrtVal : tcfrVal ); - // - // else { - // double txvfVal = txvf.doubleValue(); - // double xvfrVal = xvfr.doubleValue(); - // if ( txvfVal < xvfrVal ) - // prwcfr = tcfrVal; - // else if ( txvfVal == xvfrVal) - // prwcfr = ( cfrtVal > tcfrVal ? cfrtVal : tcfrVal ); - // else - // prwcfr = cfrtVal; - // } - // return ( new Amount ( prwcfr ,Unit.ONE)); - // } - - - /** - * Computes the wind chill temperature from the air temperature and the wind speed - * @param tmpf - Air temperature ( in degree Farenheit ) - * @param sknt - Wind speed ( in knots ) - * @return the wind chill temperature ( in Farenheit ) if none of the inputs are missing - * @throws NullPointerException - * @throws InvalidValueException - */ - public static final Amount prWcht ( Amount tmpf, Amount sknt) throws InvalidValueException, NullPointerException{ - System.out.println("From prWcht:"); - System.out.println(" tmpf = " + tmpf.doubleValue()); - System.out.println(" sknt = " + sknt.doubleValue()); - double prwrcht = GempakConstants.RMISSD; - checkNullOrInvalidValue(sknt); - checkNullOrInvalidValue(tmpf); - - /*Convert the speed to miles per hour*/ - Amount smph = checkAndConvertInputAmountToExpectedUnits(sknt, NonSI.MILES_PER_HOUR); - - /*If the inputs are not missing , check if the wind speed is <= 3 miles per hour*/ - - double smphVal = smph.doubleValue(); - double tmpfVal = tmpf.doubleValue(); - if( smphVal <= 3 ) - prwrcht = tmpfVal ; - else{ - /*Compute the wind-chill temperature for wind speeds that exceed 3 miles per hour*/ - float wcht = ( float ) ( 35.74 + 0.6215 * tmpfVal -35.75 * Math.pow(smphVal, 0.16) - + 0.4275 * tmpfVal * Math.pow(smphVal, 0.16) ); - prwrcht = ( wcht > tmpfVal ? tmpfVal : wcht); - } - return ( new Amount ( prwrcht , NonSI.FAHRENHEIT ) ); - } - - - /** - * Computes the wind component towards a specific direction from the - * wind direction, wind speed and direction of desired component. - * @param drct - the wind direction in degrees - * @param sped - the wind speed in m/s - * @param dcmp - the direction of the desired component - * @return the component of the wind (in m/s) if none of the input parameters are missing - * @throws NullPointerException - * @throws InvalidValueException - */ - public static final Amount prWcmp ( Amount drct, Amount sped, Amount dcmp ) throws InvalidValueException, NullPointerException{ - System.out.println("From prWcmp:"); - System.out.println(" sped = " + sped.doubleValue()); - System.out.println(" drct = " + drct.doubleValue()); - System.out.println(" dcmp = " + dcmp.doubleValue()); - /*Check for missing input parameters*/ - checkNullOrInvalidValue( drct ); - checkNullOrInvalidValue( sped ); - checkNullOrInvalidValue( dcmp ); - drct = checkAndConvertInputAmountToExpectedUnits( drct , NonSI.DEGREE_ANGLE ); - dcmp = checkAndConvertInputAmountToExpectedUnits( dcmp , NonSI.DEGREE_ANGLE ); - sped = checkAndConvertInputAmountToExpectedUnits( sped , SI.METERS_PER_SECOND ); - - /*Calculate wind speed toward specified direction*/ - double prwcmp = sped.doubleValue() * ( -Math.cos( ( drct.doubleValue() - dcmp.doubleValue()) *GempakConstants.DTR ) ) ; - - return new Amount ( prwcmp , SI.METERS_PER_SECOND); - } - - /** - * Computes the wind component toward a direction 90 degrees counterclockwise of a specified direction. - * If no direction is specified, the component toward north is returned. - * @param drct - wind direction ( in degrees ) - * @param sped - wind speed ( in knots or m/s ) - * @param dcmp - specified wind direction ( in degrees ) - * @return a component of the wind in m/s if the input wind speed and direction are valid and if - * the specified wind direction is between 0 degrees and 360 degrees. - * @throws NullPointerException - * @throws InvalidValueException - * @throws InvalidRangeException - */ - public static final Amount prWnml ( Amount drct, Amount sped, Amount dcmp) throws InvalidValueException, NullPointerException, InvalidRangeException{ - System.out.println("From prWnml:"); - System.out.println(" sped = " + sped.doubleValue()); - System.out.println(" drct = " + drct.doubleValue()); - System.out.println(" dcmp = " + dcmp.doubleValue()); - checkNullOrInvalidValue(sped); - checkNullOrInvalidValue(drct); - checkNullOrInvalidValue(dcmp); - drct = checkAndConvertInputAmountToExpectedUnits( drct , NonSI.DEGREE_ANGLE ); - dcmp = checkAndConvertInputAmountToExpectedUnits( dcmp , NonSI.DEGREE_ANGLE ); - sped = checkAndConvertInputAmountToExpectedUnits( sped , SI.METERS_PER_SECOND ); - if ( ( dcmp.doubleValue() < 0 ) && ( dcmp.doubleValue() > 360 ) ){ - throw new InvalidRangeException("From prWnml - the wind direction 'dcmp' mus be greater than or equal to 0 and less than or equal to 360"); - } - /* - * Calculate wind speed 90 degrees to left of given direction. - */ - double prwnml = ( float ) ( sped.doubleValue() * ( -Math.cos( ( drct.doubleValue() - dcmp.doubleValue() - 90 ) * GempakConstants.DTR ) ) ); - return ( new Amount ( prwnml , SI.METERS_PER_SECOND ) ); - } - - // /** - // * Computes the packed wind speed and direction from the input wind speed and wind direction - // * @param drct - wind direction ( in degrees ) - // * @param sped - wind speed ( in knots or m/s ) - // * @return the packed speed and direction - // */ - // public static final Amount prWind ( Amount drct, Amount sped ){ - // float prwind = GempakConstants.RMISSD; - //// if ( !MissingValueTester.isDataValueMissing(drct) - //// && !MissingValueTester.isDataValueMissing(sped)){ - // /* - // * (Non-Javadoc) - // * The packed wind speed and direction are of the form: - // * SSSDDD, where SSS - wind speed ( in knots or m/s ) and - // * DDD - wind direction in degrees - // * - // */ - // int jdrct = (int ) Math.round( drct.doubleValue() ); - // int jsped = (int) Math.round( sped.doubleValue() ); - // prwind = jdrct + jsped * 1000; - //// } - // return prwind; - // } - - /** - * Computes the worst case categorical identification of flight rules for prevailing - * and temporary / probability conditions. - * @param xvfr - Prevailing categorical id of flight rules - * @param txvf - Temporary / probability categorical id of flight rules - * @return The worst case categorical id of flight rules - * @throws NullPointerException - * @throws InvalidValueException - */ - public static final Amount prWxvf ( Amount xvfr, Amount txvf ) throws InvalidValueException, NullPointerException{ - System.out.println("From prWxvf:"); - System.out.println(" xvfr = " + xvfr.doubleValue()); - System.out.println(" txvf = " + txvf.doubleValue()); - - double prwxvf = GempakConstants.RMISSD; - if ( txvf != null && xvfr != null ){ - - double xvfrVal = xvfr.doubleValue(); - double txvfVal = txvf.doubleValue(); - - if ( txvfVal != GempakConstants.RMISSD && xvfrVal != GempakConstants.RMISSD ) - prwxvf = ( xvfrVal < txvfVal ? xvfrVal : txvfVal ); - - else if (xvfrVal == GempakConstants.RMISSD && txvfVal != GempakConstants.RMISSD ) - prwxvf = xvfrVal; - - else if ( txvfVal != GempakConstants.RMISSD && xvfrVal != GempakConstants.RMISSD ) - prwxvf = txvfVal; - } - - return ( new Amount ( prwxvf , Unit.ONE ) ); - } - - - /** - *
-	 * Computes LIFR/IFR/MVFR/VFR flight conditions based on ceiling and visibility.
-	 * @param ceil - Ceiling in hundreds of feet
-	 * @param vsby - Visibility in statute miles
-	 * @return Flight conditions index value: 
-	 *     0 - LIFR
-	 *     1 - IFR
-	 *     2 - MVFR
-	 *     3 - VFR 
-	 *  
- * @throws NullPointerException - * @throws InvalidValueException - */ - public static final Amount prXvfr ( Amount ceil, Amount vsby ) throws InvalidValueException, NullPointerException{ - System.out.println("From prXvfr:"); - System.out.println(" ceil = " + ceil.doubleValue()); - System.out.println(" vsby = " + vsby.doubleValue()); - - - double prxvfr = GempakConstants.RMISSD; - double vc = GempakConstants.RMISSD; - double vs = GempakConstants.RMISSD; - if ( vsby == null ) - return null; - checkNullOrInvalidValue( ceil ); - ceil = checkAndConvertInputAmountToExpectedUnits( ceil, NcUnits.HUNDREDS_OF_FEET ); - vsby = checkAndConvertInputAmountToExpectedUnits(vsby, NonSI.MILE ); - /*Compute categorical flight rules*/ - - //Check the ceiling value - - double ceilVal = ceil.doubleValue(); - - double vsbyVal = vsby.doubleValue(); - - if ( ceilVal < 0){ - //no-op. So vc retains its RMISSD value - } - else if ( ceilVal < 5 ) - vc = 0; - else if ( ceilVal < 10 ) - vc = 1; - else if ( ceilVal <= 30 ) - vc = 2; - else if ( ( vsbyVal > 5 ) - || ( vsbyVal < 0 ) - || ( vsbyVal == GempakConstants.RMISSD ) ){ - prxvfr = 3; - } - - /*Check the visibility value.*/ - if ( vsbyVal != GempakConstants.RMISSD ){ - if ( vsbyVal < 0 ){ - //no-op. So vs retains it RMISSD value - } - else if ( vsbyVal < 1 ) - vs = 0; - else if ( vsbyVal < 3) - vs = 1; - else if ( vsbyVal <= 5) - vs = 2; - else - vs = 3; - } - - /*Determine the more restrictive of the two values.*/ - if ( vc == GempakConstants.RMISSD ) - prxvfr = vs; - else if ( vs == GempakConstants.RMISSD ) - prxvfr = vc; - else - prxvfr = ( vc < vs ? vc : vs ); - - return ( new Amount ( prxvfr , Unit.ONE ) ) ; - - } - - /** - * Computes station elevation from altimeter and station pressure. - * It is also used to estimate height at various pressure levels from the altimeter in millibars. - * The PC library computes zmsl, Z000, Z950, Z850, Z800 by calling this function with pres - * equal to PMSL, 1000, 950, 850 and 800 respectively. - * @param altm - Altimeter in millibars - * @param pres - Pressure in millibars - * @return the height ( in meters ) if neither input value is missing and both input values - * are greater than zero. - * @throws NullPointerException - * @throws InvalidValueException - * @throws InvalidRangeException - */ - public static final Amount prZalt ( Amount altm, Amount pres ) throws InvalidValueException, NullPointerException, InvalidRangeException{ - System.out.println("From prZalt:"); - System.out.println(" altm = " + altm.doubleValue()); - System.out.println(" pres = " + pres.doubleValue()); - - checkNullOrInvalidValue( pres ); - checkNullOrInvalidValue( altm ); - pres = checkAndConvertInputAmountToExpectedUnits( pres, NcUnits.MILLIBAR ); - altm = checkAndConvertInputAmountToExpectedUnits( altm, NcUnits.MILLIBAR ); - if ( altm.doubleValue() <= 0 ) - throw new InvalidRangeException("From prZalt: altm must be greater than 0 mb"); - - if ( pres.doubleValue() <= 0 ) - throw new InvalidRangeException("From prZalt: pres must be greater than 0 mb"); - - double to = GempakConstants.TMCK + 15; - double gamma = GempakConstants.GAMUSD / 1000 ; - - /*Calculate the exponent and pressure ratio.*/ - double expo = ( gamma * GempakConstants.RDGAS ) / GempakConstants.GRAVTY; - double prat = pres.doubleValue() / altm.doubleValue() ; - double przalt = ( to * ( 1 - Math.pow ( prat, expo) ) ) / gamma ; - - return ( new Amount ( przalt , SI.METER) ) ; - } - - - - /** - * Computes the windchill from the wind velocity ( part of the Falconer equation - refer method prWceq) - * @param d - wind velocity ( in meters per second ) - * @return the windchill temperature - */ - private static double wci ( double d){ - - /* from R. Falconer, "Windchill, A Useful Wintertime Weather Variable", Weatherwise, Dec 1968.*/ - return ( ( double ) (10 * Math.sqrt(d) + 10.45 - d )); - - - } - - private static final Amount checkAndConvertInputAmountToExpectedUnits(Amount amountIn, Unit expectedUnit){ - Amount amountOut = null; - if ( ! amountIn.getUnit().equals(expectedUnit) - && amountIn.getUnit().isCompatible(expectedUnit)){ - double newValue = amountIn.getUnit().getConverterTo(expectedUnit).convert(amountIn.doubleValue()); - amountOut = new Amount(newValue,expectedUnit); - }else - // throw new ConversionException("Unable to convert " + amountIn.getUnit().toString() + " to " + expectedUnit.toString() ); - amountOut = amountIn; - - return amountOut; - } - - private static final void checkNullOrInvalidValue( Amount amountToCheck ) throws InvalidValueException, NullPointerException{ - if (amountToCheck == null ) - throw new NullPointerException(); - else { - double amountValue = amountToCheck.doubleValue(); - if ( amountValue == GempakConstants.RMISSD){ - throw new InvalidValueException( new String ("Input amount cannot be -9999")); - } - else if ( Double.isNaN(amountValue)) - throw new InvalidValueException( new String ("Input amount cannot be NaN" )); - } - } - - - public static final class InvalidRangeException extends VizException { - public InvalidRangeException( String msg) { - super( msg ); - } - } - - public static final class InvalidValueException extends VizException { - public InvalidValueException( String msg) { - super( msg ); - } - } - -} \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metParameters/quantity/RateOfChangeInTemperatureWithHeight.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metParameters/quantity/RateOfChangeInTemperatureWithHeight.java deleted file mode 100644 index 688d7135a8..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metParameters/quantity/RateOfChangeInTemperatureWithHeight.java +++ /dev/null @@ -1,12 +0,0 @@ -package gov.noaa.nws.ncep.metParameters.quantity; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.NcUnits; - -import javax.measure.quantity.Quantity; -import javax.measure.unit.ProductUnit; -import javax.measure.unit.SI; -import javax.measure.unit.Unit; - - public interface RateOfChangeInTemperatureWithHeight extends javax.measure.quantity.Quantity { - public final static Unit UNIT = NcUnits.CELSIUS_PER_KILOMETER; - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metParameters/quantity/RateOfChangeInTemperatureWithPressure.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metParameters/quantity/RateOfChangeInTemperatureWithPressure.java deleted file mode 100644 index 62649b9cee..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metParameters/quantity/RateOfChangeInTemperatureWithPressure.java +++ /dev/null @@ -1,12 +0,0 @@ -package gov.noaa.nws.ncep.metParameters.quantity; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.NcUnits; - -import javax.measure.quantity.Quantity; -import javax.measure.unit.ProductUnit; -import javax.measure.unit.SI; -import javax.measure.unit.Unit; - - public interface RateOfChangeInTemperatureWithPressure extends javax.measure.quantity.Quantity { - public final static Unit UNIT = NcUnits.KELVIN_PER_MILLIBAR; - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/AbstractMetParameter.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/AbstractMetParameter.java deleted file mode 100644 index 3a09384945..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/AbstractMetParameter.java +++ /dev/null @@ -1,437 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.NotDerivableException; - -import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Formatter; -import java.util.List; - -import javax.measure.converter.ConversionException; -import javax.measure.quantity.Quantity; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.time.DataTime; -import com.raytheon.uf.common.time.DataTime.FLAG; - -/** - * An abstract class for all metParameters. This will hold the value of the parameter and - * its units. - * - * TODO : add support for the Level/Layer at which the value applies. The level could be a PressureLevel, - * a Height or 'Surface' or other defined layer. This would allow the derive methods to remove the PressureLevel - * derive() arguements and do a compatibility check on the other arguements to make sure they are all from the same - * level. - * Could also add support for the time or duration for which the value applies. - * - * - * TODO : make this a generic for a Quantity? ... AbstractMetParameter - * - *
- * 
- * SOFTWARE HISTORY
- * 
- * Date         Ticket#    Engineer    Description
- * ------------ ---------- ----------- --------------------------
- * 05/05/2011              Greg Hull    Initial creation
- * 06/05/2011              Greg Hull    Added check for infinite recursion in derive method.
- * 10/05/2011              Greg Hull    add dataTime 
- * 
- * 
- * - * @author ghull - * @version 1.0 - */ -public abstract class AbstractMetParameter extends Amount implements Quantity { - - private boolean useStringValue = false; // override to true for String parameters. - - private Unit standardUnit; - - public Unit getStandardUnit() { - return standardUnit; - } - - // only one of these may be set at a time. In order to hold a string value - // the Quantity of the parameter must be Dimensionless - protected String valueString; // "" is MISSING, null for non-string values - - // if this list is set then derive() will first look for a derive method using - // just these parameters. - protected ArrayList preferedDeriveParameters; - - protected DataTime dataTime; - - protected AbstractMetParameter( Unit u ) { - super( u ); - valueString = null; - standardUnit = u; - } - - protected AbstractMetParameter( Unit u, DataTime dt ) { - super( u ); - valueString = null; - standardUnit = u; - dataTime = dt; - } - - // Override for real Description information - public String getParameterDescription( ) { - return getMetParamName(); - } - - protected void setValueIsString() { - useStringValue = true; - } - - public boolean isUnitCompatible( Unit u ) { - return standardUnit.isCompatible( u ); - } - - public Boolean hasStringValue() { - return useStringValue; - } - - public String getStringValue() { - return (valueString == null ? "" : valueString); - - } - - public Boolean hasValidTime( ) { - return ( dataTime != null ); - } - - public DataTime getValidTime() { - return dataTime; - } - - public Boolean isValidAtTime( DataTime dt ) { - if( dataTime == null ) { - return null; - } - - if( dataTime.getUtilityFlags().contains( FLAG.PERIOD_USED ) ) { - return dataTime.getValidPeriod().contains( dt.getValidTime().getTime() ); - } - else { - return dataTime.compareTo( dt ) == 0; - } - } - - public void setValidTime( DataTime dt ) { - dataTime = dt; - } - - @Override - public boolean hasValidValue() { - if( useStringValue ) { - return (valueString == null ? false : true ); - } - else { - return super.hasValidValue(); - } - } - - // ?throw exceptions for invalid value or for incompatible units? - public Number getValueAs( Unit unitNeeded ) { - if( !hasValidValue() ) { - return null; - } - else if( !isUnitCompatible( unitNeeded ) ) { - System.out.println("getValueAs() : asking for incompatible units. "+ - unit.toString() +", "+ unitNeeded.toString() ); - return null; - } - - if( useStringValue ) { - return getMissingValueSentinel(); - } - else { - return super.getValueAs( unitNeeded ); - } - } - - // this will work off of the current units so if we need to - // format at string using different units the value must be - // changed before calling this method. - // the formatStr can be a 'printf' style string or a - // parameter-specific tag for abbreviating, triming or - // converting the parameter value. In the latter case this - // method must be overridden. - // - public String getFormattedString( String formatStr ) { - - String formattedValueStr = null; - - if( hasStringValue() ) { - formattedValueStr = valueString; - } - else { - formattedValueStr = value.toString(); - } - - if( formatStr == null ) { - return formattedValueStr; - } - else if( formatStr.startsWith("%") ) { -// double formattedValue = valueAs.doubleValue(); - StringBuilder sb = new StringBuilder(); - Formatter fmtr = new Formatter( sb ); - fmtr.format( formatStr, value ); // formattedValue - - formattedValueStr = sb.toString(); - -// sValue = sValue.substring( trim ); - - return formattedValueStr; - } - else { - System.out.println("Sanity Check: Unrecognized format string ("+ formatStr + - ") for metParameter "+ getMetParamName() ); - return formattedValueStr; - } - } - - // if this - public void setStringValue( String sv ) throws ConversionException { - // the units must be dimensionless -// if( isUnitCompatible( Unit.ONE ) ) { -// throw new ConversionException("Incompatible unit in setStringValue the Quantity " -// +" for this parameter must be Dimensionless." ); -// } - setValueToMissing(); - - valueString = sv; - } - - @Override - public void setValueToMissing( ) { - if( useStringValue ) { - valueString = null; - } - - super.setValueToMissing(); - } - - public Boolean derivable( ArrayList checkedParams, - Collection inputParams ) { - - return (getDeriveMethod( checkedParams, inputParams) != null); - } - - public Method getDeriveMethod( Collection inputParams ) { - - ArrayList checkedParams = new ArrayList(); - - // if the preferredDeriveParameters list is set then only use these - // parameters. - if( preferedDeriveParameters != null ) { - ArrayList inputParamsList = new ArrayList(); - for( AbstractMetParameter prm : inputParams ) { - if( preferedDeriveParameters.contains( prm.getMetParamName() ) ) { - inputParamsList.add( prm ); - } - } - return getDeriveMethod( checkedParams, inputParamsList ); - } - else { - return getDeriveMethod( checkedParams, inputParams ); - } - } - - // check each of the methods named 'derive' and check to see if the - // given inputParams are sufficient to derive this ncParameter. - // - public Method getDeriveMethod( ArrayList checkedParams, - Collection inputParams ) { - - Method[] deriveMthds = this.getClass().getDeclaredMethods(); - ArrayList foundDeriveMthds = new ArrayList(); - - // check each derive method to see if its arguments are in the inputParams - for( Method m : deriveMthds ) { - boolean derivable = true; - - if( m.getAnnotation( DeriveMethod.class ) != null ) { - - Class rtype = m.getReturnType(); -// if( rtype.getSimpleName().compareTo(AbstractMetParameter.class.getName()) != 0 ) { // sanity check -// continue; -// } - Class[] deriveMthdArgs = m.getParameterTypes(); - - // loop thru the list of args for this derive() method and check - // if it is in the inputParams list. - for( Class argClass : deriveMthdArgs ) { - boolean prmFound = false; - boolean prmIsDerivable = false; - - for( AbstractMetParameter inputPrm : inputParams ) { - - // if we have this input parameter or we can - // derive this input parameter - if( inputPrm.getClass() == argClass ) { - prmFound = true; - break; - } - } - - // if not in the list and if we have already checked this parameter - // then see if it is derivable - // - if( !prmFound && - !checkedParams.contains( this.getMetParamName() ) ) { - - AbstractMetParameter argParam; - try { - argParam = (AbstractMetParameter) - argClass.getConstructor( ).newInstance(); - - checkedParams.add( argParam.getMetParamName() ); - - prmIsDerivable = argParam.derivable( checkedParams, inputParams); - - checkedParams.remove( argParam.getMetParamName() ); - - } catch (Exception e) { - System.out.println("error getting newInstance for metParam " + argClass.getSimpleName() ); - } - } - - if( !prmFound && !prmIsDerivable ) { - derivable = false; -// break; - } - } // end loop thru derive() args - - if( derivable ) { - //return m; - foundDeriveMthds.add( m ); - } - } - } - - // - if( foundDeriveMthds.isEmpty() ) { - return null; - } - else if( foundDeriveMthds.size() > 1 ) { - // If this happens then the caller should set the preferredDeriveParameters - // list to tell this method which arguements to use. - System.out.println("Sanity Check: metParameter "+ - getMetParamName() + " has multiple derive() methods for " + - "the given input parameters."); - return null; - } - else { - return foundDeriveMthds.get( 0 ); - } - } - - public AbstractMetParameter derive( Collection inputParams ) - throws NotDerivableException { - - Method deriveMthd = getDeriveMethod( inputParams ); - - if( deriveMthd == null ) { - setValueToMissing(); - return this; - // throw new NotDerivableException("can't derive param from given parameters."); - } - String errMsg=""; - - try { - // check each derive method to see if its arguments are in the input - Class[] deriveMthdArgs = deriveMthd.getParameterTypes(); - - // a list of the parameter args (actual values) that will be passed to - // the derive() method. - List mthdArgs = new ArrayList(0); - - for( Class argClass : deriveMthdArgs ) { - boolean prmFound = false; - - for( AbstractMetParameter inputPrm : inputParams ) { - // if we don't have this input parameter, derive it - // - if( inputPrm.getClass() == argClass ) { - - if( !inputPrm.hasValidValue() ) { - setValueToMissing(); - return this; - } - else { - mthdArgs.add( inputPrm ); - prmFound = true; - break; - } - } - } - if( !prmFound ) { - // create an object for this parameter and then set/derive - // the value - Constructor constr = argClass.getConstructor(); - AbstractMetParameter derivedArgPrm = (AbstractMetParameter)constr.newInstance(); - derivedArgPrm = derivedArgPrm.derive( inputParams ); - mthdArgs.add( derivedArgPrm ); - } - } - - Class rtype = deriveMthd.getReturnType(); - Object derivedParam=null; - - switch( mthdArgs.size() ) { - case 1 : - derivedParam = deriveMthd.invoke(this, mthdArgs.get(0) ); - break; - case 2 : - derivedParam = deriveMthd.invoke(this, mthdArgs.get(0), mthdArgs.get(1) ); - break; - case 3 : - derivedParam = deriveMthd.invoke(this, mthdArgs.get(0), mthdArgs.get(1), - mthdArgs.get(2) ); - break; - case 4 : - derivedParam = deriveMthd.invoke(this, mthdArgs.get(0), mthdArgs.get(1), - mthdArgs.get(2), mthdArgs.get(3) ); - break; - } - - return (AbstractMetParameter) derivedParam; - - } catch (IllegalArgumentException e) { - errMsg = e.getMessage(); - } catch (IllegalAccessException e) { - errMsg = e.getMessage(); - } catch (InvocationTargetException e) { - errMsg = e.getMessage(); - } catch (SecurityException e) { - errMsg = e.getMessage(); - } catch (NoSuchMethodException e) { - errMsg = e.getMessage(); - } catch (InstantiationException e) { - errMsg = e.getMessage(); - } - - throw new NotDerivableException( errMsg == null ? "" : errMsg ); - } - - public String getMetParamName() { - return this.getClass().getSimpleName(); - } - - public ArrayList getPreferedDeriveParameters() { - return preferedDeriveParameters; - } - - // Assume that the caller has already called isValidMetParameterName() to - // validate the names in the list. - public void setPreferedDeriveParameters( ArrayList preferedDeriveParameters ) { - this.preferedDeriveParameters = preferedDeriveParameters; - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Activator.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Activator.java deleted file mode 100644 index 246d96fb35..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Activator.java +++ /dev/null @@ -1,50 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import org.eclipse.ui.plugin.AbstractUIPlugin; -import org.osgi.framework.BundleContext; - -/** - * The activator class controls the plug-in life cycle - */ -public class Activator extends AbstractUIPlugin { - - // The plug-in ID - public static final String PLUGIN_ID = "gov.noaa.nws.ncep.metParameters"; //$NON-NLS-1$ - - // The shared instance - private static Activator plugin; - - /** - * The constructor - */ - public Activator() { - } - - /* - * (non-Javadoc) - * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) - */ - public void start(BundleContext context) throws Exception { - super.start(context); - plugin = this; - } - - /* - * (non-Javadoc) - * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) - */ - public void stop(BundleContext context) throws Exception { - plugin = null; - super.stop(context); - } - - /** - * Returns the shared instance - * - * @return the shared instance - */ - public static Activator getDefault() { - return plugin; - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/AirParcelTemp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/AirParcelTemp.java deleted file mode 100644 index 8671f41206..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/AirParcelTemp.java +++ /dev/null @@ -1,26 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import javax.measure.unit.Unit; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -public class AirParcelTemp extends AbstractMetParameter implements javax.measure.quantity.Temperature { - public AirParcelTemp() { - super( UNIT ); - } - - @DeriveMethod - public AirParcelTemp derive(EquivPotentialTemp et, PressureLevel p, AirTemperature t ) throws InvalidValueException, NullPointerException, InvalidRangeException { - if ( et.hasValidValue() && p.hasValidValue() && t.hasValidValue() ){ - Amount val = PRLibrary.prTmst(et, p, t); - setValue(val); - } - else - setValueToMissing(); - - return this; - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/AirTemperature.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/AirTemperature.java deleted file mode 100644 index 8de1a48280..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/AirTemperature.java +++ /dev/null @@ -1,28 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - - -public class AirTemperature extends AbstractMetParameter implements - javax.measure.quantity.Temperature { - - public AirTemperature( ) { - super( UNIT ); - } - - @DeriveMethod - public AirTemperature derive( PressureLevel p, PotentialTemp pt) throws InvalidRangeException, InvalidValueException, NullPointerException { - if ( p.hasValidValue() && pt.hasValidValue() ){ - Amount tempAmount = PRLibrary.prTmpk(p, pt); - setValue(tempAmount); - } - else - setValueToMissing(); - - return this; - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/AircraftReportType.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/AircraftReportType.java deleted file mode 100644 index 7b01ad7201..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/AircraftReportType.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; - -/** - * @author archana - * - */ -public class AircraftReportType extends AbstractMetParameter implements Dimensionless { - - public AircraftReportType() { - super(UNIT); -// setValueIsString(); - } - -} \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/AircraftType.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/AircraftType.java deleted file mode 100644 index f4bb168265..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/AircraftType.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; - -/** - * @author archana - * - */ -public class AircraftType extends AbstractMetParameter implements Dimensionless { - - public AircraftType() { - super(UNIT); - setValueIsString(); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Amount.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Amount.java deleted file mode 100644 index df0630d2d3..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Amount.java +++ /dev/null @@ -1,150 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.unit.Unit; -/** - * Class used to hold a value and its units. - * - *
- * SOFTWARE HISTORY
- * Date         Ticket#    Engineer    Description
- * ------------ ---------- ----------- --------------------------
- *  06/16/2011   #441       G Hull    Initial creation.
- * 
- * 
- * - * @author ghull - * @version 1.0 - */ - -public class Amount { - - // TODO : add capability to let user set their own missing data value. - private Number missing_data_value = new Double( -9999 ); - - protected Number value = missing_data_value; - - protected Unit unit; - - // To simplify the - public Amount( Number val, Unit unit) { - this.value = val; - this.unit = unit; - - setMissingDataSentinel(); - } - - public Amount( Unit u ) { - value = missing_data_value; - unit = u; - } - - // TODO Should we allow access to the value without the units? Or - // can we let the user assume the stored units for convienience? - public Number getValue() { - return value; - } - - // call hasValidValue before calling this method. - // - public Number getValueAs( Unit unitNeeded ) { - if( unitNeeded != unit && unitNeeded.isCompatible( unit ) ) { - double newValue = unit.getConverterTo(unitNeeded).convert( value.doubleValue() ); - return newValue; - } - else { - return value; - } - } - - public Unit getUnit() { - return unit; - } - - public void setValue( Amount v ) { - setValue( v.value, v.unit ); - } - - public void setValue( Number n ) { - setValue( n, unit ); - } - - public void setValue( Number n, Unit u ) { - value = n; - unit = u; - } - - // make sure the missing data sentinal and the stored value are of the - // same type so that the comparisons will work. - // - // TODO : create a method to let the user set the missing data sentinal to - // whatever they want.... - // - public void setMissingDataSentinel( ) { // Number mds ) { - // limit the number of - if( value instanceof Double ) { - missing_data_value = new Double( -9999 ); - } - else if( value instanceof Float ) { - missing_data_value = new Float( -9999 ); - } - else if( value instanceof Integer ) { - missing_data_value = new Integer( -9999 ); - } - else if( value instanceof Long ) { - missing_data_value = new Long( -9999 ); - } - else { - System.out.println("Error: Number object in Amount is not one of the supported types: "+ - "Double, Float, Integer or Long " ); - } - } - - public void setMissingDataSentinel( Number mds ) { - missing_data_value = mds; - } - - public Number getMissingValueSentinel() { - return missing_data_value; - } - - // convenience method used by PRLibrary. - // TODO : replace calls with getValue().doubleValue - public double doubleValue() { - return value.doubleValue(); - } - - public boolean hasValidValue() { - if( (value == null || value.equals( missing_data_value ) - || value.doubleValue() == missing_data_value.doubleValue()) ) { - return false; - } - return true; - } - - public void setValueToMissing( ) { - value = missing_data_value; - } - - public void setUnit( Unit u ) { - if( hasValidValue() ) { - value = getValueAs( u ); - } - - unit = u; - } - - // // convert the current value to - // public void setUnits( Unit u ) { - // if( value != MISSING_DATA_VALUE ) { - // unit = u; - // } - // else { - // - // } - // } - // TODO : Do we need to worry about rounding errors here? - // public Boolean isMissingValue( ) { - // return value.doubleValue() == MISSING_DATA_VALUE; - // } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Avg3HrShipSpeed.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Avg3HrShipSpeed.java deleted file mode 100644 index 318a6f294b..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Avg3HrShipSpeed.java +++ /dev/null @@ -1,19 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Velocity; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class Avg3HrShipSpeed extends AbstractMetParameter implements Velocity{ - - public Avg3HrShipSpeed(){ - super( UNIT ); - } - - @Override - public String getParameterDescription( ) { - return "Average Ship Speed for the last 3 Hours"; - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/BaseOfIcing.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/BaseOfIcing.java deleted file mode 100644 index 0f67236c84..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/BaseOfIcing.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class BaseOfIcing extends AbstractMetParameter - implements Length { - - public BaseOfIcing() { - super( UNIT ); - } - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/BaseOfTurbulence.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/BaseOfTurbulence.java deleted file mode 100644 index 5df1a48313..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/BaseOfTurbulence.java +++ /dev/null @@ -1,12 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - - public class BaseOfTurbulence extends AbstractMetParameter implements Length { - - public BaseOfTurbulence() { - super( UNIT ); - } - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/BaseOfWeather.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/BaseOfWeather.java deleted file mode 100644 index 08dbe2410d..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/BaseOfWeather.java +++ /dev/null @@ -1,14 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class BaseOfWeather extends AbstractMetParameter implements Length { - - public BaseOfWeather() { - super( UNIT ); - } - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/BruntVaisalaFreq.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/BruntVaisalaFreq.java deleted file mode 100644 index 19af600440..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/BruntVaisalaFreq.java +++ /dev/null @@ -1,14 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Frequency; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class BruntVaisalaFreq extends AbstractMetParameter implements Frequency { - - public BruntVaisalaFreq(){ - super( UNIT ); - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/BruntVaisalaFreqSquared.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/BruntVaisalaFreqSquared.java deleted file mode 100644 index 0e5fb1414f..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/BruntVaisalaFreqSquared.java +++ /dev/null @@ -1,22 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.NcUnits; - -import javax.measure.quantity.Frequency; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class BruntVaisalaFreqSquared extends AbstractMetParameter implements Frequency { - - public BruntVaisalaFreqSquared(){ - super( UNIT ); - } - -// @Override -// protected AbstractMetParameter create() { -// BruntVaisalaFrequencySquared b = new BruntVaisalaFrequencySquared(); -// return b; -// } - -} \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/BruntVaisalaPeriod.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/BruntVaisalaPeriod.java deleted file mode 100644 index 4d4e6fc41b..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/BruntVaisalaPeriod.java +++ /dev/null @@ -1,11 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Duration; - -public class BruntVaisalaPeriod extends AbstractMetParameter implements Duration { - - public BruntVaisalaPeriod(){ - super( UNIT ); - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CatFcstCeilingHeightCond.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CatFcstCeilingHeightCond.java deleted file mode 100644 index 268b90e2d8..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CatFcstCeilingHeightCond.java +++ /dev/null @@ -1,12 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; - -public class CatFcstCeilingHeightCond extends AbstractMetParameter implements Dimensionless { - - public CatFcstCeilingHeightCond() { - super( UNIT ); - } - -} \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CatFcstObstructionsVision.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CatFcstObstructionsVision.java deleted file mode 100644 index 407e2a138b..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CatFcstObstructionsVision.java +++ /dev/null @@ -1,12 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; - -public class CatFcstObstructionsVision extends AbstractMetParameter implements Dimensionless { - - public CatFcstObstructionsVision() { - super( UNIT ); - } - -} \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CatFcstPrecipitation.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CatFcstPrecipitation.java deleted file mode 100644 index 7f441a5601..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CatFcstPrecipitation.java +++ /dev/null @@ -1,12 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; - -public class CatFcstPrecipitation extends AbstractMetParameter implements Dimensionless { - - public CatFcstPrecipitation() { - super( UNIT ); - } - -} \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CatFcstSnowAmountFalling24hr.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CatFcstSnowAmountFalling24hr.java deleted file mode 100644 index cc5fb3e84b..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CatFcstSnowAmountFalling24hr.java +++ /dev/null @@ -1,12 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; - -public class CatFcstSnowAmountFalling24hr extends AbstractMetParameter implements Dimensionless { - - public CatFcstSnowAmountFalling24hr() { - super( UNIT ); - } - -} \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CatFcstVisibilityCond.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CatFcstVisibilityCond.java deleted file mode 100644 index a0f42615a6..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CatFcstVisibilityCond.java +++ /dev/null @@ -1,12 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; - -public class CatFcstVisibilityCond extends AbstractMetParameter implements Dimensionless { - - public CatFcstVisibilityCond() { - super( UNIT ); - } - -} \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CeilingFromSeaLevel.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CeilingFromSeaLevel.java deleted file mode 100644 index 12bf3ab196..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CeilingFromSeaLevel.java +++ /dev/null @@ -1,30 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import javax.measure.quantity.Length; - - public class CeilingFromSeaLevel extends AbstractMetParameter implements Length { - - public CeilingFromSeaLevel() { - super( UNIT ); - } - - @Override - public String getParameterDescription( ) { - return "The Ceiling as measured from sea level."; - } - - @DeriveMethod //TODO cross check the validity of this equation - AbstractMetParameter derive ( CeilingFromSurface c, StationElevation se) throws InvalidValueException, NullPointerException{ - if ( c.hasValidValue() && se.hasValidValue() ){ - Amount val = PRLibrary.prCmsl( c, se ); - setValue( val ); - }else - setValueToMissing(); - - return this; - } - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CeilingFromSeaLevelWorstCase.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CeilingFromSeaLevelWorstCase.java deleted file mode 100644 index 74648b5146..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CeilingFromSeaLevelWorstCase.java +++ /dev/null @@ -1,24 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -public class CeilingFromSeaLevelWorstCase extends AbstractMetParameter implements Length { - - public CeilingFromSeaLevelWorstCase(){ - super( UNIT ); - } - - @DeriveMethod - AbstractMetParameter derive ( CeilingFromSeaLevel cmsl, TemporaryCeilingAsMeanSeaLevel tcms ){ - if ( cmsl.hasValidValue() ){ - Amount val = ( !tcms.hasValidValue() ? cmsl : tcms ); //prWcms - setValue( val ); - } - else - setValueToMissing(); - return this; - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CeilingFromSurface.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CeilingFromSurface.java deleted file mode 100644 index 0a3e9b33da..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CeilingFromSurface.java +++ /dev/null @@ -1,44 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import javax.measure.quantity.Length; - -/** - * @author archana - * - */ -public class CeilingFromSurface extends AbstractMetParameter implements Length { - - public CeilingFromSurface() { - super( UNIT ); - } - - @Override - public String getParameterDescription( ) { - return "The Ceiling as measured from the station or surface."; - } - - // This was not in the PRLibrary but adding it here since it makes sense. - // (TODO : not tested.) - @DeriveMethod - AbstractMetParameter derive( CeilingFromSeaLevel csl, StationElevation se) throws InvalidValueException, NullPointerException{ - if( csl.hasValidValue() && se.hasValidValue() ) { - // subtract the surface elevation from the ceiling from sealevel. - Double ceil = csl.getValueAs( getUnit() ).doubleValue() - - se.getValueAs( getUnit() ).doubleValue(); - - setValue( ceil, getUnit() ); - } - else { - setValueToMissing(); - } - return this; - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Clim12HrPOP.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Clim12HrPOP.java deleted file mode 100644 index c9f05e9d6e..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Clim12HrPOP.java +++ /dev/null @@ -1,25 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; -/** - * @author archana - * - */ - public class Clim12HrPOP extends AbstractMetParameter implements - Dimensionless { - - public Clim12HrPOP() { - super( UNIT ); - } - - @Override - public String getParameterDescription( ) { - return "Climatological 12 Hour Probability of Precipitation."; - } - - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Clim24HrPOP.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Clim24HrPOP.java deleted file mode 100644 index 3e94dd91ac..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Clim24HrPOP.java +++ /dev/null @@ -1,27 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; - -/** - * @author archana - * - */ - public class Clim24HrPOP extends AbstractMetParameter implements - Dimensionless { - - public Clim24HrPOP() { - super( UNIT ); - } - - @Override - public String getParameterDescription( ) { - return "Climatological 24 Hour Probability of Precipitation."; - } - - - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/ClimDayTemp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/ClimDayTemp.java deleted file mode 100644 index 09f0a47c40..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/ClimDayTemp.java +++ /dev/null @@ -1,69 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - -import java.util.Calendar; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; -import gov.noaa.nws.ncep.metparameters.dbquery.util.ClimateDataDbAccess; -import gov.noaa.nws.ncep.metparameters.dbquery.util.ClimateDataDbAccessManager; - -import javax.measure.quantity.Temperature; -import javax.measure.unit.NonSI; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.time.DataTime; - - /** - * @author archana - * - */ - public class ClimDayTemp extends AbstractMetParameter implements - Temperature { - - private static Calendar calendar = Calendar.getInstance(); - - public ClimDayTemp() { - super( UNIT ); - } - - @Override - public String getParameterDescription( ) { - return "Climatological Day-time temperature."; - } - - @DeriveMethod - public ClimDayTemp derive( StationID stnid ) throws InvalidValueException, NullPointerException { - - DataTime dt = stnid.getValidTime(); - - if( dt == null ) { - throw new InvalidValueException("StationID doesn't have a valid time needed"); - } - - calendar.setTime( dt.getRefTime() ); - Integer month = calendar.get(Calendar.MONTH) + 1; - Integer dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH); - - double climateTDYFInF = getClimateTDYF(stnid.valueString, - month.toString(), dayOfMonth.toString() ); -// System.out.println("=======, climateTDYFInF= "+climateTDYFInF); - - setValue( new Amount(climateTDYFInF, NonSI.FAHRENHEIT) ); - - // TODO : if station is not in the db then set the value to missing; - //setValueToMissing(); - - return this; - } - - private double getClimateTDYF(String stationId, String month, String day) { - ClimateDataDbAccess climateDataDbAccess = ClimateDataDbAccessManager.getInstance().getClimateDataDbAccess(); - double tdyfClimateValue = climateDataDbAccess.getTDYF(stationId, month, day); - return tdyfClimateValue; - } - - - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/ClimNightTemp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/ClimNightTemp.java deleted file mode 100644 index 612c6189e7..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/ClimNightTemp.java +++ /dev/null @@ -1,24 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Temperature; -import javax.measure.unit.Unit; - - /** - * @author archana - * - */ - public class ClimNightTemp extends AbstractMetParameter implements Temperature { - - public ClimNightTemp() { - super( UNIT ); - } - - @Override - public String getParameterDescription( ) { - return "Climatological Night-time temperature."; - } - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CloudBase1.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CloudBase1.java deleted file mode 100644 index fd67b5b7d5..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CloudBase1.java +++ /dev/null @@ -1,12 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; - - public class CloudBase1 extends AbstractMetParameter - implements Length { - - public CloudBase1() { - super( UNIT ); - } - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CloudBase2.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CloudBase2.java deleted file mode 100644 index d580e3422a..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CloudBase2.java +++ /dev/null @@ -1,14 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - - public class CloudBase2 extends AbstractMetParameter - implements Length { - - public CloudBase2() { - super( UNIT ); - } - - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CloudCover.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CloudCover.java deleted file mode 100644 index 8f81e6e897..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CloudCover.java +++ /dev/null @@ -1,24 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import javax.measure.quantity.Dimensionless; -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -// The cloud coverage at a given height. Values are strings representing -// metar observations FEW, OVC, -// -// A list of CloudCovers is used to determine the skyCoverage. -// - public class CloudCover extends AbstractMetParameter implements Dimensionless { - - public CloudCover() { - super( UNIT ); - } - - @Override - public Boolean hasStringValue() { - return true; - }; - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CloudTop1.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CloudTop1.java deleted file mode 100644 index 51607f010d..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CloudTop1.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class CloudTop1 extends AbstractMetParameter - implements Length { - - public CloudTop1() { - super( UNIT ); - } - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CloudTop2.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CloudTop2.java deleted file mode 100644 index c5adc04f8e..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CloudTop2.java +++ /dev/null @@ -1,13 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; - - public class CloudTop2 extends AbstractMetParameter - implements Length { - - public CloudTop2() { - super( UNIT ); - } - - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondFcstPrecip12HrType.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondFcstPrecip12HrType.java deleted file mode 100644 index 1fce18f66a..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondFcstPrecip12HrType.java +++ /dev/null @@ -1,13 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; - -public class CondFcstPrecip12HrType extends AbstractMetParameter implements -Dimensionless { - - public CondFcstPrecip12HrType() { - super( UNIT ); - } - -} \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf12HrFreezingPrecip.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf12HrFreezingPrecip.java deleted file mode 100644 index c8be836d47..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf12HrFreezingPrecip.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; - -/** - * @author archana - * - */ - public class CondProbOf12HrFreezingPrecip extends AbstractMetParameter implements - Dimensionless { - - public CondProbOf12HrFreezingPrecip() { - super( UNIT ); - } - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf12HrMixedLiquidOrFrozenSolid.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf12HrMixedLiquidOrFrozenSolid.java deleted file mode 100644 index 05d47821f0..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf12HrMixedLiquidOrFrozenSolid.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; - -/** - * @author archana - * - */ - public class CondProbOf12HrMixedLiquidOrFrozenSolid extends AbstractMetParameter implements - Dimensionless { - - public CondProbOf12HrMixedLiquidOrFrozenSolid() { - super( UNIT ); - } - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf12HrRain.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf12HrRain.java deleted file mode 100644 index 69fdd244da..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf12HrRain.java +++ /dev/null @@ -1,13 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; - -public class CondProbOf12HrRain extends AbstractMetParameter implements - Dimensionless { - - public CondProbOf12HrRain() { - super( UNIT ); - } - -} \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf12HrSevereWeather.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf12HrSevereWeather.java deleted file mode 100644 index 2d2b52ada6..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf12HrSevereWeather.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; - -/** - * @author archana - * - */ - public class CondProbOf12HrSevereWeather extends AbstractMetParameter implements - Dimensionless { - - public CondProbOf12HrSevereWeather() { - super( UNIT ); - } - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf12HrSnow.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf12HrSnow.java deleted file mode 100644 index 606f71350c..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf12HrSnow.java +++ /dev/null @@ -1,21 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; - -/** - * @author archana - * - */ - public class CondProbOf12HrSnow extends AbstractMetParameter implements - Dimensionless { - - public CondProbOf12HrSnow() { - super( UNIT ); - } - - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf24HrSevereWeather.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf24HrSevereWeather.java deleted file mode 100644 index 356eb32f75..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf24HrSevereWeather.java +++ /dev/null @@ -1,12 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; - -public class CondProbOf24HrSevereWeather extends AbstractMetParameter implements - Dimensionless { - - public CondProbOf24HrSevereWeather() { - super( UNIT ); - } -} \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf6HrSevereWeather.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf6HrSevereWeather.java deleted file mode 100644 index 226863236b..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOf6HrSevereWeather.java +++ /dev/null @@ -1,19 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; - -/** - * @author archana - * - */ - public class CondProbOf6HrSevereWeather extends AbstractMetParameter implements - Dimensionless { - - public CondProbOf6HrSevereWeather() { - super( UNIT ); - } - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOfFreezingPrecip.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOfFreezingPrecip.java deleted file mode 100644 index 82d72167e7..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOfFreezingPrecip.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; - -/** - * @author archana - * - */ - public class CondProbOfFreezingPrecip extends AbstractMetParameter implements - Dimensionless { - - public CondProbOfFreezingPrecip() { - super( UNIT ); - } - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOfSnow.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOfSnow.java deleted file mode 100644 index 2dbbaea232..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/CondProbOfSnow.java +++ /dev/null @@ -1,21 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; - - /** - * @author archana - * - */ - public class CondProbOfSnow extends AbstractMetParameter implements - Dimensionless { - - public CondProbOfSnow() { - super( UNIT ); - } - - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DPRN.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DPRN.java deleted file mode 100644 index aea1a3da35..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DPRN.java +++ /dev/null @@ -1,22 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - - -public class DPRN extends AbstractMetParameter implements javax.measure.quantity.Length { - - public DPRN() { - super( UNIT ); - } - - @DeriveMethod - AbstractMetParameter derive( Precip24Hr pt, MaxPrecipPR6X mp){ - if ( pt.hasValidValue() && mp.hasValidValue() ){ - setValue( pt.doubleValue() > mp.doubleValue() ? - pt : mp ); - }else - setValueToMissing(); - - return this; - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DayTempAnomaly.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DayTempAnomaly.java deleted file mode 100644 index 2f7da3777c..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DayTempAnomaly.java +++ /dev/null @@ -1,54 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - -import java.util.Calendar; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; -import gov.noaa.nws.ncep.metparameters.dbquery.util.ClimateDataDbAccess; -import gov.noaa.nws.ncep.metparameters.dbquery.util.ClimateDataDbAccessManager; - -import javax.measure.quantity.Temperature; -import javax.measure.unit.NonSI; - -import com.raytheon.uf.common.time.DataTime; - -/** - * @author archana - * - */ - public class DayTempAnomaly extends AbstractMetParameter implements - Temperature { - - public DayTempAnomaly() { - super( UNIT ); - } - - @DeriveMethod - public DayTempAnomaly derive( Max24HrTemp max24HrTemp, ClimDayTemp climDayTemp ) throws InvalidValueException, NullPointerException, InvalidRangeException { - - if ( max24HrTemp.hasValidValue() && climDayTemp.hasValidValue() ){ - -// if( max24HrTemp.hasValidTime() && climDayTemp.hasValidTime() ) { -// -// } - double climateTDYFInF = climDayTemp.getValueAs( NonSI.FAHRENHEIT ).doubleValue(); - double max24HrTempInF = max24HrTemp.getValueAs(NonSI.FAHRENHEIT).doubleValue(); - double finalTDYFInF = max24HrTempInF - climateTDYFInF; -// System.out.println("=======, max24HrTempInF= "+max24HrTempInF); -// System.out.println("=======, climateTDYFInF= "+climateTDYFInF); -// System.out.println("=======, finalTDYFInF= "+finalTDYFInF); - /* - * tdaf: Day Temp anomaly in F - */ - Amount tdafAmount = new Amount(finalTDYFInF, NonSI.FAHRENHEIT); - setValue(tdafAmount); - setValidTime( max24HrTemp.getValidTime() ); - }else - setValueToMissing(); - return this; - } - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DayTempFcst.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DayTempFcst.java deleted file mode 100644 index b8c06fec8f..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DayTempFcst.java +++ /dev/null @@ -1,21 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Temperature; -import javax.measure.unit.Unit; - -/** - * @author archana - * - */ - public class DayTempFcst extends AbstractMetParameter implements - Temperature { - - public DayTempFcst() { - super( UNIT ); - } - - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DewPointDepression.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DewPointDepression.java deleted file mode 100644 index 0aa480f2ab..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DewPointDepression.java +++ /dev/null @@ -1,46 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import javax.measure.unit.SI; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -public class DewPointDepression extends AbstractMetParameter implements javax.measure.quantity.Temperature { - public DewPointDepression() { - super( UNIT ); - } - - @DeriveMethod - public DewPointDepression derive( AirTemperature t, DewPointTemp d) throws InvalidValueException, NullPointerException { - if ( t.hasValidValue() && d.hasValidValue() ){ - Amount dwdpAmount = PRLibrary.prDdep( t, d ); - this.setValue( dwdpAmount); - } - else - setValueToMissing(); - return this; - } - - // TODO : could change this to pass along the threshhold instead of hardcoding 30. - @Override - public String getFormattedString( String formatStr ) { - - if( formatStr == null || formatStr.isEmpty() || - formatStr.startsWith("%" ) ) { - return super.getFormattedString( formatStr ); - } - else if ( ( formatStr.compareToIgnoreCase("DPDX") == 0 ) ){ - if( getValueAs( SI.CELSIUS ).doubleValue() >= 30.0 ) { - return "X"; - } - else { - return super.getFormattedString( "%3.0f" ); - } - } - else { - return getValue().toString(); - } - } -} - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DewPointTemp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DewPointTemp.java deleted file mode 100644 index ca1cd73810..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DewPointTemp.java +++ /dev/null @@ -1,72 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -public class DewPointTemp extends AbstractMetParameter implements - javax.measure.quantity.Temperature { - - public DewPointTemp() { - super( UNIT ); - } - - @DeriveMethod - public DewPointTemp derive( MixingRatio m, PressureLevel p ) throws InvalidRangeException, InvalidValueException, NullPointerException { - if ( m.hasValidValue() && p.hasValidValue() ){ - Amount theDewpointTemperatureAmount = PRLibrary.prDwpt(m , p ); - this.setValue(theDewpointTemperatureAmount); - }else - setValueToMissing(); - return this; - } - - @DeriveMethod - public DewPointTemp derive( SurfaceMixingRatio m, SurfacePressure p ) throws InvalidRangeException, InvalidValueException, NullPointerException { - if ( m.hasValidValue() && p.hasValidValue() ){ - Amount theDewpointTemperatureAmount = PRLibrary.prDwpt(m , p ); - this.setValue(theDewpointTemperatureAmount); - }else - setValueToMissing(); - return this; - } - - @DeriveMethod - public DewPointTemp derive ( AirTemperature t, DewPointDepression dp) throws InvalidValueException, NullPointerException{ - if ( t.hasValidValue() && dp.hasValidValue() ){ - Amount theDewpointTemperatureAmount = PRLibrary.prDwdp(t, dp); - this.setValue(theDewpointTemperatureAmount); - }else - setValueToMissing(); - - return this; - } - - @DeriveMethod - public DewPointTemp derive ( AirTemperature t, RelativeHumidity rh) throws InvalidValueException, NullPointerException, InvalidRangeException{ - if ( t.hasValidValue() && rh.hasValidValue() ){ - Amount dewpointAmount = PRLibrary.prRhdp(t, rh); - this.setValue(dewpointAmount); - }else - setValueToMissing(); - return this; - } -} - - - - - - - - - - - - - - - - - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DryAirDensity.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DryAirDensity.java deleted file mode 100644 index eec80c5d32..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DryAirDensity.java +++ /dev/null @@ -1,33 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - - -public class DryAirDensity extends AbstractMetParameter implements javax.measure.quantity.VolumetricDensity { - - public DryAirDensity() { - super( UNIT ); - } - - @DeriveMethod - AbstractMetParameter derive(PressureLevel p, AirTemperature t) throws InvalidRangeException, InvalidValueException, NullPointerException{ - Amount val = PRLibrary.prDden( p, t ) ; - setValue(val); - return this; - } -} - - - - - - - - - - - - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DryHydrostaticHeight.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DryHydrostaticHeight.java deleted file mode 100644 index 101dddf6f1..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/DryHydrostaticHeight.java +++ /dev/null @@ -1,16 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class DryHydrostaticHeight extends AbstractMetParameter - implements Length { - - public DryHydrostaticHeight(){ - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/EquivPotentialTemp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/EquivPotentialTemp.java deleted file mode 100644 index 937d87131f..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/EquivPotentialTemp.java +++ /dev/null @@ -1,25 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -public class EquivPotentialTemp extends AbstractMetParameter implements - javax.measure.quantity.Temperature { - public EquivPotentialTemp() { - super( UNIT ); - } - - @DeriveMethod - public EquivPotentialTemp derive( PressureLevel p, AirTemperature t, DewPointTemp dpt ) throws InvalidValueException, NullPointerException, InvalidRangeException { - if ( p.hasValidValue() && t.hasValidValue() && dpt.hasValidValue() ){ - Amount theEquivPotTempAmount = PRLibrary.prThte(p, t, dpt); - setValue(theEquivPotTempAmount); - }else - setValueToMissing(); - return this; - } - -} - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/EquivWindSpeed10min.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/EquivWindSpeed10min.java deleted file mode 100644 index eb1458314a..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/EquivWindSpeed10min.java +++ /dev/null @@ -1,19 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Velocity; - -/** - * @author archana - * - */ - public class EquivWindSpeed10min extends AbstractMetParameter implements Velocity { - - public EquivWindSpeed10min() { - super(UNIT); - } - - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/EquivWindSpeed20min.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/EquivWindSpeed20min.java deleted file mode 100644 index 42b56c1e58..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/EquivWindSpeed20min.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Velocity; - -/** - * @author archana - * - */ - public class EquivWindSpeed20min extends AbstractMetParameter implements Velocity { - - public EquivWindSpeed20min() { - super(UNIT); - } - - } - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/EstStormDirectionUComp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/EstStormDirectionUComp.java deleted file mode 100644 index 062e40fe81..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/EstStormDirectionUComp.java +++ /dev/null @@ -1,17 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import javax.measure.unit.Unit; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class EstStormDirectionUComp extends AbstractMetParameter implements javax.measure.quantity.Velocity{ - - EstStormDirectionUComp(){ - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/EstStormDirectionVComp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/EstStormDirectionVComp.java deleted file mode 100644 index 09425de081..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/EstStormDirectionVComp.java +++ /dev/null @@ -1,17 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import javax.measure.unit.Unit; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class EstStormDirectionVComp extends AbstractMetParameter implements javax.measure.quantity.Velocity{ - - public EstStormDirectionVComp(){ - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FZRainWatchThresh.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FZRainWatchThresh.java deleted file mode 100644 index 8e198a04ba..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FZRainWatchThresh.java +++ /dev/null @@ -1,23 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -/** - * @author archana - * - */ -public class FZRainWatchThresh extends AbstractMetParameter - implements Length { - - public FZRainWatchThresh(){ - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FcstFZRainAccumulationIn12Hours.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FcstFZRainAccumulationIn12Hours.java deleted file mode 100644 index cd94117978..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FcstFZRainAccumulationIn12Hours.java +++ /dev/null @@ -1,21 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -/** - * @author archana - * - */ -public class FcstFZRainAccumulationIn12Hours extends AbstractMetParameter - implements Length { - - public FcstFZRainAccumulationIn12Hours(){ - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FcstFZRainAccumulationToWatchThresh.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FcstFZRainAccumulationToWatchThresh.java deleted file mode 100644 index 7bdcc93c7b..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FcstFZRainAccumulationToWatchThresh.java +++ /dev/null @@ -1,36 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; - -/** - * @author archana - * - */ -public class FcstFZRainAccumulationToWatchThresh extends AbstractMetParameter - implements Dimensionless { - - public FcstFZRainAccumulationToWatchThresh(){ - super( UNIT ); - } - - @DeriveMethod - AbstractMetParameter derive ( FcstFZRainAccumulationIn12Hours fz12, FZRainWatchThresh fzrt){ - if ( fz12.hasValidValue() && fzrt.hasValidValue() ){ - Amount val = new Amount ( fz12.doubleValue() / fzrt.doubleValue() , Unit.ONE ); - setValue( val ); - }else - setValueToMissing(); - return this; - } -} - - - - - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FcstSnowIcePelletAccumToWatchThresh.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FcstSnowIcePelletAccumToWatchThresh.java deleted file mode 100644 index e30d8623b3..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FcstSnowIcePelletAccumToWatchThresh.java +++ /dev/null @@ -1,32 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import javax.measure.quantity.Dimensionless; -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -/** - * @author archana - * - */ -public class FcstSnowIcePelletAccumToWatchThresh extends AbstractMetParameter - implements Dimensionless { - - public FcstSnowIcePelletAccumToWatchThresh(){ - super( UNIT ); - } - - @DeriveMethod - AbstractMetParameter derive ( FcstSnowIcePelletAccumulation12Hrs si12, SnowIcePelletWatchThresh snip){ - if ( si12.hasValidValue() && snip.hasValidValue() ){ - Amount val = new Amount ( si12.doubleValue() / snip.doubleValue() , Unit.ONE ); - setValue( val ); - }else - setValueToMissing(); - return this; - } -} \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FcstSnowIcePelletAccumulation12Hrs.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FcstSnowIcePelletAccumulation12Hrs.java deleted file mode 100644 index 5fc9c7a53b..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FcstSnowIcePelletAccumulation12Hrs.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -/** - * @author archana - * - */ - public class FcstSnowIcePelletAccumulation12Hrs extends AbstractMetParameter - implements Length { - - public FcstSnowIcePelletAccumulation12Hrs(){ - super( UNIT ); - } - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FiveSecPeakWindDir.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FiveSecPeakWindDir.java deleted file mode 100644 index 1cb8d54086..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FiveSecPeakWindDir.java +++ /dev/null @@ -1,16 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import javax.measure.unit.Unit; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class FiveSecPeakWindDir extends AbstractMetParameter implements javax.measure.quantity.Angle { - - public FiveSecPeakWindDir() { - super( UNIT ); - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlashFloodGuid01Hr.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlashFloodGuid01Hr.java deleted file mode 100644 index d9ce8de57e..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlashFloodGuid01Hr.java +++ /dev/null @@ -1,16 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class FlashFloodGuid01Hr extends AbstractMetParameter - implements Length { - - public FlashFloodGuid01Hr(){ - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlashFloodGuid03Hr.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlashFloodGuid03Hr.java deleted file mode 100644 index b82e0023b3..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlashFloodGuid03Hr.java +++ /dev/null @@ -1,16 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class FlashFloodGuid03Hr extends AbstractMetParameter - implements Length { - - public FlashFloodGuid03Hr(){ - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlashFloodGuid06Hr.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlashFloodGuid06Hr.java deleted file mode 100644 index c3d5035044..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlashFloodGuid06Hr.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class FlashFloodGuid06Hr extends AbstractMetParameter - implements Length { - - public FlashFloodGuid06Hr(){ - super( UNIT ); - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlashFloodGuid12Hr.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlashFloodGuid12Hr.java deleted file mode 100644 index d08d22352e..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlashFloodGuid12Hr.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class FlashFloodGuid12Hr extends AbstractMetParameter - implements Length { - - public FlashFloodGuid12Hr(){ - super( UNIT ); - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlashFloodGuid24Hr.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlashFloodGuid24Hr.java deleted file mode 100644 index 3c68a2b5be..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlashFloodGuid24Hr.java +++ /dev/null @@ -1,16 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class FlashFloodGuid24Hr extends AbstractMetParameter - implements Length { - - public FlashFloodGuid24Hr(){ - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlightLevel.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlightLevel.java deleted file mode 100644 index 1c2222fcdd..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlightLevel.java +++ /dev/null @@ -1,12 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; - - - public class FlightLevel extends AbstractMetParameter implements Length { - - public FlightLevel() { - super( UNIT ); - } - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlightRulesID.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlightRulesID.java deleted file mode 100644 index 2a8d5ee2fb..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlightRulesID.java +++ /dev/null @@ -1,56 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - - - public class FlightRulesID extends AbstractMetParameter implements javax.measure.quantity.Dimensionless { - - private FlightRuleCategory flightRuleCategory; - - public enum FlightRuleCategory{ - LIFR( 0 ), IFR( 1 ), MVFR( 2 ), VFR( 3 ), UNKNOWN( -9999 ); - private int code; - private FlightRuleCategory ( int i){ - code = i; - } - - public int getCode(){ - return code; - } - } - - public FlightRulesID() { - super( UNIT ); - flightRuleCategory = FlightRuleCategory.UNKNOWN; - } - - @DeriveMethod - AbstractMetParameter derive( CeilingFromSurface c, Visibility v) throws InvalidValueException, NullPointerException{ - if ( c.hasValidValue() && v.hasValidValue() ){ - Amount val = PRLibrary.prXvfr( c, v); - }else - setValueToMissing(); - return this; - } - - /** - * @return the flightRuleCategory - */ - public final FlightRuleCategory getFlightRuleCategory() { - return flightRuleCategory; - } - - - } - - - - - - - - - - \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlightRulesIdWorstCase.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlightRulesIdWorstCase.java deleted file mode 100644 index e975a6ca65..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FlightRulesIdWorstCase.java +++ /dev/null @@ -1,26 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; - - -public class FlightRulesIdWorstCase extends AbstractMetParameter - implements Dimensionless { - - public FlightRulesIdWorstCase() { - super( UNIT ); - } - -// AbstractMetParameter derive ( FlightRulesID xvfr, TemporaryOrProbabilityFlightRuleIdentifier txvf){ -// -// return this; -// } - -} - - - - - - - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FosbergFireWxIndex.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FosbergFireWxIndex.java deleted file mode 100644 index ba3f737f94..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/FosbergFireWxIndex.java +++ /dev/null @@ -1,37 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; -import javax.measure.quantity.Dimensionless; - - public class FosbergFireWxIndex extends AbstractMetParameter implements Dimensionless { - - public FosbergFireWxIndex(){ - super( UNIT ); - } - - @DeriveMethod - AbstractMetParameter derive ( AirTemperature t, RelativeHumidity r, WindSpeed w) throws InvalidValueException, NullPointerException{ - if ( t.hasValidValue() && r.hasValidValue() && w.hasValidValue() ) { - Amount val = PRLibrary.prFosb( t, r, w ); - setValue( val ); - } - else{ - setValueToMissing(); - } - return this; - } - } - - - - - - - - - - - - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/GenericDimensionlessParameter.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/GenericDimensionlessParameter.java deleted file mode 100644 index 31b0d21433..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/GenericDimensionlessParameter.java +++ /dev/null @@ -1,13 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; - -public class GenericDimensionlessParameter extends AbstractMetParameter implements - Dimensionless { - - public GenericDimensionlessParameter() { - super( UNIT ); - } - -} \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/HailSize.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/HailSize.java deleted file mode 100644 index 4cdbb41762..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/HailSize.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class HailSize extends AbstractMetParameter implements Length { - - public HailSize(){ - super( UNIT ); - } - - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/HeatIndex.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/HeatIndex.java deleted file mode 100644 index e8997e5ada..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/HeatIndex.java +++ /dev/null @@ -1,26 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -public class HeatIndex extends AbstractMetParameter implements - javax.measure.quantity.Temperature { - - public HeatIndex( ) { - super( UNIT ); - } - - @DeriveMethod - public HeatIndex derive( AirTemperature t, RelativeHumidity rh ) throws InvalidValueException, NullPointerException, InvalidRangeException { - if ( t.hasValidValue() && rh.hasValidValue() ){ - Amount theRelhAmount = PRLibrary.prHeat(t, rh); - this.setValue(theRelhAmount); - } - else - setValueToMissing(); - - return this; - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/HeightAboveSeaLevel.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/HeightAboveSeaLevel.java deleted file mode 100644 index 2524add952..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/HeightAboveSeaLevel.java +++ /dev/null @@ -1,71 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.SI; - -/** - *
- * 
- * SOFTWARE HISTORY
- * 
- * Date         Ticket#    Engineer    Description
- * ------------ ---------- ----------- --------------------------
- * 09/29/2011              qzhou       Added STDZ format
- * 
- * 
- * - * @author - * @version 1.0 - */ -// TODO : HET -public class HeightAboveSeaLevel extends AbstractMetParameter - implements Length { - - @Override - public String getFormattedString( String formatStr ) { - if( formatStr == null || formatStr.isEmpty() || - formatStr.startsWith("%" ) ) { - return super.getFormattedString( formatStr ); - } - else if( !formatStr.equals("STDZ") ) { - return super.getFormattedString( formatStr ); - } - - Number valInMeters = getValueAs( SI.METER ); - - // TODO : add code to create the abbreviated string. - - String valueStr = ""; - int value = valInMeters.intValue(); - - if (!hasValidValue()) { - valueStr = ""; - } - else if (value < 10) { - valueStr = "00" + Integer.toString(value); - } - else if (value < 100) { - valueStr = "0" + formatStr; - } - else if (value < 1000) { - valueStr = Integer.toString(value); - } - else if (value < 10000) { - if (value %10 < 5) - valueStr = Integer.toString((int) (value/10)); - else - valueStr = Integer.toString((int) (value/10 +1)); - } - else if (value >= 10000) { - valueStr = Integer.toString(value); - valueStr = valueStr.substring(1, 4); - } - - return valueStr; - } - - public HeightAboveSeaLevel() { - super( UNIT ); - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/HighResWaveHeight.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/HighResWaveHeight.java deleted file mode 100644 index cdad50751c..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/HighResWaveHeight.java +++ /dev/null @@ -1,17 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; - -/** - * @author archana - * - */ - public class HighResWaveHeight extends AbstractMetParameter implements Length { - public HighResWaveHeight(){ - super( UNIT ); - } - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Highest1MinMeanWindSpeedInPastHour.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Highest1MinMeanWindSpeedInPastHour.java deleted file mode 100644 index 0ac8992c6e..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Highest1MinMeanWindSpeedInPastHour.java +++ /dev/null @@ -1,16 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Velocity; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class Highest1MinMeanWindSpeedInPastHour extends AbstractMetParameter - implements Velocity { - - public Highest1MinMeanWindSpeedInPastHour() { - super( UNIT ); - } - - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/HumitureIndex.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/HumitureIndex.java deleted file mode 100644 index 3a6b233ba2..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/HumitureIndex.java +++ /dev/null @@ -1,25 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import javax.measure.unit.Unit; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -public class HumitureIndex extends AbstractMetParameter implements javax.measure.quantity.Dimensionless { - - public HumitureIndex(){ - super( UNIT ); - } - @DeriveMethod - public HumitureIndex derive( AirTemperature t, DewPointTemp dt ) throws InvalidValueException, NullPointerException, InvalidRangeException { - if ( t.hasValidValue() && dt.hasValidValue() ){ - Amount hmtrAmount = PRLibrary.prHmtr(t, dt); - setValue(hmtrAmount); - }else - setValueToMissing(); - return this; - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/IceCode.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/IceCode.java deleted file mode 100644 index 7c28ee598a..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/IceCode.java +++ /dev/null @@ -1,17 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; - -/** - * @author archana - * - */ - public class IceCode extends AbstractMetParameter implements Dimensionless { - public IceCode(){ - super( UNIT ); - } - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/IcingIntensitySymbol.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/IcingIntensitySymbol.java deleted file mode 100644 index 8afe2b04a2..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/IcingIntensitySymbol.java +++ /dev/null @@ -1,21 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; - -/** - * @author archana - * - */ -public class IcingIntensitySymbol extends AbstractMetParameter implements - Dimensionless { - - public IcingIntensitySymbol() { - super(UNIT); - setValueIsString(); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/IcingTypeSymbol.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/IcingTypeSymbol.java deleted file mode 100644 index 7d7ea07a37..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/IcingTypeSymbol.java +++ /dev/null @@ -1,21 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; - -/** - * @author archana - * - */ -public class IcingTypeSymbol extends AbstractMetParameter implements - Dimensionless { - - public IcingTypeSymbol() { - super(UNIT); - setValueIsString(); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/InstrumentWaveHeight.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/InstrumentWaveHeight.java deleted file mode 100644 index 8183795775..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/InstrumentWaveHeight.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class InstrumentWaveHeight extends AbstractMetParameter implements Length { - - public InstrumentWaveHeight() { - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/InstrumentWavePeriod.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/InstrumentWavePeriod.java deleted file mode 100644 index 80d23b438f..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/InstrumentWavePeriod.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Duration; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class InstrumentWavePeriod extends AbstractMetParameter implements Duration { - - public InstrumentWavePeriod() { - super( UNIT ); - } - - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/InterWindDir.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/InterWindDir.java deleted file mode 100644 index b4a2d1a617..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/InterWindDir.java +++ /dev/null @@ -1,17 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Angle; - -/** - * @author archana - * - */ -public class InterWindDir extends AbstractMetParameter implements Angle { - public InterWindDir ( ){ - super ( UNIT ); - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/InterWindSpeed.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/InterWindSpeed.java deleted file mode 100644 index 7350b0d98b..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/InterWindSpeed.java +++ /dev/null @@ -1,17 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Velocity; - -/** - * @author archana - * - */ -public class InterWindSpeed extends AbstractMetParameter implements Velocity { - public InterWindSpeed ( ){ - super ( UNIT ); - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/InterWindTime.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/InterWindTime.java deleted file mode 100644 index b193a24e44..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/InterWindTime.java +++ /dev/null @@ -1,17 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Duration; - -/** - * @author archana - * - */ -public class InterWindTime extends AbstractMetParameter implements Duration { - public InterWindTime () { - super ( UNIT ); - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/IsentropesVerticalSeparation.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/IsentropesVerticalSeparation.java deleted file mode 100644 index 4b6bbddd1d..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/IsentropesVerticalSeparation.java +++ /dev/null @@ -1,16 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - - -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class IsentropesVerticalSeparation extends AbstractMetParameter implements -javax.measure.quantity.Pressure { - public IsentropesVerticalSeparation() { - super( UNIT ); - } - -} - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/LCLParcelPressure.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/LCLParcelPressure.java deleted file mode 100644 index e94f42aa4e..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/LCLParcelPressure.java +++ /dev/null @@ -1,25 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import javax.measure.unit.Unit; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -public class LCLParcelPressure extends AbstractMetParameter implements -javax.measure.quantity.Pressure{ - public LCLParcelPressure() { - super( UNIT ); - } - - @DeriveMethod - public LCLParcelPressure derive(AirTemperature t, PressureLevel p, LCLParcelTemperature parcelTemp ) throws InvalidValueException, NullPointerException { - if ( t.hasValidValue() && p.hasValidValue() && parcelTemp.hasValidValue() ){ - Amount val = PRLibrary.prPlcl(t, p, parcelTemp); - setValue(val); - }else - setValueToMissing(); - return this; - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/LCLParcelTemperature.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/LCLParcelTemperature.java deleted file mode 100644 index 3b24481616..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/LCLParcelTemperature.java +++ /dev/null @@ -1,26 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -public class LCLParcelTemperature extends AbstractMetParameter implements javax.measure.quantity.Temperature { - - public LCLParcelTemperature() { - super( UNIT ); - } - - @DeriveMethod - public LCLParcelTemperature derive(AirTemperature t, DewPointTemp d ) throws InvalidValueException, NullPointerException, InvalidRangeException { - if ( t.hasValidValue() && d.hasValidValue() ){ - Amount val = PRLibrary.prTlcl(t, d ); - setValue(val); - } - else - setValueToMissing(); - - return this; - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/LatentHeatOfVapor.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/LatentHeatOfVapor.java deleted file mode 100644 index b2c3af07a1..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/LatentHeatOfVapor.java +++ /dev/null @@ -1,26 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import javax.measure.unit.SI; -import javax.measure.unit.Unit; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -public class LatentHeatOfVapor extends AbstractMetParameter implements javax.measure.quantity.Energy{ - public LatentHeatOfVapor() { - super( UNIT ); - } - - @DeriveMethod - public LatentHeatOfVapor derive( AirTemperature t ) throws InvalidValueException, NullPointerException, InvalidRangeException { - if ( t.hasValidValue() ){ - Amount val = PRLibrary.prLhvp( t ); - setValue(val); - }else - setValueToMissing(); - return this; - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/LiftedIndex.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/LiftedIndex.java deleted file mode 100644 index 6b65ffff29..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/LiftedIndex.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class LiftedIndex extends AbstractMetParameter implements - Dimensionless { - - public LiftedIndex(){ - super( UNIT ); - } -} \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/LiftedSurfaceAirTempAt500mb.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/LiftedSurfaceAirTempAt500mb.java deleted file mode 100644 index e703544b4b..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/LiftedSurfaceAirTempAt500mb.java +++ /dev/null @@ -1,73 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import javax.measure.unit.Unit; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.NcUnits; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - - public class LiftedSurfaceAirTempAt500mb extends AbstractMetParameter implements javax.measure.quantity.Temperature { - - public LiftedSurfaceAirTempAt500mb() { - super( UNIT ); - } - - @DeriveMethod - public LiftedSurfaceAirTempAt500mb derive(SurfacePotentialTemp pt, SurfaceEquivPotentialTemp eqt ) throws InvalidValueException, NullPointerException, InvalidRangeException { - if( pt.hasValidValue() && eqt.hasValidValue() ) { - Amount val = PRLibrary.prLtmp(pt, eqt, - new Amount( new Double(500.0), NcUnits.MILLIBAR ) ); // the pressureLevel - this.setValue(val); - } - else { - setValueToMissing(); - } - return this; - } - - /**** The methods below may apply for a generalized LiftedSurfaceAirTemp parameter - @DeriveMethod - public LiftedSurfaceAirTempAt500mb derive(SurfacePotentialTemperature pt, SurfaceEquivPotentialTemp eqt, PressureLevel p) throws InvalidValueException, NullPointerException, InvalidRangeException { - Amount val = PRLibrary.prLtmp(pt, eqt, p ); - this.setValue(val); - return this; - } - - @DeriveMethod - public LiftedSurfaceAirTempAt500mb derive(SurfacePotentialTemperature pt, SurfaceEquivPotentialTemp eqt, SurfacePressure p) throws InvalidValueException, NullPointerException, InvalidRangeException { - Amount val = PRLibrary.prLtmp(pt, eqt, p ); - this.setValue(val); - return this; - } - - @DeriveMethod - public LiftedSurfaceAirTempAt500mb derive(SurfacePotentialTemperature pt, SurfaceEquivPotentialTemp eqt, SeaLevelPressure p) throws InvalidValueException, NullPointerException, InvalidRangeException { - Amount val = PRLibrary.prLtmp(pt, eqt, p ); - this.setValue(val); - return this; - } - - @DeriveMethod - public LiftedSurfaceAirTempAt500mb derive(SurfacePotentialTemperature pt, SurfaceEquivPotentialTemp eqt, MeanSeaLevelPres p) throws InvalidValueException, NullPointerException, InvalidRangeException { - Amount val = PRLibrary.prLtmp(pt, eqt, p ); - this.setValue(val); - return this; - } - - @DeriveMethod - //TODO: is this the right kind of Pressure being used? - public LiftedSurfaceAirTempAt500mb derive( PotentialTemperature pt, EquivPotentialTemp eqt, PressureLevel p) throws InvalidValueException, NullPointerException, InvalidRangeException { - Amount val = PRLibrary.prLtmp(pt, eqt, p ); - this.setValue(val); - return this; - } - ******/ - } - - - - - - \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Lowest01MinAvgPressInPastHour.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Lowest01MinAvgPressInPastHour.java deleted file mode 100644 index ebf621779c..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Lowest01MinAvgPressInPastHour.java +++ /dev/null @@ -1,14 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.unit.Unit; -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class Lowest01MinAvgPressInPastHour extends AbstractMetParameter implements -javax.measure.quantity.Pressure { - public Lowest01MinAvgPressInPastHour() { - super( UNIT ); - } - -} - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Max12HrPrecipFcst.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Max12HrPrecipFcst.java deleted file mode 100644 index a3e81ad1ba..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Max12HrPrecipFcst.java +++ /dev/null @@ -1,16 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class Max12HrPrecipFcst extends - AbstractMetParameter implements Length { - - public Max12HrPrecipFcst(){ - super( UNIT ); - } - - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Max24HrTemp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Max24HrTemp.java deleted file mode 100644 index 1f67d438f2..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Max24HrTemp.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class Max24HrTemp extends AbstractMetParameter implements - javax.measure.quantity.Temperature { - - public Max24HrTemp(){ - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Max6HrTemp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Max6HrTemp.java deleted file mode 100644 index 6128c02138..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Max6HrTemp.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class Max6HrTemp extends AbstractMetParameter implements - javax.measure.quantity.Temperature { - - public Max6HrTemp (){ - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxCloudCover.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxCloudCover.java deleted file mode 100644 index 087768a011..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxCloudCover.java +++ /dev/null @@ -1,12 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; - -public class MaxCloudCover extends AbstractMetParameter implements Dimensionless { - - public MaxCloudCover() { - super( UNIT ); - } - - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxDailyWeatherMapTemp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxDailyWeatherMapTemp.java deleted file mode 100644 index 824657ec36..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxDailyWeatherMapTemp.java +++ /dev/null @@ -1,34 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import javax.measure.unit.Unit; - -public class MaxDailyWeatherMapTemp extends AbstractMetParameter implements javax.measure.quantity.Temperature { - - public MaxDailyWeatherMapTemp() { - super( UNIT ); - } - - @DeriveMethod - AbstractMetParameter derive ( Max6HrTemp t00x, Max6HrTemp t06x, MaxMidnightTemp tdxc ) throws InvalidValueException, NullPointerException{ - Amount val = PRLibrary.prDmax(t00x, t06x, tdxc); - setValue(val); - return this; - } - -} - - - - - - - - - - - - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxDayTemp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxDayTemp.java deleted file mode 100644 index aee02b07fc..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxDayTemp.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Temperature; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class MaxDayTemp extends AbstractMetParameter implements - Temperature { - - public MaxDayTemp(){ - super( UNIT ); - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxEditedTemp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxEditedTemp.java deleted file mode 100644 index 3102ae7d38..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxEditedTemp.java +++ /dev/null @@ -1,14 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class MaxEditedTemp extends AbstractMetParameter implements - javax.measure.quantity.Temperature { - - public MaxEditedTemp() { - super( UNIT ); - } - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxMidnightTemp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxMidnightTemp.java deleted file mode 100644 index 32c08cedfd..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxMidnightTemp.java +++ /dev/null @@ -1,14 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class MaxMidnightTemp extends AbstractMetParameter implements javax.measure.quantity.Temperature { - - public MaxMidnightTemp() { - super( UNIT ); - } - - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxOrMinTemp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxOrMinTemp.java deleted file mode 100644 index b1c3d2b0fd..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxOrMinTemp.java +++ /dev/null @@ -1,16 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Temperature; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class MaxOrMinTemp extends AbstractMetParameter implements - Temperature { - - public MaxOrMinTemp(){ - super( UNIT ); - } - - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxPrecipPR6X.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxPrecipPR6X.java deleted file mode 100644 index fed5a46b1f..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxPrecipPR6X.java +++ /dev/null @@ -1,42 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import java.util.List; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - - public class MaxPrecipPR6X extends AbstractMetParameter implements Length { - - public MaxPrecipPR6X() { - super( UNIT ); - } - - @DeriveMethod - AbstractMetParameter derive( Precipitation p00z,Precipitation p06z,Precipitation p12z,Precipitation p18z ) throws InvalidValueException, NullPointerException{ - Amount val = PRLibrary.prPr6x( p00z, p06z, p12z, p18z ); - setValue(val); - return this; - - } - - - } - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxSustSurfWindSpeedFcst.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxSustSurfWindSpeedFcst.java deleted file mode 100644 index acafe7d1c3..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxSustSurfWindSpeedFcst.java +++ /dev/null @@ -1,21 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class MaxSustSurfWindSpeedFcst extends AbstractMetParameter implements - javax.measure.quantity.Velocity { - - /* - * This maps to legacy GFSXMOS parameter SK12, which is observed and not derived. - * On NMAP, SK12 is displayed as specific wind-speeds at specific stations. The categorical range - * values defined for this parameter, in sfparm.hl2 are not used in the GUI... - * TODO : Clarify whether or not these ranges need to be implemented at all... - */ - - public MaxSustSurfWindSpeedFcst(){ - super( UNIT ); - } -} \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxWindSpeed.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxWindSpeed.java deleted file mode 100644 index a35c739b58..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MaxWindSpeed.java +++ /dev/null @@ -1,13 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; - -public class MaxWindSpeed extends AbstractMetParameter implements - Dimensionless { - - public MaxWindSpeed() { - super( UNIT ); - } - -} \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MeanSeaLevelPres.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MeanSeaLevelPres.java deleted file mode 100644 index fe64e68e16..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MeanSeaLevelPres.java +++ /dev/null @@ -1,92 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.unit.Unit; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.NcUnits; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - - -public class MeanSeaLevelPres extends AbstractMetParameter implements - javax.measure.quantity.Pressure { - public MeanSeaLevelPres() { - super( UNIT ); - } - - @DeriveMethod - public MeanSeaLevelPres derive( PressureLevel prs, AirTemperature t, - DewPointTemp dpt, HeightAboveSeaLevel hght ) throws InvalidValueException, NullPointerException, InvalidRangeException { - if( prs.hasValidValue() && t.hasValidValue() && dpt.hasValidValue() && - hght.hasValidValue() ) { - Amount pmsl = PRLibrary.prPmsl ( prs, t, dpt, hght ); - if( pmsl.hasValidValue() ) { - setValue( pmsl ); - } - } - else { - setValueToMissing(); - } - - return this; - } - - @Override - public String getFormattedString( String formatStr ) { - if( formatStr == null || formatStr.isEmpty() || - formatStr.startsWith("%" ) ) { - return super.getFormattedString( formatStr ); - } - else if ( ( formatStr.compareToIgnoreCase("RMSL") == 0 ) - || (formatStr.compareToIgnoreCase("SMSL") == 0 )){ - double newPresValInMb = Double.NaN; - if ( ( this.getUnit().toString().compareTo("mb") != 0 ) ){ - double oldPresVal = this.value.doubleValue(); - newPresValInMb = this.getUnit() - .getConverterTo( NcUnits.MILLIBAR ) - .convert( oldPresVal ) ; - //setValue(new Amount ( newPresValInMb, NcUnits.MILLIBAR )); - } - double temp = newPresValInMb * 10; - double abbrevPressVal = temp % 1000; - abbrevPressVal = Math.abs(abbrevPressVal); - Integer abbrevpressValAsInt = new Integer ( ( int ) abbrevPressVal ); - String abbrevPressureString = abbrevpressValAsInt.toString(); - if ( abbrevPressureString.length() == 1 ){ - abbrevPressureString = new String ( "00" + abbrevPressureString); - } - if ( abbrevPressureString.length() == 2 ){ - abbrevPressureString = new String ( "0" + abbrevPressureString); - } - return abbrevPressureString; - - } - - else - return super.getFormattedString( formatStr ); -// String fmtValStr = super.getFormattedString( "%2.2f" ); -// -// return fmtValStr.substring( 1 ); - } - - - - - -// @DeriveMethod -// public MeanSeaLevelPres derive( StationPressure prs, Temperature t, -// DewPointTemp dpt, StationElevation selv ) { -// if( prs.hasValidValue() && t.hasValidValue() && dpt.hasValidValue() && -// selv.hasValidValue() ) { -//// Amount prPmsl ( Amount pres, Amount tmpc, Amount dwpc, Amount selv ); -// } -// else { -// setValueToMissing(); -// } -// -// return this; -// } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MetParameterFactory.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MetParameterFactory.java deleted file mode 100644 index 2c61de7eb1..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MetParameterFactory.java +++ /dev/null @@ -1,375 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.text.ParseException; -import java.text.ParsePosition; -import java.util.HashMap; -import javax.measure.unit.Unit; -import javax.measure.unit.UnitFormat; - -import com.raytheon.uf.common.time.DataTime; -import com.raytheon.uf.viz.core.exception.VizException; - -// TODO : this class can be enhanced to read AbstractNcParameter objects either from an extension point or to read -// jaxb files from a directory. Till then the AbstractNcParameter's are just created here. -// -public class MetParameterFactory { - - // map from the alias to the ncep parameter name. - private HashMap ncParamsAliasMap = new HashMap(); - - // - private HashMap ncParamsMap = - new HashMap(); - - private static MetParameterFactory instance=null; - - public static MetParameterFactory getInstance() { - if( instance == null ) { - instance = new MetParameterFactory(); - } - return instance; - } - - private MetParameterFactory() { - ncParamsMap.put( AircraftType.class.getSimpleName(), new AircraftType() ); - ncParamsMap.put( AircraftReportType.class.getSimpleName(), new AircraftReportType() ); - ncParamsMap.put( Avg3HrShipSpeed.class.getSimpleName(), new Avg3HrShipSpeed() ); - ncParamsMap.put( BaseOfIcing.class.getSimpleName(), new BaseOfIcing() ); - ncParamsMap.put( BaseOfTurbulence.class.getSimpleName(), new BaseOfTurbulence() ); - ncParamsMap.put( BaseOfWeather.class.getSimpleName(), new BaseOfWeather() ); - ncParamsMap.put( BruntVaisalaFreq.class.getSimpleName(), new BruntVaisalaFreq() ); - ncParamsMap.put( BruntVaisalaPeriod.class.getSimpleName(), new BruntVaisalaPeriod() ); -// ncParamsMap.put( BruntVaisalaFrequencySquared.class.getSimpleName(), new BruntVaisalaFrequencySquared() ); - ncParamsMap.put( CatFcstCeilingHeightCond.class.getSimpleName(), new CatFcstCeilingHeightCond() ); - ncParamsMap.put( CatFcstObstructionsVision.class.getSimpleName(), new CatFcstObstructionsVision() ); - ncParamsMap.put( CatFcstPrecipitation.class.getSimpleName(), new CatFcstPrecipitation() ); - ncParamsMap.put( CatFcstSnowAmountFalling24hr.class.getSimpleName(), new CatFcstSnowAmountFalling24hr() ); - ncParamsMap.put( CatFcstVisibilityCond.class.getSimpleName(), new CatFcstVisibilityCond() ); - ncParamsMap.put( CeilingFromSurface.class.getSimpleName(), new CeilingFromSurface() ); - ncParamsMap.put( CeilingFromSeaLevel.class.getSimpleName(), new CeilingFromSeaLevel() ); - ncParamsMap.put( CloudCover.class.getSimpleName(), new CloudCover() ); - ncParamsMap.put( ClimDayTemp.class.getSimpleName(), new ClimDayTemp() ); - ncParamsMap.put( ClimNightTemp.class.getSimpleName(), new ClimNightTemp() ); - ncParamsMap.put( Clim12HrPOP.class.getSimpleName(), new Clim12HrPOP() ); - ncParamsMap.put( Clim24HrPOP.class.getSimpleName(), new Clim24HrPOP() ); - ncParamsMap.put( CloudBase1.class.getSimpleName(), new CloudBase1() ); - ncParamsMap.put( CloudBase2.class.getSimpleName(), new CloudBase2() ); -// ncParamsMap.put( CloudFractionInLayer.class.getSimpleName(), new CloudFractionInLayer() ); -// ncParamsMap.put( CloudWater.class.getSimpleName(), new CloudWater() ); - ncParamsMap.put( CloudTop1.class.getSimpleName(), new CloudTop1() ); - ncParamsMap.put( CloudTop2.class.getSimpleName(), new CloudTop2() ); - ncParamsMap.put( CondProbOf6HrSevereWeather.class.getSimpleName(), new CondProbOf6HrSevereWeather() ); - ncParamsMap.put( CondProbOf12HrSevereWeather.class.getSimpleName(), new CondProbOf12HrSevereWeather() ); - ncParamsMap.put( CondProbOf12HrFreezingPrecip.class.getSimpleName(), new CondProbOf12HrFreezingPrecip() ); - ncParamsMap.put( CondProbOf12HrRain.class.getSimpleName(), new CondProbOf12HrRain() ); - ncParamsMap.put( CondFcstPrecip12HrType.class.getSimpleName(), new CondFcstPrecip12HrType() ); - ncParamsMap.put( CondProbOf12HrSnow.class.getSimpleName(), new CondProbOf12HrSnow() ); - ncParamsMap.put( CondProbOf24HrSevereWeather.class.getSimpleName(), new CondProbOf24HrSevereWeather() ); - ncParamsMap.put( CondProbOfFreezingPrecip.class.getSimpleName(), new CondProbOfFreezingPrecip() ); - ncParamsMap.put( CondProbOfSnow.class.getSimpleName(), new CondProbOfSnow() ); - ncParamsMap.put( ShipCourse.class.getSimpleName(), new ShipCourse() ); - ncParamsMap.put( DayTempAnomaly.class.getSimpleName(), new DayTempAnomaly() ); - ncParamsMap.put( DayTempFcst.class.getSimpleName(), new DayTempFcst() ); - ncParamsMap.put( DewPointDepression.class.getSimpleName(), new DewPointDepression() ); - ncParamsMap.put( DewPointTemp.class.getSimpleName(), new DewPointTemp() ); - ncParamsMap.put( FiveSecPeakWindDir.class.getSimpleName(), new FiveSecPeakWindDir() ); - ncParamsMap.put( PredomSwellWaveDir.class.getSimpleName(), new PredomSwellWaveDir() ); - ncParamsMap.put( SecondarySwellWaveDir.class.getSimpleName(), new SecondarySwellWaveDir() ); - ncParamsMap.put( DPRN.class.getSimpleName(), new DPRN() ); - ncParamsMap.put( DryAirDensity.class.getSimpleName(), new DryAirDensity() ); - ncParamsMap.put( DryHydrostaticHeight.class.getSimpleName(), new DryHydrostaticHeight() ); - ncParamsMap.put( TimeOf5SecPeakWindInHrs.class.getSimpleName(), new TimeOf5SecPeakWindInHrs() ); - ncParamsMap.put( TimeOf5SecPeakWindInMins.class.getSimpleName(), new TimeOf5SecPeakWindInMins() ); - ncParamsMap.put( EquivPotentialTemp.class.getSimpleName(), new EquivPotentialTemp() ); - ncParamsMap.put( EquivWindSpeed10min.class.getSimpleName(), new EquivWindSpeed10min() ); - ncParamsMap.put( EquivWindSpeed20min.class.getSimpleName(), new EquivWindSpeed20min() ); - ncParamsMap.put( FcstFZRainAccumulationIn12Hours.class.getSimpleName(), new FcstFZRainAccumulationIn12Hours() ); - ncParamsMap.put( FcstFZRainAccumulationToWatchThresh.class.getSimpleName(), new FcstFZRainAccumulationToWatchThresh() ); - ncParamsMap.put( FcstSnowIcePelletAccumulation12Hrs.class.getSimpleName(), new FcstSnowIcePelletAccumulation12Hrs() ); - ncParamsMap.put( FcstSnowIcePelletAccumToWatchThresh.class.getSimpleName(), new FcstSnowIcePelletAccumToWatchThresh() ); - ncParamsMap.put( FlashFloodGuid01Hr.class.getSimpleName(), new FlashFloodGuid01Hr() ); - ncParamsMap.put( FlashFloodGuid03Hr.class.getSimpleName(), new FlashFloodGuid03Hr() ); - ncParamsMap.put( FlashFloodGuid06Hr.class.getSimpleName(), new FlashFloodGuid06Hr() ); - ncParamsMap.put( FlashFloodGuid12Hr.class.getSimpleName(), new FlashFloodGuid12Hr() ); - ncParamsMap.put( FlashFloodGuid24Hr.class.getSimpleName(), new FlashFloodGuid24Hr() ); - ncParamsMap.put( FlightRulesID.class.getSimpleName(), new FlightRulesID() ); - ncParamsMap.put( FlightLevel.class.getSimpleName(), new FlightLevel() ); - ncParamsMap.put( FosbergFireWxIndex.class.getSimpleName(), new FosbergFireWxIndex() ); - ncParamsMap.put( FZRainWatchThresh.class.getSimpleName(), new FZRainWatchThresh() ); -// ncParamsMap.put( GenericDimensionlessParameter.class.getSimpleName(), new GenericDimensionlessParameter() ); -// ncParamsMap.put( GustBarb.class.getSimpleName(), new GustBarb() ); - ncParamsMap.put( HailSize.class.getSimpleName(), new HailSize() ); - ncParamsMap.put( HeatIndex.class.getSimpleName(), new HeatIndex() ); - ncParamsMap.put( HeightAboveSeaLevel.class.getSimpleName(), new HeightAboveSeaLevel() ); - ncParamsMap.put( InstrumentWaveHeight.class.getSimpleName(), new InstrumentWaveHeight() ); - ncParamsMap.put( PredomSwellWaveHeight.class.getSimpleName(), new PredomSwellWaveHeight() ); - ncParamsMap.put( SecondarySwellWaveHeight.class.getSimpleName(), new SecondarySwellWaveHeight() ); - ncParamsMap.put( WaveHeight.class.getSimpleName(), new WaveHeight() ); - ncParamsMap.put( WindWaveHeight.class.getSimpleName(), new WindWaveHeight() ); - ncParamsMap.put( Highest1MinMeanWindSpeedInPastHour.class.getSimpleName(), new Highest1MinMeanWindSpeedInPastHour() ); - ncParamsMap.put( HighResWaveHeight.class.getSimpleName(), new HighResWaveHeight() ); - ncParamsMap.put( HumitureIndex.class.getSimpleName(), new HumitureIndex() ); - ncParamsMap.put( IceCode.class.getSimpleName(), new IceCode() ); - ncParamsMap.put( IcingIntensitySymbol.class.getSimpleName(), new IcingIntensitySymbol() ); - ncParamsMap.put( IcingTypeSymbol.class.getSimpleName(), new IcingTypeSymbol() ); - ncParamsMap.put( InterWindDir.class.getSimpleName(), new InterWindDir() ); - ncParamsMap.put( InterWindSpeed.class.getSimpleName(), new InterWindSpeed() ); - ncParamsMap.put( InterWindTime.class.getSimpleName(), new InterWindTime() ); - ncParamsMap.put( LatentHeatOfVapor.class.getSimpleName(), new LatentHeatOfVapor() ); - ncParamsMap.put( LCLParcelPressure.class.getSimpleName(), new LCLParcelPressure() ); - ncParamsMap.put( LCLParcelTemperature.class.getSimpleName(), new LCLParcelTemperature() ); - ncParamsMap.put( LiftedIndex.class.getSimpleName(), new LiftedIndex() ); - ncParamsMap.put( LiftedSurfaceAirTempAt500mb.class.getSimpleName(), new LiftedSurfaceAirTempAt500mb() ); - ncParamsMap.put( Lowest01MinAvgPressInPastHour.class.getSimpleName(), new Lowest01MinAvgPressInPastHour() ); - ncParamsMap.put( Max24HrTemp.class.getSimpleName(), new Max24HrTemp() ); - ncParamsMap.put( Max6HrTemp.class.getSimpleName(), new Max6HrTemp() ); - ncParamsMap.put( MaxDailyWeatherMapTemp.class.getSimpleName(), new MaxDailyWeatherMapTemp() ); - ncParamsMap.put( MaxDayTemp.class.getSimpleName(), new MaxDayTemp() ); - ncParamsMap.put( MaxEditedTemp.class.getSimpleName(), new MaxEditedTemp() ); - ncParamsMap.put( MaxCloudCover.class.getSimpleName(), new MaxCloudCover() ); - ncParamsMap.put( MaxPrecipPR6X.class.getSimpleName(), new MaxPrecipPR6X() ); //remove?? - ncParamsMap.put( MaxMidnightTemp.class.getSimpleName(), new MaxMidnightTemp() ); - ncParamsMap.put( MaxOrMinTemp.class.getSimpleName(), new MaxOrMinTemp() ); - ncParamsMap.put( Max12HrPrecipFcst.class.getSimpleName(), new Max12HrPrecipFcst() ); - ncParamsMap.put( MaxWindSpeed.class.getSimpleName(), new MaxWindSpeed() ); - ncParamsMap.put( MeanSeaLevelPres.class.getSimpleName(), new MeanSeaLevelPres() ); - ncParamsMap.put( Min24HrTemp.class.getSimpleName(), new Min24HrTemp() ); - ncParamsMap.put( Min6HrTemp.class.getSimpleName(), new Min6HrTemp() ); - ncParamsMap.put( MinDailyWeatherMapTemp.class.getSimpleName(), new MinDailyWeatherMapTemp() ); - ncParamsMap.put( MinNightTemp.class.getSimpleName(), new MinNightTemp() ); - ncParamsMap.put( MixingRatio.class.getSimpleName(), new MixingRatio() ); - ncParamsMap.put( MoistHydrostaticHeight.class.getSimpleName(), new MoistHydrostaticHeight() ); - ncParamsMap.put( MontgomeryStreamFnct.class.getSimpleName(), new MontgomeryStreamFnct() ); - ncParamsMap.put( MountainObscThreshMetIndicator.class.getSimpleName(), new MountainObscThreshMetIndicator() ); - ncParamsMap.put( MountainObscThresh.class.getSimpleName(), new MountainObscThresh() ); - ncParamsMap.put( NightTempAnomaly.class.getSimpleName(), new NightTempAnomaly() ); - ncParamsMap.put( NewSnowAmount.class.getSimpleName(), new NewSnowAmount() ); - ncParamsMap.put( NightTempFcst.class.getSimpleName(), new NightTempFcst() ); - ncParamsMap.put( NumInterWinds.class.getSimpleName(), new NumInterWinds() ); - ncParamsMap.put( AirParcelTemp.class.getSimpleName(), new AirParcelTemp() ); -// ncParamsMap.put( Omega.class.getSimpleName(), new Omega() ); - ncParamsMap.put( PeakWindDir.class.getSimpleName(), new PeakWindDir() ); - ncParamsMap.put( PeakWindSpeed.class.getSimpleName(), new PeakWindSpeed() ); - ncParamsMap.put( PeakWindSpeedTime.class.getSimpleName(), new PeakWindSpeedTime() ); - ncParamsMap.put( InstrumentWavePeriod.class.getSimpleName(), new InstrumentWavePeriod() ); - ncParamsMap.put( PredomSwellWavePeriod.class.getSimpleName(), new PredomSwellWavePeriod() ); - ncParamsMap.put( SecondarySwellWavePeriod.class.getSimpleName(), new SecondarySwellWavePeriod() ); - ncParamsMap.put( WavePeriod.class.getSimpleName(), new WavePeriod() ); - ncParamsMap.put( WindWavePeriod.class.getSimpleName(), new WindWavePeriod() ); - ncParamsMap.put( PerpendicularWindComp.class.getSimpleName(), new PerpendicularWindComp() ); - ncParamsMap.put( PotentialTemp.class.getSimpleName(), new PotentialTemp() ); - ncParamsMap.put( PlatformTrueDirection.class.getSimpleName(), new PlatformTrueDirection() ); - ncParamsMap.put( PlatformTrueSpeed.class.getSimpleName(), new PlatformTrueSpeed() ); - ncParamsMap.put( PotentialTempLapseRate.class.getSimpleName(), new PotentialTempLapseRate() ); - ncParamsMap.put( PrecipitableWaterForEntireSounding.class.getSimpleName(), new PrecipitableWaterForEntireSounding() ); - ncParamsMap.put( PrecipitableWaterUptoSpecifiedLevel.class.getSimpleName(), new PrecipitableWaterUptoSpecifiedLevel() ); - ncParamsMap.put( Precipitation.class.getSimpleName(), new Precipitation() ); - ncParamsMap.put( Precip01Hr.class.getSimpleName(), new Precip01Hr() ); - ncParamsMap.put( Precip03Hr.class.getSimpleName(), new Precip03Hr() ); - ncParamsMap.put( Precip06Hr.class.getSimpleName(), new Precip06Hr() ); -// ncParamsMap.put( PrecipitationIn09Hours.class.getSimpleName(), new PrecipitationIn09Hours() ); - ncParamsMap.put( Precip12Hr.class.getSimpleName(), new Precip12Hr() ); - ncParamsMap.put( Precip18Hr.class.getSimpleName(), new Precip18Hr() ); - ncParamsMap.put( Precip24Hr.class.getSimpleName(), new Precip24Hr() ); - ncParamsMap.put( PresentWeather.class.getSimpleName(), new PresentWeather() ); - ncParamsMap.put( PressureLevel.class.getSimpleName(), new PressureLevel() ); - ncParamsMap.put( PressChange3Hr.class.getSimpleName(), new PressChange3Hr() ); - ncParamsMap.put( PressChange24Hr.class.getSimpleName(), new PressChange24Hr() ); - ncParamsMap.put( PressTendency.class.getSimpleName(), new PressTendency() ); - ncParamsMap.put( POPAnomalyIn12hrs.class.getSimpleName(), new POPAnomalyIn12hrs() ); - ncParamsMap.put( POPAnomalyIn24hrs.class.getSimpleName(), new POPAnomalyIn24hrs() ); - ncParamsMap.put( POPFcst06Hrs.class.getSimpleName(), new POPFcst06Hrs() ); - ncParamsMap.put( POPFcst12Hrs.class.getSimpleName(), new POPFcst12Hrs() ); - ncParamsMap.put( POPFcst24Hrs.class.getSimpleName(), new POPFcst24Hrs() ); - ncParamsMap.put( POP12Hrs.class.getSimpleName(), new POP12Hrs() ); - ncParamsMap.put( POP24Hrs.class.getSimpleName(), new POP24Hrs() ); - ncParamsMap.put( RateOfIceAccretionOnVesselInSaltWater.class.getSimpleName(), new RateOfIceAccretionOnVesselInSaltWater() ); - ncParamsMap.put( RelativeHumidity.class.getSimpleName(), new RelativeHumidity() ); - ncParamsMap.put( RichardsonNumber.class.getSimpleName(), new RichardsonNumber() ); - ncParamsMap.put( SatEquivPotentialTemp.class.getSimpleName(), new SatEquivPotentialTemp() ); - ncParamsMap.put( SatMixingRatio.class.getSimpleName(), new SatMixingRatio() ); - ncParamsMap.put( SatVaporPressure.class.getSimpleName(), new SatVaporPressure() ); - ncParamsMap.put( SeaIceDriftDist.class.getSimpleName(), new SeaIceDriftDist() ); - ncParamsMap.put( SeaLevelPressure.class.getSimpleName(), new SeaLevelPressure() ); - ncParamsMap.put( SeaSurfaceTemp.class.getSimpleName(), new SeaSurfaceTemp() ); - ncParamsMap.put( ShowalterIndex.class.getSimpleName(), new ShowalterIndex() ); - ncParamsMap.put( SkyCoverage.class.getSimpleName(), new SkyCoverage() ); - ncParamsMap.put( SnowDepth.class.getSimpleName(), new SnowDepth() ); - ncParamsMap.put( SnowIcePelletWatchThresh.class.getSimpleName(), new SnowIcePelletWatchThresh() ); - ncParamsMap.put( SpeedOf05SecPeakWind.class.getSimpleName(), new SpeedOf05SecPeakWind() ); - ncParamsMap.put( SpecificHumidity.class.getSimpleName(), new SpecificHumidity() ); - ncParamsMap.put( StabilityWithRespectToPressure.class.getSimpleName(), new StabilityWithRespectToPressure() ); - ncParamsMap.put( StationElevation.class.getSimpleName(), new StationElevation() ); - ncParamsMap.put( StationID.class.getSimpleName(), new StationID() ); - ncParamsMap.put( StationLatitude.class.getSimpleName(), new StationLatitude() ); - ncParamsMap.put( StationLongitude.class.getSimpleName(), new StationLongitude() ); - ncParamsMap.put( StationName.class.getSimpleName(), new StationName() ); - ncParamsMap.put( SurfacePressure.class.getSimpleName(), new SurfacePressure() ); - ncParamsMap.put( StormMotionSpeed.class.getSimpleName(), new StormMotionSpeed() ); -// ncParamsMap.put( StormMotionDirection.class.getSimpleName(), new StormMotionDirection() ); - // ncParamsMap.put( SumOfFour6HrPrecipitation.class.getSimpleName(), new SumOfFour6HrPrecipitation() ); - ncParamsMap.put( SunshineDuration.class.getSimpleName(), new SunshineDuration() ); - ncParamsMap.put( SurfaceEquivPotentialTemp.class.getSimpleName(), new SurfaceEquivPotentialTemp() ); - ncParamsMap.put( SurfaceMixingRatio.class.getSimpleName(), new SurfaceMixingRatio() ); - ncParamsMap.put( SurfacePotentialTemp.class.getSimpleName(), new SurfacePotentialTemp() ); - ncParamsMap.put( SurfacePressure.class.getSimpleName(), new SurfacePressure() ); - ncParamsMap.put( SurfaceSatEquivPotentialTemp.class.getSimpleName(), new SurfaceSatEquivPotentialTemp() ); - ncParamsMap.put( SurfaceSatMixingRatio.class.getSimpleName(), new SurfaceSatMixingRatio() ); - ncParamsMap.put( AirTemperature.class.getSimpleName(), new AirTemperature() ); - ncParamsMap.put( TempLapseRate.class.getSimpleName(), new TempLapseRate() ); - ncParamsMap.put( TemporaryOrProbabilityCeiling.class.getSimpleName(), new TemporaryOrProbabilityCeiling() ); - ncParamsMap.put( TemporaryCeilingAsMeanSeaLevel.class.getSimpleName(), new TemporaryCeilingAsMeanSeaLevel() ); - ncParamsMap.put( TemporaryOrProbabilityFlightRuleIdentifier.class.getSimpleName(), new TemporaryOrProbabilityFlightRuleIdentifier() ); - ncParamsMap.put( TemporaryOrProbabilityMountainObscThreshMetIndicator.class.getSimpleName(), new TemporaryOrProbabilityMountainObscThreshMetIndicator() ); - ncParamsMap.put( TemporaryOrProbabilityVisibility.class.getSimpleName(), new TemporaryOrProbabilityVisibility() ); - ncParamsMap.put( TemporaryOrProbabilityWindDirection.class.getSimpleName(), new TemporaryOrProbabilityWindDirection() ); - ncParamsMap.put( TemporaryOrProbabilityWindGust.class.getSimpleName(), new TemporaryOrProbabilityWindGust() ); - ncParamsMap.put( TemporaryOrProbabilityWindSpeed.class.getSimpleName(), new TemporaryOrProbabilityWindSpeed() ); -// ncParamsMap.put( ThunderstormOccurring2hr.class.getSimpleName(), new ThunderstormOccurring2hr() ); -// ncParamsMap.put( ThunderstormOccurring6hr.class.getSimpleName(), new ThunderstormOccurring6hr() ); -// ncParamsMap.put( ThunderstormOccurring12hr.class.getSimpleName(), new ThunderstormOccurring12hr() ); -// ncParamsMap.put( ThunderstormOccurring24hr.class.getSimpleName(), new ThunderstormOccurring24hr() ); - ncParamsMap.put( ShipIceThickness.class.getSimpleName(), new ShipIceThickness() ); - ncParamsMap.put( TopOfIcing.class.getSimpleName(), new TopOfIcing() ); - ncParamsMap.put( TopOfTurbulence.class.getSimpleName(), new TopOfTurbulence() ); - ncParamsMap.put( TopOfWeather.class.getSimpleName(), new TopOfWeather() ); - ncParamsMap.put( TurbulenceFrequencySymbol.class.getSimpleName(), new TurbulenceFrequencySymbol() ); - ncParamsMap.put( TurbulenceIntensitySymbol.class.getSimpleName(), new TurbulenceIntensitySymbol() ); -// ncParamsMap.put( TurbulentKineticEnergy.class.getSimpleName(), new TurbulentKineticEnergy() ); - ncParamsMap.put( EstStormDirectionUComp.class.getSimpleName(), new EstStormDirectionUComp() ); - ncParamsMap.put( UncondProbOfTstorms2hr.class.getSimpleName(), new UncondProbOfTstorms2hr() ); - ncParamsMap.put( UncondProbOfTstorms6hr.class.getSimpleName(), new UncondProbOfTstorms6hr() ); - ncParamsMap.put( UncondProbOfTstorms12hr.class.getSimpleName(), new UncondProbOfTstorms12hr() ); - ncParamsMap.put( UncondProbOfTstorms24hr.class.getSimpleName(), new UncondProbOfTstorms24hr() ); - ncParamsMap.put( WindDirectionUComp.class.getSimpleName(), new WindDirectionUComp() ); - ncParamsMap.put( VaporPressure.class.getSimpleName(), new VaporPressure() ); - ncParamsMap.put( EstStormDirectionVComp.class.getSimpleName(), new EstStormDirectionVComp() ); - ncParamsMap.put( IsentropesVerticalSeparation.class.getSimpleName(), new IsentropesVerticalSeparation() ); - ncParamsMap.put( VerticalVelocity.class.getSimpleName(), new VerticalVelocity() ); - ncParamsMap.put( VirtualPotentialTemp.class.getSimpleName(), new VirtualPotentialTemp() ); - ncParamsMap.put( VirtualTemp.class.getSimpleName(), new VirtualTemp() ); - ncParamsMap.put( Visibility.class.getSimpleName(), new Visibility() ); - ncParamsMap.put( WindDirectionVComp.class.getSimpleName(), new WindDirectionVComp() ); - ncParamsMap.put( WaterEquivOfNewSnow.class.getSimpleName(), new WaterEquivOfNewSnow() ); - ncParamsMap.put( WaveSteepness.class.getSimpleName(), new WaveSteepness() ); - ncParamsMap.put( WetBulbPotentialTemp.class.getSimpleName(), new WetBulbPotentialTemp() ); - ncParamsMap.put( WetBulbTemp.class.getSimpleName(), new WetBulbTemp() ); -// ncParamsMap.put( WindBarb.class.getSimpleName(), new WindBarb() ); - ncParamsMap.put( WindChillEquivalentTemp.class.getSimpleName(), new WindChillEquivalentTemp() ); - ncParamsMap.put( WindChillTemperature.class.getSimpleName(), new WindChillTemperature() ); - ncParamsMap.put( WindSpeedComp.class.getSimpleName(), new WindSpeedComp() ); - ncParamsMap.put( WindCompDirection.class.getSimpleName(), new WindCompDirection() ); - ncParamsMap.put( WindDirection.class.getSimpleName(), new WindDirection() ); - ncParamsMap.put( WindGust.class.getSimpleName(), new WindGust() ); - ncParamsMap.put( WindSpeed.class.getSimpleName(), new WindSpeed() ); - ncParamsMap.put( CeilingFromSeaLevelWorstCase.class.getSimpleName(), new CeilingFromSeaLevelWorstCase() ); - ncParamsMap.put( FlightRulesIdWorstCase.class.getSimpleName(), new FlightRulesIdWorstCase() ); - ncParamsMap.put( MountainObscThreshMetIndicatorWorstCase.class.getSimpleName(), new MountainObscThreshMetIndicatorWorstCase() ); - } - - public boolean isValidMetParameterName( String metPrmName ) { - return ncParamsMap.containsKey( metPrmName ); - } - - // get the default units - public AbstractMetParameter createParameter( String prmName ) { - String ncParamName; - if( ncParamsAliasMap.containsKey( prmName ) ) { - ncParamName = ncParamsAliasMap.get( prmName ); - } - else { - ncParamName = prmName; - } - - if( ncParamName == null || - !ncParamsMap.containsKey( ncParamName )) { - System.out.println("can't find ncParam for : "+prmName ); - return null; - } - - AbstractMetParameter ncParam = ncParamsMap.get( ncParamName ); - - try { - AbstractMetParameter newParam = (AbstractMetParameter) - ncParam.getClass().getConstructor().newInstance(); - return newParam; - } catch (Exception e) { - System.out.println("error getting newInstance for metParam " + - ncParam.getClass().getSimpleName() ); - } - - return null; - } - - // u is the expected units and must be compatible with the units for the implemented - // Quantity. - public AbstractMetParameter createParameter( String prmName, String unitName ) { - Unit units; - - if( unitName == null ) { - units = Unit.ONE; - } - else { - try { - units = UnitFormat.getUCUMInstance().parseProductUnit( - unitName, new ParsePosition(0) ); - } catch (ParseException e) { - System.out.println("unable to determine units for "+unitName); - return null; - } - } - - return createParameter(prmName, units); - } - - // create a parameter value with MISSING value. - // name may be an alias, or the name of the parameter - // - public AbstractMetParameter createParameter( String prmName, Unit u ) { - AbstractMetParameter newParam = createParameter( prmName ); - newParam.setUnit( u ); - return newParam; - } - - public AbstractMetParameter createParameter( String prmName, DataTime dt ) { - AbstractMetParameter newParam = createParameter( prmName ); - newParam.setValidTime( dt ); - return newParam; - } - - public AbstractMetParameter createParameter( String prmName, Unit u, DataTime dt ) { - AbstractMetParameter newParam = createParameter( prmName ); - newParam.setValidTime( dt ); - newParam.setUnit( u ); - return newParam; - } - - public boolean alias( String prmName, String alias ) { - - if( ncParamsAliasMap.containsKey( alias ) && - !ncParamsAliasMap.get( alias ).equals( prmName ) ) { - System.out.println("Error aliasing ncParam "+prmName+" : "+alias + - " is already aliased to "+ncParamsAliasMap.get( alias ) ); - // return false; - } - - ncParamsAliasMap.put( alias, prmName ); - - return true; - } - - public static class NotDerivableException extends VizException { - private static final long serialVersionUID = -5750539413381916413L; - - public NotDerivableException( String msg) { - super( msg ); - } - } - - public @Retention(RetentionPolicy.RUNTIME) @interface DeriveMethod { - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Min24HrTemp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Min24HrTemp.java deleted file mode 100644 index 1f08319e28..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Min24HrTemp.java +++ /dev/null @@ -1,13 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class Min24HrTemp extends AbstractMetParameter implements - javax.measure.quantity.Temperature { - public Min24HrTemp() { - super( UNIT ); - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Min6HrTemp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Min6HrTemp.java deleted file mode 100644 index 1c87e545c8..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Min6HrTemp.java +++ /dev/null @@ -1,14 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class Min6HrTemp extends AbstractMetParameter implements - javax.measure.quantity.Temperature { - - public Min6HrTemp() { - super( UNIT ); - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MinDailyWeatherMapTemp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MinDailyWeatherMapTemp.java deleted file mode 100644 index fa75d11e70..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MinDailyWeatherMapTemp.java +++ /dev/null @@ -1,38 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import javax.measure.unit.Unit; - -public class MinDailyWeatherMapTemp extends AbstractMetParameter implements javax.measure.quantity.Temperature { - - public MinDailyWeatherMapTemp() { - super( UNIT ); - } - - @DeriveMethod - AbstractMetParameter derive ( Min6HrTemp t00x, Min6HrTemp t06x ) throws InvalidValueException, NullPointerException{ - if ( t00x.hasValidValue() && t06x.hasValidValue() ){ - Amount val = PRLibrary.prDmin(t00x, t06x); - setValue(val); - }else - setValueToMissing(); - - return this; - } - -} - - - - - - - - - - - - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MinNightTemp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MinNightTemp.java deleted file mode 100644 index 7e3bb32d7e..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MinNightTemp.java +++ /dev/null @@ -1,16 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Temperature; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class MinNightTemp extends AbstractMetParameter implements - Temperature { - - public MinNightTemp(){ - super( UNIT ); - } - } - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MixingRatio.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MixingRatio.java deleted file mode 100644 index 5f469f0346..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MixingRatio.java +++ /dev/null @@ -1,28 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -/** - * @author archana - * - */ -public final class MixingRatio extends AbstractMetParameter implements javax.measure.quantity.Dimensionless { - public MixingRatio(){ - super( UNIT ); - } - - @DeriveMethod - public MixingRatio derive ( DewPointTemp d , PressureLevel p ) throws InvalidValueException, NullPointerException, InvalidRangeException{ - if ( d.hasValidValue() && p.hasValidValue() ){ - Amount mixingRatio = PRLibrary.prMixr( d, p ); - this.setValue(mixingRatio); - }else - setValueToMissing(); - return this; - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MoistHydrostaticHeight.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MoistHydrostaticHeight.java deleted file mode 100644 index 3b2a6a262f..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MoistHydrostaticHeight.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class MoistHydrostaticHeight extends AbstractMetParameter - implements Length { - - public MoistHydrostaticHeight(){ - super( UNIT ); - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MontgomeryStreamFnct.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MontgomeryStreamFnct.java deleted file mode 100644 index c9ece42a74..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MontgomeryStreamFnct.java +++ /dev/null @@ -1,22 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; - -/** - * - * @author archana - * - */ -public class MontgomeryStreamFnct extends AbstractMetParameter implements - Dimensionless { - - protected MontgomeryStreamFnct() { - super(UNIT); - } - - //TODO: add the derive method once the nature/order of the input parameters in known -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MountainObscThresh.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MountainObscThresh.java deleted file mode 100644 index 6cef5084b8..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MountainObscThresh.java +++ /dev/null @@ -1,16 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class MountainObscThresh extends AbstractMetParameter - implements Length { - - public MountainObscThresh() { - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MountainObscThreshMetIndicator.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MountainObscThreshMetIndicator.java deleted file mode 100644 index 724b6992d5..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MountainObscThreshMetIndicator.java +++ /dev/null @@ -1,23 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; - -public class MountainObscThreshMetIndicator extends - AbstractMetParameter implements Dimensionless { - - public MountainObscThreshMetIndicator() { - super( UNIT ); - } - - @DeriveMethod - AbstractMetParameter derive ( CeilingFromSeaLevel tcms, MountainObscThresh motv) throws InvalidValueException, NullPointerException{ - Amount val = PRLibrary.prMobs(tcms, motv ); - setValue ( val ); - return this; - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MountainObscThreshMetIndicatorWorstCase.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MountainObscThreshMetIndicatorWorstCase.java deleted file mode 100644 index 049d44020c..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/MountainObscThreshMetIndicatorWorstCase.java +++ /dev/null @@ -1,37 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; - -public class MountainObscThreshMetIndicatorWorstCase extends - AbstractMetParameter implements Dimensionless { - - public MountainObscThreshMetIndicatorWorstCase() { - super( UNIT ); - } - - @DeriveMethod - AbstractMetParameter derive ( CeilingFromSeaLevelWorstCase wcms, MountainObscThresh motv) throws InvalidValueException, NullPointerException{ - if ( wcms.hasValidValue() && motv.hasValidValue() ){ - Amount val = PRLibrary.prMobs(wcms, motv ); - setValue ( val ); - }else - setValueToMissing(); - - return this; - } -} - - - - - - - - - - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/NewSnowAmount.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/NewSnowAmount.java deleted file mode 100644 index d55e9fbf26..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/NewSnowAmount.java +++ /dev/null @@ -1,14 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class NewSnowAmount extends AbstractMetParameter implements Length { - - public NewSnowAmount(){ - super( UNIT ); - } - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/NightTempAnomaly.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/NightTempAnomaly.java deleted file mode 100644 index 770471fe4e..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/NightTempAnomaly.java +++ /dev/null @@ -1,55 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; -import gov.noaa.nws.ncep.metparameters.dbquery.util.ClimateDataDbAccess; -import gov.noaa.nws.ncep.metparameters.dbquery.util.ClimateDataDbAccessManager; - -import javax.measure.quantity.Temperature; -import javax.measure.unit.NonSI; - -/** - * @author archana - * - */ - public class NightTempAnomaly extends AbstractMetParameter implements - Temperature { - - public NightTempAnomaly() { - super( UNIT ); - } - - @DeriveMethod - public NightTempAnomaly derive( Min24HrTemp min24HrTemp, StationID stationId ) throws InvalidValueException, NullPointerException, InvalidRangeException { - if ( min24HrTemp.hasValidValue() && stationId.hasValidValue() ){ - - // See DayTempAnomaly - // String month = SelectedFrameTimeUtil.getFrameTimeMonthStringValue(); -// String dayOfMonth = SelectedFrameTimeUtil.getFrameTimeDayOfMonthStringValue(); -// double climateTNTFInF = getClimateTNTFInF(stationId.valueString, month, dayOfMonth); -// double min24HrTempInF = min24HrTemp.getValueAs(NonSI.FAHRENHEIT).doubleValue(); -// double finalTNAFInF = min24HrTempInF - climateTNTFInF; -// System.out.println("=======, min24HrTempInF= "+min24HrTempInF); -// System.out.println("=======, climateTNTFInF= "+climateTNTFInF); -// System.out.println("=======, finalTNAFInF= "+finalTNAFInF); - - /* - * tnaf: Night Temp anomaly in F - */ -// Amount tnafAmount = new Amount(finalTNAFInF, NonSI.FAHRENHEIT); -// setValue(tnafAmount); - }else - setValueToMissing(); - return this; - } - - private double getClimateTNTFInF(String stationId, String month, String day) { - ClimateDataDbAccess climateDataDbAccess = ClimateDataDbAccessManager.getInstance().getClimateDataDbAccess(); - double tntfClimateValue = climateDataDbAccess.getTNTF(stationId, month, day); - return tntfClimateValue; - } - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/NightTempFcst.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/NightTempFcst.java deleted file mode 100644 index a29a9052e9..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/NightTempFcst.java +++ /dev/null @@ -1,23 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Temperature; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -/** - * @author archana - * - */ - public class NightTempFcst extends AbstractMetParameter implements - Temperature { - - public NightTempFcst() { - super( UNIT ); - } - - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/NumInterWinds.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/NumInterWinds.java deleted file mode 100644 index 675d2e8a10..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/NumInterWinds.java +++ /dev/null @@ -1,18 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; - -/** - * @author archana - * - */ -public class NumInterWinds extends AbstractMetParameter implements - Dimensionless { - public NumInterWinds ( ){ - super ( UNIT ); - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/OneMinPeakWindDir.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/OneMinPeakWindDir.java deleted file mode 100644 index 9d8e54917e..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/OneMinPeakWindDir.java +++ /dev/null @@ -1,14 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Angle; -import javax.measure.unit.Unit; - - public class OneMinPeakWindDir extends AbstractMetParameter - implements Angle { - - public OneMinPeakWindDir (){ - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POP12Hrs.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POP12Hrs.java deleted file mode 100644 index 01509a18db..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POP12Hrs.java +++ /dev/null @@ -1,24 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -/** - * @author archana - * - */ - public class POP12Hrs extends AbstractMetParameter implements - Dimensionless { - - public POP12Hrs() { - super( UNIT ); - } - - - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POP24Hrs.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POP24Hrs.java deleted file mode 100644 index 9fb1e499e9..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POP24Hrs.java +++ /dev/null @@ -1,23 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -/** - * @author archana - * - */ - public class POP24Hrs extends AbstractMetParameter implements - Dimensionless { - - public POP24Hrs() { - super( UNIT ); - } - - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POPAnomalyIn12hrs.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POPAnomalyIn12hrs.java deleted file mode 100644 index 553211b42f..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POPAnomalyIn12hrs.java +++ /dev/null @@ -1,45 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; -import gov.noaa.nws.ncep.metparameters.dbquery.util.ClimateDataDbAccess; -import gov.noaa.nws.ncep.metparameters.dbquery.util.ClimateDataDbAccessManager; - -import javax.measure.unit.NonSI; - -public class POPAnomalyIn12hrs extends AbstractMetParameter implements javax.measure.quantity.Dimensionless { - - public POPAnomalyIn12hrs(){ - super( UNIT ); - } - - @DeriveMethod - public POPAnomalyIn12hrs derive( POPFcst12Hrs popFcst12Hrs, StationID stationId ) throws InvalidValueException, NullPointerException, InvalidRangeException { - // SEE ClimDayTemp -// if ( popFcst12Hrs.hasValidValue() && stationId.hasValidValue() ){ -// String month = SelectedFrameTimeUtil.getFrameTimeMonthStringValue(); -// String dayOfMonth = SelectedFrameTimeUtil.getFrameTimeDayOfMonthStringValue(); -// double climatePPNT = getClimatePPNT(stationId.valueString, month, dayOfMonth); -// double finalPP1A = popFcst12Hrs.doubleValue() - climatePPNT; -//// System.out.println("=======, popFcst12Hrs.doubleValue()= "+popFcst12Hrs.doubleValue()); -//// System.out.println("=======, climatePPNT= "+climatePPNT); -//// System.out.println("=======, finalPP1A= "+finalPP1A); -// -// /* -// * pp1a: Probability of precipitation anomaly in a 12-hr period in percentage -// * pp1a = pp12 - ppnt(climate) -// */ -// Amount pp1aAmount = new Amount(finalPP1A, NonSI.PERCENT); -// setValue(pp1aAmount); -// }else -// setValueToMissing(); - return this; - } - - private double getClimatePPNT(String stationId, String month, String day) { - ClimateDataDbAccess climateDataDbAccess = ClimateDataDbAccessManager.getInstance().getClimateDataDbAccess(); - double ppntClimateValue = climateDataDbAccess.getPPNT(stationId, month, day); - return ppntClimateValue; - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POPAnomalyIn24hrs.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POPAnomalyIn24hrs.java deleted file mode 100644 index 8a2d145b3d..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POPAnomalyIn24hrs.java +++ /dev/null @@ -1,50 +0,0 @@ -//package gov.noaa.nws.ncep.metparameters; -// -//public class POPAnomalyIn24hr { -// -//} -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; -import gov.noaa.nws.ncep.metparameters.dbquery.util.ClimateDataDbAccess; -import gov.noaa.nws.ncep.metparameters.dbquery.util.ClimateDataDbAccessManager; - -import javax.measure.unit.NonSI; - -public class POPAnomalyIn24hrs extends AbstractMetParameter implements javax.measure.quantity.Dimensionless { - - public POPAnomalyIn24hrs(){ - super( UNIT ); - } - - @DeriveMethod - public POPAnomalyIn24hrs derive( POPFcst24Hrs popFcst24Hrs, StationID stationId ) throws InvalidValueException, NullPointerException, InvalidRangeException { -// See ClimDayTemp -// if ( popFcst24Hrs.hasValidValue() && stationId.hasValidValue() ){ -// String month = SelectedFrameTimeUtil.getFrameTimeMonthStringValue(); -// String dayOfMonth = SelectedFrameTimeUtil.getFrameTimeDayOfMonthStringValue(); -// double climatePP24 = getClimatePP24(stationId.valueString, month, dayOfMonth); -// double finalPP2A = popFcst24Hrs.doubleValue() - climatePP24; -//// System.out.println("=======, popFcst24Hrs.doubleValue()= "+popFcst24Hrs.doubleValue()); -//// System.out.println("=======, climatePP24= "+climatePP24); -//// System.out.println("=======, finalPP2A= "+finalPP2A); -// -// /* -// * pp2a: Probability of precipitation anomaly in a 24-hr period in percentage -// * pp2a = pp24 - pp24(climate) -// */ -// Amount pp2aAmount = new Amount(finalPP2A, NonSI.PERCENT); -// setValue(pp2aAmount); -// }else -// setValueToMissing(); - return this; - } - - private double getClimatePP24(String stationId, String month, String day) { - ClimateDataDbAccess climateDataDbAccess = ClimateDataDbAccessManager.getInstance().getClimateDataDbAccess(); - double pp24ClimateValue = climateDataDbAccess.getPP24(stationId, month, day); - return pp24ClimateValue; - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POPFcst06Hrs.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POPFcst06Hrs.java deleted file mode 100644 index d0cea4c470..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POPFcst06Hrs.java +++ /dev/null @@ -1,22 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -/** - * @author archana - * - */ - public class POPFcst06Hrs extends AbstractMetParameter implements - Dimensionless { - - public POPFcst06Hrs() { - super( UNIT ); - } - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POPFcst12Hrs.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POPFcst12Hrs.java deleted file mode 100644 index 42a0ff8199..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POPFcst12Hrs.java +++ /dev/null @@ -1,23 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -/** - * @author archana - * - */ - public class POPFcst12Hrs extends AbstractMetParameter implements - Dimensionless { - - public POPFcst12Hrs() { - super( UNIT ); - } - - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POPFcst24Hrs.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POPFcst24Hrs.java deleted file mode 100644 index e29d4affd3..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/POPFcst24Hrs.java +++ /dev/null @@ -1,23 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -/** - * @author archana - * - */ - public class POPFcst24Hrs extends AbstractMetParameter implements - Dimensionless { - - public POPFcst24Hrs() { - super( UNIT ); - } - - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PeakWindDir.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PeakWindDir.java deleted file mode 100644 index cec232dd5f..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PeakWindDir.java +++ /dev/null @@ -1,17 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Angle; - -/** - * @author archana - * - */ - public class PeakWindDir extends AbstractMetParameter implements Angle { - public PeakWindDir ( ){ - super ( UNIT ); - } - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PeakWindSpeed.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PeakWindSpeed.java deleted file mode 100644 index cf19a580cc..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PeakWindSpeed.java +++ /dev/null @@ -1,10 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Velocity; - - public class PeakWindSpeed extends AbstractMetParameter implements Velocity { - public PeakWindSpeed ( ){ - super ( UNIT ); - } - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PeakWindSpeedTime.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PeakWindSpeedTime.java deleted file mode 100644 index 6d74e701a9..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PeakWindSpeedTime.java +++ /dev/null @@ -1,10 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Duration; - - public class PeakWindSpeedTime extends AbstractMetParameter implements Duration { - public PeakWindSpeedTime(){ - super ( UNIT ); - } - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PerpendicularWindComp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PerpendicularWindComp.java deleted file mode 100644 index a065d349de..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PerpendicularWindComp.java +++ /dev/null @@ -1,22 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import javax.measure.unit.Unit; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -public class PerpendicularWindComp extends AbstractMetParameter implements javax.measure.quantity.Angle { - - public PerpendicularWindComp() { - super( UNIT ); - } - - @DeriveMethod - AbstractMetParameter derive ( WindDirection wd, WindSpeed ws,WindCompDirection d) throws InvalidValueException, NullPointerException, InvalidRangeException{ - Amount windDrct = PRLibrary.prWnml( wd , ws , d ); - this.setValue(windDrct); - return this; - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PlatformTrueDirection.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PlatformTrueDirection.java deleted file mode 100644 index ac109baa5b..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PlatformTrueDirection.java +++ /dev/null @@ -1,17 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Angle; - -/** - * @author archana - * - */ - public class PlatformTrueDirection extends AbstractMetParameter implements Angle { - public PlatformTrueDirection(){ - super( UNIT ); - } - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PlatformTrueSpeed.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PlatformTrueSpeed.java deleted file mode 100644 index 55a7cd13a7..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PlatformTrueSpeed.java +++ /dev/null @@ -1,17 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Velocity; - -/** - * @author archana - * - */ - public class PlatformTrueSpeed extends AbstractMetParameter implements Velocity { - public PlatformTrueSpeed( ){ - super( UNIT ); - } - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PotentialTemp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PotentialTemp.java deleted file mode 100644 index 5300c0a5c2..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PotentialTemp.java +++ /dev/null @@ -1,41 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -/** - * @author archana - * - */ - public final class PotentialTemp extends AbstractMetParameter implements - javax.measure.quantity.Temperature { - public PotentialTemp() { - super( UNIT ); - } - - @DeriveMethod - public PotentialTemp derive( AirTemperature t, PressureLevel p ) throws InvalidRangeException, InvalidValueException, NullPointerException { - if ( t.hasValidValue() && p.hasValidValue() ){ - Amount thePotentialTempAmount = PRLibrary.prThta(t, p); - this.setValue(thePotentialTempAmount); - }else - setValueToMissing(); - return this; - } - -//@DeriveMethod -// public PotentialTemp derive( AirTemperature t, SeaLevelPressure p ) throws InvalidRangeException, InvalidValueException, NullPointerException { -// if ( t.hasValidValue() && p.hasValidValue() ){ -// Amount thePotentialTempAmount = PRLibrary.prThta(t, p); -// this.setValue(thePotentialTempAmount); -// }else -// setValueToMissing(); -// return this; -// } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PotentialTempLapseRate.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PotentialTempLapseRate.java deleted file mode 100644 index 85a0937858..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PotentialTempLapseRate.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class PotentialTempLapseRate extends AbstractMetParameter implements - gov.noaa.nws.ncep.metParameters.quantity.RateOfChangeInTemperatureWithHeight { - - public PotentialTempLapseRate(){ - super( UNIT ); - } - - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precip01Hr.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precip01Hr.java deleted file mode 100644 index 4eacf615d3..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precip01Hr.java +++ /dev/null @@ -1,13 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class Precip01Hr extends AbstractMetParameter implements javax.measure.quantity.Length{ - public Precip01Hr ( ){ - super( UNIT ); - } - - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precip03Hr.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precip03Hr.java deleted file mode 100644 index ac492aa219..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precip03Hr.java +++ /dev/null @@ -1,13 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class Precip03Hr extends AbstractMetParameter implements javax.measure.quantity.Length{ - public Precip03Hr ( ){ - super( UNIT ); - } - - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precip06Hr.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precip06Hr.java deleted file mode 100644 index 058b6dbc37..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precip06Hr.java +++ /dev/null @@ -1,13 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class Precip06Hr extends AbstractMetParameter implements javax.measure.quantity.Length{ - public Precip06Hr ( ){ - super( UNIT ); - } - - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precip12Hr.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precip12Hr.java deleted file mode 100644 index 15636d4915..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precip12Hr.java +++ /dev/null @@ -1,13 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class Precip12Hr extends AbstractMetParameter implements javax.measure.quantity.Length{ - public Precip12Hr ( ){ - super( UNIT ); - } - - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precip18Hr.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precip18Hr.java deleted file mode 100644 index 9fa29f29be..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precip18Hr.java +++ /dev/null @@ -1,9 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -public class Precip18Hr extends AbstractMetParameter implements javax.measure.quantity.Length{ - public Precip18Hr() { - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precip24Hr.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precip24Hr.java deleted file mode 100644 index 00a251fdf0..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precip24Hr.java +++ /dev/null @@ -1,9 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - - public class Precip24Hr extends AbstractMetParameter implements javax.measure.quantity.Length{ - public Precip24Hr() { - super( UNIT ); - } - - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PrecipitableWaterForEntireSounding.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PrecipitableWaterForEntireSounding.java deleted file mode 100644 index 303ad5ec99..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PrecipitableWaterForEntireSounding.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class PrecipitableWaterForEntireSounding extends AbstractMetParameter - implements Length { - - public PrecipitableWaterForEntireSounding(){ - super( UNIT ); - } - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PrecipitableWaterUptoSpecifiedLevel.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PrecipitableWaterUptoSpecifiedLevel.java deleted file mode 100644 index e0b4205f6c..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PrecipitableWaterUptoSpecifiedLevel.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class PrecipitableWaterUptoSpecifiedLevel extends AbstractMetParameter - implements Length { - - public PrecipitableWaterUptoSpecifiedLevel(){ - super( UNIT ); - } - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precipitation.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precipitation.java deleted file mode 100644 index 4a922480d2..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Precipitation.java +++ /dev/null @@ -1,17 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import javax.measure.quantity.Length; -import javax.measure.unit.NonSI; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class Precipitation extends AbstractMetParameter implements javax.measure.quantity.Length { - - public Precipitation() { - super( UNIT ); - } - - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PredomSwellWaveDir.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PredomSwellWaveDir.java deleted file mode 100644 index 9895fc2ca9..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PredomSwellWaveDir.java +++ /dev/null @@ -1,16 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Angle; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class PredomSwellWaveDir extends AbstractMetParameter - implements Angle { - - public PredomSwellWaveDir() { - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PredomSwellWaveHeight.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PredomSwellWaveHeight.java deleted file mode 100644 index 8f2a7b3a3f..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PredomSwellWaveHeight.java +++ /dev/null @@ -1,14 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class PredomSwellWaveHeight extends AbstractMetParameter implements Length { - - public PredomSwellWaveHeight() { - super( UNIT ); - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PredomSwellWavePeriod.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PredomSwellWavePeriod.java deleted file mode 100644 index 7b1977b69d..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PredomSwellWavePeriod.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Duration; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class PredomSwellWavePeriod extends AbstractMetParameter implements Duration { - - public PredomSwellWavePeriod() { - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PresentWeather.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PresentWeather.java deleted file mode 100644 index db94d2d77e..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PresentWeather.java +++ /dev/null @@ -1,46 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class PresentWeather extends AbstractMetParameter implements Dimensionless { - - // The SkyCoverage enum value is stored as a String. -// @Override -// public Boolean hasStringValue() { -// return true; -// } -// - public PresentWeather() { - super( UNIT ); - setValueIsString(); - } - - } - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PressChange24Hr.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PressChange24Hr.java deleted file mode 100644 index 6aa22c39fc..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PressChange24Hr.java +++ /dev/null @@ -1,17 +0,0 @@ - package gov.noaa.nws.ncep.metparameters; - import javax.measure.unit.Unit; - import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; - import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class PressChange24Hr extends AbstractMetParameter implements - javax.measure.quantity.Pressure { - public PressChange24Hr() { - super( UNIT ); - } - - } - - - - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PressChange3Hr.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PressChange3Hr.java deleted file mode 100644 index 73f38d08f5..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PressChange3Hr.java +++ /dev/null @@ -1,21 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - - import javax.measure.unit.Unit; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; - import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class PressChange3Hr extends AbstractMetParameter implements - javax.measure.quantity.Pressure { - public PressChange3Hr() { - super( UNIT ); - } - - } - - - - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PressTendency.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PressTendency.java deleted file mode 100644 index 3d7064ef68..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PressTendency.java +++ /dev/null @@ -1,22 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; - - -/** - * @author archana - * - */ -public class PressTendency extends AbstractMetParameter implements - Dimensionless { - - public PressTendency() { - super( UNIT ); - setValueIsString(); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PressureLevel.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PressureLevel.java deleted file mode 100644 index eec645c85b..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/PressureLevel.java +++ /dev/null @@ -1,19 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -// This parameter is intended to be used as a Vertical Coordinate. -// - -import javax.measure.unit.Unit; - -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class PressureLevel extends AbstractMetParameter implements -javax.measure.quantity.Pressure { - public PressureLevel() { - super( UNIT ); - } -} - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/RateOfIceAccretionOnVesselInSaltWater.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/RateOfIceAccretionOnVesselInSaltWater.java deleted file mode 100644 index c956d04083..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/RateOfIceAccretionOnVesselInSaltWater.java +++ /dev/null @@ -1,28 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.NcUnits; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import javax.measure.unit.Unit; - -public class RateOfIceAccretionOnVesselInSaltWater extends AbstractMetParameter implements javax.measure.quantity.Velocity { - - public RateOfIceAccretionOnVesselInSaltWater() { - super( UNIT ); - } - - @DeriveMethod - AbstractMetParameter derive( AirTemperature airTemp, SeaSurfaceTemp seaTemp, WindSpeed ws ) throws InvalidValueException, NullPointerException, InvalidRangeException{ - if ( airTemp.hasValidValue() && seaTemp.hasValidValue() && ws.hasValidValue() ){ - Amount val = PRLibrary.prIgro(airTemp, seaTemp, ws ); - setValue(val); - }else - setValueToMissing(); - - return this; - } - - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/RelativeHumidity.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/RelativeHumidity.java deleted file mode 100644 index 9e9cdbd16c..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/RelativeHumidity.java +++ /dev/null @@ -1,43 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import javax.management.DescriptorKey; -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.NonSI; -import javax.measure.unit.Unit; - -// -public class RelativeHumidity extends AbstractMetParameter implements Dimensionless { - - public RelativeHumidity( ) { - super( UNIT ); - } - - protected AbstractMetParameter create( Amount val ) { - RelativeHumidity p = new RelativeHumidity(); - p.setValue( val ); - return p; - } - - @Override - public boolean isUnitCompatible( Unit u) { - return UNIT.isCompatible( u ); - } - - @DeriveMethod - public RelativeHumidity derive( AirTemperature t, DewPointTemp d ) throws InvalidValueException, NullPointerException, InvalidRangeException { - if ( t.hasValidValue() && d.hasValidValue() ){ - Amount theRelhAmount = PRLibrary.prRelh(t, d); - this.setValue(theRelhAmount); - } else - this.setValueToMissing(); - - return this; - } -} - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/RichardsonNumber.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/RichardsonNumber.java deleted file mode 100644 index 4333e1dee5..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/RichardsonNumber.java +++ /dev/null @@ -1,17 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class RichardsonNumber extends AbstractMetParameter implements - Dimensionless { - - public RichardsonNumber(){ - super( UNIT ); - } - - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SatEquivPotentialTemp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SatEquivPotentialTemp.java deleted file mode 100644 index c64620116c..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SatEquivPotentialTemp.java +++ /dev/null @@ -1,28 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.unit.Unit; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -public class SatEquivPotentialTemp extends AbstractMetParameter implements - javax.measure.quantity.Temperature { - public SatEquivPotentialTemp() { - super( UNIT ); - } - - @DeriveMethod - public SatEquivPotentialTemp derive( PressureLevel p, AirTemperature t, AirTemperature t2 ) throws InvalidValueException, NullPointerException, InvalidRangeException { - if ( p.hasValidValue() && t.hasValidValue() && t2.hasValidValue() ){ - Amount theEquivPotTempAmount = PRLibrary.prThte(p, t, t2); - setValue(theEquivPotTempAmount); - }else - setValueToMissing(); - return this; - } - -} - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SatMixingRatio.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SatMixingRatio.java deleted file mode 100644 index 03c15cd069..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SatMixingRatio.java +++ /dev/null @@ -1,33 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - - - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - - /** - * @author archana - * - */ -public final class SatMixingRatio extends AbstractMetParameter implements javax.measure.quantity.Dimensionless { - - public SatMixingRatio(){ - super( UNIT ); - } - - @DeriveMethod - public SatMixingRatio derive ( DewPointTemp d , PressureLevel p ) throws InvalidValueException, NullPointerException, InvalidRangeException{ - if ( d.hasValidValue() && p.hasValidValue() ){ - Amount mixingRatio = PRLibrary.prMixr( d, p ); - setValue(mixingRatio); - }else - setValueToMissing(); - return this; - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SatVaporPressure.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SatVaporPressure.java deleted file mode 100644 index 24bc1cdf7d..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SatVaporPressure.java +++ /dev/null @@ -1,23 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -public class SatVaporPressure extends AbstractMetParameter implements -javax.measure.quantity.Pressure { - public SatVaporPressure() { - super( UNIT ); - } - - @DeriveMethod - public SatVaporPressure derive( AirTemperature t ) throws InvalidValueException, NullPointerException, InvalidRangeException { - if ( t.hasValidValue() ){ - Amount vaporPresAmount = PRLibrary.prVapr( t ); - this.setValue(vaporPresAmount); - }else - setValueToMissing(); - return this; - } -} \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SeaIceDriftDist.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SeaIceDriftDist.java deleted file mode 100644 index c9f0778997..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SeaIceDriftDist.java +++ /dev/null @@ -1,17 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class SeaIceDriftDist extends AbstractMetParameter - implements Length { - - public SeaIceDriftDist(){ - super( UNIT ); - } - -} - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SeaLevelPressure.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SeaLevelPressure.java deleted file mode 100644 index 80d6ddb7be..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SeaLevelPressure.java +++ /dev/null @@ -1,70 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import javax.measure.unit.NonSI; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.NcUnits; - - - public class SeaLevelPressure extends AbstractMetParameter implements - javax.measure.quantity.Pressure { - - public SeaLevelPressure() { - super( UNIT ); - } - - @Override - public String getFormattedString(String formatStr) { - - if( formatStr == null || formatStr.isEmpty() || - formatStr.startsWith("%" ) ) { - return super.getFormattedString( formatStr ); - } - - else if ( ( formatStr.compareToIgnoreCase("RSLT") == 0 ) - || (formatStr.compareToIgnoreCase("SALT") == 0 )){ - double newPresValInMb = Double.NaN; - if ( ( this.getUnit().toString().compareTo("mb") != 0 ) ){ - double oldPresVal = this.value.doubleValue(); - newPresValInMb = this.getUnit() - .getConverterTo( NcUnits.MILLIBAR ) - .convert( oldPresVal ) ; - //setValue(new Amount ( newPresValInMb, NcUnits.MILLIBAR )); - } - - double abbrevPressVal = ( newPresValInMb % 100 ) * 10; - Integer abbrevpressValAsInt = new Integer ( ( int ) abbrevPressVal ); - String abbrevPressureString = abbrevpressValAsInt.toString(); - return abbrevPressureString; - } - - else if ( ( formatStr.compareToIgnoreCase("RSLI") == 0 ) - || (formatStr.compareToIgnoreCase("SALI") == 0 )){ - - double newPresValInMb = Double.NaN; - if ( ( this.getUnit().toString().compareTo("inHg") != 0 ) ){ - double oldPresVal = this.value.doubleValue(); - newPresValInMb = this.getUnit() - .getConverterTo( NonSI.INCH_OF_MERCURY ) - .convert( oldPresVal ) ; - //setValue(new Amount ( newPresValInMb, NonSI.INCH_OF_MERCURY )); - } - - double abbrevPressVal = ( newPresValInMb % 10 ) * 100; - Integer abbrevpressValAsInt = new Integer ( ( int ) abbrevPressVal ); - String abbrevPressureString = abbrevpressValAsInt.toString(); - - if ( abbrevPressureString.length() == 1 ){ - abbrevPressureString = new String ( "00" + abbrevPressureString); - } - if ( abbrevPressureString.length() == 2 ){ - abbrevPressureString = new String ( "0" + abbrevPressureString); - } - - return abbrevPressureString; - } - - else - return super.getFormattedString( formatStr ); - } - - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SeaSurfaceTemp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SeaSurfaceTemp.java deleted file mode 100644 index 6b93a10089..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SeaSurfaceTemp.java +++ /dev/null @@ -1,16 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Temperature; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class SeaSurfaceTemp extends AbstractMetParameter implements - Temperature { - - public SeaSurfaceTemp() { - super( UNIT ); - } - - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SecondarySwellWaveDir.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SecondarySwellWaveDir.java deleted file mode 100644 index 3b814cf899..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SecondarySwellWaveDir.java +++ /dev/null @@ -1,13 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Angle; -import javax.measure.unit.Unit; - - public class SecondarySwellWaveDir extends AbstractMetParameter - implements Angle { - - public SecondarySwellWaveDir() { - super( UNIT ); - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SecondarySwellWaveHeight.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SecondarySwellWaveHeight.java deleted file mode 100644 index 4a9319502f..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SecondarySwellWaveHeight.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class SecondarySwellWaveHeight extends AbstractMetParameter implements Length { - - public SecondarySwellWaveHeight() { - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SecondarySwellWavePeriod.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SecondarySwellWavePeriod.java deleted file mode 100644 index 506466b18d..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SecondarySwellWavePeriod.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Duration; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class SecondarySwellWavePeriod extends AbstractMetParameter implements Duration { - - public SecondarySwellWavePeriod() { - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/ShipCourse.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/ShipCourse.java deleted file mode 100644 index 4d652a7f30..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/ShipCourse.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Angle; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class ShipCourse extends - AbstractMetParameter implements Angle { - - public ShipCourse() { - super( UNIT ); - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/ShipIceThickness.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/ShipIceThickness.java deleted file mode 100644 index 34c890c968..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/ShipIceThickness.java +++ /dev/null @@ -1,16 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class ShipIceThickness extends AbstractMetParameter - implements Length { - - public ShipIceThickness() { - super( UNIT ); - } - - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/ShowalterIndex.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/ShowalterIndex.java deleted file mode 100644 index cfbd79b726..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/ShowalterIndex.java +++ /dev/null @@ -1,16 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class ShowalterIndex extends AbstractMetParameter implements - Dimensionless { - - public ShowalterIndex(){ - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SkyCoverage.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SkyCoverage.java deleted file mode 100644 index a0789c9cb5..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SkyCoverage.java +++ /dev/null @@ -1,70 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import java.util.HashMap; - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class SkyCoverage extends AbstractMetParameter implements Dimensionless { - - // The SkyCoverage enum value is stored as a String. -// @Override -// public Boolean hasStringValue() { -// return true; -// } -// - public SkyCoverage() { - super( UNIT ); - setValueIsString(); - } - - -// @DeriveMethod -// public AbstractMetParameter determineFromCloudCover( CloudCover[] cldCoverList ) { -// // TODO : what is the default "", "CLR" -// if( cldCoverList == null || cldCoverList.length == 0 ) { -// setStringValue("BLNK"); -// return this; -// } -// -// // TODO : Raytheon reads the cloud_select.txt file to determine the 'rankedField' -// // but here we'll just encode the rules for determining the skyCoverage from the -// // various cloud coverages. -// // -// for( CloudCover cldCov : cldCoverList ) { -// -// } -// -// setStringValue("CLR"); -// -// return this; -// } - - } - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SnowDepth.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SnowDepth.java deleted file mode 100644 index 61bafa1e10..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SnowDepth.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class SnowDepth extends AbstractMetParameter implements Length { - - public SnowDepth(){ - super( UNIT ); - } - - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SnowIcePelletWatchThresh.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SnowIcePelletWatchThresh.java deleted file mode 100644 index 258caa233b..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SnowIcePelletWatchThresh.java +++ /dev/null @@ -1,23 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -/** - * @author archana - * - */ -public class SnowIcePelletWatchThresh extends AbstractMetParameter - implements Length { - - public SnowIcePelletWatchThresh(){ - super( UNIT ); - } - - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SpecificHumidity.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SpecificHumidity.java deleted file mode 100644 index 668e40e904..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SpecificHumidity.java +++ /dev/null @@ -1,17 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; - -/** - * - * @author archana - * - */ -public class SpecificHumidity extends AbstractMetParameter implements Dimensionless { - - protected SpecificHumidity() { - super(UNIT); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SpeedOf05SecPeakWind.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SpeedOf05SecPeakWind.java deleted file mode 100644 index 889eb455b9..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SpeedOf05SecPeakWind.java +++ /dev/null @@ -1,20 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class SpeedOf05SecPeakWind extends AbstractMetParameter implements - javax.measure.quantity.Velocity { - - public SpeedOf05SecPeakWind(){ - super( UNIT ); - } - - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StabilityWithRespectToPressure.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StabilityWithRespectToPressure.java deleted file mode 100644 index d2ea0964bc..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StabilityWithRespectToPressure.java +++ /dev/null @@ -1,16 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -import gov.noaa.nws.ncep.metParameters.quantity.RateOfChangeInTemperatureWithPressure; - -public class StabilityWithRespectToPressure extends AbstractMetParameter - implements RateOfChangeInTemperatureWithPressure { - - public StabilityWithRespectToPressure(){ - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StationElevation.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StationElevation.java deleted file mode 100644 index 8299beff20..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StationElevation.java +++ /dev/null @@ -1,95 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import java.util.List; - -import javax.measure.unit.SI; -import javax.measure.unit.Unit; - -import com.raytheon.uf.viz.core.catalog.DirectDbQuery; -import com.raytheon.uf.viz.core.catalog.DirectDbQuery.QueryLanguage; -import com.raytheon.uf.viz.core.exception.VizException; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - - public class StationElevation extends AbstractMetParameter implements javax.measure.quantity.Length { - - public StationElevation() { - super( UNIT ); - } - -// // TODO : not implemented, hard code to test derived parameters -// @DeriveMethod -// AbstractMetParameter derive( StationID sid ) throws InvalidValueException, NullPointerException, InvalidRangeException{ -// if( sid.hasValidValue() ) { -// -// -// } -// -// this.setValue( 10, SI.METER ); -// -// return this; -// } - - // TODO : check that this is stationPressure is correct here - @DeriveMethod - AbstractMetParameter derive( SeaLevelPressure alti, SurfacePressure pres ) throws InvalidValueException, NullPointerException, InvalidRangeException{ - if ( alti.hasValidValue() && pres.hasValidValue() ){ - Amount val = PRLibrary.prZalt(alti, pres ); - setValue(val); - }else - setValueToMissing(); - return this; - } - - @DeriveMethod - AbstractMetParameter derive( StationID sid ) throws InvalidValueException, NullPointerException, InvalidRangeException{ - // TODO : look up the lat from the station name. - // this.setValue(val); - - StringBuilder query = new StringBuilder("select elevation from "); - query.append("obs "); - query.append("where stationid = '"); - query.append(sid.getStringValue()); - query.append("' "); - query.append(" and reporttype = 'METAR';"); - try { - List results = DirectDbQuery.executeQuery(query.toString(), "metadata", QueryLanguage.SQL); - if(results != null && results.size() > 0){ - - Object[] theObjectArray = results.get(0); - Integer selv = ( Integer ) theObjectArray[0]; - setValue(new Amount ( selv, SI.METER ) ) ; - - } - } catch (VizException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return this; - } - - - } - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StationID.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StationID.java deleted file mode 100644 index d6bee97434..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StationID.java +++ /dev/null @@ -1,53 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class StationID extends AbstractMetParameter implements Dimensionless { - - // StationName is a String and so the Amount value does not apply -// @Override -// public Boolean hasStringValue() { -// return true; -// } - - public StationID() { - super( UNIT ); - setValueIsString(); - } - -// // NOT Implemented. Just enough to execute and return something -// @DeriveMethod -// public AbstractMetParameter getStationIdFromName( StationName stnName ) throws InvalidValueException, NullPointerException, InvalidRangeException{ -// this.setStringValue(stnName.getStringValue() ); -// return this; -// } - - } - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StationLatitude.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StationLatitude.java deleted file mode 100644 index 87a72b8f5e..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StationLatitude.java +++ /dev/null @@ -1,66 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import java.util.List; - -import javax.measure.unit.NonSI; -import com.raytheon.uf.viz.core.catalog.DirectDbQuery; -import com.raytheon.uf.viz.core.catalog.DirectDbQuery.QueryLanguage; -import com.raytheon.uf.viz.core.exception.VizException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import gov.noaa.nws.ncep.metparameters.Amount; - - public class StationLatitude extends AbstractMetParameter - implements javax.measure.quantity.Angle { - - public StationLatitude() { - super( UNIT ); - } - -// @DeriveMethod -// AbstractMetParameter derive( StationID sid ) throws InvalidValueException, NullPointerException, InvalidRangeException{ -// // TODO : look up the lat from the station name. -// // this.setValue(val); -// -// StringBuilder query = new StringBuilder("select latitude from "); -// query.append("sfcobs "); -// query.append("where stationid = '"); -// query.append(sid.getStringValue()); -// query.append("'; "); -// try { -// List results = DirectDbQuery.executeQuery(query.toString(), "metadata", QueryLanguage.SQL); -// if(results != null && results.size() > 0){ -// for( Object[] theObjectArray : results ){ -// Double latitude = ( Double ) theObjectArray[0]; -// this.setValue(new Amount ( latitude, NonSI.DEGREE_ANGLE ) ) ; -// } -// } -// } catch (VizException e) { -// // TODO Auto-generated catch block -// e.printStackTrace(); -// } -// return this; -// } - } - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StationLongitude.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StationLongitude.java deleted file mode 100644 index 0e83e89996..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StationLongitude.java +++ /dev/null @@ -1,69 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import java.util.List; - -import javax.measure.unit.NonSI; -import javax.measure.unit.Unit; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; -import com.raytheon.uf.viz.core.catalog.DirectDbQuery; -import com.raytheon.uf.viz.core.catalog.DirectDbQuery.QueryLanguage; -import com.raytheon.uf.viz.core.exception.VizException; - -import gov.noaa.nws.ncep.metparameters.Amount; - - - public class StationLongitude extends AbstractMetParameter - implements javax.measure.quantity.Angle { - - public StationLongitude() { - super( UNIT ); - } - -// @DeriveMethod -// AbstractMetParameter derive( StationID sid ) throws InvalidValueException, NullPointerException, InvalidRangeException{ -// // TODO : look up the long from the station name. -// // this.setValue(val); -// StringBuilder query = new StringBuilder("select longitude from "); -// query.append("sfcobs "); -// query.append("where stationid = '"); -// query.append(sid.getStringValue()); -// query.append("'; "); -// try { -// List results = DirectDbQuery.executeQuery(query.toString(), "metadata", QueryLanguage.SQL); -// if(results != null && results.size() > 0){ -// for( Object[] theObjectArray : results ){ -// Double longitude = ( Double ) theObjectArray[0]; -// this.setValue(new Amount ( longitude, NonSI.DEGREE_ANGLE ) ) ; -// } -// } -// } catch (VizException e) { -// // TODO Auto-generated catch block -// e.printStackTrace(); -// } -// return this; -// } - } - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StationName.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StationName.java deleted file mode 100644 index b6309ba427..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StationName.java +++ /dev/null @@ -1,48 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class StationName extends AbstractMetParameter implements Dimensionless { - - // StationName is a String and so the Amount value does not apply - public StationName() { - super( UNIT ); - setValueIsString(); - } - - // NOT Implemented. Just enough to execute and return something - @DeriveMethod - public AbstractMetParameter getStationNameFromID( StationID stnId ) throws InvalidValueException, NullPointerException, InvalidRangeException{ - this.setStringValue(stnId.getStringValue() ); - return this; - } - - } - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StormMotionSpeed.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StormMotionSpeed.java deleted file mode 100644 index 1787e88697..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/StormMotionSpeed.java +++ /dev/null @@ -1,28 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import javax.measure.unit.Unit; - - public class StormMotionSpeed extends AbstractMetParameter implements - javax.measure.quantity.Velocity { - - public StormMotionSpeed(){ - super( UNIT ); - } - - @DeriveMethod - AbstractMetParameter derive ( EstStormDirectionUComp u, EstStormDirectionVComp v ) throws InvalidValueException, NullPointerException{ - if ( u.hasValidValue() && v.hasValidValue() ){ - Amount val = PRLibrary.prSped( u, v ); - setValue ( val ); - }else - setValueToMissing(); - return this; - } -} - - - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SunshineDuration.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SunshineDuration.java deleted file mode 100644 index be9c24e7ef..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SunshineDuration.java +++ /dev/null @@ -1,16 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Duration; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class SunshineDuration extends AbstractMetParameter implements Duration { - - public SunshineDuration(){ - super( UNIT ); - } - - - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SurfaceEquivPotentialTemp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SurfaceEquivPotentialTemp.java deleted file mode 100644 index 7dc935cadb..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SurfaceEquivPotentialTemp.java +++ /dev/null @@ -1,30 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import javax.measure.unit.SI; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -public class SurfaceEquivPotentialTemp extends AbstractMetParameter implements - javax.measure.quantity.Temperature { - public SurfaceEquivPotentialTemp() { - super( UNIT ); - } - - @DeriveMethod - public SurfaceEquivPotentialTemp derive( SurfacePressure p, AirTemperature t, DewPointTemp dpt ) throws InvalidValueException, NullPointerException, InvalidRangeException { - - - if ( p.hasValidValue() && t.hasValidValue() && dpt.hasValidValue() ){ - Amount theEquivPotTempAmount = PRLibrary.prThte( p, t, dpt ); - this.setValue(theEquivPotTempAmount); - } - else - setValueToMissing(); - return this; - } - -} - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SurfaceMixingRatio.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SurfaceMixingRatio.java deleted file mode 100644 index 407f0b45d2..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SurfaceMixingRatio.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - - -import javax.measure.quantity.Dimensionless; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - - /** - * @author archana - * - */ -public final class SurfaceMixingRatio extends AbstractMetParameter implements Dimensionless { - - public SurfaceMixingRatio(){ - super( UNIT ); - } - - @DeriveMethod - public SurfaceMixingRatio derive ( DewPointTemp d , SurfacePressure p ) throws InvalidValueException, NullPointerException, InvalidRangeException{ - if ( d.hasValidValue() && p.hasValidValue() ){ - Amount mixingRatio = PRLibrary.prMixr( d, p ); - setValue(mixingRatio); - }else - setValueToMissing(); - return this; - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SurfacePotentialTemp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SurfacePotentialTemp.java deleted file mode 100644 index 58df84321c..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SurfacePotentialTemp.java +++ /dev/null @@ -1,36 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.unit.SI; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -/** - * @author archana - * - */ -public final class SurfacePotentialTemp extends AbstractMetParameter implements - javax.measure.quantity.Temperature { - public SurfacePotentialTemp() { - super( UNIT ); - } - - @DeriveMethod - public SurfacePotentialTemp derive( AirTemperature t, SurfacePressure p ) throws InvalidRangeException, InvalidValueException, NullPointerException { - - - if ( t.hasValidValue() && p.hasValidValue() ){ - Amount thePotentialTempAmount = PRLibrary.prThta(t, p); - this.setValue(thePotentialTempAmount); - }else - setValueToMissing(); - return this; - } - -} \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SurfacePressure.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SurfacePressure.java deleted file mode 100644 index b659c5af9a..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SurfacePressure.java +++ /dev/null @@ -1,41 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -// This can also be used to represent a StationPressure. -// -public class SurfacePressure extends AbstractMetParameter implements javax.measure.quantity.Pressure { - public SurfacePressure(){ - super( UNIT ); - } - - // TODO : check if this is correct. -// @DeriveMethod -// AbstractMetParameter derive( AirTemperature tmpc, PotentialTemp thta) -// throws InvalidValueException, NullPointerException, InvalidRangeException{ -// if ( tmpc.hasValidValue() && thta.hasValidValue() ){ -// Amount val = PRLibrary.prPres(tmpc, thta ); -// setValue ( val ); -// }else -// setValueToMissing(); -// return this; -// } - - @DeriveMethod - AbstractMetParameter derive( SeaLevelPressure altm, StationElevation selv ) - throws InvalidValueException, NullPointerException, InvalidRangeException { - - if( altm.hasValidValue() && selv.hasValidValue() ) { - - Amount val = PRLibrary.prPalt ( altm, selv ); - this.setValue( val ); - } - else { - this.setValueToMissing(); - } - return this; - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SurfaceSatEquivPotentialTemp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SurfaceSatEquivPotentialTemp.java deleted file mode 100644 index 3a80f79e83..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SurfaceSatEquivPotentialTemp.java +++ /dev/null @@ -1,29 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.unit.Unit; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -public class SurfaceSatEquivPotentialTemp extends AbstractMetParameter implements - javax.measure.quantity.Temperature { - public SurfaceSatEquivPotentialTemp() { - super( UNIT ); - } - - @DeriveMethod - public SurfaceSatEquivPotentialTemp derive( SurfacePressure p, AirTemperature t, AirTemperature t2 ) throws InvalidValueException, NullPointerException, InvalidRangeException { - if ( p.hasValidValue() && t.hasValidValue() && t2.hasValidValue() ){ - Amount theEquivPotTempAmount = PRLibrary.prThte( p, t, t2 ); - setValue(theEquivPotTempAmount); - }else - setValueToMissing(); - - return this; - } - -} - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SurfaceSatMixingRatio.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SurfaceSatMixingRatio.java deleted file mode 100644 index f2dccc206d..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/SurfaceSatMixingRatio.java +++ /dev/null @@ -1,31 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -/** - * @author archana - * - */ - public final class SurfaceSatMixingRatio extends AbstractMetParameter implements javax.measure.quantity.Dimensionless { - - public SurfaceSatMixingRatio(){ - super( UNIT ); - } - - @DeriveMethod - public SurfaceSatMixingRatio derive ( AirTemperature t , SurfacePressure p ) throws InvalidValueException, NullPointerException, InvalidRangeException{ - if ( t.hasValidValue() && p.hasValidValue() ){ - Amount mixingRatio = PRLibrary.prMixr( t, p ); - setValue(mixingRatio); - } - else - setValueToMissing(); - - return this; - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TempLapseRate.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TempLapseRate.java deleted file mode 100644 index 66dd9aed1e..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TempLapseRate.java +++ /dev/null @@ -1,14 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.unit.Unit; - - - public class TempLapseRate extends AbstractMetParameter implements - gov.noaa.nws.ncep.metParameters.quantity.RateOfChangeInTemperatureWithHeight { - - public TempLapseRate(){ - super( UNIT ); - } - - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryCeilingAsMeanSeaLevel.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryCeilingAsMeanSeaLevel.java deleted file mode 100644 index 2d0eea3d2e..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryCeilingAsMeanSeaLevel.java +++ /dev/null @@ -1,40 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -public class TemporaryCeilingAsMeanSeaLevel extends AbstractMetParameter implements Length { - - public TemporaryCeilingAsMeanSeaLevel() { - super( UNIT ); - } - - @DeriveMethod - AbstractMetParameter derive ( TemporaryOrProbabilityCeiling c, StationElevation se) throws InvalidValueException, NullPointerException{ - if ( c.hasValidValue() && se.hasValidValue() ){ - Amount val = PRLibrary.prCmsl( c, se ); - setValue ( val ); - }else - setValueToMissing(); - return this; - } -} - - - - - - - - - - - - - - - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityCeiling.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityCeiling.java deleted file mode 100644 index bd941cfbcb..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityCeiling.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class TemporaryOrProbabilityCeiling extends AbstractMetParameter implements Length { - - public TemporaryOrProbabilityCeiling() { - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityFlightRuleIdentifier.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityFlightRuleIdentifier.java deleted file mode 100644 index b69a6806ae..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityFlightRuleIdentifier.java +++ /dev/null @@ -1,17 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class TemporaryOrProbabilityFlightRuleIdentifier extends AbstractMetParameter - implements Dimensionless { - - public TemporaryOrProbabilityFlightRuleIdentifier() { - super( UNIT ); - } - - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityMountainObscThreshMetIndicator.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityMountainObscThreshMetIndicator.java deleted file mode 100644 index b128fdcedd..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityMountainObscThreshMetIndicator.java +++ /dev/null @@ -1,26 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import javax.measure.quantity.Dimensionless; - - -public class TemporaryOrProbabilityMountainObscThreshMetIndicator extends - AbstractMetParameter implements Dimensionless { - - public TemporaryOrProbabilityMountainObscThreshMetIndicator() { - super( UNIT ); - } - - @DeriveMethod - AbstractMetParameter derive ( TemporaryCeilingAsMeanSeaLevel tcms, MountainObscThresh motv) throws InvalidValueException, NullPointerException{ - if( tcms.hasValidValue() && motv.hasValidValue() ){ - Amount val = PRLibrary.prMobs(tcms, motv ); - setValue ( val ); - }else - setValueToMissing(); - return this; - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityVisibility.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityVisibility.java deleted file mode 100644 index 3f2b43f649..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityVisibility.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class TemporaryOrProbabilityVisibility extends AbstractMetParameter - implements Length { - - public TemporaryOrProbabilityVisibility(){ - super( UNIT ); - } - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityWindDirection.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityWindDirection.java deleted file mode 100644 index 8332c0bcbc..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityWindDirection.java +++ /dev/null @@ -1,24 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import javax.measure.unit.Unit; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - - public class TemporaryOrProbabilityWindDirection extends AbstractMetParameter implements javax.measure.quantity.Angle { - - public TemporaryOrProbabilityWindDirection() { - super( UNIT ); - } - - @DeriveMethod - AbstractMetParameter derive ( WindDirectionUComp u, WindDirectionVComp v) throws InvalidValueException, NullPointerException{ - if ( u.hasValidValue() && v.hasValidValue() ){ - Amount windDrct = PRLibrary.prDrct( u , v ); - setValue(windDrct); - }else - setValueToMissing(); - return this; - } - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityWindGust.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityWindGust.java deleted file mode 100644 index cdff5d1afe..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityWindGust.java +++ /dev/null @@ -1,16 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class TemporaryOrProbabilityWindGust extends AbstractMetParameter implements - javax.measure.quantity.Velocity { - - public TemporaryOrProbabilityWindGust() { - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityWindSpeed.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityWindSpeed.java deleted file mode 100644 index 816c69b318..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TemporaryOrProbabilityWindSpeed.java +++ /dev/null @@ -1,20 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class TemporaryOrProbabilityWindSpeed extends AbstractMetParameter implements - javax.measure.quantity.Velocity { - - public TemporaryOrProbabilityWindSpeed(){ - super( UNIT ); - } - - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TimeOf5SecPeakWindInHrs.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TimeOf5SecPeakWindInHrs.java deleted file mode 100644 index 5531ed180c..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TimeOf5SecPeakWindInHrs.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Duration; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class TimeOf5SecPeakWindInHrs extends AbstractMetParameter implements Duration { - - public TimeOf5SecPeakWindInHrs(){ - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TimeOf5SecPeakWindInMins.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TimeOf5SecPeakWindInMins.java deleted file mode 100644 index 4459c0cb40..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TimeOf5SecPeakWindInMins.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Duration; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class TimeOf5SecPeakWindInMins extends AbstractMetParameter implements Duration { - - public TimeOf5SecPeakWindInMins(){ - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TopOfIcing.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TopOfIcing.java deleted file mode 100644 index 7bb765f6f5..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TopOfIcing.java +++ /dev/null @@ -1,16 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class TopOfIcing extends AbstractMetParameter - implements Length { - - public TopOfIcing() { - super( UNIT ); - } - - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TopOfTurbulence.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TopOfTurbulence.java deleted file mode 100644 index a2e830ee40..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TopOfTurbulence.java +++ /dev/null @@ -1,16 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class TopOfTurbulence extends AbstractMetParameter - implements Length { - - public TopOfTurbulence() { - super( UNIT ); - } - - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TopOfWeather.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TopOfWeather.java deleted file mode 100644 index 74d7061c46..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TopOfWeather.java +++ /dev/null @@ -1,16 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class TopOfWeather extends AbstractMetParameter - implements Length { - - public TopOfWeather() { - super( UNIT ); - } - - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TurbulenceFrequencySymbol.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TurbulenceFrequencySymbol.java deleted file mode 100644 index f16a3c3a7b..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TurbulenceFrequencySymbol.java +++ /dev/null @@ -1,21 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; - -/** - * @author archana - * - */ -public class TurbulenceFrequencySymbol extends AbstractMetParameter implements - Dimensionless { - - public TurbulenceFrequencySymbol() { - super(UNIT); - setValueIsString(); - } - -} \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TurbulenceIntensitySymbol.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TurbulenceIntensitySymbol.java deleted file mode 100644 index 59b29771ac..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/TurbulenceIntensitySymbol.java +++ /dev/null @@ -1,21 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; - -/** - * @author archana - * - */ -public class TurbulenceIntensitySymbol extends AbstractMetParameter implements - Dimensionless { - - public TurbulenceIntensitySymbol() { - super(UNIT); - setValueIsString(); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/UncondProbOfTstorms12hr.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/UncondProbOfTstorms12hr.java deleted file mode 100644 index c3eef3c0e7..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/UncondProbOfTstorms12hr.java +++ /dev/null @@ -1,23 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -/** - * @author archana - * - */ - public class UncondProbOfTstorms12hr extends AbstractMetParameter implements - Dimensionless { - - public UncondProbOfTstorms12hr() { - super( UNIT ); - } - - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/UncondProbOfTstorms24hr.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/UncondProbOfTstorms24hr.java deleted file mode 100644 index aa0ac49678..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/UncondProbOfTstorms24hr.java +++ /dev/null @@ -1,23 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -/** - * @author archana - * - */ - public class UncondProbOfTstorms24hr extends AbstractMetParameter implements - Dimensionless { - - public UncondProbOfTstorms24hr() { - super( UNIT ); - } - - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/UncondProbOfTstorms2hr.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/UncondProbOfTstorms2hr.java deleted file mode 100644 index 746f5f829a..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/UncondProbOfTstorms2hr.java +++ /dev/null @@ -1,23 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -/** - * @author archana - * - */ - public class UncondProbOfTstorms2hr extends AbstractMetParameter implements - Dimensionless { - - public UncondProbOfTstorms2hr() { - super( UNIT ); - } - - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/UncondProbOfTstorms6hr.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/UncondProbOfTstorms6hr.java deleted file mode 100644 index f5abdf2c3c..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/UncondProbOfTstorms6hr.java +++ /dev/null @@ -1,23 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -/** - * @author archana - * - */ - public class UncondProbOfTstorms6hr extends AbstractMetParameter implements - Dimensionless { - - public UncondProbOfTstorms6hr() { - super( UNIT ); - } - - } \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/VaporPressure.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/VaporPressure.java deleted file mode 100644 index 683429841c..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/VaporPressure.java +++ /dev/null @@ -1,25 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -public class VaporPressure extends AbstractMetParameter implements -javax.measure.quantity.Pressure { - public VaporPressure() { - super( UNIT ); - } - - @DeriveMethod - public VaporPressure derive( DewPointTemp d ) throws InvalidValueException, NullPointerException, InvalidRangeException { - - if ( d.hasValidValue() ){ - Amount vaporPresAmount = PRLibrary.prVapr( d ); - setValue(vaporPresAmount); - }else - setValueToMissing(); - - return this; - } -} \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/VerticalVelocity.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/VerticalVelocity.java deleted file mode 100644 index d132c939ee..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/VerticalVelocity.java +++ /dev/null @@ -1,17 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Velocity; - -/** - * - * @author archana - * - */ -public class VerticalVelocity extends AbstractMetParameter implements Velocity { - - protected VerticalVelocity() { - super(UNIT); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/VirtualPotentialTemp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/VirtualPotentialTemp.java deleted file mode 100644 index f937cc1a25..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/VirtualPotentialTemp.java +++ /dev/null @@ -1,47 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import javax.measure.quantity.Temperature; -import javax.measure.unit.Unit; - -/** - * @author archana - * - */ -public class VirtualPotentialTemp extends AbstractMetParameter implements - Temperature { - - public VirtualPotentialTemp() { - super( UNIT ); - } - - -// @DeriveMethod -// AbstractMetParameter derive(VirtualTemp v, SurfacePressure s ) throws InvalidRangeException, InvalidValueException, NullPointerException{ -// if ( v.hasValidValue() && s.hasValidValue() ){ -// Amount val = PRLibrary.prThta( v, s ) ; -// setValue ( val ); -// }else -// setValueToMissing(); -// return this; -// } - - @DeriveMethod - AbstractMetParameter derive(VirtualTemp v, PressureLevel p ) throws InvalidRangeException, InvalidValueException, NullPointerException{ - Amount val = PRLibrary.prThta( v , p ) ; - setValue ( val ); - return this; - } - -} - - - - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/VirtualTemp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/VirtualTemp.java deleted file mode 100644 index 214313c028..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/VirtualTemp.java +++ /dev/null @@ -1,42 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import javax.measure.unit.Unit; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -public class VirtualTemp extends AbstractMetParameter implements -javax.measure.quantity.Temperature{ - - public VirtualTemp(){ - super( UNIT ); - } - - //TODO test this to see if the name of the derive method can be anything other than 'derive' - @DeriveMethod - public VirtualTemp computeVirtualTemp(AirTemperature t, DewPointTemp d, PressureLevel p) throws InvalidValueException, NullPointerException, InvalidRangeException{ - if (t.hasValidValue() && d.hasValidValue() && p.hasValidValue() ){ - Amount virtualTempAmount = PRLibrary.prTvrk(t, d, p); - setValue(virtualTempAmount); - }else - setValueToMissing(); - - return this; - } - -// @DeriveMethod -// public VirtualTemp computeVirtualTemp(AirTemperature t, DewPointTemp d, SurfacePressure p) throws InvalidValueException, NullPointerException, InvalidRangeException{ -// if (t.hasValidValue() && d.hasValidValue() && p.hasValidValue() ){ -// Amount virtualTempAmount = PRLibrary.prTvrk(t, d, p); -// setValue(virtualTempAmount); -// }else -// setValueToMissing(); -// -// return this; -// } - - - } - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Visibility.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Visibility.java deleted file mode 100644 index 333a0542af..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/Visibility.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class Visibility extends AbstractMetParameter implements - javax.measure.quantity.Length { - - public Visibility() { - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WaterEquivOfNewSnow.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WaterEquivOfNewSnow.java deleted file mode 100644 index d4f5753987..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WaterEquivOfNewSnow.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class WaterEquivOfNewSnow extends AbstractMetParameter implements Length { - - public WaterEquivOfNewSnow(){ - super( UNIT ); - } - - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WaveHeight.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WaveHeight.java deleted file mode 100644 index 52f45ebd3d..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WaveHeight.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class WaveHeight extends AbstractMetParameter implements Length { - - public WaveHeight() { - super( UNIT ); - } -} - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WavePeriod.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WavePeriod.java deleted file mode 100644 index f9a63d0e44..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WavePeriod.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Duration; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - - public class WavePeriod extends AbstractMetParameter implements Duration { - - public WavePeriod() { - super( UNIT ); - } - - } diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WaveSteepness.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WaveSteepness.java deleted file mode 100644 index b8608d3857..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WaveSteepness.java +++ /dev/null @@ -1,18 +0,0 @@ -/** - * - */ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Dimensionless; - -/** - * @author archana - * - */ -public class WaveSteepness extends AbstractMetParameter implements - Dimensionless { - public WaveSteepness( ){ - super ( UNIT ); - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WetBulbPotentialTemp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WetBulbPotentialTemp.java deleted file mode 100644 index 4f5351941b..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WetBulbPotentialTemp.java +++ /dev/null @@ -1,46 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import javax.measure.unit.Unit; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -public class WetBulbPotentialTemp extends AbstractMetParameter implements - javax.measure.quantity.Temperature { - - public WetBulbPotentialTemp() { - super( UNIT ); - } - - @DeriveMethod - AbstractMetParameter derive (PressureLevel p, AirTemperature t, DewPointTemp d ) throws InvalidValueException, NullPointerException, InvalidRangeException{ - if ( p.hasValidValue() && t.hasValidValue() && d.hasValidValue() ){ - Amount val = PRLibrary.prThwc(p, t, d ); - setValue(val); - } - else - setValueToMissing(); - - return this; - } - -// AbstractMetParameter derive (SurfacePressure p, AirTemperature t, DewPointTemp d ) throws InvalidValueException, NullPointerException, InvalidRangeException{ -// Amount val = PRLibrary.prThwc(p, t, d ); -// this.setValue(val); -// return this; -// } - -} - - - - - - - - - - - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WetBulbTemp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WetBulbTemp.java deleted file mode 100644 index 6f092be069..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WetBulbTemp.java +++ /dev/null @@ -1,58 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import javax.measure.unit.Unit; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - - public class WetBulbTemp extends AbstractMetParameter implements - javax.measure.quantity.Temperature { - - public WetBulbTemp() { - super( UNIT ); - } - - @DeriveMethod - AbstractMetParameter derive ( AirTemperature t, MixingRatio m, PressureLevel p ) throws InvalidValueException, NullPointerException, InvalidRangeException{ - - if ( t.hasValidValue() && m.hasValidValue() && p.hasValidValue() ){ - Amount val = PRLibrary.prTmwb(t, m, p ); - setValue(val); - }else - setValueToMissing(); - - return this; - } - - @DeriveMethod - AbstractMetParameter derive ( AirTemperature t, SurfaceMixingRatio m, SurfacePressure p ) throws InvalidValueException, NullPointerException, InvalidRangeException{ - - if ( t.hasValidValue() && m.hasValidValue() && p.hasValidValue() ){ - Amount val = PRLibrary.prTmwb(t, m, p ); - setValue(val); - }else - setValueToMissing(); - - return this; - } - -} - - - - - - - - - - - - - - - - - diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindChillEquivalentTemp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindChillEquivalentTemp.java deleted file mode 100644 index b61928c548..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindChillEquivalentTemp.java +++ /dev/null @@ -1,28 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -public class WindChillEquivalentTemp extends AbstractMetParameter implements - javax.measure.quantity.Temperature { - - public WindChillEquivalentTemp( ) { - super( UNIT ); - } - - @DeriveMethod - public WindChillEquivalentTemp derive( AirTemperature t, WindSpeed ws) throws InvalidRangeException, InvalidValueException, NullPointerException { - if ( t.hasValidValue() && ws.hasValidValue() ){ - Amount tempAmount = PRLibrary.prWcht(t, ws); - setValue(tempAmount); - } - else - setValueToMissing(); - - return this; - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindChillTemperature.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindChillTemperature.java deleted file mode 100644 index 2137c2b1b6..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindChillTemperature.java +++ /dev/null @@ -1,27 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidRangeException; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -public class WindChillTemperature extends AbstractMetParameter implements - javax.measure.quantity.Temperature { - - public WindChillTemperature( ) { - super( UNIT ); - } - - @DeriveMethod - public WindChillTemperature derive( AirTemperature t, WindSpeed ws) throws InvalidRangeException, InvalidValueException, NullPointerException { - if ( t.hasValidValue() && ws.hasValidValue() ){ - Amount tempAmount = PRLibrary.prWceq( t, ws); - setValue(tempAmount); - }else - setValueToMissing(); - - return this; - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindCompDirection.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindCompDirection.java deleted file mode 100644 index efa7d2a76d..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindCompDirection.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import javax.measure.unit.Unit; - -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class WindCompDirection extends AbstractMetParameter implements javax.measure.quantity.Angle { - - public WindCompDirection() { - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindDirection.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindDirection.java deleted file mode 100644 index dfebb38c3e..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindDirection.java +++ /dev/null @@ -1,25 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -public class WindDirection extends AbstractMetParameter implements javax.measure.quantity.Angle { - - public WindDirection() { - super( UNIT ); - } - - @DeriveMethod - AbstractMetParameter derive ( WindDirectionUComp u, WindDirectionVComp v) throws InvalidValueException, NullPointerException{ - if ( u.hasValidValue() && v.hasValidValue() ){ - Amount windDrct = PRLibrary.prDrct( u , v ); - setValue(windDrct); - }else - setValueToMissing(); - - return this; - } - - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindDirectionUComp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindDirectionUComp.java deleted file mode 100644 index 69992e8a3a..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindDirectionUComp.java +++ /dev/null @@ -1,24 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import javax.measure.unit.Unit; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -public class WindDirectionUComp extends AbstractMetParameter implements javax.measure.quantity.Velocity{ - - public WindDirectionUComp() { - super( UNIT ); - } - - @DeriveMethod - AbstractMetParameter derive( WindSpeed w, WindDirection d ) throws InvalidValueException, NullPointerException{ - if ( w.hasValidValue() && d.hasValidValue()){ - Amount uWnd = PRLibrary.prUwnd( w, d ); - setValue( uWnd ); - }else - setValueToMissing(); - return this; - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindDirectionVComp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindDirectionVComp.java deleted file mode 100644 index bd4a1b966d..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindDirectionVComp.java +++ /dev/null @@ -1,23 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - - public class WindDirectionVComp extends AbstractMetParameter implements javax.measure.quantity.Velocity{ - - public WindDirectionVComp(){ - super( UNIT ); - } - - @DeriveMethod - AbstractMetParameter derive( WindSpeed w, WindDirection d ) throws InvalidValueException, NullPointerException{ - if ( w.hasValidValue() && d.hasValidValue()){ - Amount vWnd = PRLibrary.prVwnd( w, d ); - setValue( vWnd ); - }else - setValueToMissing(); - return this; - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindGust.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindGust.java deleted file mode 100644 index 06eac3cc64..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindGust.java +++ /dev/null @@ -1,20 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class WindGust extends AbstractMetParameter implements - javax.measure.quantity.Velocity { - - public WindGust() { - super( UNIT ); - } - -// @DeriveMethod -// public AbstractMetParameter getWindSpeedFromGustBarb( GustBarb gb ) { -// return gb.getWindGust(); -// } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindSpeed.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindSpeed.java deleted file mode 100644 index 78ec79d3da..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindSpeed.java +++ /dev/null @@ -1,32 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - -import javax.measure.unit.Unit; - - public class WindSpeed extends AbstractMetParameter implements - javax.measure.quantity.Velocity { - - public WindSpeed(){ - super( UNIT ); - } - - @DeriveMethod - AbstractMetParameter derive ( WindDirectionUComp u, WindDirectionVComp v ) throws InvalidValueException, NullPointerException{ - if ( u.hasValidValue() && v.hasValidValue() ){ - Amount val = PRLibrary.prSped( u, v ); - setValue ( val ); - }else - setValueToMissing(); - - return this; - } -// @DeriveMethod -// public AbstractMetParameter getWindSpeedFromWindBarb( WindBarb wb ) { -// return wb.getWindSpeed(); -// } -} \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindSpeedComp.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindSpeedComp.java deleted file mode 100644 index 9ab33bd617..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindSpeedComp.java +++ /dev/null @@ -1,24 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import javax.measure.unit.Unit; - -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary; -import gov.noaa.nws.ncep.metParameters.parameterConversion.PRLibrary.InvalidValueException; -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.DeriveMethod; - - public class WindSpeedComp extends AbstractMetParameter implements javax.measure.quantity.Angle { - - public WindSpeedComp() { - super( UNIT ); - } - @DeriveMethod - AbstractMetParameter derive ( WindDirection wd, WindSpeed ws, WindCompDirection d) throws InvalidValueException, NullPointerException{ - if ( wd.hasValidValue() && ws.hasValidValue() && d.hasValidValue() ){ - Amount windDrct = PRLibrary.prWcmp(wd , ws , d ); - setValue(windDrct); - }else - setValueToMissing(); - - return this; - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindWaveHeight.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindWaveHeight.java deleted file mode 100644 index 4b1df02680..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindWaveHeight.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Length; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class WindWaveHeight extends AbstractMetParameter implements Length { - - public WindWaveHeight() { - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindWavePeriod.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindWavePeriod.java deleted file mode 100644 index b44c969c44..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/WindWavePeriod.java +++ /dev/null @@ -1,15 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - - -import javax.measure.quantity.Duration; -import javax.measure.unit.Unit; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class WindWavePeriod extends AbstractMetParameter implements Duration { - - public WindWavePeriod() { - super( UNIT ); - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/dbquery/util/ClimateDataDbAccess.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/dbquery/util/ClimateDataDbAccess.java deleted file mode 100644 index 3c11a115d9..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/dbquery/util/ClimateDataDbAccess.java +++ /dev/null @@ -1,8 +0,0 @@ -package gov.noaa.nws.ncep.metparameters.dbquery.util; - -public interface ClimateDataDbAccess { - double getTDYF(String stationId, String monthString, String monthDayString); - double getTNTF(String stationId, String monthString, String monthDayString); - double getPPNT(String stationId, String monthString, String monthDayString); - double getPP24(String stationId, String monthString, String monthDayString); -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/dbquery/util/ClimateDataDbAccessImpl.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/dbquery/util/ClimateDataDbAccessImpl.java deleted file mode 100644 index 66e47051a7..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/dbquery/util/ClimateDataDbAccessImpl.java +++ /dev/null @@ -1,136 +0,0 @@ -package gov.noaa.nws.ncep.metparameters.dbquery.util; - -import gov.noaa.nws.ncep.common.log.logger.NcepLogger; -import gov.noaa.nws.ncep.common.log.logger.NcepLoggerManager; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.List; - -import com.raytheon.uf.viz.core.catalog.DirectDbQuery; -import com.raytheon.uf.viz.core.catalog.DirectDbQuery.QueryLanguage; -import com.raytheon.uf.viz.core.exception.VizException; - -public class ClimateDataDbAccessImpl implements ClimateDataDbAccess { - - private NcepLogger logger = NcepLoggerManager.getNcepLogger(this.getClass()); - - @Override - public double getTDYF(String stationId, String monthString, String monthDayString) { - String queryString = createClimateDataQueryForTDYF(stationId, monthString, monthDayString); - double tdyfValue = retrieveValue(queryString); -// logger.info("=== Now input stationid="+stationId); -// logger.info("=== Now retrieved tdyf="+tdyfValue); - return tdyfValue; - } - - @Override - public double getTNTF(String stationId, String monthString, String monthDayString) { - String queryString = createClimateDataQueryForTNTF(stationId, monthString, monthDayString); - double tntfValue = retrieveValue(queryString); -// logger.info("=== Now input stationid="+stationId); -// logger.info("=== Now retrieved tntf="+tntfValue); - return tntfValue; - } - - @Override - public double getPPNT(String stationId, String monthString, String monthDayString) { - String queryString = createClimateDataQueryForPPNT(stationId, monthString, monthDayString); - double ppntValue = retrieveValue(queryString); -// logger.info("=== Now input stationid="+stationId); -// logger.info("=== Now retrieved ppnt="+ppntValue); - return ppntValue; - } - - @Override - public double getPP24(String stationId, String monthString, String monthDayString) { - String queryString = createClimateDataQueryForPP24(stationId, monthString, monthDayString); - double ppdyValue = retrieveValue(queryString); -// logger.info("=== Now input stationid="+stationId); -// logger.info("=== Now retrieved ppdy="+ppdyValue); - return ppdyValue; - } - - - private double retrieveValue(String queryString) { - List objectArrayList = new ArrayList(); - try { - objectArrayList = DirectDbQuery.executeQuery(queryString, "ncep", QueryLanguage.SQL); - } catch (VizException e1) { - logger.error("VizException is thrown when trying to do DirectDbQuery.executeQuery to query stns.climo_data table, error="+e1.getMessage()); - e1.printStackTrace(); - } - double retrievedValue = 0.0; - if(!objectArrayList.isEmpty()) { - Object[] objectArray = objectArrayList.get(0); - - String retrievedStationId = (String)objectArray[0]; -// logger.info("=== Now retrieved stationid="+retrievedStationId); - BigDecimal retrievedValueInBigDecimal = (BigDecimal)objectArray[1]; - retrievedValue = retrievedValueInBigDecimal.doubleValue(); - } - - return retrievedValue; - } - - private String createClimateDataQueryForTDYF(String stationId, String monthString, String monthDayString) { - StringBuilder queryBuilder = new StringBuilder( - "select station_id, tdyf from stns.climo_data where station_id ='"); - queryBuilder.append(stationId) - .append("' and ") - .append("month = '") - .append(monthString) - .append("' and day = '") - .append(monthDayString) - .append("'"); - String queryString = queryBuilder.toString(); -// System.out.println("climate data query string ="+queryString); - return queryString; - } - - private String createClimateDataQueryForTNTF(String stationId, String monthString, String monthDayString) { - StringBuilder queryBuilder = new StringBuilder( - "select station_id, tntf from stns.climo_data where station_id ='"); - queryBuilder.append(stationId) - .append("' and ") - .append("month = '") - .append(monthString) - .append("' and day = '") - .append(monthDayString) - .append("'"); - String queryString = queryBuilder.toString(); -// System.out.println("climate data query string ="+queryString); - return queryString; - } - - private String createClimateDataQueryForPPNT(String stationId, String monthString, String monthDayString) { - StringBuilder queryBuilder = new StringBuilder( - "select station_id, ppnt from stns.climo_data where station_id ='"); - queryBuilder.append(stationId) - .append("' and ") - .append("month = '") - .append(monthString) - .append("' and day = '") - .append(monthDayString) - .append("'"); - String queryString = queryBuilder.toString(); -// System.out.println("climate data query string ="+queryString); - return queryString; - } - - private String createClimateDataQueryForPP24(String stationId, String monthString, String monthDayString) { - StringBuilder queryBuilder = new StringBuilder( - "select station_id, pp24 from stns.climo_data where station_id ='"); - queryBuilder.append(stationId) - .append("' and ") - .append("month = '") - .append(monthString) - .append("' and day = '") - .append(monthDayString) - .append("'"); - String queryString = queryBuilder.toString(); -// System.out.println("climate data query string ="+queryString); - return queryString; - } - -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/dbquery/util/ClimateDataDbAccessManager.java b/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/dbquery/util/ClimateDataDbAccessManager.java deleted file mode 100644 index 9cc1365eee..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/src/gov/noaa/nws/ncep/metparameters/dbquery/util/ClimateDataDbAccessManager.java +++ /dev/null @@ -1,23 +0,0 @@ -package gov.noaa.nws.ncep.metparameters.dbquery.util; - -public class ClimateDataDbAccessManager { - private static ClimateDataDbAccessManager instance; - - static { - instance = new ClimateDataDbAccessManager(); - } - - private ClimateDataDbAccess climateDataDbAccess; - - private ClimateDataDbAccessManager() { - climateDataDbAccess = new ClimateDataDbAccessImpl(); - } - - public static ClimateDataDbAccessManager getInstance() { - return instance; - } - - public ClimateDataDbAccess getClimateDataDbAccess() { - return climateDataDbAccess; - } -} diff --git a/ncep/gov.noaa.nws.ncep.metParameters/unit-test/gov/noaa/nws/ncep/metparameters/AbstractMetParameterTest.java b/ncep/gov.noaa.nws.ncep.metParameters/unit-test/gov/noaa/nws/ncep/metparameters/AbstractMetParameterTest.java deleted file mode 100644 index a70d6413be..0000000000 --- a/ncep/gov.noaa.nws.ncep.metParameters/unit-test/gov/noaa/nws/ncep/metparameters/AbstractMetParameterTest.java +++ /dev/null @@ -1,53 +0,0 @@ -package gov.noaa.nws.ncep.metparameters; - -import static org.junit.Assert.*; - -import java.util.ArrayList; -import java.util.List; - -import javax.measure.unit.NonSI; -import javax.measure.unit.SI; -import javax.measure.unit.Unit; - -import gov.noaa.nws.ncep.metparameters.MetParameterFactory.NotDerivableException; - -import org.junit.Test; - -import com.raytheon.uf.common.dataplugin.IDecoderGettable.Amount; - -public class AbstractMetParameterTest { -//TODO update and add test-cases... -// @Test -// public void testDerive() { -// MetParameterFactory instance = MetParameterFactory.getInstance(); -// AbstractMetParameter tempParam = instance.createParameter("Temperature", -// new Amount(243, SI.CELSIUS ) ); -//// AbstractMetParameter relhParam = instance.createParameter("RELH", new Amount(0,NonSI.PERCENT) ); -//// relhParam.setValue( new Amount(33, SI.CELSIUS ) ); -// AbstractMetParameter dptParam = instance.createParameter("DewPointTemp", -// new Amount(23, SI.CELSIUS ) ); -// AbstractMetParameter presParam = instance.createParameter("Pressure", -// new Amount(29, NonSI.INCH_OF_MERCURY ) ); -// AbstractMetParameter thteParam = instance.createParameter("PotentialTemperature", SI.KELVIN); -// AbstractMetParameter heatIndexParam = instance.createParameter("HeatIndex", NonSI.FAHRENHEIT); -// List inputPrms = new ArrayList(); -//// inputPrms.add( relhParam ); -// inputPrms.add( tempParam ); -// inputPrms.add( dptParam ); -// inputPrms.add( presParam ); -// if( heatIndexParam.derivable(inputPrms) ) { -// System.out.println("heat index is derivable from temp and dwpt"); -//} -// else { -// System.out.println("heat index is derivable from temp and dwpt"); -//} -// try { -// HeatIndex hIndex = (HeatIndex) heatIndexParam.derive(inputPrms); -//// System.out.println("The computed heat index is: " + hIndex.getValue().doubleValue() + " " + hIndex.getValue().getUnit() ); -//} catch (NotDerivableException e) { -// // TODO Auto-generated catch block -// e.printStackTrace(); -//} -// } -// -} diff --git a/ncep/gov.noaa.nws.ncep.staticdataprovider/src/gov/noaa/nws/ncep/staticdataprovider/BoundsProvider.java b/ncep/gov.noaa.nws.ncep.staticdataprovider/src/gov/noaa/nws/ncep/staticdataprovider/BoundsProvider.java new file mode 100644 index 0000000000..6137927e87 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.staticdataprovider/src/gov/noaa/nws/ncep/staticdataprovider/BoundsProvider.java @@ -0,0 +1,168 @@ +/* + * gov.noaa.nws.ncep.staticdataprovider + * + * 25 January 2013 + * + * This code has been developed by the NCEP/SIB for use in the AWIPS2 system. + */ + +package gov.noaa.nws.ncep.staticdataprovider; + +import gov.noaa.nws.ncep.viz.common.dbQuery.NcDirectDbQuery; + +import java.util.ArrayList; +import java.util.List; + +import com.raytheon.uf.viz.core.catalog.DirectDbQuery.QueryLanguage; +import com.vividsolutions.jts.geom.CoordinateSequence; +import com.vividsolutions.jts.geom.Geometry; +import com.vividsolutions.jts.geom.GeometryFactory; +import com.vividsolutions.jts.geom.LinearRing; +import com.vividsolutions.jts.geom.MultiPolygon; +import com.vividsolutions.jts.geom.Polygon; +import com.vividsolutions.jts.geom.impl.CoordinateArraySequence; +import com.vividsolutions.jts.io.WKBReader; + +/** + * Implementation of the bounds provider. + * + *
+ * SOFTWARE HISTORY
+ * Date       	Ticket#		Engineer	Description
+ * ------------	----------	-----------	--------------------------
+ * 01/13		#966		B. Yin		Initial creation
+ *
+ * 
+ * + * @author B. Yin + */ + +public class BoundsProvider { + + // List of bounds + private static List boundsList = null; + + /** + * Gets the a list of bounds available. + * @return + */ + public static List getBoundsList() { + if ( boundsList == null ){ + boundsList = loadBoundsList(); + } + if ( boundsList != null ){ + System.out.println(boundsList); + } + + return boundsList; + } + + /** + * Load the list of bounds available from the clo table in ncep database. + * @return + */ + private static List loadBoundsList() { + String sql = "select table_name, file_type from config.clo"; + List results; + List ret = new ArrayList(); + + try { + results = NcDirectDbQuery.executeQuery(sql, "ncep", QueryLanguage.SQL); + + for ( Object[] obj : results ){ + if ( obj[0] != null ) { + String str = (String)obj[0]; + if ( !str.isEmpty() && ((Integer)obj[1]) == 1){ + ret.add(str); + } + } + } + } + catch (Exception e ){ + System.out.println("db exception loading bounds list!"); + e.printStackTrace(); + } + + return ret; + } + + /** + * Loads a list of bounds name from a specified bounds table. + * @param table + * @return + */ + public static List loadBoundsNames( String table ){ + String sql = "select name from bounds." + table; + List results; + List ret = new ArrayList(); + + try { + results = NcDirectDbQuery.executeQuery(sql, "ncep", QueryLanguage.SQL); + + for ( Object[] obj : results ){ + if ( obj[0] != null ) { + String str = (String)obj[0]; + if ( !str.isEmpty() ){ + ret.add(str); + } + } + } + } + catch (Exception e ){ + System.out.println("db exception loading bounds names!"); + e.printStackTrace(); + } + + return ret; + } + + /** + * Loads the bounds polygon for the specified bounds name and bounds table. + * @param boundsTable + * @param boundsName + * @return + */ + public static Polygon loadBounds( String boundsTable, String boundsName ){ + String sql = "SELECT AsBinary(the_geom) FROM " + "bounds." + boundsTable + " WHERE " + + "name = '" + boundsName + "'"; + + List results; + Polygon ret = null; + + try { + results = NcDirectDbQuery.executeQuery(sql, "ncep", QueryLanguage.SQL); + + WKBReader wkbReader = new WKBReader(); + if (results != null && !results.isEmpty()) { + Object[] bound = results.get(0); // take the very first one + GeometryFactory geometryFactory = new GeometryFactory(); + + Geometry g = wkbReader.read((byte[]) bound[0]); + if(g instanceof MultiPolygon){ + MultiPolygon mg = (MultiPolygon) g; + int max = 0; + int index = 0; + for (int i = 0; i < mg.getNumGeometries(); i++) { + if (max < mg.getGeometryN(i).getNumPoints()){ + max = mg.getGeometryN(i).getNumPoints(); + index = i; + } + } + ret = (Polygon) mg.getGeometryN(index); + return ret; + } + + CoordinateSequence sequence = new CoordinateArraySequence(g.getCoordinates()); + LinearRing ring = new LinearRing(sequence, geometryFactory); + ret = new Polygon(ring, null, geometryFactory); + } + }catch (Exception e) { + System.out.println("db exception loading bounds: " + boundsName +"@" + boundsTable ); + e.printStackTrace(); + } + + return ret; + + } + + } diff --git a/ncep/gov.noaa.nws.ncep.staticdataprovider/src/gov/noaa/nws/ncep/staticdataprovider/StaticDataProvider.java b/ncep/gov.noaa.nws.ncep.staticdataprovider/src/gov/noaa/nws/ncep/staticdataprovider/StaticDataProvider.java index de87ef6561..e053525cbb 100644 --- a/ncep/gov.noaa.nws.ncep.staticdataprovider/src/gov/noaa/nws/ncep/staticdataprovider/StaticDataProvider.java +++ b/ncep/gov.noaa.nws.ncep.staticdataprovider/src/gov/noaa/nws/ncep/staticdataprovider/StaticDataProvider.java @@ -25,6 +25,7 @@ import com.raytheon.uf.viz.core.catalog.DirectDbQuery.QueryLanguage; import com.raytheon.uf.viz.core.exception.VizException; import com.vividsolutions.jts.geom.Geometry; import com.vividsolutions.jts.geom.MultiPolygon; +import com.vividsolutions.jts.geom.Polygon; import gov.noaa.nws.ncep.common.staticdata.CostalWater; import gov.noaa.nws.ncep.common.staticdata.Cwa; @@ -50,6 +51,7 @@ import gov.noaa.nws.ncep.viz.localization.NcPathManager.NcPathConstants; * 02/12 ? B. Yin Moved from PGEN * 06/12 734 J. Zeng add getAllRfcs() and getAllCwas() * 08/12 #770 Q. Zhou added loadContWatchNum() + * 01/13 #966 B. Yin Added methods to load bounds info. * * @@ -337,4 +339,20 @@ public class StaticDataProvider implements IStaticDataProvider { return watchNum; } + @Override + public List getBoundsTableList() { + return BoundsProvider.getBoundsList(); + } + + @Override + public List getBoundsNames( String table ) { + return BoundsProvider.loadBoundsNames( table ); + } + + @Override + public Polygon loadBounds(String boundsTable, String boundsName) { + return BoundsProvider.loadBounds( boundsTable, boundsName ); + + } + } diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp.linux32/libbignsharp.so b/ncep/gov.noaa.nws.ncep.ui.nsharp.linux32/libbignsharp.so index c0dc9afb300d24950ab26c2577a6f9d7fdc6bf51..fdb7821aa12ecb60071e16903f9b0482ee3cb29a 100644 GIT binary patch delta 3172136 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%0D!sR?p9E)=Q+@_00ObGOJb*=PMBO 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 z zg6w(;z&{LSyi*ZYm6Q4N8zLHmlU19H7N>aO~QqRc5BHCvW(Q<-)_l4MNN>FS= zK0q(}{pA}doxfy@XmL|tF6h}Ns^=pURJS~rcic~Oh1#!h`9fJxbmN1urv<&ye(PP7 zQTZ+sl$qM^4aI`#L*Wu|>RZqd5%(a-u=!3WLDXD=6(@hsZOl30MUMC70%iliL+i_A zrN6W9Q7UCii`55o%R;hc5W|VL5zVKzaK(l&v0DnB1uJn>9z_Xa&ieZoVdIT$jb8FU zJkhLb!!x=BS7jvniSOn2^)Yg-&(@`h5J^-I7$_^$h&3AW>J+M004S)~+PcPy*CZ!{|Cg^0g-$uEX&(m4L8EJAa#P%4BZw0wQ!xQb(o# zVxf#`9<5~kb|gw^$52&bIe|T2(JxgrmJ4|NC+YmA^Md6Nb&ID)ozS01z6`E}=q$J7 zjux}2QQS|I#WK;@s1wSk%75XilE}x zt0%L^vnja*A^Hk-rxG-J;H$FV#$tK2=;Nu5YD@h{DOR;OWe==6L+p1)yqGSD%mL!< zML%K|tV_OOHA!;W6qxVqT1C5?#BfMLsU#=dk_TJSOlGZoZcrC()+bPjIb9Ffbz?%!;CQtN$u})Z#f-Wv#+Acn%%3oL z9?9vw%ZL>cBc3r>$@v+Un*X1|=Gz}|Q&%iaLyIK(88+X0CXUYNuK>6J8?7U$w73MY z_jQ_9f0v*D?z)YZOyvKAd3_5TV_%$)wWuZ+1v(&CII^k2@4ElLAP0Z_jd9=K;PE7* z)0QKjivLE^wLQTVjuOTGaK$WYLMltXpWF*k+}bc;dR)`2W+RRF*8k|7_9#Mm$I~a` z-rEY7Z2G^43&G)9PU2Z%8^p1k?~hxNs*KVy0OU_3G+(_QW=n*WOl=XT&AKwnZUr;CpUZY{6$5o4XsOr3zjB{ z*%E*iYdEwDi57p!-*X_kS-9`j<+JxO+3#8a#~I4cWbIaWK;ZA?)KhRIHw0gRNZgM zD)2GscljL*wq-&@J1iHlGFYJyEoc%e^__+3s|@+lDw(~-;>Bwb)rBbwa| zEtNUjS>=HK4=%aCz+FVi6?YwnHY{q$jcR;9dvSuY2_IjF|58l@UjGfNHP>(~w!oGZ zOl-LWLGxglo2q&_y`F-@S4QLZT%Toy=r;E^ zi0+*xbDe@!CG&dr=+CYm%EVggOhQ7kle)O%t4S=t+gRZ>0O)4|pipnZa_tS#e6BKE zhV~pFF>F1+2UATSBrsux9v&)ModJrQxEifi`s^lKE;d#Smje{r#HrWM(W;_xf@bv& z^io?o&KGqYXe6n2nT}aMIWpg3vWhA#iPMz|6@w(vmGgiG8U%#JErrAxM5Q~qxC_ujVJm) zn~{4aTSTz@AmJ*&4&qNS`JC+XGYJ5<8|1N&sAexLh-X z&DMrs*HbXKQEtiD^ORti&U!bWFBc02ARZa`bwd@oRw+usHWH#_!D`-9yGETGHA0fE0G>NV0`w3J&=q9+rk7%dty z=aQDwxQx2_{4x_+OeR`5`oBs`npDg0$1Ua7jf2T5@At|h{DSJZX3Vbx(DDNleqTXV zFuKB^)-gu-JRUXez(wPY=pe;j9dw$>x*zh1%D##UHhRs&KGa@E? zEQIMMh8JYvI)+v^1Ebbup(>9jIToU!xg785FD&7O%%!0!_4;)La^gHqD)?Ok@LT>J zLy>BE`TS875R1yuSWG@YYD`qjCrIp%agt-31|HeS!^fh~kRw>eA`ZWjGR8z0jWi z`{iq7#UhyUMfZU!2%=*CVvi*9DTwxprW2LrE!eEkTU@~`2RJhe8*Npzy4!USE1LV< zO{LEte8?7<^8M@71K?+Ys-w~W9H9|PEYRvYKpD8-k8r>1%jb?ONkpc$EM7i$uwJ2L z!c_6t5ea42EIa~2nx5;AtFmY|I&m2#I7K* zQv#I1p7tV7IA6U^0>#4Q`_-vT*pAHS@$&u15HdXLl@vW~3$%*yd(r>LVin5PG2rnz zM%~VZMQFbY(c(}+8wLWwZMexyKQ){K21+=`NdR5vAqO@miCFo5ryF?F&C99)#uG4d zLItn6s@=XTvVDGp+M@w{u!#?R<$xn#*a{syRp&ErOs>LShBCTQi+Dk4Q>`~!GV*b( zD%(k{NnvwNuxKR#n$Gwq^2gWo|9bv#k3WDZeUAtILi2b~2(jzWndit@{KvRQbazW6 z<-Aa_O8!2n5{b!`d__4aNqu*b_j@@;EViLoEMoj%9LRj#Vb4}%OGiY{{~y_ujD-_M zc>NSBnte4;Rk5xlQ0S9k1RU;_Lr`7x7RT&u05%E&Ljy{QH_oy4S5Spb;e*iyzekW!0sm`~t1>8bYvQM}+ba&i$gC5o zlF5QPLgiD##hYTb_nlEr-5b%rR{}`Sa`Ew{oAQJfU|@*UU{Oc1S^pOhY3U@@%)S-c zur|eP!OX7%@C`(k^RID!?+D5h=zcR<{yrP3zhX*In8=FH%<@s`dCwDwqIGgt7Sm3M zsn=vbONj0{lvclr zP>IQzKU1E+CtfA1eGT!602k32ouFaV9hC3-J6WY(@9#}mudAV3T0q20--cL43%O_U zpd>2Oa26jS`*W(ft1i}cPqT+T9cznC-3#l^TJ8VU%zpUUY!_0?F3Xl;g?gCT#gytB04kCi%47b<`)`=}7s) z8rbWnwT`MAPQqhMt{O%>Kl?o0@J!mS^j1zhT)6*Net)Jv<$O7Y4Y}QmYddIghy>RG zTJbyjKWk^AvT!zqAu1h>`+9c$3meWcazcJ*50`W^_OMJ30EmxJ#cLTJ_>y%3#4ss{ zCSbs1U8K1k7}O%A-f++3V1HEs*{KWsXK!+^?>@&WeNvwCX&Z#~KC?%DDFSxaA+FSi zoX(zxQR+Z4NWVkrD#Q}Z7A|EAvBdQE9~6a#&Sw^cWNbz$TlU!55Z(P+!haPDhKfg$ z2v7IKMypE_Dj#Y@HXBRglbgHBXsnBJ={F@tg;L+d6C-ND-S2Y3g?zuWy5Y*bg6(>o z4^ekc@7aKJyOB#Tf&%OB*v`b0c>+O|2iE0?6(6mdO?gzwLa4rgTXFHbd!9)b^yv_f6m15Im-{;fqB<^<6Tb`A4t+kKc&Ni8}$)8bP*?)y84D8;;nNNvWRUcRaxpFjLIcfU;C{+C7X1Zvh zL&VkX_hB2;$>wAvm$PX_ZL4w~5aX{xtzT#bzYo)uS)G#%2Iu;y>-xNz@OJ)$%;(0I zd^y)q?|`8D|F3)DK4%$xeV-L1jSmxlh1j^@-y0YtrU9BZM0?${s63!5Euf8E#$~n< zOz7Ui(D!#3zn*FQH;n%&h(>3~ADzt}FDLVP8%HKUrm@|N9>{?-BfQ?MIR-`xE}xTB zeFzM^U+OOs<#RdMa$Wy2Vi$mA3gv8=&wUUi!RUy#^E_nAUi4;!wU;E(K z%Mh6<6?-#E;m5Dzl>Q%u9lw|o3?!)j{+v}>4o8$agz5@FqTXRU3ldV3bfsCy@p(2B zYvcD>LA)T*V9O70Ikvl$Ec!CPK41cpX|zc)J-LPF(acx@_f{ zOR10_I)H6bWy=!fke-a4BW`eMuXF&y|c^ujg>lUzMFy>2=vVD6i>cP{=Kg zb1NXq9!ax``BG5K8O=bZ{Qq7M)fZGU1xf(c@VppTt+IS>l!~i1#7nj5aAt+IA`H1e zpLx+WIzUCmRyq<%^>9*K_;&_jxo=1u!XME0>;`;2yMn*SlEpgdmE~v8Wad&7kT#V|>H`w2Q`e7ngA<#mXoZdi8-= zqg+G8OG$*=wAk&qiec)8Blo%JhVo^EMbf~W)!YL*(XjdcSb;vj9i@83M1CNa+rGSt zh%~GNMu`1Zl{C=*9YhMRp%it1eq;+C+zS?oasdae&0#Y)uR@}pzfLqOP>(M-jQ%J; z==KN6X&fTO$mhyGqF(*zW+O4OQ%3oWJt*0o48|d zkbIu;Ay}W!Iw*->JpI+#u2TgJh8mtiJKfe$xV9v0@)NgWIN6@(!q-ztm-tWqp2N~+ z?+sA3;my-HF)In~_j$elz zKbb`3QS$e>T`*Wo2NI(u<9RtoDkAIf6Fs1&#ED)KLqT`Qeorf>Fwl4~%BV(Zagqh< z`hQ;_yk8TG>ga} z+H>_d_3||m8pixWzTy88v?Cas{;&8o$8P_N6vN~e%m5>sKN}5%NtWM1ktpo`E3TQTgHg}&*nrKvMSCequazUux1+ZRENc6{%5lPY3*%I=+NFPS z$K6v@wR}OgblwQ6Y?)u5un>EG^>-(+R&qi59uf#A$BNo=g1ab}ta-V1nm*T*%ZK(t zSWK-{3nDk>Z%!9&B*6WD<^<$NvghRZ9I%Ok#ofeCDfx<_?&D|V+Ts7&2K@9Ne95r| zw4(#Gx-V2e&~UZzQ$;#`K`YDOQ<@=)LxWYQwq;x7#G^2gAh&Qj7<*$fT6go^r~yVt z#kzyEAQt(5L*#&!YY{f95Ug3(IsnfGl5Ri42)B<1BW1V6swfLdvPkEx1yUtyoX@ zyb-kdf|fL*pUxIqlNN-^QfTgG8$h1Uctgk147;RziayR>kUh?;zMAh!p)*Fv8pNB}ahySee z4Lf}-fIRKzp!T%M5yE8k<3t;|B`bqCFGzF~y9(P-_-_KTzp%e5*?0$+%=;D#Np8{U z9Kv#cM<^rp4H)gzKTwpAT++jer0VwAOKg*Zn|p^42V z*}rN9-tSGrAgLTqVDgijI=EZ}KvOCBY9rP6%No#Btza=mV#N9kljwYL=X`xE&S95N zeUTn^75g&Lg&@OwKFjxOoP*TKr>3QP zzO@KchDL-|5i*~a2-C}mqLL~jmqH8NP}EUkpvNlee(Bx5RZdX%OJw^~n$=1GXIMDp zTH>lQogQ@{#$!4QZi#nn`LdF@#@1<6PtOvOLuZw0`WB%7D-=gI6XD1w!sX1Ib+<>M z3T%lcY6JhI?Y3-}rwy~L~|!X368JW(@&{>>RyoY*%X_Z zdc!3ZE+D>{Wb_BF_Lwa(1t#b9CcVCk5l?u1gaAY)4UFW1-rd3sZ>r~t+4TQE?BUtQ zB}L*$+a6`Lz()HuSX`DL)V+=4(LPbkkk6NHU_fB?Vw>uF+8aqWGCWvZkk1>_un%w+ zx+5XAEt})X5lwq%u~cH{F5kD&zqi_62!i;k+;>!Iv~KNS%g}IUXm@lF5{v7QO~aNLcNX1aK=W*tjxWc*qsZWzW-0>2}4~ zi|I70Pn7Q;hpVE!+(j+8NL#?-Shg@AK(r`gdtSkUTjaS>|0_TEz9D?<5v1JdS^p7Q zrK8bk`TJ{#G||*#qEQkNj39r#i-k79hSmVsC0w0;S4u$+d@$O27On`@m-kZ%443%+ zMSzv7)#V-sg7Q3*a=26txzH^@{3ubp7K5br*M>pz05)9cWZeC77=GPeCs=8_9N27o zlB2kTgw+77$Vva5&3(Fh?dV`gE$eHXJFvYTtX}*V+64#{rzZUefh^0)pUCCM)r77f)eGM zA=1(p{DhmNfk8xJ@lHLoL?C^DHL&5XLcyZG+!9~@Z8XP0G?Bl54C1|;t|CnS{**o6 zoE)YyrM`s?Kg>xI|44v`6)Qj=nN;B`0bFpKE$oq~w#cIb{I}?Vhgc{Fytoti^zn`@$7~;h+IbcO}LD^H>kSxFVhwa2=&qCRiZMtJ5du}nAaI@)-ThOPX zIyX$VekMlaO_qurpl?s2R0NIs%N0BsN|Na52z6ml;VoRZL-822rDN<~2LFS7ps}5% ztR92f`y`pLo7?yaV_9rdBHR0=r~4+O<+TvaReL5iJ~zv3`o8{f=oy8 zFHrIQiGE^|oFD+@Q{`c}x)~+j3uR=wL1FtQbV=z16~NfeLIZ~divt<}n*J}eNGlSF z5}PH2*HEt!=hMXZI)ueV!ws79NKmKUp}(Nbh9?N-)mJnOqS{5P%({|GUN$9N|2a3M z%kk`6a()m%9+3oiy9bHRl;MW(y{`Y~piCZ-)7eW7`1_YoEp51fOJA`Tq;eP>BJ3sK zK0AyktrwSH!yzs+ai=XVVzb<$mr(yuFF$b>ouZ+9B@?!Fc2+$i7ak`}w=_<>H{7QG zTXx1j9}+GeN&p)7#+mGB7!Z%0uwZsMiHtI~0lyuF{-#3$JEu=Dcoh*65{>y;e-3XC zfZT55CKphqF3#+cX2M>7_7E2v5o!I`f;zX_K3If|Y;5l$4oei}Rt4oV57{k49%yXU zuOd{xAwXrX*L+VV)4OC<;aK1i?^QD*9!1y^pQ05-vfRS$j>vvbC&g70|HZ^BnL_+m zLL7??w_|#WGL!4FceP1>TEmAL3NHdcFS}sX;c#^gP~6+-inX}{alk8{;*C@`-Qb$S z0o;Bgx9m7_W34Htgw{tlarq*FinJaaE~L8Rq?N&WXnTCM7r9VphR)mAPg9%QX&QJ(H7JQnz$YpU=<%El@3Di zY%w(q`X?2GfvVNH5`ZMAdSBBZF+>vCP)+jD-R8FZy$PFNgT`cVpT1>DD><~fXWaj@ z5`OM;AzFoAJ45YLS`k*8F9+yU8!CPrAVTB{d_pHAecKoC;E|V*49KSoI z5JHLZ5GO_|{%=UgElZ;dfqGRFt+^l4`U0^3?`6_4}s<2p-2MaZb`eC;naJ<*#J@V?^^b zid5>$@v1`u%|;k4nL8zOzR=#=cJnzjP-G|k=les9fIW2-P7Z)gOo_wZ095KzN%3t- z+wZC93VRxr{3hT3dK{rzdm{zo0wQf0{Q)2mod&2q6j>&tw!uIAzORBxR6ff2lgRw! zt7Lb(<;ZT+70T0gp#m>VM?;~DTj%*-njRpQ^^7%xI~(2R5Eca5fM8>zpsKVPdHdqistPeTBI~WotAH9 zfvXoeJPLRfI`Yg$P^Cz|Jh%`Rx}K-$N@Mn5+gnv*Xb?Ch&)<2 zRn_;MM-sZs@DvX{Z73h{5@&Q;lIkPo`zz6Mle=D=y-eeh>U`%leIM$V!^W2Oe6Q*M zp$wQbmj*$SZ|6<}pwy}&w_O39Xf~HX{rUxnS8~t7d-8s&aXMb+6gFdpWU*ZSZiVRT zmMS9(V6kYT_Uj)pII6~}B-i-0yiXU+%Dk`Z{~w^HGo1s)6%8Wo1792s&iTNk{yZq2 zD3`sz>ic~XwyFWj*#RBpr;udlK3GI|xn)zn#N=8RBBr_9zJGWDNw>l1tm=lq>9-(3 zJNC2b|2Hhn;k7afMZhW!p`J&nbh;*;5v``ESKx4-&qpX