Changeset 7584
- Timestamp:
- Dec 9, 2009, 8:37:58 AM (15 years ago)
- Location:
- misc/tools/event_selection/wave_energy
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
misc/tools/event_selection/wave_energy/run_up.py
r7554 r7584 1 1 """ This code implements run up solutions to the shallow water wave 2 2 equations. 3 4 References: 5 Madsen and Fuhrman 2008. Run-up of tsunamis and long waves 6 in terms of surf-similarity. Coastal Engineering, 55, p209. 3 7 4 8 Creator: Jonathan Griffin, Geoscience Australia … … 8 12 def Madsen(depth, slope, height, period, gravity = 9.81): 9 13 10 freq = (2* np.pi)/period11 a = (depth* np.power(freq,2.0))/(gravity*np.power(slope,2.0))12 print 'a',a13 b = np.power(a,0.25)14 print 'b',b15 run_up = 2*np.power(np.pi,0.5)*b*height14 freq = (2*pi)/period 15 a = (depth*power(freq,2.0))/(gravity*power(slope,2.0)) 16 #print 'a',a 17 b = power(a,0.25) 18 #print 'b',b 19 run_up_madsen = 2*power(np.pi,0.5)*b*height 16 20 21 R_break = gravity*(power(slope,2.0))/(power(freq,2.0)) 22 run_up = np.min(run_up_madsen, R_break) 17 23 return run_up 18 24 19 def surf_sim(depth, slope, height, wavelength, gravity = 9.81): 25 #def surf_sim(depth, slope, height, wavelength, gravity = 9.81): 26 # Add Madsen's surf similarity here 20 27 21 28 29 30 def energy_conserv(crest_integrated_energy,theta = 3.,alpha = 2.,gravity = 9.81): 31 E = crest_integrated_energy 32 print 'crest_integrated_energy', crest_integrated_energy 33 a = 1/tan(alpha*pi/180.) 34 b = 1/tan(theta*pi/180.) 35 36 F = a-b 37 # print 'F',F 38 R3 = 6.*E/(1000.*gravity*F) 39 # print 'R3', R3 40 R = power(R3,(1./3.)) 41 42 return R 22 43 23 44 import numpy as np 45 from numpy import tan, sin, cos, power,pi 24 46 if __name__ == '__main__': 25 47 sys.exit(main()) -
misc/tools/event_selection/wave_energy/wave_energy.py
r7555 r7584 25 25 index = 2872 26 26 filebasename = 'sts_gauge_' + str(index) +'.csv' 27 filename = join(filepath, filebasename)27 #filename = join(filepath, filebasename) 28 28 29 29 filepathlist = [] … … 44 44 max_energy_inst_list = [] 45 45 run_up_list = [] 46 energy_run_up_list = [] 47 max_stage_list = [] 46 48 counter = 0 47 49 … … 89 91 x_vel = x_momentum[i]/(100+stage[i]) 90 92 y_vel = y_momentum[i]/(100+stage[i]) 91 velocity = numpy.sqrt(x_vel*x_vel ,y_vel*y_vel)93 velocity = numpy.sqrt(x_vel*x_vel+y_vel*y_vel) 92 94 # Kinetic energy KE = 1/2 roh h u^2 93 95 KE = (1./2.)*(numpy.power(x_vel,2)+numpy.power(y_vel,2))*(1000)*(100+stage[i]) … … 110 112 if temp_max_energy > max_energy: 111 113 max_energy = temp_max_energy 114 max_energy_time = time[i] - start_time 112 115 if temp_max_stage > max_stage: 113 116 max_stage = temp_max_stage … … 122 125 if temp_max_energy > max_energy: 123 126 max_energy = temp_max_energy 127 max_energy_time = time[i] - start_time 124 128 if temp_max_stage > max_stage: 125 129 max_stage = temp_max_stage … … 142 146 # Add maximum values to list 143 147 max_energy_inst_list.append(max_energy_inst) 144 max_energy_list.append( max_energy) 148 max_energy_list.append(max_energy) 149 150 # get wave period from max time 151 ## locator = time.index(max_time) 152 ## time_count = 0 153 ## for i in range(locator,len(time)): 154 145 155 146 156 # Account for both halves of the wave … … 151 161 # call run-up module 152 162 ##################################################################### 153 Run_up = run_up.Madsen(100,0.01 ,max_stage,max_time)154 print ' runup', Run_up163 Run_up = run_up.Madsen(100,0.017,max_stage,max_time) 164 print 'Madsen runup', Run_up 155 165 run_up_list.append(Run_up) 166 167 energy_run_up = run_up.energy_conserv(max_energy,1.0,0.8,9.81) 168 energy_run_up_list.append(energy_run_up) 169 print 'energy run up', energy_run_up 170 max_stage_list.append(max_stage) 156 171 157 172 … … 170 185 171 186 # Print results for each file and calculate maximum value across all events 187 outFilename= filepath +'/wave_energy_summary.csv' 188 outFile = file(outFilename,'w') 189 outFile.write('filename, max crest-integrated energy (J.s/m^2), max instantatneous energy J/m^2, Run up (Madsen), Energy run up , max stage (m)\n') 172 190 for filename in filepathlist: 191 outFile.write(filename+',') 192 outFile.write(str(max_energy_list[counter])+',') 193 outFile.write(str(max_energy_inst_list[counter])+',') 194 outFile.write(str(run_up_list[counter])+',') 195 outFile.write(str(energy_run_up_list[counter])+',') 196 outFile.write(str(max_stage_list[counter])+'\n') 173 197 print filename 174 print 'max crest-integrated energy:', max_energy_list[counter],'J.s/m^2' 175 print 'max instantatneous energy:', max_energy_inst_list[counter],'J/m^2' 176 print 'Run_up:', run_up_list[counter], 'm' 198 print 'max crest-integrated energy:', max_energy_list[counter],'J/m^2' 199 print 'max instantatneous energy:', max_energy_inst_list[counter],'J/s*m^2' 200 print 'Run_up (Madsen 2009):', run_up_list[counter], 'm' 201 print 'Run_up (Energy 2009):', energy_run_up_list[counter], 'm' 177 202 178 203 if max_energy_list[counter] > total_max_energy:
Note: See TracChangeset
for help on using the changeset viewer.