source: anuga_validation/automated_validation_tests/patong_beach_validation/project.py @ 7567

Last change on this file since 7567 was 7567, checked in by ole, 13 years ago

Got rid of environment variables and move log file to output dir.
The logging module will need some work, though.

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 = 'trial'         # 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
101
102# LAND - used to set the initial stage/water to be offcoast only
103# Used in run_model.py.  Format for points easting,northing (no header)
104land_initial_conditions_filename = [['initial_conditions_' + model +'.csv', 0]]
105
106# GAUGES - for creating timeseries at a specific point
107# Used in get_timeseries.py. 
108# Format easting,northing,name,elevation (with header)
109gauges_filename = 'gauges.csv'
110
111# BUILDINGS POLYOGN - for elevation of buildings
112# Used in run_model.py
113# Format easting,northing,id,floor (with header)
114building_polygon_filename = 'buildings.csv' 
115
116
117# BUILDINGS EXPOSURE - for identifying inundated houses
118# Used in run_building_inundation.py
119# Format latitude,longitude etc (geographic)
120building_exposure_filename = 'busselton_res_clip.csv' # from NEXIS
121
122# BOUNDING POLYGON - used in build_boundary.py and run_model.py respectively
123# NOTE: when files are put together the points must be in sequence
124# For ease go clockwise!
125# Check the run_model.py for boundary_tags
126
127# Thinned ordering file from Hazard Map (geographic)
128# Format is index,latitude,longitude (with header)
129urs_order_filename = 'urs_order_'+ model +'.csv'
130
131# Landward bounding points
132# Format easting,northing (no header)
133landward_boundary_filename = 'landward_boundary_'+ model +'.csv'
134
135# MUX input filename.
136# If a meta-file from EventSelection is used, set 'multi-mux' to True.
137# If a single MUX stem filename (*.grd) is used, set 'multi-mux' to False.
138mux_input_filename = event_number # to be found in event_folder
139                                    # (ie boundaries/event_number/)
140multi_mux = False
141##mux_input_filename = 'event.list'
142##multi_mux = True
143
144#------------------------------------------------------------------------------
145# Clipping regions for export to asc and regions for clipping data
146# Final inundation maps should only be created in regions of the finest mesh
147#------------------------------------------------------------------------------
148
149#CBD extract ascii grid - coordinates from patong_1s extent
150xminCBD = 417445.1119
151xmaxCBD = 425601.7881
152yminCBD = 870663.4547
153ymaxCBD = 876965.3856
154
155
156################################################################################
157################################################################################
158####         NOTE: NOTHING WOULD NORMALLY CHANGE BELOW THIS POINT.          ####
159################################################################################
160################################################################################
161
162# Get system user and host names.
163# These values can be used to distinguish between two similar runs by two
164# different users or runs by the same user on two different machines.
165user = get_user_name()
166host = get_host_name()
167
168# Environment variable names.
169# The inundation directory, not the data directory.
170ENV_INUNDATIONHOME = 'INUNDATIONHOME'
171
172# Path to MUX data
173ENV_MUXHOME = 'MUXHOME'
174
175#-------------------------------------------------------------------------------
176# Output Elevation Data
177#-------------------------------------------------------------------------------
178
179# Output filename for elevation
180# this is a combination of all the data generated in build_elevation.py
181combined_elevation_basename = scenario_name + '_combined_elevation_' + model
182
183#-------------------------------------------------------------------------------
184# Directory Structure
185#-------------------------------------------------------------------------------
186
187# determines time for setting up output directories
188time = strftime('%Y%m%d_%H%M%S', localtime()) 
189gtime = strftime('%Y%m%d_%H%M%S', gmtime()) 
190build_time = time + '_build_' + model
191run_time = time + '_run_'
192
193# create paths generated from environment variables.
194#home = join(os.getenv(ENV_INUNDATIONHOME), 'data') # Absolute path for data folder
195#muxhome = os.getenv(ENV_MUXHOME)
196
197output_dirname = os.path.dirname(__file__)
198home = os.path.join(output_dirname, 'local_data', 'data')
199muxhome = home # FIXME (Ole): Get rid off
200
201# check various directories/files that must exist
202anuga_folder = join(home, state, scenario_folder, 'anuga')
203topographies_folder = join(anuga_folder, 'topographies')
204polygons_folder = join(anuga_folder, 'polygons')
205boundaries_folder = join(anuga_folder, 'boundaries')
206output_folder = join(anuga_folder, 'outputs')
207gauges_folder = join(anuga_folder, 'gauges')
208meshes_folder = join(anuga_folder, 'meshes')
209event_folder = join(boundaries_folder, str(event_number))
210
211# MUX data files
212# Directory containing the MUX data files to be used with EventSelection.
213mux_data_folder = join(muxhome, 'mux')
214
215#------------------------------------------------------------------------------
216# Location of input and output data
217#------------------------------------------------------------------------------
218
219# Convert the user output_comment to a string for run_model.py
220output_comment = ('_'.join([str(x) for x in output_comment if x != user])
221                  + '_' + user)
222
223# The absolute pathname of the all elevation, generated in build_elevation.py
224combined_elevation = join(topographies_folder, combined_elevation_basename)
225
226# The absolute pathname of the mesh, generated in run_model.py
227meshes = join(meshes_folder, scenario_name) + model +'.msh'
228
229# The pathname for the urs order points, used within build_urs_boundary.py
230urs_order = join(boundaries_folder, urs_order_filename)
231
232# The absolute pathname for the landward points of the bounding polygon,
233# Used within run_model.py)
234landward_boundary = join(boundaries_folder, landward_boundary_filename)
235
236# The absolute pathname for the .sts file, generated in build_boundary.py
237event_sts = join(event_folder, scenario_name)
238
239# The absolute pathname for the output folder names
240# Used for build_elevation.py
241output_build = join(output_folder, build_time) + '_' + str(user) 
242# Used for run_model.py
243output_run = join(output_folder, run_time) + output_comment
244# Used by post processing
245output_run_time = join(output_run, scenario_name) 
246
247# The absolute pathname for the gauges file
248# Used for get_timeseries.py
249gauges = join(gauges_folder, gauges_filename)
250
251# The absolute pathname for the gauges file
252# Used for run_model.py
253building_polygon = join(polygons_folder, building_polygon_filename)
254
255# The absolute pathname for the building file
256# Used for run_building_inundation.py
257building_exposure = join(gauges_folder, building_exposure_filename)
258
259# full path to where MUX files (or meta-files) live
260mux_input = join(event_folder, mux_input_filename)
261
Note: See TracBrowser for help on using the repository browser.