14.1.1-15 baseline
Former-commit-id: cb8eca2a0dfc0e2348301e8d9932db824ecaf34c
This commit is contained in:
parent
9ef1c841b9
commit
d8e5799328
6 changed files with 2002 additions and 1964 deletions
|
@ -2,7 +2,7 @@
|
||||||
from com.raytheon.viz.gfe import GFEPreference
|
from com.raytheon.viz.gfe import GFEPreference
|
||||||
|
|
||||||
Options = [
|
Options = [
|
||||||
('*visual', 'truecolor'),
|
# ('*visual', 'truecolor'),
|
||||||
('*background' , 'gray65'),
|
('*background' , 'gray65'),
|
||||||
('*activeBackground' , 'gray83'),
|
('*activeBackground' , 'gray83'),
|
||||||
('*blinkingHighlightColor' , 'CornSilk'),
|
('*blinkingHighlightColor' , 'CornSilk'),
|
||||||
|
|
|
@ -239,6 +239,7 @@
|
||||||
<include>fssobs-ingest.xml</include>
|
<include>fssobs-ingest.xml</include>
|
||||||
<include>fssobs-common.xml</include>
|
<include>fssobs-common.xml</include>
|
||||||
<include>ldadmesonet-common.xml</include>
|
<include>ldadmesonet-common.xml</include>
|
||||||
|
<include>manualIngest-common.xml</include>
|
||||||
<include>dataaccess-common.xml</include>
|
<include>dataaccess-common.xml</include>
|
||||||
<exclude>ncgrib-common.xml</exclude>
|
<exclude>ncgrib-common.xml</exclude>
|
||||||
<exclude>nctext-common.xml</exclude>
|
<exclude>nctext-common.xml</exclude>
|
||||||
|
|
|
@ -1,304 +1,304 @@
|
||||||
##
|
##
|
||||||
# This software was developed and / or modified by Raytheon Company,
|
# This software was developed and / or modified by Raytheon Company,
|
||||||
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||||
#
|
#
|
||||||
# U.S. EXPORT CONTROLLED TECHNICAL DATA
|
# U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||||
# This software product contains export-restricted data whose
|
# This software product contains export-restricted data whose
|
||||||
# export/transfer/disclosure is restricted by U.S. law. Dissemination
|
# export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||||
# to non-U.S. persons whether in the United States or abroad requires
|
# to non-U.S. persons whether in the United States or abroad requires
|
||||||
# an export license or other authorization.
|
# an export license or other authorization.
|
||||||
#
|
#
|
||||||
# Contractor Name: Raytheon Company
|
# Contractor Name: Raytheon Company
|
||||||
# Contractor Address: 6825 Pine Street, Suite 340
|
# Contractor Address: 6825 Pine Street, Suite 340
|
||||||
# Mail Stop B8
|
# Mail Stop B8
|
||||||
# Omaha, NE 68106
|
# Omaha, NE 68106
|
||||||
# 402.291.0100
|
# 402.291.0100
|
||||||
#
|
#
|
||||||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||||
# further licensing information.
|
# further licensing information.
|
||||||
##
|
##
|
||||||
|
|
||||||
import string, getopt, sys, time, gzip, os, iscTime, stat
|
import string, getopt, sys, time, gzip, os, iscTime, stat
|
||||||
import numpy
|
import numpy
|
||||||
import LogStream, fcntl
|
import LogStream, fcntl
|
||||||
|
|
||||||
#
|
#
|
||||||
# merges two grids and histories together, input gridA is merged into gridB
|
# merges two grids and histories together, input gridA is merged into gridB
|
||||||
# result is returned from mergeGrid. Grids are represented in the following
|
# result is returned from mergeGrid. Grids are represented in the following
|
||||||
# manner:
|
# manner:
|
||||||
# Scalar: (grid, history)
|
# Scalar: (grid, history)
|
||||||
# Vector: ((magGrid, dirGrid), history)
|
# Vector: ((magGrid, dirGrid), history)
|
||||||
# Weather: ((byteGrid, key), history)
|
# Weather: ((byteGrid, key), history)
|
||||||
# Discrete: ((byteGrid, key), history)
|
# Discrete: ((byteGrid, key), history)
|
||||||
#
|
#
|
||||||
# SOFTWARE HISTORY
|
# SOFTWARE HISTORY
|
||||||
#
|
#
|
||||||
# Date Ticket# Engineer Description
|
# Date Ticket# Engineer Description
|
||||||
# ------------ ---------- ----------- --------------------------
|
# ------------ ---------- ----------- --------------------------
|
||||||
# 07/06/09 1995 bphillip Initial Creation.
|
# 07/06/09 1995 bphillip Initial Creation.
|
||||||
# 11/05/13 2517 randerso Improve memory utilization
|
# 11/05/13 2517 randerso Improve memory utilization
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
class MergeGrid:
|
class MergeGrid:
|
||||||
|
|
||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
# Constructor
|
# Constructor
|
||||||
# Takes creationtime - seconds since Jan 1, 1970, to be used
|
# Takes creationtime - seconds since Jan 1, 1970, to be used
|
||||||
# in the updating of the histories.
|
# in the updating of the histories.
|
||||||
# siteID = site identifier for input grid
|
# siteID = site identifier for input grid
|
||||||
# inFillValue = input fill value indicator
|
# inFillValue = input fill value indicator
|
||||||
# outFillValue = output fill value indicator
|
# outFillValue = output fill value indicator
|
||||||
# areaMask = numerical mask of areas to merge from grid1 to grid2
|
# areaMask = numerical mask of areas to merge from grid1 to grid2
|
||||||
# gridType = 'SCALAR', 'VECTOR', 'WEATHER', 'DISCRETE'
|
# gridType = 'SCALAR', 'VECTOR', 'WEATHER', 'DISCRETE'
|
||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
def __init__(self, creationTime, siteID, inFillValue, outFillValue,
|
def __init__(self, creationTime, siteID, inFillValue, outFillValue,
|
||||||
areaMask, gridType, discreteKeys=None):
|
areaMask, gridType, discreteKeys=None):
|
||||||
self.__creationTime = creationTime
|
self.__creationTime = creationTime
|
||||||
self.__siteID = siteID
|
self.__siteID = siteID
|
||||||
self.__inFillV = inFillValue
|
self.__inFillV = inFillValue
|
||||||
self.__outFillV = outFillValue
|
self.__outFillV = outFillValue
|
||||||
self.__areaMask = areaMask
|
self.__areaMask = areaMask
|
||||||
self.__gridType = gridType
|
self.__gridType = gridType
|
||||||
self.__discreteKeys = discreteKeys
|
self.__discreteKeys = discreteKeys
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
# find key
|
# find key
|
||||||
# key = input key
|
# key = input key
|
||||||
# keymap = existing key maps (updated on exit)
|
# keymap = existing key maps (updated on exit)
|
||||||
# returns the index to use for the key.
|
# returns the index to use for the key.
|
||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
def __findKey(self, key, keyMap):
|
def __findKey(self, key, keyMap):
|
||||||
try:
|
try:
|
||||||
index = keyMap.index(key)
|
index = keyMap.index(key)
|
||||||
return index
|
return index
|
||||||
except:
|
except:
|
||||||
keyMap.append(key)
|
keyMap.append(key)
|
||||||
return len(keyMap) - 1
|
return len(keyMap) - 1
|
||||||
|
|
||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
# commonize key
|
# commonize key
|
||||||
# wxA = input grid and key
|
# wxA = input grid and key
|
||||||
# wxB = input grid and key
|
# wxB = input grid and key
|
||||||
# returns a tuple (commonkey, gridA, gridB) where gridA and gridB
|
# returns a tuple (commonkey, gridA, gridB) where gridA and gridB
|
||||||
# now use the commonkey
|
# now use the commonkey
|
||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
def __commonizeKey(self, wxA, wxB):
|
def __commonizeKey(self, wxA, wxB):
|
||||||
# make common key and make data changes in B
|
# make common key and make data changes in B
|
||||||
gridB = wxB[0]
|
gridB = wxB[0]
|
||||||
key = wxA[1]
|
key = wxA[1]
|
||||||
newGrid = numpy.zeros_like(gridB)
|
newGrid = numpy.zeros_like(gridB)
|
||||||
|
|
||||||
for k in range(len(wxB[1])):
|
for k in range(len(wxB[1])):
|
||||||
index = self.__findKey(wxB[1][k], key)
|
index = self.__findKey(wxB[1][k], key)
|
||||||
newGrid[gridB == k] = index
|
newGrid[gridB == k] = index
|
||||||
|
|
||||||
return (key, wxA[0], newGrid)
|
return (key, wxA[0], newGrid)
|
||||||
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
# update history strings
|
# update history strings
|
||||||
# historyA = history from input grid (None to delete history entry)
|
# historyA = history from input grid (None to delete history entry)
|
||||||
# historyB = history from base grid, list (None for no old grid.)
|
# historyB = history from base grid, list (None for no old grid.)
|
||||||
# returns an updated list of strings, each string is an encoded history
|
# returns an updated list of strings, each string is an encoded history
|
||||||
# returns None if no history is present.
|
# returns None if no history is present.
|
||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
def __updateHistoryStrings(self, historyA, historyB):
|
def __updateHistoryStrings(self, historyA, historyB):
|
||||||
|
|
||||||
out = []
|
out = []
|
||||||
|
|
||||||
# removal any old entry
|
# removal any old entry
|
||||||
if historyB is not None:
|
if historyB is not None:
|
||||||
for h in historyB:
|
for h in historyB:
|
||||||
index = string.find(h, ":" + self.__siteID + "_GRID")
|
index = string.find(h, ":" + self.__siteID + "_GRID")
|
||||||
if index == -1:
|
if index == -1:
|
||||||
out.append(h)
|
out.append(h)
|
||||||
|
|
||||||
# if add mode, add in new entries
|
# if add mode, add in new entries
|
||||||
if historyA is not None:
|
if historyA is not None:
|
||||||
for h in historyA:
|
for h in historyA:
|
||||||
out.append(h)
|
out.append(h)
|
||||||
|
|
||||||
if len(out) > 0:
|
if len(out) > 0:
|
||||||
return out
|
return out
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
# merge scalar grid
|
# merge scalar grid
|
||||||
# Note: gridA can be None, which indicates that the data
|
# Note: gridA can be None, which indicates that the data
|
||||||
# is to be blanked out, i.e., made invalid. gridB can also be
|
# is to be blanked out, i.e., made invalid. gridB can also be
|
||||||
# none, which indicates that there is no destination grid and one must
|
# none, which indicates that there is no destination grid and one must
|
||||||
# be created.
|
# be created.
|
||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
def __mergeScalarGrid(self, gridA, gridB):
|
def __mergeScalarGrid(self, gridA, gridB):
|
||||||
if gridA is None and gridB is None:
|
if gridA is None and gridB is None:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
# merge the grids
|
# merge the grids
|
||||||
if gridA is not None:
|
if gridA is not None:
|
||||||
mask = numpy.not_equal(gridA, self.__inFillV)
|
mask = numpy.not_equal(gridA, self.__inFillV)
|
||||||
numpy.logical_and(mask, self.__areaMask, mask)
|
numpy.logical_and(mask, self.__areaMask, mask)
|
||||||
|
|
||||||
if gridB is None:
|
if gridB is None:
|
||||||
return numpy.where(mask, gridA, self.__outFillV)
|
return numpy.where(mask, gridA, self.__outFillV)
|
||||||
else:
|
else:
|
||||||
return numpy.where(mask, gridA, gridB)
|
return numpy.where(mask, gridA, gridB)
|
||||||
|
|
||||||
# blank out the data
|
# blank out the data
|
||||||
else:
|
else:
|
||||||
return numpy.where(self.__areaMask, self.__outFillV, gridB)
|
return numpy.where(self.__areaMask, self.__outFillV, gridB)
|
||||||
|
|
||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
# merge vector grid
|
# merge vector grid
|
||||||
# Note: gridA can be None, which indicates that the data
|
# Note: gridA can be None, which indicates that the data
|
||||||
# is to be blanked out, i.e., made invalid. gridB can also be
|
# is to be blanked out, i.e., made invalid. gridB can also be
|
||||||
# none, which indicates that there is no destination grid and one must
|
# none, which indicates that there is no destination grid and one must
|
||||||
# be created.
|
# be created.
|
||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
def __mergeVectorGrid(self, gridA, gridB):
|
def __mergeVectorGrid(self, gridA, gridB):
|
||||||
if gridA is None and gridB is None:
|
if gridA is None and gridB is None:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
# merge the grids
|
# merge the grids
|
||||||
if gridA is not None:
|
if gridA is not None:
|
||||||
mask = numpy.not_equal(gridA[0], self.__inFillV)
|
mask = numpy.not_equal(gridA[0], self.__inFillV)
|
||||||
numpy.logical_and(mask, self.__areaMask, mask)
|
numpy.logical_and(mask, self.__areaMask, mask)
|
||||||
|
|
||||||
if gridB is None:
|
if gridB is None:
|
||||||
magGrid = numpy.where(mask, gridA[0], self.__outFillV)
|
magGrid = numpy.where(mask, gridA[0], self.__outFillV)
|
||||||
dirGrid = numpy.where(mask, gridA[1], 0.0)
|
dirGrid = numpy.where(mask, gridA[1], 0.0)
|
||||||
else:
|
else:
|
||||||
magGrid = numpy.where(mask, gridA[0], gridB[0])
|
magGrid = numpy.where(mask, gridA[0], gridB[0])
|
||||||
dirGrid = numpy.where(mask, gridA[1], gridB[1])
|
dirGrid = numpy.where(mask, gridA[1], gridB[1])
|
||||||
return (magGrid, dirGrid)
|
return (magGrid, dirGrid)
|
||||||
|
|
||||||
# blank out the data
|
# blank out the data
|
||||||
else:
|
else:
|
||||||
magGrid = numpy.where(self.__areaMask, self.__outFillV, gridB[0])
|
magGrid = numpy.where(self.__areaMask, self.__outFillV, gridB[0])
|
||||||
dirGrid = numpy.where(self.__areaMask, 0.0, gridB[1])
|
dirGrid = numpy.where(self.__areaMask, 0.0, gridB[1])
|
||||||
return (magGrid, dirGrid)
|
return (magGrid, dirGrid)
|
||||||
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
# merge weather grid
|
# merge weather grid
|
||||||
#
|
#
|
||||||
# Note the outFillV is ignored for now, all out-of-bounds points will
|
# Note the outFillV is ignored for now, all out-of-bounds points will
|
||||||
# get the <NoWx> value.
|
# get the <NoWx> value.
|
||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
def __mergeWeatherGrid(self, gridA, gridB):
|
def __mergeWeatherGrid(self, gridA, gridB):
|
||||||
|
|
||||||
if gridA is None and gridB is None:
|
if gridA is None and gridB is None:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
noWx = "<NoCov>:<NoWx>:<NoInten>:<NoVis>:"
|
noWx = "<NoCov>:<NoWx>:<NoInten>:<NoVis>:"
|
||||||
# merge the grids
|
# merge the grids
|
||||||
if gridA is not None:
|
if gridA is not None:
|
||||||
mask = numpy.not_equal(gridA[0], self.__inFillV)
|
mask = numpy.not_equal(gridA[0], self.__inFillV)
|
||||||
numpy.logical_and(mask, self.__areaMask, mask)
|
numpy.logical_and(mask, self.__areaMask, mask)
|
||||||
|
|
||||||
if gridB is None: #make an empty grid
|
if gridB is None: #make an empty grid
|
||||||
noWxKeys = []
|
noWxKeys = []
|
||||||
noWxGrid = numpy.empty_like(gridA[0])
|
noWxGrid = numpy.empty_like(gridA[0])
|
||||||
noWxGrid.fill(self.__findKey(noWx, noWxKeys))
|
noWxGrid.fill(self.__findKey(noWx, noWxKeys))
|
||||||
gridB = (noWxGrid, noWxKeys)
|
gridB = (noWxGrid, noWxKeys)
|
||||||
(commonkey, remapG, dbG) = self.__commonizeKey(gridA, gridB)
|
(commonkey, remapG, dbG) = self.__commonizeKey(gridA, gridB)
|
||||||
mergedGrid = numpy.where(mask, remapG, dbG)
|
mergedGrid = numpy.where(mask, remapG, dbG)
|
||||||
return (mergedGrid, commonkey)
|
return (mergedGrid, commonkey)
|
||||||
|
|
||||||
# blank out the data
|
# blank out the data
|
||||||
else:
|
else:
|
||||||
blankGrid = numpy.empty_like(gridB[0])
|
blankGrid = numpy.empty_like(gridB[0])
|
||||||
blankGrid.fill(self.__findKey(noWx, gridB[1]))
|
blankGrid.fill(self.__findKey(noWx, gridB[1]))
|
||||||
key = gridB[1]
|
key = gridB[1]
|
||||||
grid = numpy.where(self.__areaMask, blankGrid, gridB[0])
|
grid = numpy.where(self.__areaMask, blankGrid, gridB[0])
|
||||||
return (grid, key)
|
return (grid, key)
|
||||||
|
|
||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
# merge discrete grid
|
# merge discrete grid
|
||||||
#
|
#
|
||||||
# Note the outFillV is ignored for now, all out-of-bounds points will
|
# Note the outFillV is ignored for now, all out-of-bounds points will
|
||||||
# get the first value in the discrete key.
|
# get the first value in the discrete key.
|
||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
def __mergeDiscreteGrid(self, gridA, gridB):
|
def __mergeDiscreteGrid(self, gridA, gridB):
|
||||||
if gridA is None and gridB is None:
|
if gridA is None and gridB is None:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
noKey = self.__discreteKeys[0]
|
noKey = self.__discreteKeys[0]
|
||||||
|
|
||||||
# merge the grids
|
# merge the grids
|
||||||
if gridA is not None:
|
if gridA is not None:
|
||||||
mask = numpy.not_equal(gridA[0], self.__inFillV)
|
mask = numpy.not_equal(gridA[0], self.__inFillV)
|
||||||
numpy.logical_and(mask, self.__areaMask)
|
numpy.logical_and(mask, self.__areaMask, mask)
|
||||||
|
|
||||||
if gridB is None: #make an empty grid
|
if gridB is None: #make an empty grid
|
||||||
noKeys = []
|
noKeys = []
|
||||||
noGrid = numpy.empty_like(gridA[0])
|
noGrid = numpy.empty_like(gridA[0])
|
||||||
noGrid.fill(self.__findKey(noKey, noKeys))
|
noGrid.fill(self.__findKey(noKey, noKeys))
|
||||||
gridB = (noGrid, noKeys)
|
gridB = (noGrid, noKeys)
|
||||||
|
|
||||||
(commonkey, remapG, dbG) = \
|
(commonkey, remapG, dbG) = \
|
||||||
self.__commonizeKey(gridA, gridB)
|
self.__commonizeKey(gridA, gridB)
|
||||||
mergedGrid = numpy.where(mask, remapG, dbG)
|
mergedGrid = numpy.where(mask, remapG, dbG)
|
||||||
return (mergedGrid, commonkey)
|
return (mergedGrid, commonkey)
|
||||||
|
|
||||||
# blank out the data
|
# blank out the data
|
||||||
else:
|
else:
|
||||||
blankGrid = numpy.empty_like(gridB[0])
|
blankGrid = numpy.empty_like(gridB[0])
|
||||||
blankGrid.fill(self.__findKey(noKey, gridB[1]))
|
blankGrid.fill(self.__findKey(noKey, gridB[1]))
|
||||||
key = gridB[1]
|
key = gridB[1]
|
||||||
grid = numpy.where(self.__areaMask, blankGrid, gridB[0])
|
grid = numpy.where(self.__areaMask, blankGrid, gridB[0])
|
||||||
return (grid, key)
|
return (grid, key)
|
||||||
|
|
||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
# mergeGrid
|
# mergeGrid
|
||||||
# Merges the grid
|
# Merges the grid
|
||||||
# Scalar: (grid, history)
|
# Scalar: (grid, history)
|
||||||
# Vector: ((magGrid, dirGrid), history)
|
# Vector: ((magGrid, dirGrid), history)
|
||||||
# Weather: ((byteGrid, key), history)
|
# Weather: ((byteGrid, key), history)
|
||||||
# Discrete: ((byteGrid, key), history)
|
# Discrete: ((byteGrid, key), history)
|
||||||
# gridA = input remapped grid, contains inFillV to denote invalid
|
# gridA = input remapped grid, contains inFillV to denote invalid
|
||||||
# gridB = grid to have gridA mosaic'd into
|
# gridB = grid to have gridA mosaic'd into
|
||||||
# Note: gridA can be None, which indicates that the data
|
# Note: gridA can be None, which indicates that the data
|
||||||
# is to be blanked out, i.e., made invalid. gridB can also be
|
# is to be blanked out, i.e., made invalid. gridB can also be
|
||||||
# none, which indicates that there is no destination grid and one must
|
# none, which indicates that there is no destination grid and one must
|
||||||
# be created.
|
# be created.
|
||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
def mergeGrid(self, gridAIn, gridBIn):
|
def mergeGrid(self, gridAIn, gridBIn):
|
||||||
# merge the grids
|
# merge the grids
|
||||||
if gridAIn is not None:
|
if gridAIn is not None:
|
||||||
gridA = gridAIn[0]
|
gridA = gridAIn[0]
|
||||||
historyA = gridAIn[1]
|
historyA = gridAIn[1]
|
||||||
else:
|
else:
|
||||||
gridA = None
|
gridA = None
|
||||||
historyA = None
|
historyA = None
|
||||||
if gridBIn is not None:
|
if gridBIn is not None:
|
||||||
gridB = gridBIn[0]
|
gridB = gridBIn[0]
|
||||||
historyB = gridBIn[1]
|
historyB = gridBIn[1]
|
||||||
else:
|
else:
|
||||||
gridB = None
|
gridB = None
|
||||||
historyB = None
|
historyB = None
|
||||||
|
|
||||||
if self.__gridType == 'SCALAR':
|
if self.__gridType == 'SCALAR':
|
||||||
mergedGrid = self.__mergeScalarGrid(gridA, gridB)
|
mergedGrid = self.__mergeScalarGrid(gridA, gridB)
|
||||||
|
|
||||||
elif self.__gridType == 'VECTOR':
|
elif self.__gridType == 'VECTOR':
|
||||||
mergedGrid = self.__mergeVectorGrid(gridA, gridB)
|
mergedGrid = self.__mergeVectorGrid(gridA, gridB)
|
||||||
|
|
||||||
elif self.__gridType == 'WEATHER':
|
elif self.__gridType == 'WEATHER':
|
||||||
mergedGrid = self.__mergeWeatherGrid(gridA, gridB)
|
mergedGrid = self.__mergeWeatherGrid(gridA, gridB)
|
||||||
|
|
||||||
elif self.__gridType == 'DISCRETE':
|
elif self.__gridType == 'DISCRETE':
|
||||||
mergedGrid = self.__mergeDiscreteGrid(gridA, gridB)
|
mergedGrid = self.__mergeDiscreteGrid(gridA, gridB)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
mergedGrid = None
|
mergedGrid = None
|
||||||
|
|
||||||
# merge History
|
# merge History
|
||||||
history = self.__updateHistoryStrings(historyA, historyB)
|
history = self.__updateHistoryStrings(historyA, historyB)
|
||||||
|
|
||||||
return (mergedGrid, history)
|
return (mergedGrid, history)
|
||||||
|
|
|
@ -19,5 +19,6 @@ export CLASSPATH=$DB_DRIVER_PATH
|
||||||
CLASSPATH=$CLASSPATH:$WHFS_BIN_DIR/fcstservice.jar
|
CLASSPATH=$CLASSPATH:$WHFS_BIN_DIR/fcstservice.jar
|
||||||
|
|
||||||
#Execute Lhvm
|
#Execute Lhvm
|
||||||
|
unset GNOME_DESKTOP_SESSION_ID
|
||||||
xterm -T "fcstservice" -iconic \
|
xterm -T "fcstservice" -iconic \
|
||||||
-e $SYS_JAVA_DIR/bin/java ohd.hseb.fcstservice.LhvmApplicationWindow $JDBCURL &
|
-e $SYS_JAVA_DIR/bin/java ohd.hseb.fcstservice.LhvmApplicationWindow $JDBCURL &
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -412,13 +412,13 @@ if [ "${1}" = "-viz" ]; then
|
||||||
#buildRPM "awips2-common-base"
|
#buildRPM "awips2-common-base"
|
||||||
#buildRPM "awips2-python-dynamicserialize"
|
#buildRPM "awips2-python-dynamicserialize"
|
||||||
#buildRPM "awips2-python"
|
#buildRPM "awips2-python"
|
||||||
#buildRPM "awips2-adapt-native"
|
buildRPM "awips2-adapt-native"
|
||||||
#unpackHttpdPypies
|
#unpackHttpdPypies
|
||||||
#if [ $? -ne 0 ]; then
|
#if [ $? -ne 0 ]; then
|
||||||
# exit 1
|
# exit 1
|
||||||
#fi
|
#fi
|
||||||
#buildRPM "awips2-httpd-pypies"
|
#buildRPM "awips2-httpd-pypies"
|
||||||
#buildRPM "awips2-hydroapps-shared"
|
buildRPM "awips2-hydroapps-shared"
|
||||||
#buildRPM "awips2-rcm"
|
#buildRPM "awips2-rcm"
|
||||||
#buildRPM "awips2-tools"
|
#buildRPM "awips2-tools"
|
||||||
#buildRPM "awips2-cli"
|
#buildRPM "awips2-cli"
|
||||||
|
|
Loading…
Add table
Reference in a new issue