source: development/momentum_sink/PCS.py @ 2465

Last change on this file since 2465 was 2458, checked in by nicholas, 19 years ago

CCS.py modified to loop through building scenarios and write results to file.

File size: 3.2 KB
Line 
1"""Read in sww file, interpolate at specified locations and
2    Cross section at specified T
3
4"""
5from os import sep
6import Numeric
7import project
8from pyvolution.util import file_function
9from create_buildings import  WidtH
10# from run_friction import fric
11from pylab import *
12
13fric = 25   
14#swwfile = project.newoutputname + '.sww'
15#swwfile = project.outputname
16
17#swwfile_B = project.outputdir + sep  + 'Buildings_3790.sww'
18swwfile_B = project.outputdir + sep  + 'buildings_S0_D=19_1037.sww'
19#swwfile_B = project.outputdir + sep  + 'friction_n=10_3135.sww'
20swwfile_F = project.outputdir + sep  + 'friction_n=37_3135.sww'
21
22gauge_depth = Numeric.arrayrange(51, 1.5*WidtH, 25) # Random special
23#gauge_depth = Numeric.arrayrange(0, 1.5*WidtH, 25)
24gauge_breadth = 100
25gauge_locations = []
26
27for GD in gauge_depth:
28    gauge_location = [GD,gauge_breadth]
29    gauge_locations.append(gauge_location)
30
31
32#Read model output
33quantities = ['stage', 'elevation', 'xmomentum', 'ymomentum']
34
35f_B = file_function(swwfile_B,
36                  quantities = quantities,
37                  interpolation_points = gauge_locations,
38                  verbose = True,
39                  use_cache = True)
40
41f_F = file_function(swwfile_F,
42                  quantities = quantities,
43                  interpolation_points = gauge_locations,
44                  verbose = True,
45                  use_cache = True)
46
47
48T = Numeric.arrayrange(0,1000,10)
49#T = [ 20, 50, 100, 150, 200 ]
50
51for t in T:
52    model_time = []
53    stages_B = []
54    stages_F = []
55    elevations = []
56    momenta = []
57    velocity = []
58    for i, GL in enumerate(gauge_depth):
59
60        # mines data from specified time values in sww file
61        wB = f_B(t, point_id = i)[0]
62        zB = f_B(t, point_id = i)[1]
63        uhB = f_B(t, point_id = i)[2]
64        vhB = f_B(t, point_id = i)[3]
65
66        wF = f_F(t, point_id = i)[0]       
67        uhF = f_B(t, point_id = i)[2]
68        vhF = f_B(t, point_id = i)[3]
69        #m = sqrt(uh*uh + vh*vh)   #Absolute momentum
70        velB = sqrt(uhB*uhB + vhB*vhB) / (wB + 1.e-30) #Absolute velocity
71        velF = sqrt(uhF*uhF + vhF*vhF) / (wF + 1.e-30) #Absolute velocity                   
72        #print velB, "buiding velocity"
73        #print velF, "friction velocity"
74
75        stages_B.append(wB)
76        stages_F.append(wF)
77        #elevations.append(zB)  #Should be constant over time
78        #momenta.append(mB)
79        #velocityB.append(velB)
80        #velocityF.append(velF)
81       
82    #print len(stages), "stages"
83    diff = abs(Numeric.array(stages_B) - Numeric.array(stages_F))
84    #print diff, "difference"
85
86
87    ion()
88    hold(True)
89    subplot(211)
90   
91    plot(gauge_depth, stages_B, '-b',gauge_depth,stages_F,'-r')
92    title('Time_%d_ vs water depth ' %t)
93    xlabel('gauge length(m)')
94    ylabel('water depths (m)')
95    #savefig('Comp_Time%d_B_vs_F' %t)
96    hold(False)
97#savefig('Final_comp_n=%s' %fric)
98subplot(212)
99subplots_adjust(hspace = 0.4)
100plot(gauge_depth, diff, 'g')
101title('Final Differences in water levels')
102xlabel('gauge length(m)')
103ylabel('water differences (m)')
104savefig('Final_Water_diff_n=%s' %fric)
105print "finished"
106
107
Note: See TracBrowser for help on using the repository browser.