Merge "Omaha #3600 Update radar inventory scripts to DAF" into omaha_14.4.1
Former-commit-id:92626571a5
[formerly4b0145a1c3
] [formerly92626571a5
[formerly4b0145a1c3
] [formerly93d8a31f41
[formerly 742a15be8431165cd348c87674275d45da9b6949]]] Former-commit-id:93d8a31f41
Former-commit-id:94d4e527e9
[formerlyc28bab2aa7
] Former-commit-id:f4fb33cc0d
This commit is contained in:
commit
36d0c6f1ea
2 changed files with 338 additions and 113 deletions
|
@ -1,4 +1,23 @@
|
|||
#!/bin/csh
|
||||
##
|
||||
# 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.
|
||||
##
|
||||
#
|
||||
# A script wrapper that is meant to get inventories of radar data
|
||||
# from the A-II database. The data is output to stdout as ASCII.
|
||||
|
@ -50,8 +69,19 @@
|
|||
# primary tilt angles for a range of tilts. When tilt angles are returned
|
||||
# with a time inventory, then these are the actual tilt angle of the
|
||||
# data received.
|
||||
#
|
||||
#
|
||||
# Gets inventories of radar grid data from the A-II database. The data is
|
||||
# output to stdout as ASCII. Inventories are limited to Radial and Raster
|
||||
# formats.
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# 2014-10-28 3600 nabowle Initial modification. Call DAF properly.
|
||||
#
|
||||
#
|
||||
|
||||
set rmpy = yes
|
||||
if ( "$1" == "p" ) then
|
||||
set rmpy = no
|
||||
|
@ -89,12 +119,53 @@ else
|
|||
bash -c "echo could not find a2invradStub.py 1>&2"
|
||||
exit
|
||||
endif
|
||||
|
||||
set rrr = `echo $1 | grep '[a-z][a-z][a-z][a-z]'`
|
||||
if ( "$rrr" != "" ) shift
|
||||
set lastcmd = cat
|
||||
|
||||
#
|
||||
# Determine if we are using the data access framework or the uEngine.
|
||||
#
|
||||
grep DataAccessLayer $stubpy >& /dev/null
|
||||
if ( $status == 0 ) then
|
||||
set method = "daf"
|
||||
set mydate = `echo "$1" | grep '.*-.*-'`
|
||||
set mytime = `echo "$2" | grep ':'`
|
||||
if ( "$mydate" != "" && "$mytime" != "" ) then
|
||||
shift
|
||||
shift
|
||||
set userargs = "--date ${mydate} --time ${mytime}"
|
||||
else
|
||||
set userargs = ""
|
||||
endif
|
||||
|
||||
if ( "$rrr" == "" ) then
|
||||
#done
|
||||
else if ( "$1" == "" ) then
|
||||
set userargs = "$userargs --icao $rrr"
|
||||
else if ( "$1" == "+" ) then
|
||||
set userargs = "$userargs --icao $rrr"
|
||||
if ( -e ./msgCodeSeds.txt ) then
|
||||
set mctrans = $PWD/msgCodeSeds.txt
|
||||
else if ( -e $mydir/msgCodeSeds.txt ) then
|
||||
set mctrans = $mydir/msgCodeSeds.txt
|
||||
else if ( -e $fxa_home/src/dm/radar/msgCodeSeds.txt ) then
|
||||
set mctrans = $fxa_home/src/dm/radar/msgCodeSeds.txt
|
||||
else if ( -e $FXA_HOME/data/msgCodeSeds.txt ) then
|
||||
set mctrans = $FXA_HOME/data/msgCodeSeds.txt
|
||||
else
|
||||
bash -c "echo could not find msgCodeSeds.txt 1>&2"
|
||||
exit
|
||||
endif
|
||||
set lastcmd = "sed -f $mctrans"
|
||||
else if ( "$2" == "" ) then
|
||||
set userargs = "$userargs --icao $rrr --productCode $1 --angle 0.0 --outputDate"
|
||||
else if ( "$2" == "+" ) then
|
||||
set userargs = "$userargs --icao $rrr --productCode $1 --outputPrimary"
|
||||
else
|
||||
set userargs = "$userargs --icao $rrr --productCode $1 --angle $2 --outputTrue --outputDate"
|
||||
endif
|
||||
/awips2/python/bin/python $stubpy ${userargs} | $lastcmd
|
||||
else
|
||||
#
|
||||
# Set up the environment we need to run the UEngine.
|
||||
|
@ -113,104 +184,101 @@ else
|
|||
exit
|
||||
endif
|
||||
source $ueenv
|
||||
endif
|
||||
#
|
||||
#
|
||||
set rrr = `echo $1 | grep '[a-z][a-z][a-z][a-z]'`
|
||||
if ( "$rrr" != "" ) shift
|
||||
#
|
||||
# Set range of time we will request this information over, will default to
|
||||
# essentially forever.
|
||||
#
|
||||
set aaa = "1970-01-01 00:00:00.0"
|
||||
set bbb = "2038-01-01 00:00:00.0"
|
||||
set mydate = `echo "$1" | grep '.*-.*-'`
|
||||
set mytime = `echo "$2" | grep ':'`
|
||||
if ( "$mydate" != "" && "$mytime" != "" ) then
|
||||
shift
|
||||
shift
|
||||
if ( -x ./gtasUtil ) then
|
||||
set gtasUtil = ./gtasUtil
|
||||
else if ( -x $mydir/gtasUtil ) then
|
||||
set gtasUtil = $mydir/gtasUtil
|
||||
else if ( -x $fxa_home/src/dm/point/gtasUtil ) then
|
||||
set gtasUtil = $fxa_home/src/dm/point/gtasUtil
|
||||
else if ( -x $FXA_HOME/bin/gtasUtil ) then
|
||||
set gtasUtil = $FXA_HOME/bin/gtasUtil
|
||||
else
|
||||
bash -c "echo could not find gtasUtil executable 1>&2"
|
||||
exit
|
||||
|
||||
#
|
||||
# Set range of time we will request this information over, will default to
|
||||
# essentially forever.
|
||||
#
|
||||
set aaa = "1970-01-01 00:00:00.0"
|
||||
set bbb = "2038-01-01 00:00:00.0"
|
||||
set mydate = `echo "$1" | grep '.*-.*-'`
|
||||
set mytime = `echo "$2" | grep ':'`
|
||||
if ( "$mydate" != "" && "$mytime" != "" ) then
|
||||
shift
|
||||
shift
|
||||
if ( -x ./gtasUtil ) then
|
||||
set gtasUtil = ./gtasUtil
|
||||
else if ( -x $mydir/gtasUtil ) then
|
||||
set gtasUtil = $mydir/gtasUtil
|
||||
else if ( -x $fxa_home/src/dm/point/gtasUtil ) then
|
||||
set gtasUtil = $fxa_home/src/dm/point/gtasUtil
|
||||
else if ( -x $FXA_HOME/bin/gtasUtil ) then
|
||||
set gtasUtil = $FXA_HOME/bin/gtasUtil
|
||||
else
|
||||
bash -c "echo could not find gtasUtil executable 1>&2"
|
||||
exit
|
||||
endif
|
||||
set aaa = `$gtasUtil = $mydate $mytime -60`
|
||||
set bbb = `$gtasUtil = $mydate $mytime 60`
|
||||
endif
|
||||
set aaa = `$gtasUtil = $mydate $mytime -60`
|
||||
set bbb = `$gtasUtil = $mydate $mytime 60`
|
||||
|
||||
|
||||
#
|
||||
# Modify the text of special tags in stub to create finalized script.
|
||||
#
|
||||
set binary = no
|
||||
set specpy = /tmp/a2invrad${$}.py
|
||||
rm -rf $specpy >& /dev/null
|
||||
touch $specpy
|
||||
chmod 775 $specpy
|
||||
if ( "$rrr" == "" ) then
|
||||
cat $stubpy | grep -v "KKKK" | grep -v "MMMM" | grep -v "EEEE" | \
|
||||
sed "s/AAAAA/$aaa/g" | sed "s/BBBBB/$bbb/g" | \
|
||||
grep -v 'Code")' | grep -v 'Time")' | grep -v 'Angle")' \
|
||||
>> $specpy
|
||||
else if ( "$1" == "" ) then
|
||||
cat $stubpy | sed "s/KKKK/$rrr/g" | grep -v "MMMM" | \
|
||||
sed "s/AAAAA/$aaa/g" | sed "s/BBBBB/$bbb/g" | grep -v 'icao")' | \
|
||||
sed 's/^.*EEEE.*$//g' | grep -v 'Time")' | grep -v 'Angle")' \
|
||||
>> $specpy
|
||||
else if ( "$1" == "+" ) then
|
||||
cat $stubpy | sed "s/KKKK/$rrr/g" | grep -v "MMMM" | \
|
||||
sed "s/AAAAA/$aaa/g" | sed "s/BBBBB/$bbb/g" | grep -v 'icao")' | \
|
||||
sed 's/^.*EEEE.*$//g' | grep -v 'Time")' | grep -v 'Angle")' \
|
||||
>> $specpy
|
||||
if ( -e ./msgCodeSeds.txt ) then
|
||||
set mctrans = $PWD/msgCodeSeds.txt
|
||||
else if ( -e $mydir/msgCodeSeds.txt ) then
|
||||
set mctrans = $mydir/msgCodeSeds.txt
|
||||
else if ( -e $fxa_home/src/dm/radar/msgCodeSeds.txt ) then
|
||||
set mctrans = $fxa_home/src/dm/radar/msgCodeSeds.txt
|
||||
else if ( -e $FXA_HOME/data/msgCodeSeds.txt ) then
|
||||
set mctrans = $FXA_HOME/data/msgCodeSeds.txt
|
||||
else
|
||||
bash -c "echo could not find msgCodeSeds.txt 1>&2"
|
||||
exit
|
||||
endif
|
||||
set lastcmd = "sed -f $mctrans"
|
||||
else if ( "$2" == "" ) then
|
||||
cat $stubpy | sed "s/KKKK/$rrr/g" | sed "s/MMMM/$1/g" | \
|
||||
sed "s/AAAAA/$aaa/g" | sed "s/BBBBB/$bbb/g" | grep -v 'icao")' | \
|
||||
sed 's/EEEE/0.0/g' | grep -v 'Angle")' | grep -v 'Code")' \
|
||||
>> $specpy
|
||||
else if ( "$2" == "+" ) then
|
||||
cat $stubpy | sed "s/KKKK/$rrr/g" | sed "s/MMMM/$1/g" | \
|
||||
sed "s/AAAAA/$aaa/g" | sed "s/BBBBB/$bbb/g" | grep -v 'icao")' | \
|
||||
sed 's/^.*EEEE.*$//g' | grep -v 'Time")' | grep -v 'Code")' | \
|
||||
sed 's/true/primary/g' >> $specpy
|
||||
else
|
||||
cat $stubpy | sed "s/KKKK/$rrr/g" | sed "s/MMMM/$1/g" | \
|
||||
sed "s/AAAAA/$aaa/g" | sed "s/BBBBB/$bbb/g" | grep -v 'icao")' | \
|
||||
sed "s/EEEE/$2/g" | grep -v 'Code")' >> $specpy
|
||||
set binary = yes
|
||||
endif
|
||||
#
|
||||
# Submit the temporary python script stripping xml stuff, then remove it
|
||||
#
|
||||
if ( "$binary" == "yes" ) then
|
||||
cd $UE_BIN_PATH
|
||||
( uengine -r python < $specpy ) |& sed 's|.*</items>.*|@|g' | \
|
||||
grep -E 'attributes|@' | cut '-d"' -f4 | tr '\n' ' ' | tr '@' '\n' | \
|
||||
sed 's/00000.*$//g' | sed 's/^ *//g' | sed 's/ *$//g'
|
||||
else
|
||||
cd $UE_BIN_PATH
|
||||
( uengine -r python < $specpy ) |& grep attributes | cut '-d"' -f4 | \
|
||||
$lastcmd
|
||||
endif
|
||||
|
||||
if ( "$rmpy" == "yes" ) rm -rf $specpy >& /dev/null
|
||||
endif
|
||||
#
|
||||
# Modify the text of special tags in stub to create finalized script.
|
||||
#
|
||||
set binary = no
|
||||
set specpy = /tmp/a2invrad${$}.py
|
||||
rm -rf $specpy >& /dev/null
|
||||
touch $specpy
|
||||
chmod 775 $specpy
|
||||
set lastcmd = cat
|
||||
if ( "$rrr" == "" ) then
|
||||
cat $stubpy | grep -v "KKKK" | grep -v "MMMM" | grep -v "EEEE" | \
|
||||
sed "s/AAAAA/$aaa/g" | sed "s/BBBBB/$bbb/g" | \
|
||||
grep -v 'Code")' | grep -v 'Time")' | grep -v 'Angle")' \
|
||||
>> $specpy
|
||||
else if ( "$1" == "" ) then
|
||||
cat $stubpy | sed "s/KKKK/$rrr/g" | grep -v "MMMM" | \
|
||||
sed "s/AAAAA/$aaa/g" | sed "s/BBBBB/$bbb/g" | grep -v 'icao")' | \
|
||||
sed 's/^.*EEEE.*$//g' | grep -v 'Time")' | grep -v 'Angle")' \
|
||||
>> $specpy
|
||||
else if ( "$1" == "+" ) then
|
||||
cat $stubpy | sed "s/KKKK/$rrr/g" | grep -v "MMMM" | \
|
||||
sed "s/AAAAA/$aaa/g" | sed "s/BBBBB/$bbb/g" | grep -v 'icao")' | \
|
||||
sed 's/^.*EEEE.*$//g' | grep -v 'Time")' | grep -v 'Angle")' \
|
||||
>> $specpy
|
||||
if ( -e ./msgCodeSeds.txt ) then
|
||||
set mctrans = $PWD/msgCodeSeds.txt
|
||||
else if ( -e $mydir/msgCodeSeds.txt ) then
|
||||
set mctrans = $mydir/msgCodeSeds.txt
|
||||
else if ( -e $fxa_home/src/dm/radar/msgCodeSeds.txt ) then
|
||||
set mctrans = $fxa_home/src/dm/radar/msgCodeSeds.txt
|
||||
else if ( -e $FXA_HOME/data/msgCodeSeds.txt ) then
|
||||
set mctrans = $FXA_HOME/data/msgCodeSeds.txt
|
||||
else
|
||||
bash -c "echo could not find msgCodeSeds.txt 1>&2"
|
||||
exit
|
||||
endif
|
||||
set lastcmd = "sed -f $mctrans"
|
||||
else if ( "$2" == "" ) then
|
||||
cat $stubpy | sed "s/KKKK/$rrr/g" | sed "s/MMMM/$1/g" | \
|
||||
sed "s/AAAAA/$aaa/g" | sed "s/BBBBB/$bbb/g" | grep -v 'icao")' | \
|
||||
sed 's/EEEE/0.0/g' | grep -v 'Angle")' | grep -v 'Code")' \
|
||||
>> $specpy
|
||||
else if ( "$2" == "+" ) then
|
||||
cat $stubpy | sed "s/KKKK/$rrr/g" | sed "s/MMMM/$1/g" | \
|
||||
sed "s/AAAAA/$aaa/g" | sed "s/BBBBB/$bbb/g" | grep -v 'icao")' | \
|
||||
sed 's/^.*EEEE.*$//g' | grep -v 'Time")' | grep -v 'Code")' | \
|
||||
sed 's/true/primary/g' >> $specpy
|
||||
else
|
||||
cat $stubpy | sed "s/KKKK/$rrr/g" | sed "s/MMMM/$1/g" | \
|
||||
sed "s/AAAAA/$aaa/g" | sed "s/BBBBB/$bbb/g" | grep -v 'icao")' | \
|
||||
sed "s/EEEE/$2/g" | grep -v 'Code")' >> $specpy
|
||||
set binary = yes
|
||||
endif
|
||||
#
|
||||
# Submit the temporary python script stripping xml stuff, then remove it
|
||||
#
|
||||
if ( "$method" == "daf" ) then
|
||||
/awips2/python/bin/python $specpy
|
||||
else if ( "$binary" == "yes" ) then
|
||||
cd $UE_BIN_PATH
|
||||
( uengine -r python < $specpy ) |& sed 's|.*</items>.*|@|g' | \
|
||||
grep -E 'attributes|@' | cut '-d"' -f4 | tr '\n' ' ' | tr '@' '\n' | \
|
||||
sed 's/00000.*$//g' | sed 's/^ *//g' | sed 's/ *$//g'
|
||||
else
|
||||
cd $UE_BIN_PATH
|
||||
( uengine -r python < $specpy ) |& grep attributes | cut '-d"' -f4 | \
|
||||
$lastcmd
|
||||
endif
|
||||
if ( "$rmpy" == "yes" ) rm -rf $specpy >& /dev/null
|
||||
#
|
||||
|
||||
|
|
|
@ -1,15 +1,172 @@
|
|||
import CatalogQuery
|
||||
##
|
||||
# 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.
|
||||
##
|
||||
|
||||
query = CatalogQuery.CatalogQuery("radar")
|
||||
query.addConstraint("icao","KKKK","=")
|
||||
query.addConstraint("productCode","MMMM","in")
|
||||
query.addConstraint("primaryElevationAngle","EEEE","=")
|
||||
query.addConstraint("dataTime","AAAAA",">=")
|
||||
query.addConstraint("dataTime","BBBBB","<=")
|
||||
# Gets inventories of radar grid data from the A-II database. The data is
|
||||
# output to stdout as ASCII. Inventories are limited to Radial and Raster
|
||||
# formats.
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# 2014-10-27 3600 nabowle Initial modification. Convert to DAF.
|
||||
#
|
||||
|
||||
query.setDistinctField("icao")
|
||||
query.setDistinctField("dataTime")
|
||||
query.setDistinctField("trueElevationAngle")
|
||||
query.setDistinctField("productCode")
|
||||
import argparse
|
||||
import numpy
|
||||
import sys
|
||||
|
||||
return query.executeWrapped()
|
||||
from datetime import datetime
|
||||
from datetime import timedelta
|
||||
|
||||
from ufpy.dataaccess import DataAccessLayer
|
||||
from dynamicserialize.dstypes.com.raytheon.uf.common.time import TimeRange
|
||||
from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.level import Level
|
||||
|
||||
|
||||
def get_args():
|
||||
parser = argparse.ArgumentParser(conflict_handler="resolve")
|
||||
parser.add_argument("-h", action="store", dest="host",
|
||||
help="EDEX server hostname (optional)", metavar="hostname")
|
||||
|
||||
parser.add_argument("--icao", action="store", dest="icao",
|
||||
help="The ICAO (optional)", metavar="icao")
|
||||
|
||||
parser.add_argument("--productCode", action="store", dest="productCode",
|
||||
help="Product Code (optional)", metavar="productCode")
|
||||
|
||||
parser.add_argument("--angle", action="store", dest="angle", type=float,
|
||||
help="The Primary Elevation Angle (optional)",
|
||||
metavar="angle")
|
||||
|
||||
parser.add_argument("--date", action="store", dest="date",
|
||||
help="A date to find data within a minute of. (optional, --time required if provided)",
|
||||
metavar="YYYY-MM-DD")
|
||||
|
||||
parser.add_argument("--time", action="store", dest="time",
|
||||
help="A time to find data within a minute of. (optional, --date required if provided)",
|
||||
metavar="HH:MM")
|
||||
|
||||
parser.add_argument("--outputDate", action="store_true",
|
||||
dest="outputDate", help="Output the datetime (optional)")
|
||||
|
||||
parser.add_argument("--outputTrue", action="store_const",
|
||||
dest="outputAngle", const="true",
|
||||
help="Output true elevation angle, if relevant. (optional,"
|
||||
+ " exclusive with --outputPrimary)")
|
||||
|
||||
parser.add_argument("--outputPrimary", action="store_const",
|
||||
dest="outputAngle", const="primary",
|
||||
help="Output primary elevation angle, if relevant. "
|
||||
+ "(optional, exclusive with --outputTrue)")
|
||||
return parser.parse_args()
|
||||
|
||||
def main():
|
||||
user_args = get_args()
|
||||
|
||||
if user_args.host:
|
||||
DataAccessLayer.changeEDEXHost(user_args.host)
|
||||
|
||||
if (user_args.date and not user_args.time) or (user_args.time and not user_args.date):
|
||||
print >> sys.stderr, "date and time must be provided together"
|
||||
return
|
||||
|
||||
# If a time range is provided, results will be filtered based on available times
|
||||
timeRange = None
|
||||
if user_args.date:
|
||||
midRange = datetime.strptime( user_args.date + " " + user_args.time, "%Y-%m-%d %H:%M")
|
||||
beginRange = midRange - timedelta(0, 60)
|
||||
endRange = midRange + timedelta(0, 60)
|
||||
timeRange = TimeRange(beginRange, endRange)
|
||||
|
||||
req = create_request(user_args)
|
||||
if user_args.icao:
|
||||
if user_args.productCode: # retrieve available times and/or true or primary elevation angles
|
||||
if timeRange:
|
||||
tr = timeRange
|
||||
else:
|
||||
tr = []
|
||||
lines = set()
|
||||
radars = DataAccessLayer.getGridData(req, tr)
|
||||
for radar in radars:
|
||||
line = ""
|
||||
if user_args.outputDate:
|
||||
line = str(radar.getDataTime()) + ".0"
|
||||
if user_args.outputAngle:
|
||||
line += " "
|
||||
if user_args.outputAngle == "true":
|
||||
line += "%.1f"%float(radar.getLocationName().split("_")[1])
|
||||
elif user_args.outputAngle == "primary":
|
||||
line += radar.getLevel()[0:3] #Trim "TILT"
|
||||
lines.add(line)
|
||||
msg = "\n".join(lines)
|
||||
else: #retrieve available product codes
|
||||
unfiltered = DataAccessLayer.getAvailableParameters(req)
|
||||
productCodes = []
|
||||
for parameter in unfiltered: #filter to just productCodes
|
||||
if parameter.isdigit():
|
||||
productCodes.append(parameter)
|
||||
if timeRange:
|
||||
unfiltered = productCodes
|
||||
productCodes = []
|
||||
for productCode in unfiltered:
|
||||
req = create_request(user_args)
|
||||
req.setParameters(productCode)
|
||||
if data_in_time_range(req, timeRange):
|
||||
productCodes.append(productCode)
|
||||
msg = "\n".join(productCodes)
|
||||
|
||||
else: # retrieve available icaos
|
||||
icaos = DataAccessLayer.getAvailableLocationNames(req)
|
||||
if timeRange:
|
||||
unfiltered = icaos
|
||||
icaos = []
|
||||
for icao in unfiltered:
|
||||
req = create_request(user_args)
|
||||
req.addIdentifier("icao", icao)
|
||||
if data_in_time_range(req, timeRange):
|
||||
icaos.append(icao)
|
||||
|
||||
msg = "\n".join(icaos)
|
||||
|
||||
print msg.strip()
|
||||
|
||||
def create_request(user_args):
|
||||
req = DataAccessLayer.newDataRequest("radar")
|
||||
if user_args.icao:
|
||||
req.addIdentifier("icao", user_args.icao)
|
||||
if user_args.productCode:
|
||||
req.setParameters(user_args.productCode)
|
||||
if user_args.angle is not None:
|
||||
level = Level()
|
||||
level.setLevelonevalue(user_args.angle)
|
||||
req.setLevels(level)
|
||||
|
||||
return req
|
||||
|
||||
def data_in_time_range(req, timeRange):
|
||||
times = DataAccessLayer.getAvailableTimes(req)
|
||||
for time in times:
|
||||
if timeRange.contains(time.getValidPeriod()):
|
||||
return True
|
||||
return False
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
|
Loading…
Add table
Reference in a new issue