Omaha #3595 Adding original, unmodified raobs scripts.
Change-Id: I466b5b89790bff9887022a35deda7c9f9871bc80 Former-commit-id:5e5256fca1
[formerly104b47daa2
] [formerly4241eab8ac
[formerly d6793fc17662a0ea0d5814524f4e641e1524ebde]] Former-commit-id:4241eab8ac
Former-commit-id:aa36802cdf
This commit is contained in:
parent
57fac3e239
commit
939e8a4736
3 changed files with 643 additions and 0 deletions
290
pythonPackages/msaslaps/common/wmoToNameRaob.txt
Executable file
290
pythonPackages/msaslaps/common/wmoToNameRaob.txt
Executable file
|
@ -0,0 +1,290 @@
|
|||
s/^04202,/BGTL,/g
|
||||
s/^08594,/GVAC,/g
|
||||
s/^21824,/RUTS,/g
|
||||
s/^25563,/UHMA,/g
|
||||
s/^25594,/UHMD,/g
|
||||
s/^25913,/UHMM,/g
|
||||
s/^31329,/UHPB,/g
|
||||
s/^31735,/RUHB,/g
|
||||
s/^31960,/UHWW,/g
|
||||
s/^32150,/RUSH,/g
|
||||
s/^32540,/UHPP,/g
|
||||
s/^46692,/RCSS,/g
|
||||
s/^46697,/RCGM,/g
|
||||
s/^46747,/RCMJ,/g
|
||||
s/^47058,/ZKKK,/g
|
||||
s/^47110,/RKSS,/g
|
||||
s/^47122,/RKSO,/g
|
||||
s/^47138,/RKTH,/g
|
||||
s/^47158,/RKJJ,/g
|
||||
s/^47187,/RKPM,/g
|
||||
s/^47401,/RJCW,/g
|
||||
s/^47412,/RJCO,/g
|
||||
s/^47580,/RJSM,/g
|
||||
s/^47582,/RJSK,/g
|
||||
s/^47590,/RJSS,/g
|
||||
s/^47678,/RJTH,/g
|
||||
s/^47681,/RJNH,/g
|
||||
s/^47808,/RJFF,/g
|
||||
s/^47827,/RJFK,/g
|
||||
s/^47881,/RJOS,/g
|
||||
s/^47918,/ROIG,/g
|
||||
s/^47931,/RODN,/g
|
||||
s/^47936,/ROAH,/g
|
||||
s/^47945,/ROMD,/g
|
||||
s/^47971,/RJAO,/g
|
||||
s/^47981,/RJAW,/g
|
||||
s/^47991,/RJAM,/g
|
||||
s/^50745,/ZYQQ,/g
|
||||
s/^50953,/ZYHB,/g
|
||||
s/^54161,/ZYCC,/g
|
||||
s/^54342,/ZYYY,/g
|
||||
s/^54662,/ZYTL,/g
|
||||
s/^54857,/ZSQD,/g
|
||||
s/^58457,/ZSHC,/g
|
||||
s/^61641,/GOOY,/g
|
||||
s/^61902,/FHAW,/g
|
||||
s/^61967,/DJDG,/g
|
||||
s/^70026,/PABR,/g
|
||||
s/^70086,/PABA,/g
|
||||
s/^70133,/PAOT,/g
|
||||
s/^70200,/PAOM,/g
|
||||
s/^70219,/PABE,/g
|
||||
s/^70231,/PAMC,/g
|
||||
s/^70261,/PAFA,/g
|
||||
s/^70273,/PAFC,/g
|
||||
s/^70308,/PASN,/g
|
||||
s/^70316,/PACB,/g
|
||||
s/^70326,/PAKN,/g
|
||||
s/^70350,/PADQ,/g
|
||||
s/^70361,/PAYA,/g
|
||||
s/^70398,/PANT,/g
|
||||
s/^70414,/PASY,/g
|
||||
s/^71043,/CYVQ,/g
|
||||
s/^71051,/CWSY,/g
|
||||
s/^71081,/CYUX,/g
|
||||
s/^71082,/CYLT,/g
|
||||
s/^71109,/CYZT,/g
|
||||
s/^71119,/CWEG,/g
|
||||
s/^71120,/CYOD,/g
|
||||
s/^71121,/CYED,/g
|
||||
s/^71123,/CYEG,/g
|
||||
s/^71203,/CYLW,/g
|
||||
s/^71396,/CYHZ,/g
|
||||
s/^71399,/CWOS,/g
|
||||
s/^71600,/CWSA,/g
|
||||
s/^71603,/CYQI,/g
|
||||
s/^71624,/CYYZ,/g
|
||||
s/^71627,/CYUL,/g
|
||||
s/^71701,/CYCX,/g
|
||||
s/^71722,/CWMW,/g
|
||||
s/^71799,/CYYJ,/g
|
||||
s/^71801,/CYYT,/g
|
||||
s/^71807,/CWAR,/g
|
||||
s/^71811,/CYZV,/g
|
||||
s/^71815,/CYJT,/g
|
||||
s/^71816,/CYYR,/g
|
||||
s/^71823,/CYAH,/g
|
||||
s/^71836,/CYMO,/g
|
||||
s/^71845,/CWPL,/g
|
||||
s/^71853,/CWLO,/g
|
||||
s/^71867,/CYQD,/g
|
||||
s/^71879,/CYXD,/g
|
||||
s/^71896,/CYXS,/g
|
||||
s/^71906,/CYVP,/g
|
||||
s/^71907,/CYPH,/g
|
||||
s/^71909,/CYFB,/g
|
||||
s/^71913,/CYYQ,/g
|
||||
s/^71915,/CYZS,/g
|
||||
s/^71917,/CWEU,/g
|
||||
s/^71924,/CYRB,/g
|
||||
s/^71925,/CYCB,/g
|
||||
s/^71926,/CYBK,/g
|
||||
s/^71934,/CYSM,/g
|
||||
s/^71945,/CYYE,/g
|
||||
s/^71957,/CYEV,/g
|
||||
s/^71964,/CYXY,/g
|
||||
s/^72201,/KKEY,/g
|
||||
s/^72202,/KMFL,/g
|
||||
s/^72206,/KJAX,/g
|
||||
s/^72208,/KCHS,/g
|
||||
s/^72210,/KTBW,/g
|
||||
s/^72214,/KTAE,/g
|
||||
s/^72215,/KFFC,/g
|
||||
s/^72221,/KVPS,/g
|
||||
s/^72230,/KBMX,/g
|
||||
s/^72233,/KLIX,/g
|
||||
s/^72235,/KJAN,/g
|
||||
s/^72240,/KLCH,/g
|
||||
s/^72248,/KSHV,/g
|
||||
s/^72249,/KFWD,/g
|
||||
s/^72250,/KBRO,/g
|
||||
s/^72251,/KCRP,/g
|
||||
s/^72257,/KHLR,/g
|
||||
s/^72261,/KDRT,/g
|
||||
s/^72265,/KMAF,/g
|
||||
s/^72269,/KWSD,/g
|
||||
s/^72274,/KTWC,/g
|
||||
s/^72280,/KYUM,/g
|
||||
s/^72291,/KNSI,/g
|
||||
s/^72293,/KNKX,/g
|
||||
s/^72305,/KMHX,/g
|
||||
s/^72317,/KGSO,/g
|
||||
s/^72318,/KRNK,/g
|
||||
s/^72327,/KOHX,/g
|
||||
s/^72340,/KLZK,/g
|
||||
s/^72357,/KOUN,/g
|
||||
s/^72363,/KAMA,/g
|
||||
s/^72364,/KEPZ,/g
|
||||
s/^72365,/KABQ,/g
|
||||
s/^72376,/KFGZ,/g
|
||||
s/^72381,/KEDW,/g
|
||||
s/^72386,/KLAS,/g
|
||||
s/^72387,/KDRA,/g
|
||||
s/^72391,/KNTD,/g
|
||||
s/^72393,/KVBG,/g
|
||||
s/^72402,/KWAL,/g
|
||||
s/^72403,/KLWX,/g
|
||||
s/^72426,/KILN,/g
|
||||
s/^72440,/KSGF,/g
|
||||
s/^72451,/KDDC,/g
|
||||
s/^72456,/KTOP,/g
|
||||
s/^72469,/KDNR,/g
|
||||
s/^72476,/KGJT,/g
|
||||
s/^72489,/KREV,/g
|
||||
s/^72493,/KOAK,/g
|
||||
s/^72501,/KOKX,/g
|
||||
s/^72518,/KALY,/g
|
||||
s/^72520,/KPBZ,/g
|
||||
s/^72528,/KBUF,/g
|
||||
s/^72558,/KOAX,/g
|
||||
s/^72562,/KLBF,/g
|
||||
s/^72572,/KSLC,/g
|
||||
s/^72582,/KLKN,/g
|
||||
s/^72597,/KMFR,/g
|
||||
s/^72632,/KDTX,/g
|
||||
s/^72634,/KAPX,/g
|
||||
s/^72645,/KGRB,/g
|
||||
s/^72649,/KMPX,/g
|
||||
s/^72659,/KABR,/g
|
||||
s/^72662,/KUNR,/g
|
||||
s/^72672,/KRIW,/g
|
||||
s/^72681,/KBOI,/g
|
||||
s/^72694,/KSLE,/g
|
||||
s/^72712,/KCAR,/g
|
||||
s/^72747,/KINL,/g
|
||||
s/^72764,/KBIS,/g
|
||||
s/^72768,/KGGW,/g
|
||||
s/^72776,/KTFX,/g
|
||||
s/^72786,/KOTX,/g
|
||||
s/^72797,/KUIL,/g
|
||||
s/^74002,/KAPG,/g
|
||||
s/^74004,/K1Y7,/g
|
||||
s/^74005,/K1Y8,/g
|
||||
s/^74006,/K1Y9,/g
|
||||
s/^74389,/KGYX,/g
|
||||
s/^74455,/KDVN,/g
|
||||
s/^74494,/KCHH,/g
|
||||
s/^74560,/KILX,/g
|
||||
s/^74626,/KPSR,/g
|
||||
s/^74794,/KXMR,/g
|
||||
s/^76151,/MILS,/g
|
||||
s/^76225,/MMCU,/g
|
||||
s/^76256,/MMGM,/g
|
||||
s/^76342,/MMOV,/g
|
||||
s/^76361,/MLMM,/g
|
||||
s/^76382,/MTRC,/g
|
||||
s/^76394,/MMMY,/g
|
||||
s/^76405,/MLAP,/g
|
||||
s/^76458,/MMMZ,/g
|
||||
s/^76491,/MCVM,/g
|
||||
s/^76499,/MSOT,/g
|
||||
s/^76548,/MTAM,/g
|
||||
s/^76612,/MMGL,/g
|
||||
s/^76644,/MMMD,/g
|
||||
s/^76649,/MCZM,/g
|
||||
s/^76654,/MMZO,/g
|
||||
s/^76665,/MMOR,/g
|
||||
s/^76679,/MMMX,/g
|
||||
s/^76680,/MMDF,/g
|
||||
s/^76692,/MMVR,/g
|
||||
s/^76723,/MISC,/g
|
||||
s/^76749,/MCME,/g
|
||||
s/^76805,/MACA,/g
|
||||
s/^76830,/MIZT,/g
|
||||
s/^76840,/MARR,/g
|
||||
s/^76904,/MTAP,/g
|
||||
s/^78016,/TXKF,/g
|
||||
s/^78073,/MYNN,/g
|
||||
s/^78367,/MUGM,/g
|
||||
s/^78384,/MKCG,/g
|
||||
s/^78397,/MKJP,/g
|
||||
s/^78486,/MDSD,/g
|
||||
s/^78526,/TJSJ,/g
|
||||
s/^78583,/MZBZ,/g
|
||||
s/^78806,/MPHO,/g
|
||||
s/^78808,/MABK,/g
|
||||
s/^78866,/MACM,/g
|
||||
s/^78897,/TFFR,/g
|
||||
s/^78954,/MKPB,/g
|
||||
s/^78970,/MKPP,/g
|
||||
s/^78988,/MACC,/g
|
||||
s/^80001,/MCSP,/g
|
||||
s/^80035,/SKRH,/g
|
||||
s/^81405,/SOCA,/g
|
||||
s/^91066,/PMDY,/g
|
||||
s/^91165,/PHLI,/g
|
||||
s/^91212,/PGUM,/g
|
||||
s/^91217,/PGAC,/g
|
||||
s/^91218,/PGUA,/g
|
||||
s/^91245,/PWAK,/g
|
||||
s/^91250,/PKMA,/g
|
||||
s/^91275,/PJON,/g
|
||||
s/^91285,/PHTO,/g
|
||||
s/^91334,/PTKK,/g
|
||||
s/^91348,/PTPN,/g
|
||||
s/^91366,/PKWA,/g
|
||||
s/^91376,/PMKJ,/g
|
||||
s/^91408,/PTRO,/g
|
||||
s/^91413,/PTYA,/g
|
||||
s/^91517,/AGGH,/g
|
||||
s/^91558,/NHHH,/g
|
||||
s/^91592,/NWWN,/g
|
||||
s/^91610,/NGTA,/g
|
||||
s/^91643,/NGFU,/g
|
||||
s/^91680,/NFFN,/g
|
||||
s/^91700,/PCIS,/g
|
||||
s/^91765,/NSTU,/g
|
||||
s/^91843,/NCRG,/g
|
||||
s/^91925,/NTMN,/g
|
||||
s/^91938,/NTTT,/g
|
||||
s/^91944,/NTTO,/g
|
||||
s/^93997,/NZRN,/g
|
||||
s/^94027,/AYLA,/g
|
||||
s/^94035,/AYPY,/g
|
||||
s/^94120,/YPDN,/g
|
||||
s/^94203,/YPBR,/g
|
||||
s/^94212,/AHHC,/g
|
||||
s/^94238,/YDTC,/g
|
||||
s/^94287,/YBCS,/g
|
||||
s/^94294,/YBTL,/g
|
||||
s/^94326,/YBAS,/g
|
||||
s/^94332,/YBMA,/g
|
||||
s/^94346,/YBLR,/g
|
||||
s/^94367,/YBMK,/g
|
||||
s/^94380,/YBGL,/g
|
||||
s/^94510,/YBCV,/g
|
||||
s/^94578,/YBBN,/g
|
||||
s/^94637,/YPKG,/g
|
||||
s/^94646,/YPFT,/g
|
||||
s/^94653,/YPCD,/g
|
||||
s/^94659,/YPWR,/g
|
||||
s/^94672,/YPAD,/g
|
||||
s/^94693,/YMMI,/g
|
||||
s/^94750,/YSNW,/g
|
||||
s/^94767,/YSSY,/g
|
||||
s/^94776,/YSWM,/g
|
||||
s/^94791,/YSCH,/g
|
||||
s/^94995,/ASLH,/g
|
||||
s/^94996,/YSNF,/g
|
||||
s/^98327,/RPMK,/g
|
95
pythonPackages/msaslaps/raobs/a2gtraob.csh
Normal file
95
pythonPackages/msaslaps/raobs/a2gtraob.csh
Normal file
|
@ -0,0 +1,95 @@
|
|||
#!/bin/csh
|
||||
#
|
||||
# A script wrapper around a UEngine call that is meant to get all available
|
||||
# raob data in the A-II database over a specified range of times. The data
|
||||
# is output to stdout as ASCII. This version can adapt to use a python
|
||||
# stub that calls the data access framework.
|
||||
#
|
||||
# Usage:
|
||||
#
|
||||
# a2gtraob.csh {p} yyyy-mm-dd hh:mm yyyy-mm-dd hh:mm
|
||||
#
|
||||
# The literal p flag is optional. The p flag means preserve
|
||||
# the final version of the python submitted to the UEngine instead of
|
||||
# cleaning it up. The path to the finalized python is /tmp/a2gtraobNNNNN.py
|
||||
# where NNNNN is a unix process id.
|
||||
#
|
||||
set rmpy = yes
|
||||
if ( "$1" == "p" ) then
|
||||
set rmpy = no
|
||||
shift
|
||||
endif
|
||||
#
|
||||
# Identify directory this script is in, will be one of the directories we
|
||||
# search for other files in.
|
||||
#
|
||||
set mydir = `dirname $0`
|
||||
set d1 = `echo $mydir | cut -c1`
|
||||
if ( "$mydir" == '.' ) then
|
||||
set mydir = $PWD
|
||||
else if ( "$d1" != "/" ) then
|
||||
set mydir = $PWD/$mydir
|
||||
endif
|
||||
set mydir = `(cd $mydir ; pwd)`
|
||||
if ( ! $?FXA_HOME ) set FXA_HOME = xxxx
|
||||
if ( ! $?FXA_LOCAL_SITE ) set FXA_LOCAL_SITE = xxxx
|
||||
if ( ! $?FXA_INGEST_SITE ) set FXA_INGEST_SITE = $FXA_LOCAL_SITE
|
||||
#
|
||||
# Locate python stub that we will modify to create the final python logic.
|
||||
#
|
||||
set stubbase = a2gtraobStub.py
|
||||
set stubpy = ./${stubbase}
|
||||
if ( $?FXA_HOME ) then
|
||||
if ( -e ./${stubbase} ) then
|
||||
set stubpy = ./${stubbase}
|
||||
else if ( -e $FXA_HOME/src/dm/raob/${stubbase} ) then
|
||||
set stubpy = $FXA_HOME/src/dm/raob/${stubbase}
|
||||
else if ( -e $FXA_HOME/bin/${stubbase} ) then
|
||||
set stubpy = $FXA_HOME/bin/${stubbase}
|
||||
endif
|
||||
endif
|
||||
#
|
||||
# Determine if we are using the data access framework or the uEngine.
|
||||
#
|
||||
grep DataAccessLayer $stubpy >& /dev/null
|
||||
if ( $status == 0 ) then
|
||||
set method = "daf"
|
||||
else
|
||||
#
|
||||
# Set up the environment we need to run the UEngine.
|
||||
#
|
||||
set method = "uengine"
|
||||
if ( -e ./UEngine.cshsrc ) then
|
||||
set ueenv = ./UEngine.cshsrc
|
||||
else if ( -e $mydir/UEngine.cshsrc ) then
|
||||
set ueenv = $mydir/UEngine.cshsrc
|
||||
else if ( -e $FXA_HOME/src/dm/point/UEngine.cshsrc ) then
|
||||
set ueenv = $FXA_HOME/src/dm/point/UEngine.cshsrc
|
||||
else if ( -e $FXA_HOME/bin/UEngine.cshsrc ) then
|
||||
set ueenv = $FXA_HOME/bin/UEngine.cshsrc
|
||||
else
|
||||
bash -c "echo could not find UEngine.cshsrc 1>&2"
|
||||
exit
|
||||
endif
|
||||
source $ueenv
|
||||
endif
|
||||
#
|
||||
set staInf = $PWD/wmoToNameRaob.txt
|
||||
if ( $?FXA_HOME ) then
|
||||
if ( -e $FXA_HOME/data/wmoToNameRaob.txt ) \
|
||||
set staInf = $FXA_HOME/data/wmoToNameRaob.txt
|
||||
endif
|
||||
set specpy = /tmp/a2gtraob${$}.py
|
||||
rm -rf $specpy >& /dev/null
|
||||
touch $specpy
|
||||
chmod 775 $specpy
|
||||
cat $stubpy | sed "s/BBBBB/$1 $2/g" | sed "s/EEEEE/$3 $4/g" > $specpy
|
||||
if ( "$method" == "daf" ) then
|
||||
/awips2/python/bin/python $specpy
|
||||
else
|
||||
cd $UE_BIN_PATH
|
||||
( uengine -r python < $specpy ) | grep -v '<' | sed -n '3,$p' | \
|
||||
sed -f $staInf
|
||||
endif
|
||||
if ( "$rmpy" == "yes" ) rm -rf $specpy >& /dev/null
|
||||
#
|
258
pythonPackages/msaslaps/raobs/a2gtraobStub.py
Normal file
258
pythonPackages/msaslaps/raobs/a2gtraobStub.py
Normal file
|
@ -0,0 +1,258 @@
|
|||
# pointDataQuery.stationName_lat_lon.py
|
||||
from com.raytheon.uf.common.message.response import ResponseMessageGeneric
|
||||
import PointDataQuery
|
||||
|
||||
# 1.
|
||||
pdq = PointDataQuery.PointDataQuery("bufrua")
|
||||
|
||||
# 3. the stuff we want returned to us in PointDataContainer
|
||||
reqPar = "wmoStaNum,validTime,rptType"
|
||||
reqPar += ",latitude,longitude,staElev"
|
||||
reqPar += ",numMand,prMan,htMan,tpMan,tdMan,wsMan,wdMan"
|
||||
reqPar += ",numSigT,prSigT,tpSigT,tdSigT"
|
||||
reqPar += ",numSigW,htSigW,wsSigW,wdSigW"
|
||||
reqPar += ",numTrop,prTrop,tpTrop,tdTrop,wsTrop,wdTrop"
|
||||
reqPar += ",numMwnd,prMaxW,wsMaxW,wdMaxW"
|
||||
pdq.setRequestedParameters(reqPar)
|
||||
|
||||
# 2. some constraints
|
||||
pdq.addConstraint("dataTime","BBBBB:00.0",">=")
|
||||
pdq.addConstraint("dataTime","EEEEE:00.0","<=")
|
||||
|
||||
# 5.1 execute() returns a ResponseMessageGeneric
|
||||
pdq.requestAllLevels()
|
||||
rmg = pdq.execute()
|
||||
|
||||
# 5.1, cont'd. RMG's payload is a PointDataContainer
|
||||
pdc = rmg.getContents()
|
||||
# return ResponseMessageGeneric(pdc)
|
||||
|
||||
# Get the data for each requested parameter.
|
||||
ista = pdc.getPointDataTypes().get("wmoStaNum").getIntData()
|
||||
tobs = pdc.getPointDataTypes().get("validTime").getLongData()
|
||||
rtyp = pdc.getPointDataTypes().get("rptType").getIntData()
|
||||
lat = pdc.getPointDataTypes().get("latitude").getFloatData()
|
||||
lon = pdc.getPointDataTypes().get("longitude").getFloatData()
|
||||
elev = pdc.getPointDataTypes().get("staElev").getFloatData()
|
||||
nman = pdc.getPointDataTypes().get("numMand").getIntData()
|
||||
pman = pdc.getPointDataTypes().get("prMan").getFloatData()
|
||||
zman = pdc.getPointDataTypes().get("htMan").getFloatData()
|
||||
tman = pdc.getPointDataTypes().get("tpMan").getFloatData()
|
||||
tdman = pdc.getPointDataTypes().get("tdMan").getFloatData()
|
||||
ffman = pdc.getPointDataTypes().get("wsMan").getFloatData()
|
||||
ddman = pdc.getPointDataTypes().get("wdMan").getFloatData()
|
||||
nsigt = pdc.getPointDataTypes().get("numSigT").getIntData()
|
||||
psigt = pdc.getPointDataTypes().get("prSigT").getFloatData()
|
||||
tsigt = pdc.getPointDataTypes().get("tpSigT").getFloatData()
|
||||
tdsigt = pdc.getPointDataTypes().get("tdSigT").getFloatData()
|
||||
nsigw = pdc.getPointDataTypes().get("numSigW").getIntData()
|
||||
zsigw = pdc.getPointDataTypes().get("htSigW").getFloatData()
|
||||
ffsigw = pdc.getPointDataTypes().get("wsSigW").getFloatData()
|
||||
ddsigw = pdc.getPointDataTypes().get("wdSigW").getFloatData()
|
||||
ntrop = pdc.getPointDataTypes().get("numTrop").getIntData()
|
||||
ptrop = pdc.getPointDataTypes().get("prTrop").getFloatData()
|
||||
ttrop = pdc.getPointDataTypes().get("tpTrop").getFloatData()
|
||||
tdtrop = pdc.getPointDataTypes().get("tdTrop").getFloatData()
|
||||
fftrop = pdc.getPointDataTypes().get("wsTrop").getFloatData()
|
||||
ddtrop = pdc.getPointDataTypes().get("wdTrop").getFloatData()
|
||||
nmxw = pdc.getPointDataTypes().get("numMwnd").getIntData()
|
||||
pmxw = pdc.getPointDataTypes().get("prMaxW").getFloatData()
|
||||
ffmxw = pdc.getPointDataTypes().get("wsMaxW").getFloatData()
|
||||
ddmxw = pdc.getPointDataTypes().get("wdMaxW").getFloatData()
|
||||
|
||||
# 5.2 and 5.3
|
||||
if len(tobs) == 0 :
|
||||
msg = "couldn't get data"
|
||||
return ResponseMessageGeneric(msg)
|
||||
|
||||
# D-2D format files expect depression
|
||||
i = len(tman)-1
|
||||
while i>=0 :
|
||||
if tdman[i]>150 and tdman[i]<=tman[i] :
|
||||
tdman[i] = tman[i]-tdman[i]
|
||||
else :
|
||||
tdman[i] = -9999.0
|
||||
i -= 1
|
||||
i = len(tsigt)-1
|
||||
while i>=0 :
|
||||
if tdsigt[i]>150 and tdsigt[i]<=tsigt[i] :
|
||||
tdsigt[i] = tsigt[i]-tdsigt[i]
|
||||
else :
|
||||
tdsigt[i] = -9999.0
|
||||
i -= 1
|
||||
i = len(ttrop)-1
|
||||
while i>=0 :
|
||||
if tdtrop[i]>150 and tdtrop[i]<=ttrop[i] :
|
||||
tdtrop[i] = ttrop[i]-tdtrop[i]
|
||||
else :
|
||||
tdtrop[i] = -9999.0
|
||||
i -= 1
|
||||
|
||||
msg = "\n"
|
||||
i = iMan = iSigT = iSigW = iTrop = iMxW = 0
|
||||
while i < len(tobs) :
|
||||
if nman[i]<0 : nman[i] = 0
|
||||
if nsigt[i]<0 : nsigt[i] = 0
|
||||
if nsigw[i]<0 : nsigw[i] = 0
|
||||
if ntrop[i]<0 : ntrop[i] = 0
|
||||
if nmxw[i]<0 : nmxw[i] = 0
|
||||
if nman[i]==0 and nsigt[i]==0 and nsigw[i]==0 or rtyp[i]>2022:
|
||||
iMan += 100
|
||||
iSigT += 120
|
||||
iSigW += 120
|
||||
iTrop += 5
|
||||
iMxW += 5
|
||||
i += 1
|
||||
continue
|
||||
|
||||
msg += str(ista[i]) + ","
|
||||
msg += str(tobs[i]/1000) + ","
|
||||
msg += "%.4f"%lat[i] + ","
|
||||
msg += "%.4f"%lon[i] + ","
|
||||
msg += "%.0f"%elev[i] + ","
|
||||
msg += str(ista[i]) + ","
|
||||
|
||||
msg += str(nman[i]) + ","
|
||||
kk = iMan + nman[i]
|
||||
if nman[i]>0 : msg += "%.1f"%pman[iMan]
|
||||
k = iMan + 1
|
||||
while k < kk :
|
||||
msg += "|" + "%.1f"%pman[k];
|
||||
k += 1
|
||||
msg += ","
|
||||
if nman[i]>0 : msg += "%.1f"%elev[i]
|
||||
k = iMan + 1
|
||||
while k < kk :
|
||||
msg += "|" + "%.1f"%zman[k];
|
||||
k += 1
|
||||
msg += ","
|
||||
if nman[i]>0 : msg += "%.1f"%tman[iMan]
|
||||
k = iMan + 1
|
||||
while k < kk :
|
||||
msg += "|" + "%.1f"%tman[k];
|
||||
k += 1
|
||||
msg += ","
|
||||
if nman[i]>0 : msg += "%.1f"%tdman[iMan]
|
||||
k = iMan + 1
|
||||
while k < kk :
|
||||
msg += "|" + "%.1f"%tdman[k];
|
||||
k += 1
|
||||
msg += ","
|
||||
if nman[i]>0 : msg += "%.1f"%ffman[iMan]
|
||||
k = iMan + 1
|
||||
while k < kk :
|
||||
msg += "|" + "%.1f"%ffman[k];
|
||||
k += 1
|
||||
msg += ","
|
||||
if nman[i]>0 : msg += "%.1f"%ddman[iMan]
|
||||
k = iMan + 1
|
||||
while k < kk :
|
||||
msg += "|" + "%.1f"%ddman[k];
|
||||
k += 1
|
||||
msg += ","
|
||||
iMan += 100
|
||||
|
||||
msg += str(nsigt[i]) + ","
|
||||
kk = iSigT + nsigt[i]
|
||||
if nsigt[i]>0 : msg += "%.1f"%psigt[iSigT]
|
||||
k = iSigT + 1
|
||||
while k < kk :
|
||||
msg += "|" + "%.1f"%psigt[k];
|
||||
k += 1
|
||||
msg += ","
|
||||
if nsigt[i]>0 : msg += "%.1f"%tsigt[iSigT]
|
||||
k = iSigT + 1
|
||||
while k < kk :
|
||||
msg += "|" + "%.1f"%tsigt[k];
|
||||
k += 1
|
||||
msg += ","
|
||||
if nsigt[i]>0 : msg += "%.1f"%tdsigt[iSigT]
|
||||
k = iSigT + 1
|
||||
while k < kk :
|
||||
msg += "|" + "%.1f"%tdsigt[k];
|
||||
k += 1
|
||||
msg += ","
|
||||
iSigT += 120
|
||||
|
||||
msg += str(nsigw[i]) + ","
|
||||
kk = iSigW + nsigw[i]
|
||||
if nsigw[i]>0 : msg += "%.1f"%zsigw[iSigW]
|
||||
k = iSigW + 1
|
||||
while k < kk :
|
||||
msg += "|" + "%.1f"%zsigw[k];
|
||||
k += 1
|
||||
msg += ","
|
||||
if nsigw[i]>0 : msg += "%.1f"%ffsigw[iSigW]
|
||||
k = iSigW + 1
|
||||
while k < kk :
|
||||
msg += "|" + "%.1f"%ffsigw[k];
|
||||
k += 1
|
||||
msg += ","
|
||||
if nsigw[i]>0 : msg += "%.1f"%ddsigw[iSigW]
|
||||
k = iSigW + 1
|
||||
while k < kk :
|
||||
msg += "|" + "%.1f"%ddsigw[k];
|
||||
k += 1
|
||||
msg += ","
|
||||
iSigW += 120
|
||||
|
||||
msg += str(ntrop[i]) + ","
|
||||
kk = iTrop + ntrop[i]
|
||||
if ntrop[i]>0 : msg += "%.1f"%ptrop[iTrop]
|
||||
k = iTrop + 1
|
||||
while k < kk :
|
||||
msg += "|" + "%.1f"%ptrop[k];
|
||||
k += 1
|
||||
msg += ","
|
||||
if ntrop[i]>0 : msg += "%.1f"%ttrop[iTrop]
|
||||
k = iTrop + 1
|
||||
while k < kk :
|
||||
msg += "|" + "%.1f"%ttrop[k];
|
||||
k += 1
|
||||
msg += ","
|
||||
if ntrop[i]>0 : msg += "%.1f"%tdtrop[iTrop]
|
||||
k = iTrop + 1
|
||||
while k < kk :
|
||||
msg += "|" + "%.1f"%tdtrop[k];
|
||||
k += 1
|
||||
msg += ","
|
||||
if ntrop[i]>0 : msg += "%.1f"%fftrop[iTrop]
|
||||
k = iTrop + 1
|
||||
while k < kk :
|
||||
msg += "|" + "%.1f"%fftrop[k];
|
||||
k += 1
|
||||
msg += ","
|
||||
if ntrop[i]>0 : msg += "%.1f"%ddtrop[iTrop]
|
||||
k = iTrop + 1
|
||||
while k < kk :
|
||||
msg += "|" + "%.1f"%ddtrop[k];
|
||||
k += 1
|
||||
msg += ","
|
||||
iTrop += 5
|
||||
|
||||
msg += str(nmxw[i]) + ","
|
||||
kk = iMxW + nmxw[i]
|
||||
if nmxw[i]>0 : msg += "%.1f"%pmxw[iMxW]
|
||||
k = iMxW + 1
|
||||
while k < kk :
|
||||
msg += "|" + "%.1f"%pmxw[k];
|
||||
k += 1
|
||||
msg += ","
|
||||
if nmxw[i]>0 : msg += "%.1f"%ffmxw[iMxW]
|
||||
k = iMxW + 1
|
||||
while k < kk :
|
||||
msg += "|" + "%.1f"%ffmxw[k];
|
||||
k += 1
|
||||
msg += ","
|
||||
if nmxw[i]>0 : msg += "%.1f"%ddmxw[iMxW]
|
||||
k = iMxW + 1
|
||||
while k < kk :
|
||||
msg += "|" + "%.1f"%ddmxw[k];
|
||||
k += 1
|
||||
msg += "\n"
|
||||
iMxW += 5
|
||||
|
||||
i += 1
|
||||
|
||||
return ResponseMessageGeneric(msg)
|
||||
|
Loading…
Add table
Reference in a new issue