source: anuga_work/production/australia_ph2/portland/project.py @ 6767

Last change on this file since 6767 was 6767, checked in by myall, 16 years ago

newer project scripts with shared caching and loop over multiple events possible. added scripts for new model, Derby

File size: 9.9 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
10from anuga.lib.add_csv_header.add_csv_header import add_csv_header
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 = 'australia_ph2'
19scenario_name = 'portland'
20
21#-------------------------------------------------------------------------------
22# Initial Conditions
23#-------------------------------------------------------------------------------
24
25# Model specific parameters.
26# One or all can be changed each time the run_model script is executed
27
28central_meridian = None # Central meridian for projection (optional)
29zone = 54
30import sys
31if len(sys.argv) > 1:
32    event_number = int(sys.argv[1])
33else:   
34    event_number = 64322    # the event number or the mux file name
35
36event_number_list = [27289, 58358, 64322] # To piggy back multiple events
37
38tide = 0                # difference between MSL and HAT
39alpha = 0.1             # smoothing parameter for mesh
40friction=0.01           # manning's friction coefficient
41starttime=0             # start time for simulation
42finaltime=1000   #60000 # final time for simulation
43setup = 'final'         # This can be one of three values
44                        #    trial - coarsest mesh, fast
45                        #    basic - coarse mesh
46                        #    final - fine mesh, slowest
47
48# index is only used when wave = Tb
49index = 1969            # index from the PTHA
50wave = 'Tb'             # Bf (sts wave) Tb (index wave)
51
52
53internal_polygon = False
54
55#-------------------------------------------------------------------------------
56# Output filename
57#
58# Your output filename should be unique between different runs on different data.
59# The list of items below will be used to create a file in your output directory.
60# Your user name and time+date will be automatically added.  For example,
61#     [setup, tide, event_number]
62# will result in a filename like
63#     20090212_091046_run_final_0_27283_rwilson
64#-------------------------------------------------------------------------------
65
66if internal_polygon:
67    internal_poly_comment = 'internal'
68else:
69    internal_poly_comment = ''
70
71output_comment = [setup, tide, event_number, index, wave, internal_poly_comment]
72
73#-------------------------------------------------------------------------------
74# Input Data
75#-------------------------------------------------------------------------------
76
77# ELEVATION DATA
78# Used in build_elevation.py
79# Format for ascii grids, as produced in ArcGIS + a projection file
80ascii_grid_filenames = [] # 250m grid 2005
81
82# Format for points is x,y,elevation (with header)
83point_filenames = ['bight_grid250m.txt',
84                   'melbourne_grid250m.txt'] # 250m grid 2005
85
86### Add csv header list to all files in point_filenames
87##headerlist = ['x', 'y', 'elevation']
88##for f in point_filenames:
89##    add_csv_header(join(topographies_folder, f), headerlist)
90
91# BOUNDING POLYGON - for data clipping and estimate of triangles in mesh
92# Used in build_elevation.py
93# Format for points: easting,northing (no header)
94bounding_polygon_filename = 'bounding_polygon.csv'
95bounding_polygon_maxarea = 125000
96
97# INTERIOR REGIONS -  for designing the mesh
98# Used in run_model.py
99# Format for points easting,northing (no header)                   
100interior_regions_data = []
101
102# add an internal polygon to force different mesh generation
103# used to test for discretisation error when building elevation
104# make sure file is in same folder as interior regions and bouding polygon;
105# format is same (2 column .csv; easting, northing; no header)
106if internal_polygon:
107    interior_regions_data.append(['internal_polygon.csv',
108                                  bounding_polygon_maxarea])
109
110# LAND - used to set the initial stage/water to be offcoast only
111# Used in run_model.py.  Format for points easting,northing (no header)
112land_initial_conditions_filename = []
113
114# GAUGES - for creating timeseries at a specific point
115# Used in get_timeseries.py. 
116# Format easting,northing,name,elevation (with header)
117gauges_filename = 'gauges.csv'
118
119# BUILDINGS EXPOSURE - for identifying inundated houses
120# Used in run_building_inundation.py
121# Format latitude,longitude etc (geographic)
122building_exposure_filename = '.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_simple.csv'
132
133# Landward bounding points
134# Format easting,northing (no header)
135landward_boundary_filename = 'landward_boundary.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.
140##mux_input_filename = 'Java-0016-z.grd'
141##multi_mux = False
142mux_input_filename = 'event.list'
143multi_mux = True
144
145# Specify if share cache is to be used
146# Whatever is specified here will be relative to INUNDATION_HOME/.cache
147# If nothing is specified, local cache will be used.
148cachedir = '.python_cache_phII'
149
150
151################################################################################
152################################################################################
153####         NOTE: NOTHING WOULD NORMALLY CHANGE BELOW THIS POINT.          ####
154################################################################################
155################################################################################
156
157# Get system user and host names.
158# These values can be used to distinguish between two similar runs by two
159# different users or runs by the same user on two different machines.
160user = get_user_name()
161host = get_host_name()
162
163# Environment variable names.
164# The inundation directory, not the data directory.
165ENV_INUNDATIONHOME = 'INUNDATIONHOME'
166
167# Path to MUX data
168ENV_MUXHOME = 'MUXHOME'
169
170#-------------------------------------------------------------------------------
171# Output Elevation Data
172#-------------------------------------------------------------------------------
173
174# Output filename for elevation
175# this is a combination of all the data generated in build_elevation.py
176combined_elevation_basename = scenario_name + '_combined_elevation'
177
178#-------------------------------------------------------------------------------
179# Directory Structure
180#-------------------------------------------------------------------------------
181
182# determines time for setting up output directories
183time = strftime('%Y%m%d_%H%M%S', localtime()) 
184gtime = strftime('%Y%m%d_%H%M%S', gmtime()) 
185build_time = time + '_build'
186run_time = time + '_run_'
187
188# create paths generated from environment variables.
189home = join(os.getenv(ENV_INUNDATIONHOME), 'data') # Absolute path for data folder
190muxhome = os.getenv(ENV_MUXHOME)
191
192# Create absolute pathname for cache directory
193# and change caching to use it
194if 'cachedir' in dir():
195    cachedir = join(os.getenv(ENV_INUNDATIONHOME), '.cache', cachedir)
196    from anuga.caching import caching
197    caching.set_option('cachedir', cachedir) 
198   
199# check various directories/files that must exist
200anuga_folder = join(home, state, scenario_name, '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) + '.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 building file
250# Used for run_building_inundation.py
251building_exposure = join(gauges_folder, building_exposure_filename)
252
253# full path to where MUX files (or meta-files) live
254mux_input = join(event_folder, mux_input_filename)
255
256# sts gauge with desired index number - used for wave 'Tb'
257boundary_csv = join(event_folder, 'sts_gauge_' + str(index) + '.csv')
258
259
Note: See TracBrowser for help on using the repository browser.