예제 #1
0
def main(argv=None):
    if argv is None:
        argv = sys.argv
    if len(argv)<=5:
        print 'Usage %s s_yy,s_mm,s_dd,e_yy,e_mm,e_dd, cur_noise'%(argv[0])
        sys.exit(-1)
    s_yy,s_mm,s_dd,e_yy,e_mm,e_dd = int(argv[1]),int(argv[2]),int(argv[3]),int(argv[4]),int(argv[5]),int(argv[6])
    dr = gpplib.Utils.DateRange( s_yy,s_mm,s_dd,e_yy,e_mm,e_dd )
    print 'Finding Transition models from %04d-%02d-%02d to %04d-%02d-%02d.'%(s_yy,s_mm,s_dd,e_yy,e_mm,e_dd)
    numDays = 1
    posNoise = 0.01
    #curNoiseVals = [0.01, 0.025, 0.05, 0.1, 0.15, 0.2, 0.32, 0.5]
    rtc  = RomsTimeConversion()
    s_indx = rtc.GetRomsIndexNhoursFromNow(s_yy,s_mm,s_dd,2)
    e_indx = s_indx + 12
    
    curNoiseVals = [0.01, 0.03, 0.1, 0.3]
    conf = gpplib.Utils.GppConfig()
    ptg = ProduceGPTransitionGraph(conf.riskMapDir+'RiskMap3.shelf',conf.romsDataDir)
    ptg.UseRomsNoise = True
    
    for (yy,mm,dd) in dr.DateList:
        t_start = time.time()
        #transModel = ptg.CreateTransitionModelFromProxemicGraph(yy,mm,dd,numDays,1.5,curNoiseSigma,posNoise)
        transModel = ptg.CreateTransitionModelFromProxemicGraphAndGPBetweenHours(yy,mm,dd,s_indx,e_indx,1.5,posNoise)
        t_end = time.time()
        print 'Time taken to generate model=%f'%(t_end-t_start)
예제 #2
0
def main(argv=None):
    if argv is None:
        argv = sys.argv
    if len(argv) <= 5:
        print 'Usage %s s_yy,s_mm,s_dd,e_yy,e_mm,e_dd,  [useCurrentTime=1/not-supplied, useCurrentTime=0]' % (
            argv[0])
        sys.exit(-1)
    s_yy, s_mm, s_dd, e_yy, e_mm, e_dd = int(argv[1]), int(argv[2]), int(
        argv[3]), int(argv[4]), int(argv[5]), int(argv[6])

    if len(argv) == 7:
        useCurrentTime = int(argv[6])

    if datetime.date(
            s_yy, s_mm,
            s_dd) == datetime.datetime.today().date and useCurrentTime == True:
        useCurrentTime = True
    else:
        useCurrentTime = False

    dr = gpplib.Utils.DateRange(s_yy, s_mm, s_dd, e_yy, e_mm, e_dd)
    print 'Finding Transition models from %04d-%02d-%02d to %04d-%02d-%02d.' % (
        s_yy, s_mm, s_dd, e_yy, e_mm, e_dd)
    numDays = 1
    posNoise = 0.01
    stepHrs = 6
    numSteps = 8
    conf = gpplib.Utils.GppConfig()
    ptg = ProduceTransitionGraph(conf.riskMapDir + 'RiskMap7.shelf',
                                 conf.romsDataDir)
    ptg.UseRomsNoise = True
    curNoiseVals = [0.01, 0.03, 0.1, 0.3]

    if useCurrentTime:
        for curNoiseSigma in curNoiseVals:
            rtc = RomsTimeConversion()
            numHrsFromNow = 1
            s_indx = rtc.GetRomsIndexNhoursFromNow(s_yy, s_mm, s_dd,
                                                   numHrsFromNow)
            e_indx = s_indx + stepHrs
            t_start = time.time()
            transModel = ptg.CreateTransitionModelFromProxemicGraphBetweenHours2(
                yy, mm, dd, s_indx, e_indx, 1.5, curNoiseSigma, posNoise)
            t_end = time.time()
            print 'Time taken to generate model=%f' % (t_end - t_start)
    else:
        s_indx = 0

    for (yy, mm, dd) in dr.DateList:
        for curNoiseSigma in curNoiseVals:
            for startStep in range(0, numSteps):
                s_indx = startStep * (48 / numSteps)
                e_indx = s_indx + stepHrs
                t_start = time.time()
                #transModel = ptg.CreateTransitionModelFromProxemicGraph(yy,mm,dd,numDays,1.5,curNoiseSigma,posNoise)
                transModel = ptg.CreateTransitionModelFromProxemicGraphBetweenHours2(
                    yy, mm, dd, s_indx, e_indx, 1.5, curNoiseSigma, posNoise)
                t_end = time.time()
                print 'Time taken to generate model=%f' % (t_end - t_start)
예제 #3
0
def PlotCurrentsForDayAndHour(yy, mm, dd, hr):
    conf = gpplib.Utils.GppConfig()
    rtc = RomsTimeConversion()
    gm1 = GliderModel(conf.myDataDir + 'RiskMap3.shelf',
                      conf.myDataDir + 'roms/')
    gm1.gVel = 0.18
    gm1.depth = 90.
    gm2 = GliderModel(conf.myDataDir + 'RiskMap3.shelf',
                      conf.myDataDir + 'roms/')
    gm2.gVel = 0.18
    gm2.depth = 90.
    gm3 = GliderModel(conf.myDataDir + 'RiskMap3.shelf',
                      conf.myDataDir + 'roms/')
    gm3.gVel = 0.18
    gm3.depth = 90.

    dt1 = datetime.datetime(yy, mm, dd, hr, 0) - datetime.timedelta(hours=48)
    yy1, mm1, dd1, hr1 = dt1.year, dt1.month, dt1.day, dt1.hour
    dt2 = datetime.datetime(yy, mm, dd, hr, 0) - datetime.timedelta(hours=24)
    yy2, mm2, dd2, hr2 = dt2.year, dt2.month, dt2.day, dt2.hour
    dt3 = datetime.datetime(yy, mm, dd, hr, 0)

    plt.figure()
    gm1.PlotNewRiskMapFig()
    u, v, time1, depth, lat, lon = gm1.GetRomsData(yy1, mm1, dd1, 3, True,
                                                   True)
    u, v, time1, depth, lat, lon = gm2.GetRomsData(yy2, mm2, dd2, 3, True,
                                                   True)
    u, v, time1, depth, lat, lon = gm3.GetRomsData(yy, mm, dd, 3, True, True)

    # Find the same time in all three data files and index into it.
    gm1.PlotCurrentField(rtc.GetRomsIndexFromDateTime(yy1, mm1, dd1, dt3),
                         arrow_color='y')
    gm2.PlotCurrentField(rtc.GetRomsIndexFromDateTime(yy2, mm2, dd2, dt3),
                         arrow_color='r')
    gm3.PlotCurrentField(rtc.GetRomsIndexFromDateTime(yy, mm, dd, dt3),
                         arrow_color='k')
예제 #4
0
import sys
import gpplib
from gpplib.Replanner import *
from gpplib.Utils import RomsTimeConversion
import datetime

conf = gpplib.Utils.GppConfig()
rtc = RomsTimeConversion()

yy, mm, dd, numDays = 2013, 7, 21, 1
nHrsHence = 0.0  # How many hours ahead or behind we want to plot these currents.
rp = Replanner(conf.myDataDir + 'RiskMap.shelf', conf.myDataDir + 'roms5/')
rp.gm.gVel = 0.3
#u,v,time1,depth,lat,lon = rp.gm.GetRomsData(yy,mm,dd,numDays,True,True)
u, v, time1, depth, lat, lon = rp.gm.GetRomsData(yy, mm, dd, numDays, True)
#plt.figure(); rp.gm.PlotNewRiskMapFig();
rp.gm.PlotCurrentField(
    0, min_depth=30, max_depth=50
)  #rp.gm.PlotCurrentField(rtc.GetRomsIndexNhoursFromNow(yy,mm,dd, nHrsHence))
#timeOfPlottedCurrents=datetime.datetime.today()+datetime.timedelta(hours=nHrsHence)
#plt.title('Roms currents %s PST'%(timeOfPlottedCurrents.strftime('%A %d/%m/%y %H:%M:%S')))