source: anuga_work/production/bunbury_storm_surge_2009/project.py @ 7647

Last change on this file since 7647 was 7647, checked in by fountain, 13 years ago

updates to mandurah and bunbury storm surge models

File size: 11.1 KB
Line 
1"""
2This file contains all your file and directory definitions
3for elevation, meshes and outputs.
4"""
5
6import os
7from anuga.utilities.system_tools import get_user_name, get_host_name
8from time import localtime, strftime, gmtime
9from os.path import join, exists
10import anuga.utilities.log as log
11
12
13#-------------------------------------------------------------------------------
14# Directory setup
15#-------------------------------------------------------------------------------
16
17# this section needs to be updated to reflect the modelled community.
18# Note, the user needs to set up the directory system accordingly
19state = 'western_australia'
20scenario_name = 'alby_coarse'
21scenario_folder = 'bunbury_storm_surge_scenario_2009'
22
23#-------------------------------------------------------------------------------
24# Initial Conditions
25#-------------------------------------------------------------------------------
26
27# Model specific parameters.
28# One or all can be changed each time the run_model script is executed
29
30
31central_meridian = None # Central meridian for projection (optional)
32zone = 50               # UTM zone for projection
33
34event = 'alby_coarse'
35tide = 0                # Mean Sea Level = 0,
36                                                # Highest Astronomical Tide = 0.6 m for Bunbury - CHECK THIS!
37alpha = 0.1             # smoothing parameter for mesh
38friction = 0.01           # manning's friction coefficient
39starttime = 86400          # start time for simulation - -equivalent to 0000h 4 April 1978
40finaltime = 87840 #172800         # final time for simulation - 24 hours for TC Alby
41
42setup = 'storm_surge_final'      # This can be one of four values
43                                                #    trial - coarsest mesh, fast
44                                                #    basic - coarse mesh
45                                                #    final - fine mesh, slowest
46                                                #    storm_surge_final - as 'final' but with a longer yieldstep (12 mins)
47                                               
48
49#-------------------------------------------------------------------------------
50# Output filename
51#
52# Your output filename should be unique between different runs on different data.
53# The list of items below will be used to create a file in your output directory.
54# Your user name and time+date will be automatically added.  For example,
55#     [setup, tide, event_number]
56# will result in a filename like
57#     20090212_091046_run_final_0_27283_rwilson
58#-------------------------------------------------------------------------------
59
60output_comment = [setup, tide, event]    # event_number will have to
61                                                                                                # change to something relevent
62                                                                                                # for storm surge
63
64#-------------------------------------------------------------------------------
65# Input Data
66#-------------------------------------------------------------------------------
67
68# ELEVATION DATA
69# Used in build_elevation.py
70# Format for ascii grids, as produced in ArcGIS + a projection file
71ascii_grid_filenames = ['swwa_10m_IC',                  # LiDAR mosaiced and resampled to 10m, clipped to IC to remove values in water
72                                                'bunbury_5m_IC']        # Bunbury LiDar grid resampled to 5 m (1m data caused memory errors)
73                                            # and clipped to Initial Conditions (to remove values in water)
74                                                # 'bunbury_nth_a',      # 1m LiDAR from WA Dot - nothern quarter (file split as too large for dem2pts)
75                                                # 'bunbury_nth_b',      # 1m LiDAR from WA Dot - 2nd northmost quarter (file split as too large for dem2pts)
76                                                # 'bunbury_sth_a',      # 1m LiDAR from WA Dot - 2nd southmost quarter (file split as too large for dem2pts)
77                                                # 'bunbury_sth_b']      # 1m LiDAR from WA Dot - southern quarter (file split as too large for dem2pts)
78                                                # 'bunbury_aoi']                # 1m LiDAR from WA DoT - clipped to area_of_interest.csv
79                                                # 'bunbury_nth',                # 1m LiDAR from WA Dot - nothern half (file split as too large for dem2pts)
80                                                # 'bunbury_sth']                # 1m LiDAR data from WA DoT - southern half
81                                               
82               
83# Format for point is x,y,elevation (with header)
84point_filenames = ['DPI.txt',                                                   # Bathymetry data from DPI
85                   'Busselton_Chart_Clip_ss.txt',               # Clipped from Busselton_Chart  - see Busselton Tsunami Scenario 2009
86                   'Busselton_NavyFinal_Clip_ss.txt',   # Clipped from Busselton_NavyFinal - see Busselton Tsunami Scenario 2009
87                   'Leschenault_TIN.txt',               # TIN created over the Leschenault Estuary
88                   'Leschenault_inlet_TIN.txt'          # TIN created over the Leschenault Inlet
89                   'DPI5U1A02_01a_edited.txt',          # Bathymetric LiDAR from DPI - split into manageable pieces
90                   'DPI5U1A02_01b_edited.txt', 
91                   'DPI5U1A02_01c_edited.txt',
92                   'DPI5U1A02_01d_edited.txt',
93                   'DPI5U1A02_01e_edited.txt']                                 
94
95# BOUNDING POLYGON - for data clipping and estimate of triangles in mesh
96# Used in build_elevation.py & run_model.py
97# Format for points easting,northing (no header)
98bounding_polygon_filename = 'bounding_polygon_ss.csv'
99bounding_polygon_maxarea = 50000
100
101# INTERIOR REGIONS -  for designing the mesh
102# Used in run_model.py
103# Format for points easting,northing (no header)                   
104interior_regions_data = [['intermediate.csv', 2500],
105                         ['area_of_interest.csv', 100],
106                         ['storm_gate_area.csv', 1],
107                         ['floodgates.csv', floodgate_resolution]]
108
109# LAND - used to set the initial stage/water to be offcoast only
110# Used in run_model.py.  Format for points easting,northing (no header)
111land_initial_conditions_filename = [['initial_conditions.csv', 0]]
112
113# GEMS order filename
114# Format is index,northing, easting, elevation (without header)
115gems_order_filename = 'gems_boundary_order_thinned.csv'
116
117# GAUGES - for creating timeseries at a specific point
118# Used in get_timeseries.py. 
119# Format easting,northing,name,elevation (with header)
120gauges_filename = 'gauges.csv'
121
122# BUILDINGS EXPOSURE - for identifying inundated houses
123# Used in run_building_inundation.py
124# Format latitude,longitude etc (geographic)
125building_exposure_filename = '' # from NEXIS
126
127# Landward bounding points
128# Format easting,northing (no header)
129landward_boundary_filename = 'landward_boundary.csv'
130
131### MUX input filename.
132### If a meta-file from EventSelection is used, set 'multi-mux' to True.
133### If a single MUX stem filename (*.grd) is used, set 'multi-mux' to False.
134####mux_input_filename = event_number # to be found in event_folder
135##                                    # (ie boundaries/event_number/)
136####multi_mux = False
137##mux_input_filename = 'event.list'
138##multi_mux = True
139
140#-------------------------------------------------------------------------------
141# Clipping regions for export to asc and regions for clipping data
142# Final inundation maps should only be created in regions of the finest mesh
143#-------------------------------------------------------------------------------
144
145# Elevation clip box - used when there are multiple overlapping datasets and you want to use
146# one over another in an area of overlap
147elevation_clip_box_filename = 'elevation_clip_box.csv'
148
149################################################################################
150################################################################################
151####         NOTE: NOTHING WOULD NORMALLY CHANGE BELOW THIS POINT.          ####
152################################################################################
153################################################################################
154
155# Get system user and host names.
156# These values can be used to distinguish between two similar runs by two
157# different users or runs by the same user on two different machines.
158user = get_user_name()
159host = get_host_name()
160
161# Environment variable names.
162# The inundation directory, not the data directory.
163ENV_INUNDATIONHOME = 'INUNDATIONHOME'
164
165#-------------------------------------------------------------------------------
166# Output Elevation Data
167#-------------------------------------------------------------------------------
168
169# Output filename for elevation
170# this is a combination of all the data generated in build_elevation.py
171combined_elevation_basename = scenario_name + '_combined_elevation'
172
173#-------------------------------------------------------------------------------
174# Directory Structure
175#-------------------------------------------------------------------------------
176
177# determines time for setting up output directories
178time = strftime('%Y%m%d_%H%M%S', localtime()) 
179gtime = strftime('%Y%m%d_%H%M%S', gmtime()) 
180build_time = time + '_build'
181run_time = time + '_run_'
182
183# create paths generated from environment variables.
184home = join(os.getenv(ENV_INUNDATIONHOME), 'data') # Absolute path for data folder
185       
186# check various directories/files that must exist
187anuga_folder = join(home, state, scenario_folder, 'anuga')
188topographies_folder = join(anuga_folder, 'topographies')
189polygons_folder = join(anuga_folder, 'polygons')
190boundaries_folder = join(anuga_folder, 'boundaries')
191output_folder = join(anuga_folder, 'outputs')
192gauges_folder = join(anuga_folder, 'gauges')
193event_folder = join(boundaries_folder, str(event))
194
195#-------------------------------------------------------------------------------
196# Location of input and output data
197#-------------------------------------------------------------------------------
198
199# Convert the user output_comment to a string for run_model.py
200output_comment = ('_'.join([str(x) for x in output_comment if x != user])
201                                  + '_' + user)
202
203# The absolute pathname of the all elevation, generated in build_elevation.py
204combined_elevation = join(topographies_folder, combined_elevation_basename)
205
206
207# The pathname for the GEMS order points
208if gems_order_filename:
209        gems_order = join(boundaries_folder, gems_order_filename)
210
211# The absolute pathname for the landward points of the bounding polygon,
212# Used within run_model.py)
213if landward_boundary_filename:
214        landward_boundary = join(boundaries_folder, landward_boundary_filename)
215
216# The absolute pathname for the .sts file, generated in build_boundary.py
217event_sts = join(event_folder, scenario_name)
218
219# The absolute pathname for the output folder names
220# Used for build_elevation.py
221output_build = join(output_folder, build_time) + '_' + str(user) 
222# Used for run_model.py
223output_run = join(output_folder, run_time) + output_comment
224# Used by post processing
225output_run_time = join(output_run, scenario_name) 
226
227# The absolute pathname of the mesh, generated in run_model.py
228meshes = join(output_run, scenario_name) + '.msh'
229
230# Log file name
231log.log_filename = join(output_run, scenario_name) + '.log'
232
233# The absolute pathname for the gauges file
234# Used for get_timeseries.py
235if gauges_filename:
236        gauges = join(gauges_folder, gauges_filename)       
237
238# The absolute pathname for the building file
239# Used for run_building_inundation.py
240if building_exposure_filename:
241        building_exposure = join(gauges_folder, building_exposure_filename)
242
243### The absolute pathname for the image file
244### Used for get_runup.py
245##if images_filename:
246##    images = join(polygons_folder, images_filename)
247
248### full path to where MUX files (or meta-files) live
249##mux_input = join(event_folder, mux_input_filename)
250
251
Note: See TracBrowser for help on using the repository browser.