def main():
    # First we will create an instance of PrecipitationDistribution
    PD = PrecipitationDistribution()

    # Because the values for storm duration, interstorm duration, storm
    # depth and intensity are set stochastically in the initialization
    # phase, we should see that they seem reasonable. 
    
    print("Mean storm duration is: ", PD.mean_storm, " hours, while the value from the Poisson distribution is: ", PD.storm_duration)     
    print("Mean interstorm Duration is: ", PD.mean_interstorm, 'hours, while the value from the Poisson distribution is: ', PD.interstorm_duration)
    print("Mean storm depth is: ", PD.mean_storm_depth, 'mm, while the value from the Poisson distribution is: ', PD.storm_depth)
    print("Mean intensity is: ", PD.mean_intensity, 'mm/hr, while the value from the Poisson distribution is: ', PD.intensity)
    print('\n')

    # If we update the values, we can verify they are changing.
    PD.update()
    print("Storm Duration is: ", PD.storm_duration, 'hours.')
    print("Interstorm Duration is: ", PD.interstorm_duration, 'hours.')
    print("Storm Depth is: ", PD.storm_depth, 'mm.')
    print("Intensity is: ", PD.intensity, 'mm.')
    
    # If we generate a time series we can plot a precipitation distribution 
    PD.get_storm_time_series()
    
    # And get the storm array from the component..
    storm_arr = PD.storm_time_series
    
    # And now to call the plotting method.
    create_precip_plot(storm_arr)
示例#2
0
def main():
    # First we will create an instance of PrecipitationDistribution
    PD = PrecipitationDistribution()

    # Because the values for storm duration, interstorm duration, storm
    # depth and intensity are set stochastically in the initialization
    # phase, we should see that they seem reasonable.

    print "Mean storm duration is: ", PD.mean_storm, " hours, while the value from the Poisson distribution is: ", PD.storm_duration
    print "Mean interstorm Duration is: ", PD.mean_interstorm, 'hours, while the value from the Poisson distribution is: ', PD.interstorm_duration
    print "Mean storm depth is: ", PD.mean_storm_depth, 'mm, while the value from the Poisson distribution is: ', PD.storm_depth
    print "Mean intensity is: ", PD.mean_intensity, 'mm/hr, while the value from the Poisson distribution is: ', PD.intensity
    print '\n'

    # If we update the values, we can verify they are changing.
    PD.update()
    print "Storm Duration is: ", PD.storm_duration, 'hours.'
    print "Interstorm Duration is: ", PD.interstorm_duration, 'hours.'
    print "Storm Depth is: ", PD.storm_depth, 'mm.'
    print "Intensity is: ", PD.intensity, 'mm.'

    # If we generate a time series we can plot a precipitation distribution
    PD.get_storm_time_series()

    # And get the storm array from the component..
    storm_arr = PD.storm_time_series

    # And now to call the plotting method.
    create_precip_plot(storm_arr)
示例#3
0
def main():
    print 'We are going to use TrialRun as our class instance.'
    TrialRun = PrecipitationDistribution()
    print 'TrialRun = PrecipitationDistribution()'
    print '\n'

    print "TrialRun's values before initiation..."
    print "Storm Duration is: ", TrialRun.storm_duration, 'hours.'
    print "Interstorm Duration is: ", TrialRun.interstorm_duration, 'hours.'
    print "Storm Depth is: ", TrialRun.storm_depth, 'mm.'
    print "Intensity is: ", TrialRun.intensity, 'mm/hr.' 
    print '\n'
    print 'We should initialize TrialRun... TrialRun.initialize()'
    TrialRun.initialize()
    print '\n'
    print 'What are the mean values read in from the input file?'
    print "Mean Storm Duration is: ", TrialRun.mean_storm, 'hours.'
    print "Interstorm Duration is: ", TrialRun.mean_interstorm, 'hours.'
    print "Storm Depth is: ", TrialRun.mean_storm_depth, 'mm.'
    print "Intensity is: ", TrialRun.mean_intensity, 'mm/hr.'
    print '\n'
    print "Let's see what what the class members are after the first initialization..."
    print "Storm Duration is: ", TrialRun.storm_duration, 'hours.'
    print "Interstorm Duration is: ", TrialRun.interstorm_duration, 'hours.'
    print "Storm Depth is: ", TrialRun.storm_depth, 'mm.'
    print "Intensity is: ", TrialRun.intensity, 'mm/hr.'

    print '\n'
    print 'Now we will update these values using TrialRun.update()'
    TrialRun.update()
    print "Storm Duration is: ", TrialRun.storm_duration, 'hours.'
    print "Interstorm Duration is: ", TrialRun.interstorm_duration, 'hours.'
    print "Storm Depth is: ", TrialRun.storm_depth, 'mm.'
    print "Intensity is: ", TrialRun.intensity, 'mm.'
    
    print '\n'
    print 'Now we are going to generate a time series:'
    TrialRun.get_storm_time_series()
    print TrialRun.storm_time_series
def main():
    print 'We are going to use TrialRun as our class instance.'
    TrialRun = PrecipitationDistribution()
    print 'TrialRun = PrecipitationDistribution()'
    print '\n'

    print "TrialRun's values before initiation..."
    print "Storm Duration is: ", TrialRun.storm_duration, 'hours.'
    print "Interstorm Duration is: ", TrialRun.interstorm_duration, 'hours.'
    print "Storm Depth is: ", TrialRun.storm_depth, 'mm.'
    print "Intensity is: ", TrialRun.intensity, 'mm/hr.'
    print '\n'
    print 'We should initialize TrialRun... TrialRun.initialize()'
    TrialRun.initialize()
    print '\n'
    print 'What are the mean values read in from the input file?'
    print "Mean Storm Duration is: ", TrialRun.mean_storm, 'hours.'
    print "Interstorm Duration is: ", TrialRun.mean_interstorm, 'hours.'
    print "Storm Depth is: ", TrialRun.mean_storm_depth, 'mm.'
    print "Intensity is: ", TrialRun.mean_intensity, 'mm/hr.'
    print '\n'
    print "Let's see what what the class members are after the first initialization..."
    print "Storm Duration is: ", TrialRun.storm_duration, 'hours.'
    print "Interstorm Duration is: ", TrialRun.interstorm_duration, 'hours.'
    print "Storm Depth is: ", TrialRun.storm_depth, 'mm.'
    print "Intensity is: ", TrialRun.intensity, 'mm/hr.'

    print '\n'
    print 'Now we will update these values using TrialRun.update()'
    TrialRun.update()
    print "Storm Duration is: ", TrialRun.storm_duration, 'hours.'
    print "Interstorm Duration is: ", TrialRun.interstorm_duration, 'hours.'
    print "Storm Depth is: ", TrialRun.storm_depth, 'mm.'
    print "Intensity is: ", TrialRun.intensity, 'mm.'

    print '\n'
    print 'Now we are going to generate a time series:'
    TrialRun.get_storm_time_series()
    print TrialRun.storm_time_series
示例#5
0
        EP30[i] = np.mean(PET_[i-30:i], axis = 0)


time_check = 0.               # Buffer to store current_time at previous storm
i_check = 0                   #
yrs = 0

Start_time = time.clock()     # Recording time taken for simulation
WS = 0.

## Run Time Loop
for i in range(0, n):
    # Update objects
    Julian = np.floor( (current_time - np.floor( current_time)) * 365.)
    if Julian < 182 or Julian > 273:  # Dry Season
        PD_D.update()
        P[i] = PD_D.storm_depth
        Tr[i] = PD_D.storm_duration
        Tb[i] = PD_D.interstorm_duration
    else:                             # Wet Season - Jul to Sep - NA Monsoon
        PD_W.update()
        P[i] = PD_W.storm_depth
        Tr[i] = PD_W.storm_duration
        Tb[i] = PD_W.interstorm_duration

    grid['cell']['PotentialEvapotranspiration'] =  PET_[Julian]
    grid['cell']['PotentialEvapotranspiration30'] = EP30[Julian]
    current_time = SM.update( current_time, P = P[i], Tr = Tr[i], Tb = Tb[i] )

    if Julian != 364:
        if EP30[Julian + 1,0] > EP30[Julian,0]:
示例#6
0
time_check = 0.  # Buffer to store current_time at previous storm
i_check = 0  #
yrs = 0

Start_time = time.clock()  # Recording time taken for simulation
WS = 0.
Threshold = [data['ETTdwn'], data['ETTup']]
count = 0

## Run Time Loop
for i in range(0, n):
    # Update objects
    Julian = np.floor((current_time - np.floor(current_time)) * 365.)
    if Julian < 182 or Julian > 273:  # Dry Season
        PD_D.update()
        P[i] = PD_D.storm_depth
        Tr[i] = PD_D.storm_duration
        Tb[i] = PD_D.interstorm_duration
    else:  # Wet Season - Jul to Sep - NA Monsoon
        PD_W.update()
        P[i] = PD_W.storm_depth
        Tr[i] = PD_W.storm_duration
        Tb[i] = PD_W.interstorm_duration

    grid['cell']['PotentialEvapotranspiration'] = PET_[Julian]
    grid['cell']['PotentialEvapotranspiration30'] = EP30[Julian]
    current_time = SM.update(current_time, P=P[i], Tr=Tr[i], Tb=Tb[i])
    PETn_[i] = SM._PET

    if Julian != 364: