source: anuga_work/production/patong/new_version/project.py @ 7033

Last change on this file since 7033 was 7033, checked in by ole, 15 years ago

Added two extra internal polygons covering areas where video footage for Patong exists.

File size: 10.2 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
10
11
12#------------------------------------------------------------------------------
13# Directory setup
14#------------------------------------------------------------------------------
15
16# this section needs to be updated to reflect the modelled community.
17# Note, the user needs to set up the directory system accordingly
18state = 'thailand'
19scenario_name = 'patong'
20scenario_folder = 'patong_tsunami_scenario'
21
22#------------------------------------------------------------------------------
23# Initial Conditions
24#------------------------------------------------------------------------------
25
26# Model specific parameters.
27# One or all can be changed each time the run_model script is executed
28tide = 0.8              # difference between MSL and HAT
29zone = 47               # specify zone of model
30model = 'small'         # different size model 'small' or 'large'
31event_number = 'mux_' + model    # the event number or the mux file name
32alpha = 0.1             # smoothing parameter for mesh
33friction = 0.01         # manning's friction coefficient
34starttime = 0           # start time for simulation
35finaltime = 15000       # final time for simulation
36
37use_buildings = True
38setup = 'final'         # This can be one of three values
39                        #    trial - coarsest mesh, fast
40                        #    basic - coarse mesh
41                        #    final - fine mesh, slowest
42
43#------------------------------------------------------------------------------
44# Output filename
45#
46# Your output filename should be unique between different runs on different
47# data.
48# The list of items below will be used to create a file in your output
49# directory.
50# Your user name and time+date will be automatically added.  For example,
51#     [setup, tide, event_number]
52# will result in a filename like
53#     20090212_091046_run_final_0_27283_rwilson
54#------------------------------------------------------------------------------
55
56output_comment = [setup, tide, event_number, 'final']
57
58#------------------------------------------------------------------------------
59# Input Data
60#------------------------------------------------------------------------------
61
62# ELEVATION DATA
63# Used in build_elevation.py
64# Format for ascii grids, as produced in ArcGIS + a projection file
65ascii_grid_filenames = []
66
67# Format for point is x,y,elevation (with header)
68point_filenames = ['patong_10m_grid_msl_Project.txt',    # 10m main grid
69                   'patong_10m_small_grid_for_anuga_sub_Project.txt', # 10m saddle
70                   'patong_bay_1s_grid_Project.txt',   # 1s grid
71                   'andaman_3s_grid_Clip2_Project.txt'] #3s grid
72
73### Add csv header list to all files in point_filenames
74##headerlist = ['x', 'y', 'elevation']
75##for f in point_filenames:
76##    add_csv_header(join(topographies_folder, f), headerlist)
77
78extent_polygon_filenames = ['patong_10m.txt',
79                            'saddle_10m.txt',
80                            'patong_1s.txt']
81
82
83# BOUNDING POLYGON - for data clipping and estimate of triangles in mesh
84# Used in build_elevation.py
85# Format for points easting,northing (no header)
86bounding_polygon_filename = 'bounding_polygon_'+ model + '.csv'
87bounding_polygon_maxarea = 100000
88
89# INTERIOR REGIONS -  for designing the mesh
90# Used in run_model.py
91# Format for points easting,northing (no header)                   
92interior_regions_data = [['inundation_area.csv', 75],
93                         ['aoi.csv', 200],
94                         ['aos.csv', 900],
95                         ['sw_coast_original.csv', 7000],
96                         ['building_main.csv', 20],
97                         ['building_main_small.csv', 20],
98                         ['building_main_south.csv', 20],
99                         ['building_saddle.csv', 20],
100                         ['flow_rate_south.csv', 5],
101                         ['flow_rate_north.csv', 5]]
102
103
104# LAND - used to set the initial stage/water to be offcoast only
105# Used in run_model.py.  Format for points easting,northing (no header)
106land_initial_conditions_filename = [['initial_conditions_' + model +'.csv', 0]]
107
108# GAUGES - for creating timeseries at a specific point
109# Used in get_timeseries.py. 
110# Format easting,northing,name,elevation (with header)
111gauges_filename = 'gauges_h.csv'
112
113# BUILDINGS POLYOGN - for elevation of buildings
114# Used in run_model.py
115# Format easting,northing,id,floor (with header)
116building_polygon_filename = 'buildings.csv' 
117
118
119# BUILDINGS EXPOSURE - for identifying inundated houses
120# Used in run_building_inundation.py
121# Format latitude,longitude etc (geographic)
122building_exposure_filename = 'busselton_res_clip.csv' # from NEXIS
123
124# BOUNDING POLYGON - used in build_boundary.py and run_model.py respectively
125# NOTE: when files are put together the points must be in sequence
126# For ease go clockwise!
127# Check the run_model.py for boundary_tags
128
129# Thinned ordering file from Hazard Map (geographic)
130# Format is index,latitude,longitude (with header)
131urs_order_filename = 'urs_order_'+ model +'.csv'
132
133# Landward bounding points
134# Format easting,northing (no header)
135landward_boundary_filename = 'landward_boundary_'+ model +'.csv'
136
137# MUX input filename.
138# If a meta-file from EventSelection is used, set 'multi-mux' to True.
139# If a single MUX stem filename (*.grd) is used, set 'multi-mux' to False.
140mux_input_filename = event_number # to be found in event_folder
141                                    # (ie boundaries/event_number/)
142multi_mux = False
143##mux_input_filename = 'event.list'
144##multi_mux = True
145
146#------------------------------------------------------------------------------
147# Clipping regions for export to asc and regions for clipping data
148# Final inundation maps should only be created in regions of the finest mesh
149#------------------------------------------------------------------------------
150
151#CBD extract ascii grid - coordinates from patong_1s extent
152xminCBD = 417445.1119
153xmaxCBD = 425601.7881
154yminCBD = 870663.4547
155ymaxCBD = 876965.3856
156
157
158################################################################################
159################################################################################
160####         NOTE: NOTHING WOULD NORMALLY CHANGE BELOW THIS POINT.          ####
161################################################################################
162################################################################################
163
164# Get system user and host names.
165# These values can be used to distinguish between two similar runs by two
166# different users or runs by the same user on two different machines.
167user = get_user_name()
168host = get_host_name()
169
170# Environment variable names.
171# The inundation directory, not the data directory.
172ENV_INUNDATIONHOME = 'INUNDATIONHOME'
173
174# Path to MUX data
175ENV_MUXHOME = 'MUXHOME'
176
177#-------------------------------------------------------------------------------
178# Output Elevation Data
179#-------------------------------------------------------------------------------
180
181# Output filename for elevation
182# this is a combination of all the data generated in build_elevation.py
183combined_elevation_basename = scenario_name + '_combined_elevation_' + model
184
185#-------------------------------------------------------------------------------
186# Directory Structure
187#-------------------------------------------------------------------------------
188
189# determines time for setting up output directories
190time = strftime('%Y%m%d_%H%M%S', localtime()) 
191gtime = strftime('%Y%m%d_%H%M%S', gmtime()) 
192build_time = time + '_build_' + model
193run_time = time + '_run_'
194
195# create paths generated from environment variables.
196home = join(os.getenv(ENV_INUNDATIONHOME), 'data') # Absolute path for data folder
197muxhome = os.getenv(ENV_MUXHOME)
198   
199# check various directories/files that must exist
200anuga_folder = join(home, state, scenario_folder, 'anuga')
201topographies_folder = join(anuga_folder, 'topographies')
202polygons_folder = join(anuga_folder, 'polygons')
203boundaries_folder = join(anuga_folder, 'boundaries')
204output_folder = join(anuga_folder, 'outputs')
205gauges_folder = join(anuga_folder, 'gauges')
206meshes_folder = join(anuga_folder, 'meshes')
207event_folder = join(boundaries_folder, str(event_number))
208
209# MUX data files
210# Directory containing the MUX data files to be used with EventSelection.
211mux_data_folder = join(muxhome, 'mux')
212
213#------------------------------------------------------------------------------
214# Location of input and output data
215#------------------------------------------------------------------------------
216
217# Convert the user output_comment to a string for run_model.py
218output_comment = ('_'.join([str(x) for x in output_comment if x != user])
219                  + '_' + user)
220
221# The absolute pathname of the all elevation, generated in build_elevation.py
222combined_elevation = join(topographies_folder, combined_elevation_basename)
223
224# The absolute pathname of the mesh, generated in run_model.py
225meshes = join(meshes_folder, scenario_name) + model +'.msh'
226
227# The pathname for the urs order points, used within build_urs_boundary.py
228urs_order = join(boundaries_folder, urs_order_filename)
229
230# The absolute pathname for the landward points of the bounding polygon,
231# Used within run_model.py)
232landward_boundary = join(boundaries_folder, landward_boundary_filename)
233
234# The absolute pathname for the .sts file, generated in build_boundary.py
235event_sts = join(event_folder, scenario_name)
236
237# The absolute pathname for the output folder names
238# Used for build_elevation.py
239output_build = join(output_folder, build_time) + '_' + str(user) 
240# Used for run_model.py
241output_run = join(output_folder, run_time) + output_comment
242# Used by post processing
243output_run_time = join(output_run, scenario_name) 
244
245# The absolute pathname for the gauges file
246# Used for get_timeseries.py
247gauges = join(gauges_folder, gauges_filename)
248
249# The absolute pathname for the gauges file
250# Used for run_model.py
251building_polygon = join(polygons_folder, building_polygon_filename)
252
253# The absolute pathname for the building file
254# Used for run_building_inundation.py
255building_exposure = join(gauges_folder, building_exposure_filename)
256
257# full path to where MUX files (or meta-files) live
258mux_input = join(event_folder, mux_input_filename)
259
Note: See TracBrowser for help on using the repository browser.