source: anuga_work/production/Broome_2008/export_results_max.py @ 6134

Last change on this file since 6134 was 6134, checked in by jgriffin, 15 years ago

script to export results and calculate maximum values from multiple .sww files

File size: 3.9 KB
Line 
1"""
2Generates ascii grids of nominated areas -
3Input: sww file from run_broome.py
4       boundaries for grids from project.py
5Outputs: ascii grids of specified variables
6Stored in the 'outputs_dir' folder for respective .sww file
7
8Note:
9If producing a grid for the enitre extent cellsize should be greater than 30m
10If producing grids for inundation area resolution should be greater than mesh (ie ~22m)
11"""
12
13import project, os
14import sys
15from anuga.lib.maxasc.maxasc import MaxAsc
16from anuga.shallow_water.data_manager import convert_dem_from_ascii2netcdf, dem2pts
17from anuga.shallow_water.data_manager import sww2dem
18from os import sep
19
20
21directory = project.output_dir
22
23
24time_dir = '20090106_151505_run_final_0.6_27283_alpha0.1_jgriffin'
25
26time_dirs = [time_dir]# , time_dir3, time_dir4, time_dir5, time_dir6]
27 
28
29#cellsize = 20
30cellsize = 250
31
32timestep = None    # None means no timestep!
33#timestep = 0
34
35######
36# Set the special areas of interest.  If none, do: area='All'
37######
38
39#area = ['Bunbury', 'Busselton']  # strings must match keys in var_equations below
40area = ['All']      # 'All' means no special areas - the whole thing
41
42######
43# Define allowed variable names and associated equations to generate values.
44# This would not normally change.
45######
46var_equations = {'stage':     'stage',
47                 'momentum':  '(xmomentum**2 + ymomentum**2)**0.5',
48                 'depth':     'stage-elevation',
49                 'speed':     '(xmomentum**2 + ymomentum**2)**0.5/(stage-elevation+1.e-6)',
50                 'elevation': 'elevation' }
51
52# one or more key strings from var_equations above
53var = ['stage','depth','speed']
54
55######
56# Start running the various conversions we require.
57######
58
59for which_var in var:
60    if which_var not in var_equations:
61        print 'Unrecognized variable name: %s' % which_var
62        break
63
64    for which_area in area:
65        if which_area == 'All':
66            easting_min = None
67            easting_max = None
68            northing_min = None
69            northing_max = None
70        else:
71            try:
72                easting_min = eval('project.xmin%s' % which_area)
73                easting_max = eval('project.xmax%s' % which_area)
74                northing_min = eval('project.ymin%s' % which_area)
75                northing_max = eval('project.ymax%s' % which_area)
76            except AttributeError:
77                print 'Unrecognized area name: %s' % which_area
78                break
79
80        for time_dir in time_dirs:
81
82            name1 = directory+time_dir+sep+project.scenario_name
83            name2 = directory+time_dir+sep+project.scenario_name+'_time_63900_0'
84         
85            names = [name1, name2, name3]
86     
87            asc_name = []   
88               
89            for name in names:
90                         
91                outname = name + '_' + which_area + '_' + which_var
92                quantityname = var_equations[which_var]
93
94                print 'start sww2dem: time_dir=%s' % time_dir
95               
96                sww2dem(name, basename_out = outname,
97                            quantity = quantityname,
98                            timestep = timestep,
99                            cellsize = cellsize,     
100                            easting_min = easting_min,
101                            easting_max = easting_max,
102                            northing_min = northing_min,
103                            northing_max = northing_max,       
104                            reduction = max, 
105                            verbose = True,
106                            format = 'asc')
107
108                asc_name.append(outname + '.asc')
109   
110            maxasc_outname = directory+time_dir+sep+project.scenario_name+'_'+which_area+'_'+which_var+'_max.asc'
111
112            print 'max asc outname ', maxasc_outname
113            print 'asc_name ', str(asc_name)
114           
115            MaxAsc(maxasc_outname, asc_name)
Note: See TracBrowser for help on using the repository browser.