source: anuga_work/production/busselton/project.py @ 5786

Last change on this file since 5786 was 5786, checked in by kristy, 16 years ago

Updated all scripts to reflect Perth format. Also added 250m scripts

File size: 11.0 KB
Line 
1"""Common filenames and locations for elevation, meshes and outputs.
2This script is the heart of all scripts in the folder
3"""
4#------------------------------------------------------------------------------
5# Import necessary modules
6#------------------------------------------------------------------------------
7
8from os import sep, environ, getenv, getcwd
9from os.path import expanduser
10import sys
11from time import localtime, strftime, gmtime
12from anuga.utilities.polygon import read_polygon, plot_polygons, is_inside_polygon, number_mesh_triangles
13from anuga.utilities.system_tools import get_user_name, get_host_name
14from anuga.shallow_water.data_manager import urs2sts,create_sts_boundary
15from anuga.utilities.polygon import read_polygon, plot_polygons, polygon_area, is_inside_polygon
16
17#------------------------------------------------------------------------------
18# Directory setup
19#------------------------------------------------------------------------------
20# Note: INUNDATIONHOME is the inundation directory, not the data directory.
21
22home = getenv('INUNDATIONHOME') + sep +'data'+sep #Sandpit's parent diruser = get_user_name()
23muxhome = getenv('MUXHOME')
24user = get_user_name()
25host = get_host_name()
26
27# determines time for setting up output directories
28time = strftime('%Y%m%d_%H%M%S',localtime()) 
29gtime = strftime('%Y%m%d_%H%M%S',gmtime()) 
30build_time = time+'_build'
31run_time = time+'_run'
32
33#------------------------------------------------------------------------------
34# Initial Conditions
35#------------------------------------------------------------------------------
36
37# this section needs to be updated to reflect the modelled community.
38# Note, the user needs to set up the directory system accordingly
39state = 'western_australia'
40scenario_name = 'busselton'
41scenario = 'busselton_tsunami_scenario'
42
43# Model specific parameters. One or all can be changed each time the
44# run_scenario script is executed
45tide = 0                #0.6
46#event_number = 27255   # linked to hazard map
47event_number = 27283
48alpha = 0.1             # smoothing parameter for mesh
49friction=0.01           # manning's friction coefficient
50starttime=0             
51finaltime=80000         # final time for simulation
52
53setup='final'  # Final can be replaced with trial or basic.
54               # Either will result in a coarser mesh that will allow a
55               # faster, but less accurate, simulation.
56
57if setup =='trial':
58    print'trial'
59    res_factor=10
60    time_thinning=48
61    yieldstep=240
62if setup =='basic': 
63    print'basic'
64    res_factor=4
65    time_thinning=12
66    yieldstep=120
67if setup =='final': 
68    print'final'
69    res_factor=1
70    time_thinning=4
71    yieldstep=60
72
73#------------------------------------------------------------------------------
74# Revision numbers - for comparisons study
75#------------------------------------------------------------------------------
76rev_num = 'newExtent'
77#rev_num = '5449'
78#rev_num = '4695' # 2nd Sept 2007
79#rev_num = '4743' # 3nd Oct 2007
80#rev_num = '4777' # 1st Nov 2007
81#rev_num = '4874' # 3rd Dec 2007
82#rev_num = '4901' # 3rd Jan 2007
83#rev_num = '4990' # 5th Feb 2007
84#rev_num = '5103' # 3rd March 2007
85#rev_num = '5120' # 5th March 2007
86#rev_num = '5140' # 7th March 2007
87#rev_num = '5160' # 11th March 2007
88#rev_num = '5185' # 1st April 2007
89#rev_num = '5273' # 2nd May 2007
90
91
92#------------------------------------------------------------------------------
93# Output Filename
94#------------------------------------------------------------------------------
95# Important to distinguish each run - ensure str(user) is included!
96# Note, the user is free to include as many parameters as desired
97dir_comment='_'+setup+'_'+str(tide)+'_'+str(event_number)+'_'+ 'alpha' +str(alpha)+'_'+str(user)
98
99#------------------------------------------------------------------------------
100# Input Data
101#------------------------------------------------------------------------------
102
103# elevation data used in build_busselton.py
104# onshore data: format ascii grid with accompanying projection file
105onshore_name = 'busselton_v2_gda94_mga50' 
106# coastline: format x,y,elevation (with title)
107coast_name = 'Busselton_Contour0.txt'
108coast_name1 = 'Busselton_BeachSurvey.txt'
109# bathymetry: format x,y,elevation (with title)
110offshore_name = 'Busselton_NavyFinal'
111offshore_name1 = 'Busselton_Chart'
112offshore_name2 = 'Busselton_Digitised'
113offshore_name3 = 'Busselton_250m' # for areas that were heading to zero - 2005 Bathymetry grid
114offshore_name4 = 'Bunbury_TIN' # for area within Bunbury 500 mesh less than zero generated from TIN
115offshore_name5 = 'Busselton_TIN' # for area within Busselton 500 mesh less than zero generated from TIN
116
117# gauges - used in get_timeseries.py
118gauge_name = 'busselton.csv'
119gauge_name2 = 'thinned_MGA50.csv'
120
121# BOUNDING POLYGON - used in build_boundary.py and run_busselton.py respectively
122# NOTE: when files are put together the points must be in sequence - for ease go clockwise!
123# Check the run_busselton.py for boundary_tags
124# thinned ordering file from Hazard Map: format is index,latitude,longitude (with title)
125order_filename = 'thinned_boundary_ordering.txt'
126#landward bounding points
127landward = 'landward_bounding_polygon.txt'
128
129#------------------------------------------------------------------------------
130# Output Elevation Data
131#------------------------------------------------------------------------------
132# Output filename for elevation
133# this is a combination of all the data (utilisied in build_boundary)
134combined_name ='busselton_combined_elevation'
135combined_smaller_name = 'busselton_combined_elevation_smaller'
136
137#------------------------------------------------------------------------------
138# Directory Structure
139#------------------------------------------------------------------------------
140anuga_dir = home+state+sep+scenario+sep+'anuga'+sep
141topographies_in_dir = home+state+sep+scenario+sep+'elevation_final'+sep+'points'+sep
142topographies_dir = anuga_dir+'topographies'+sep
143polygons_dir = anuga_dir+'polygons'+sep
144tide_dir = anuga_dir+'tide_data'+sep
145boundaries_dir = anuga_dir+'boundaries'+ sep
146output_dir = anuga_dir+'outputs'+sep
147gauges_dir = anuga_dir+'gauges'+sep
148meshes_dir = anuga_dir+'meshes'+sep
149
150#------------------------------------------------------------------------------
151# Location of input and output data
152#------------------------------------------------------------------------------
153# where the input data sits
154onshore_in_dir_name = topographies_in_dir + onshore_name #topo
155coast_in_dir_name = topographies_in_dir + coast_name #coastline
156coast_in_dir_name1 = topographies_in_dir + coast_name1 #beach survey
157offshore_in_dir_name = topographies_in_dir + offshore_name #bathymetry
158offshore_in_dir_name1 = topographies_in_dir + offshore_name1 #bathymetry Charts
159offshore_in_dir_name2 = topographies_in_dir + offshore_name2 #Digitised Fairsheet
160offshore_in_dir_name3 = topographies_in_dir + offshore_name3 #250m
161offshore_in_dir_name4 = topographies_in_dir + offshore_name4 #Bunbury TIN
162offshore_in_dir_name5 = topographies_in_dir + offshore_name5 #Busselton TIN
163
164# where the output data sits
165onshore_dir_name = topographies_dir + onshore_name
166
167coast_dir_name = topographies_dir + coast_name
168coast_dir_name1 = topographies_dir + coast_name1
169
170offshore_dir_name = topographies_dir + offshore_name
171offshore_dir_name1 = topographies_dir + offshore_name1
172offshore_dir_name2 = topographies_dir + offshore_name2
173offshore_dir_name3 = topographies_dir + offshore_name3
174offshore_dir_name4 = topographies_dir + offshore_name4
175offshore_dir_name5 = topographies_dir + offshore_name5
176
177# where the combined elevation file sits
178combined_dir_name = topographies_dir + combined_name
179combined_smaller_name_dir = topographies_dir + combined_smaller_name
180
181# where the mesh sits (this is created during the run_busselton.py)
182meshes_dir_name = meshes_dir + scenario_name+'.msh'
183
184# where the boundary ordering files sit (this is used within build_boundary.py)
185order_filename_dir = boundaries_dir + order_filename
186
187# where the landward points of boundary extent sit (this is used within run_busselton.py)
188landward_dir = boundaries_dir + landward
189
190# where the event sts files sits (this is created during the build_boundary.py)
191boundaries_dir_event = boundaries_dir + str(event_number) + sep
192boundaries_dir_mux = muxhome
193
194# where the directory of the output filename sits
195output_build_time_dir = output_dir+build_time+dir_comment+sep   #used for build_busselton.py
196output_run_time_dir = output_dir+run_time+dir_comment+sep       #used for run_busselton.py
197output_run_time_dir_name = output_run_time_dir + scenario_name  #Used by post processing
198
199#w here the directory of the gauges sit
200gauges_dir_name = gauges_dir + gauge_name       #used for get_timeseries.py
201gauges_dir_name2 = gauges_dir + gauge_name2     #used for get_timeseries.py
202
203#------------------------------------------------------------------------------
204# Interior region definitions
205#------------------------------------------------------------------------------
206
207#Land, to set the initial stage/water to be offcoast only
208poly_mainland = read_polygon(polygons_dir+'initial_condition.csv')
209
210# Initial bounding polygon for data clipping
211poly_all = read_polygon(polygons_dir+'poly_all_extend.csv')
212res_poly_all = 100000*res_factor
213
214# Area of Interest 1 (Busselton)
215poly_aoi1 = read_polygon(polygons_dir+'busselton_1km.csv')
216res_aoi1 = 500*res_factor
217
218# Area of Interest 2 (Bunbury)
219poly_aoi2 = read_polygon(polygons_dir+'bunbury_1km.csv')
220res_aoi2 = 500*res_factor
221
222# Area of Significance 1 (Busselton)
223poly_aos1 = read_polygon(polygons_dir+'busselton_2km.csv')
224res_aos1 = 10000*res_factor
225
226# Area of Significance 2 (Bunbury)
227poly_aos2 = read_polygon(polygons_dir+'busselton_2km.csv')
228res_aos2 = 10000*res_factor
229
230# Refined areas
231# Polygon designed to islands
232poly_aos3 = read_polygon(polygons_dir+'island1.csv')
233res_aos3 = 10000*res_factor
234poly_aos4 = read_polygon(polygons_dir+'island2.csv')
235res_aos4 = 10000*res_factor
236
237# Shallow water 1
238poly_sw1 = read_polygon(polygons_dir+'coast_5km_d20m.csv')
239res_sw1 = 40000*res_factor
240
241# Combined all regions, must check that all are included!
242interior_regions = [[poly_aoi1,res_aoi1],[poly_aoi2,res_aoi2]
243                     ,[poly_aos1,res_aos1],[poly_aos2,res_aos2]
244                     ,[poly_aos3,res_aos3],[poly_aos4,res_aos4]
245                     ,[poly_sw1,res_sw1]]
246
247   
248trigs_min = number_mesh_triangles(interior_regions, poly_all, res_poly_all)
249print 'min estimated number of triangles', trigs_min
250   
251#------------------------------------------------------------------------------
252# Clipping regions for export to asc and regions for clipping data
253# Final inundation maps should only be created in regions of the finest mesh
254#------------------------------------------------------------------------------
255
256#Geordie Bay extract ascii grid
257xminGeordie = 358000
258xmaxGeordie = 362000
259yminGeordie = 6458500
260ymaxGeordie = 6461000
261
262#Sorrento extract ascii grid
263xminSorrento = 379000
264xmaxSorrento = 382500
265yminSorrento = 6477000
266ymaxSorrento = 6480000
267
268#Fremantle extract ascii grid
269xminFremantle = 376000
270xmaxFremantle = 388000
271yminFremantle = 6449000
272ymaxFremantle = 6461000
273
274#Rockingham extract ascii grid
275xminRockingham = 373500
276xmaxRockingham = 385500
277yminRockingham = 6424000
278ymaxRockingham = 6433000
279
Note: See TracBrowser for help on using the repository browser.