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)
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)
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
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]:
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: