Change-Id: I287fe0a7d44782dc45265a9ffe2312549d95edbf Former-commit-id: 69c812bb8f03844333497feba62951fbdcbc9e2b
76 lines
No EOL
2.5 KiB
Python
76 lines
No EOL
2.5 KiB
Python
#
|
|
# GempakGridCycleQuery
|
|
#
|
|
# This code has been developed by the SIB for use in the AWIPS2 system.
|
|
# Performs a GempakSqlQuery for Grid data from GEMPAK and returns
|
|
# all the available unique forecast times for the model's cycle.
|
|
#
|
|
# Usage:
|
|
# import GempakGridCycleQuery
|
|
# query = GempakGridCycleQuery.GempakGridCycleQuery()
|
|
# query.setParameters("ruc|1300")
|
|
# return query.execute()
|
|
#
|
|
# SOFTWARE HISTORY
|
|
#
|
|
# Date Ticket# Engineer Description
|
|
# ------------ ---------- ----------- --------------------------
|
|
# 07/02/10 92 mgamazaychikov Initial Creation
|
|
#
|
|
from java.util import ArrayList
|
|
from com.raytheon.uf.common.message.response import ResponseMessageGeneric
|
|
from com.raytheon.edex.uengine.tasks.query import MetadataCatalogQuery
|
|
from gov.noaa.nws.ncep.edex.uengine.utility import GempakConvert
|
|
import GempakSqlQuery
|
|
|
|
class GempakGridCycleQuery():
|
|
|
|
def __init__(self, aPlugin):
|
|
self.plugin = aPlugin
|
|
self.queryResults = ArrayList()
|
|
self.GSQ = GempakSqlQuery.GempakSqlQuery()
|
|
self.GSQ.setReturnText()
|
|
self.convert = GempakConvert()
|
|
|
|
#
|
|
# Set parameters of the metadata catalog query
|
|
#
|
|
def setParameters (self, aParms):
|
|
parms = aParms.split("|")
|
|
self.model=parms[0].upper()
|
|
self.cycle = self.convert.dattimToDbtime(parms[1].upper()).replace (' ', '_')
|
|
#print "model=", self.model
|
|
#print "cycle=", self.cycle
|
|
|
|
#
|
|
# Generates a list of responses in XML format
|
|
#
|
|
def makeResponse(self):
|
|
retStr = self.convert.dbtimeToDattim((self.queryResult).split("/")[2])
|
|
#print "returning time=", retStr
|
|
return ResponseMessageGeneric(retStr)
|
|
|
|
#
|
|
# Executes the query and calls appropriate response functions
|
|
#
|
|
def execute(self):
|
|
#
|
|
# construct the SQL query to execute
|
|
#
|
|
myQuery = "SELECT datauri FROM " + self.plugin + " WHERE datauri LIKE '%" + \
|
|
self.cycle + "%' AND datauri ~* '/" + self.model + "/' LIMIT 1"
|
|
#print "myQuery:", myQuery
|
|
|
|
#
|
|
# set the SQL query
|
|
#
|
|
self.GSQ.setQuery(myQuery)
|
|
self.queryResult = self.GSQ.execute()
|
|
#print "self.queryResult=", self.queryResult
|
|
#
|
|
# process the results of the query
|
|
#
|
|
if self.queryResult is None:
|
|
return self.makeNullResponse("Query returned no results")
|
|
else:
|
|
return self.makeResponse() |