Omaha #3600 Update radar inventory scripts to DAF
Change-Id: I9b410e61db6dc9edd60cd1c0ec225bf3aa0daf51 Former-commit-id:ac8c4c17f2
[formerly5a6aec3edc
] [formerly6966d7d7c5
] [formerlyd93009bd8d
[formerly6966d7d7c5
[formerly 1f780ff45f48936320853c793a4a5e85aa4ed588]]] Former-commit-id:d93009bd8d
Former-commit-id: a25650518df9f25adda2190246a9f71c55325686 [formerlyd3f7d1216b
] Former-commit-id:c59033f918
This commit is contained in:
parent
d05845f539
commit
90501c9615
2 changed files with 338 additions and 113 deletions
|
@ -1,4 +1,23 @@
|
||||||
#!/bin/csh
|
#!/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
|
# 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.
|
# from the A-II database. The data is output to stdout as ASCII.
|
||||||
|
@ -51,7 +70,18 @@
|
||||||
# with a time inventory, then these are the actual tilt angle of the
|
# with a time inventory, then these are the actual tilt angle of the
|
||||||
# data received.
|
# 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
|
set rmpy = yes
|
||||||
if ( "$1" == "p" ) then
|
if ( "$1" == "p" ) then
|
||||||
set rmpy = no
|
set rmpy = no
|
||||||
|
@ -89,12 +119,53 @@ else
|
||||||
bash -c "echo could not find a2invradStub.py 1>&2"
|
bash -c "echo could not find a2invradStub.py 1>&2"
|
||||||
exit
|
exit
|
||||||
endif
|
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.
|
# Determine if we are using the data access framework or the uEngine.
|
||||||
#
|
#
|
||||||
grep DataAccessLayer $stubpy >& /dev/null
|
grep DataAccessLayer $stubpy >& /dev/null
|
||||||
if ( $status == 0 ) then
|
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
|
else
|
||||||
#
|
#
|
||||||
# Set up the environment we need to run the UEngine.
|
# Set up the environment we need to run the UEngine.
|
||||||
|
@ -113,20 +184,16 @@ else
|
||||||
exit
|
exit
|
||||||
endif
|
endif
|
||||||
source $ueenv
|
source $ueenv
|
||||||
endif
|
|
||||||
#
|
#
|
||||||
#
|
# Set range of time we will request this information over, will default to
|
||||||
set rrr = `echo $1 | grep '[a-z][a-z][a-z][a-z]'`
|
# essentially forever.
|
||||||
if ( "$rrr" != "" ) shift
|
#
|
||||||
#
|
set aaa = "1970-01-01 00:00:00.0"
|
||||||
# Set range of time we will request this information over, will default to
|
set bbb = "2038-01-01 00:00:00.0"
|
||||||
# essentially forever.
|
set mydate = `echo "$1" | grep '.*-.*-'`
|
||||||
#
|
set mytime = `echo "$2" | grep ':'`
|
||||||
set aaa = "1970-01-01 00:00:00.0"
|
if ( "$mydate" != "" && "$mytime" != "" ) then
|
||||||
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
|
||||||
shift
|
shift
|
||||||
if ( -x ./gtasUtil ) then
|
if ( -x ./gtasUtil ) then
|
||||||
|
@ -143,27 +210,28 @@ if ( "$mydate" != "" && "$mytime" != "" ) then
|
||||||
endif
|
endif
|
||||||
set aaa = `$gtasUtil = $mydate $mytime -60`
|
set aaa = `$gtasUtil = $mydate $mytime -60`
|
||||||
set bbb = `$gtasUtil = $mydate $mytime 60`
|
set bbb = `$gtasUtil = $mydate $mytime 60`
|
||||||
endif
|
endif
|
||||||
#
|
|
||||||
# Modify the text of special tags in stub to create finalized script.
|
|
||||||
#
|
#
|
||||||
set binary = no
|
# Modify the text of special tags in stub to create finalized script.
|
||||||
set specpy = /tmp/a2invrad${$}.py
|
#
|
||||||
rm -rf $specpy >& /dev/null
|
set binary = no
|
||||||
touch $specpy
|
set specpy = /tmp/a2invrad${$}.py
|
||||||
chmod 775 $specpy
|
rm -rf $specpy >& /dev/null
|
||||||
set lastcmd = cat
|
touch $specpy
|
||||||
if ( "$rrr" == "" ) then
|
chmod 775 $specpy
|
||||||
|
if ( "$rrr" == "" ) then
|
||||||
cat $stubpy | grep -v "KKKK" | grep -v "MMMM" | grep -v "EEEE" | \
|
cat $stubpy | grep -v "KKKK" | grep -v "MMMM" | grep -v "EEEE" | \
|
||||||
sed "s/AAAAA/$aaa/g" | sed "s/BBBBB/$bbb/g" | \
|
sed "s/AAAAA/$aaa/g" | sed "s/BBBBB/$bbb/g" | \
|
||||||
grep -v 'Code")' | grep -v 'Time")' | grep -v 'Angle")' \
|
grep -v 'Code")' | grep -v 'Time")' | grep -v 'Angle")' \
|
||||||
>> $specpy
|
>> $specpy
|
||||||
else if ( "$1" == "" ) then
|
else if ( "$1" == "" ) then
|
||||||
cat $stubpy | sed "s/KKKK/$rrr/g" | grep -v "MMMM" | \
|
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/AAAAA/$aaa/g" | sed "s/BBBBB/$bbb/g" | grep -v 'icao")' | \
|
||||||
sed 's/^.*EEEE.*$//g' | grep -v 'Time")' | grep -v 'Angle")' \
|
sed 's/^.*EEEE.*$//g' | grep -v 'Time")' | grep -v 'Angle")' \
|
||||||
>> $specpy
|
>> $specpy
|
||||||
else if ( "$1" == "+" ) then
|
else if ( "$1" == "+" ) then
|
||||||
cat $stubpy | sed "s/KKKK/$rrr/g" | grep -v "MMMM" | \
|
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/AAAAA/$aaa/g" | sed "s/BBBBB/$bbb/g" | grep -v 'icao")' | \
|
||||||
sed 's/^.*EEEE.*$//g' | grep -v 'Time")' | grep -v 'Angle")' \
|
sed 's/^.*EEEE.*$//g' | grep -v 'Time")' | grep -v 'Angle")' \
|
||||||
|
@ -181,36 +249,36 @@ else if ( "$1" == "+" ) then
|
||||||
exit
|
exit
|
||||||
endif
|
endif
|
||||||
set lastcmd = "sed -f $mctrans"
|
set lastcmd = "sed -f $mctrans"
|
||||||
else if ( "$2" == "" ) then
|
else if ( "$2" == "" ) then
|
||||||
cat $stubpy | sed "s/KKKK/$rrr/g" | sed "s/MMMM/$1/g" | \
|
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/AAAAA/$aaa/g" | sed "s/BBBBB/$bbb/g" | grep -v 'icao")' | \
|
||||||
sed 's/EEEE/0.0/g' | grep -v 'Angle")' | grep -v 'Code")' \
|
sed 's/EEEE/0.0/g' | grep -v 'Angle")' | grep -v 'Code")' \
|
||||||
>> $specpy
|
>> $specpy
|
||||||
else if ( "$2" == "+" ) then
|
else if ( "$2" == "+" ) then
|
||||||
cat $stubpy | sed "s/KKKK/$rrr/g" | sed "s/MMMM/$1/g" | \
|
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/AAAAA/$aaa/g" | sed "s/BBBBB/$bbb/g" | grep -v 'icao")' | \
|
||||||
sed 's/^.*EEEE.*$//g' | grep -v 'Time")' | grep -v 'Code")' | \
|
sed 's/^.*EEEE.*$//g' | grep -v 'Time")' | grep -v 'Code")' | \
|
||||||
sed 's/true/primary/g' >> $specpy
|
sed 's/true/primary/g' >> $specpy
|
||||||
else
|
else
|
||||||
cat $stubpy | sed "s/KKKK/$rrr/g" | sed "s/MMMM/$1/g" | \
|
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/AAAAA/$aaa/g" | sed "s/BBBBB/$bbb/g" | grep -v 'icao")' | \
|
||||||
sed "s/EEEE/$2/g" | grep -v 'Code")' >> $specpy
|
sed "s/EEEE/$2/g" | grep -v 'Code")' >> $specpy
|
||||||
set binary = yes
|
set binary = yes
|
||||||
endif
|
endif
|
||||||
#
|
#
|
||||||
# Submit the temporary python script stripping xml stuff, then remove it
|
# Submit the temporary python script stripping xml stuff, then remove it
|
||||||
#
|
#
|
||||||
if ( "$method" == "daf" ) then
|
if ( "$binary" == "yes" ) then
|
||||||
/awips2/python/bin/python $specpy
|
|
||||||
else if ( "$binary" == "yes" ) then
|
|
||||||
cd $UE_BIN_PATH
|
cd $UE_BIN_PATH
|
||||||
( uengine -r python < $specpy ) |& sed 's|.*</items>.*|@|g' | \
|
( uengine -r python < $specpy ) |& sed 's|.*</items>.*|@|g' | \
|
||||||
grep -E 'attributes|@' | cut '-d"' -f4 | tr '\n' ' ' | tr '@' '\n' | \
|
grep -E 'attributes|@' | cut '-d"' -f4 | tr '\n' ' ' | tr '@' '\n' | \
|
||||||
sed 's/00000.*$//g' | sed 's/^ *//g' | sed 's/ *$//g'
|
sed 's/00000.*$//g' | sed 's/^ *//g' | sed 's/ *$//g'
|
||||||
else
|
else
|
||||||
cd $UE_BIN_PATH
|
cd $UE_BIN_PATH
|
||||||
( uengine -r python < $specpy ) |& grep attributes | cut '-d"' -f4 | \
|
( uengine -r python < $specpy ) |& grep attributes | cut '-d"' -f4 | \
|
||||||
$lastcmd
|
$lastcmd
|
||||||
|
endif
|
||||||
|
|
||||||
|
if ( "$rmpy" == "yes" ) rm -rf $specpy >& /dev/null
|
||||||
endif
|
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")
|
# Gets inventories of radar grid data from the A-II database. The data is
|
||||||
query.addConstraint("icao","KKKK","=")
|
# output to stdout as ASCII. Inventories are limited to Radial and Raster
|
||||||
query.addConstraint("productCode","MMMM","in")
|
# formats.
|
||||||
query.addConstraint("primaryElevationAngle","EEEE","=")
|
#
|
||||||
query.addConstraint("dataTime","AAAAA",">=")
|
# SOFTWARE HISTORY
|
||||||
query.addConstraint("dataTime","BBBBB","<=")
|
#
|
||||||
|
# Date Ticket# Engineer Description
|
||||||
|
# ------------ ---------- ----------- --------------------------
|
||||||
|
# 2014-10-27 3600 nabowle Initial modification. Convert to DAF.
|
||||||
|
#
|
||||||
|
|
||||||
query.setDistinctField("icao")
|
import argparse
|
||||||
query.setDistinctField("dataTime")
|
import numpy
|
||||||
query.setDistinctField("trueElevationAngle")
|
import sys
|
||||||
query.setDistinctField("productCode")
|
|
||||||
|
|
||||||
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