Changeset 5786 for anuga_work/production/busselton/project.py
- Timestamp:
- Sep 25, 2008, 2:24:38 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
anuga_work/production/busselton/project.py
r5669 r5786 1 # -*- coding: cp1252 -*- 2 """Common filenames and locations for topographic data, meshes and outputs. 1 """Common filenames and locations for elevation, meshes and outputs. 2 This script is the heart of all scripts in the folder 3 3 """ 4 5 from os import sep, environ, getenv, getcwd ,umask 4 #------------------------------------------------------------------------------ 5 # Import necessary modules 6 #------------------------------------------------------------------------------ 7 8 from os import sep, environ, getenv, getcwd 6 9 from os.path import expanduser 7 10 import sys 8 11 from time import localtime, strftime, gmtime 9 12 from anuga.utilities.polygon import read_polygon, plot_polygons, is_inside_polygon, number_mesh_triangles 10 #from anuga.coordinate_transforms.redfearn import degminsec2decimal_degrees, convert_points_from_latlon_to_utm11 13 from anuga.utilities.system_tools import get_user_name, get_host_name 14 from anuga.shallow_water.data_manager import urs2sts,create_sts_boundary 12 15 from anuga.utilities.polygon import read_polygon, plot_polygons, polygon_area, is_inside_polygon 13 16 14 # file and system info 15 #--------------------------------- 16 #codename = 'project.py' 17 18 home = getenv('INUNDATIONHOME') + sep +'data'+sep #Sandpit's parent dir 17 #------------------------------------------------------------------------------ 18 # Directory setup 19 #------------------------------------------------------------------------------ 20 # Note: INUNDATIONHOME is the inundation directory, not the data directory. 21 22 home = getenv('INUNDATIONHOME') + sep +'data'+sep #Sandpit's parent diruser = get_user_name() 19 23 muxhome = getenv('MUXHOME') 20 24 user = get_user_name() 21 25 host = get_host_name() 22 26 23 # INUNDATIONHOME is the inundation directory, not the data directory. 24 25 #time stuff 26 time = strftime('%Y%m%d_%H%M%S',localtime()) #gets time for new dir 27 gtime = strftime('%Y%m%d_%H%M%S',gmtime()) #gets time for new dir 27 # determines time for setting up output directories 28 time = strftime('%Y%m%d_%H%M%S',localtime()) 29 gtime = strftime('%Y%m%d_%H%M%S',gmtime()) 28 30 build_time = time+'_build' 29 31 run_time = time+'_run' 30 print 'gtime: ', gtime 31 32 #Making assumptions about the location of scenario data 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 33 39 state = 'western_australia' 34 40 scenario_name = 'busselton' 35 41 scenario = 'busselton_tsunami_scenario' 36 42 37 tide = 0 #0.6 38 39 alpha = 0.1 40 friction=0.01 41 starttime=0 42 finaltime=80000 43 export_cellsize=25 44 setup='final' 45 source='polyline' 46 43 # Model specific parameters. One or all can be changed each time the 44 # run_scenario script is executed 45 tide = 0 #0.6 46 #event_number = 27255 # linked to hazard map 47 event_number = 27283 48 alpha = 0.1 # smoothing parameter for mesh 49 friction=0.01 # manning's friction coefficient 50 starttime=0 51 finaltime=80000 # final time for simulation 52 53 setup='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. 47 56 48 57 if setup =='trial': … … 62 71 yieldstep=60 63 72 73 #------------------------------------------------------------------------------ 74 # Revision numbers - for comparisons study 75 #------------------------------------------------------------------------------ 64 76 rev_num = 'newExtent' 65 77 #rev_num = '5449' … … 78 90 79 91 80 dir_comment='_'+setup+'_'+str(tide)+'_'+str(source)+'_'+str(rev_num)+'_'+str(user) 81 82 83 # onshore data provided by WA DLI - provided by Hamish on the 17th June 2008 84 85 onshore_name = 'busselton_v2_gda94_mga50' # original 86 87 # AHO + DPI data 88 coast_name = 'Busselton_Contour0' # provided by hamish, represent better coastline than the 100km as compared to charts 89 coast_name1 = 'Busselton_BeachSurvey' 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 97 dir_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 105 onshore_name = 'busselton_v2_gda94_mga50' 106 # coastline: format x,y,elevation (with title) 107 coast_name = 'Busselton_Contour0.txt' 108 coast_name1 = 'Busselton_BeachSurvey.txt' 109 # bathymetry: format x,y,elevation (with title) 90 110 offshore_name = 'Busselton_NavyFinal' 91 111 offshore_name1 = 'Busselton_Chart' … … 95 115 offshore_name5 = 'Busselton_TIN' # for area within Busselton 500 mesh less than zero generated from TIN 96 116 97 98 #final topo name 117 # gauges - used in get_timeseries.py 118 gauge_name = 'busselton.csv' 119 gauge_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) 125 order_filename = 'thinned_boundary_ordering.txt' 126 #landward bounding points 127 landward = '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) 99 134 combined_name ='busselton_combined_elevation' 100 combined_name_small = 'busselton_combined_elevation_smaller' 101 135 combined_smaller_name = 'busselton_combined_elevation_smaller' 136 137 #------------------------------------------------------------------------------ 138 # Directory Structure 139 #------------------------------------------------------------------------------ 102 140 anuga_dir = home+state+sep+scenario+sep+'anuga'+sep 103 104 141 topographies_in_dir = home+state+sep+scenario+sep+'elevation_final'+sep+'points'+sep 105 142 topographies_dir = anuga_dir+'topographies'+sep 106 107 # input topo file location 143 polygons_dir = anuga_dir+'polygons'+sep 144 tide_dir = anuga_dir+'tide_data'+sep 145 boundaries_dir = anuga_dir+'boundaries'+ sep 146 output_dir = anuga_dir+'outputs'+sep 147 gauges_dir = anuga_dir+'gauges'+sep 148 meshes_dir = anuga_dir+'meshes'+sep 149 150 #------------------------------------------------------------------------------ 151 # Location of input and output data 152 #------------------------------------------------------------------------------ 153 # where the input data sits 108 154 onshore_in_dir_name = topographies_in_dir + onshore_name #topo 109 110 155 coast_in_dir_name = topographies_in_dir + coast_name #coastline 111 156 coast_in_dir_name1 = topographies_in_dir + coast_name1 #beach survey 112 113 157 offshore_in_dir_name = topographies_in_dir + offshore_name #bathymetry 114 158 offshore_in_dir_name1 = topographies_in_dir + offshore_name1 #bathymetry Charts … … 118 162 offshore_in_dir_name5 = topographies_in_dir + offshore_name5 #Busselton TIN 119 163 120 # output to anuga from build file164 # where the output data sits 121 165 onshore_dir_name = topographies_dir + onshore_name 122 166 … … 131 175 offshore_dir_name5 = topographies_dir + offshore_name5 132 176 133 # final topo files177 # where the combined elevation file sits 134 178 combined_dir_name = topographies_dir + combined_name 135 combined_dir_name_small = topographies_dir + combined_name_small 136 137 meshes_dir = anuga_dir+'meshes'+sep 138 meshes_dir_name = meshes_dir + scenario_name 139 140 polygons_dir = anuga_dir+'polygons'+sep+'New_Extents'+sep 141 tide_dir = anuga_dir+'tide_data'+sep 142 143 #boundaries_source = '1' 144 145 ##if source=='exmouth': 146 ## boundaries_name = 'busselton_3103_30052008' # exmouth gun 147 ## boundaries_in_dir = anuga_dir+'boundaries'+sep+'urs'+sep+'exmouth'+sep+'1_10000'+sep 148 ## 149 ##if source=='test': 150 ## boundaries_name = 'other' #exmouth gun 151 ## boundaries_in_dir = anuga_dir+'boundaries'+sep 152 ## 153 154 #boundaries locations 155 #boundaries_in_dir_name = boundaries_in_dir + boundaries_name 156 boundaries_dir = anuga_dir+'boundaries'+sep 157 boundaries_dir_name = boundaries_dir + scenario_name 179 combined_smaller_name_dir = topographies_dir + combined_smaller_name 180 181 # where the mesh sits (this is created during the run_busselton.py) 182 meshes_dir_name = meshes_dir + scenario_name+'.msh' 183 184 # where the boundary ordering files sit (this is used within build_boundary.py) 185 order_filename_dir = boundaries_dir + order_filename 186 187 # where the landward points of boundary extent sit (this is used within run_busselton.py) 188 landward_dir = boundaries_dir + landward 189 190 # where the event sts files sits (this is created during the build_boundary.py) 191 boundaries_dir_event = boundaries_dir + str(event_number) + sep 158 192 boundaries_dir_mux = muxhome 159 193 160 #output locations 161 output_dir = anuga_dir+'outputs'+sep 162 output_build_time_dir = output_dir +build_time + dir_comment + sep 163 output_run_time_dir = output_dir + run_time + dir_comment +sep 194 # where the directory of the output filename sits 195 output_build_time_dir = output_dir+build_time+dir_comment+sep #used for build_busselton.py 196 output_run_time_dir = output_dir+run_time+dir_comment+sep #used for run_busselton.py 164 197 output_run_time_dir_name = output_run_time_dir + scenario_name #Used by post processing 165 198 166 #gauges 167 gauge_name = 'busselton.csv' 168 gauge_name2 = 'thinned_MGA50+1-1.csv' 169 170 gauges_dir = home+state+sep+scenario+sep+'anuga'+sep+'gauges'+sep 171 gauges_dir_name = gauges_dir + gauge_name 172 gauges_dir_name2 = gauges_dir + gauge_name2 173 174 buildings_filename = gauges_dir + 'Busselton_res_Project.csv' 175 buildings_filename_out = 'Busselton_res_Project_modified.csv' 176 177 community_filename = gauges_dir +'' 178 community_broome = gauges_dir + '' 179 180 181 ############################### 199 #w here the directory of the gauges sit 200 gauges_dir_name = gauges_dir + gauge_name #used for get_timeseries.py 201 gauges_dir_name2 = gauges_dir + gauge_name2 #used for get_timeseries.py 202 203 #------------------------------------------------------------------------------ 182 204 # Interior region definitions 183 ############################### 184 185 # Initial bounding polygon for data clipping 205 #------------------------------------------------------------------------------ 206 207 #Land, to set the initial stage/water to be offcoast only 208 poly_mainland = read_polygon(polygons_dir+'initial_condition.csv') 209 210 # Initial bounding polygon for data clipping 186 211 poly_all = read_polygon(polygons_dir+'poly_all_extend.csv') 187 212 res_poly_all = 100000*res_factor 188 213 189 #digitized polygons 190 poly_large = read_polygon(polygons_dir+'coast_5km_d20m.csv') 191 res_large = 40000*res_factor 192 193 poly_busselton = read_polygon(polygons_dir+'busselton_1km.csv') 194 res_busselton = 500*res_factor 195 196 poly_bunbury = read_polygon(polygons_dir+'bunbury_1km.csv') 197 res_bunbury = 500*res_factor 198 199 poly_busselton2 = read_polygon(polygons_dir+'busselton_2km.csv') 200 res_busselton2 = 10000*res_factor 201 202 poly_bunbury2 = read_polygon(polygons_dir+'bunbury_2km.csv') 203 res_bunbury2 = 10000*res_factor 204 205 poly_island1 = read_polygon(polygons_dir+'island1.csv') 206 res_island1 = 10000*res_factor 207 208 poly_island2 = read_polygon(polygons_dir+'island2.csv') 209 res_island2 = 10000*res_factor 210 211 212 interior_regions = [[poly_large,res_large],[poly_busselton,res_busselton],[poly_bunbury,res_bunbury] 213 ,[poly_busselton2,res_busselton2],[poly_bunbury2,res_bunbury2] 214 ,[poly_island1, res_island1],[poly_island2, res_island2]] 215 216 214 # Area of Interest 1 (Busselton) 215 poly_aoi1 = read_polygon(polygons_dir+'busselton_1km.csv') 216 res_aoi1 = 500*res_factor 217 218 # Area of Interest 2 (Bunbury) 219 poly_aoi2 = read_polygon(polygons_dir+'bunbury_1km.csv') 220 res_aoi2 = 500*res_factor 221 222 # Area of Significance 1 (Busselton) 223 poly_aos1 = read_polygon(polygons_dir+'busselton_2km.csv') 224 res_aos1 = 10000*res_factor 225 226 # Area of Significance 2 (Bunbury) 227 poly_aos2 = read_polygon(polygons_dir+'busselton_2km.csv') 228 res_aos2 = 10000*res_factor 229 230 # Refined areas 231 # Polygon designed to islands 232 poly_aos3 = read_polygon(polygons_dir+'island1.csv') 233 res_aos3 = 10000*res_factor 234 poly_aos4 = read_polygon(polygons_dir+'island2.csv') 235 res_aos4 = 10000*res_factor 236 237 # Shallow water 1 238 poly_sw1 = read_polygon(polygons_dir+'coast_5km_d20m.csv') 239 res_sw1 = 40000*res_factor 240 241 # Combined all regions, must check that all are included! 242 interior_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 217 248 trigs_min = number_mesh_triangles(interior_regions, poly_all, res_poly_all) 218 print 'min number triangles', trigs_min 219 220 poly_mainland=read_polygon(polygons_dir+'initial_condition.csv') 221 222 223 ################################################################### 249 print 'min estimated number of triangles', trigs_min 250 251 #------------------------------------------------------------------------------ 224 252 # Clipping regions for export to asc and regions for clipping data 225 ################################################################### 226 227 # exporting asc grid for Busselton 228 xminBusselton = 340000 229 xmaxBusselton = 352000 230 yminBusselton = 6271500 231 ymaxBusselton = 6280000 232 233 # exporting asc grid for Bunbury 234 xminBunbury = 369000 235 xmaxBunbury = 381000 236 yminBunbury = 6308000 237 ymaxBunbury = 6316500 238 239 # exporting asc grid for Dunsborough 240 xminDunsborough = 321000 241 xmaxDunsborough = 327500 242 yminDunsborough = 6277000 243 ymaxDunsborough = 6282000 244 253 # Final inundation maps should only be created in regions of the finest mesh 254 #------------------------------------------------------------------------------ 255 256 #Geordie Bay extract ascii grid 257 xminGeordie = 358000 258 xmaxGeordie = 362000 259 yminGeordie = 6458500 260 ymaxGeordie = 6461000 261 262 #Sorrento extract ascii grid 263 xminSorrento = 379000 264 xmaxSorrento = 382500 265 yminSorrento = 6477000 266 ymaxSorrento = 6480000 267 268 #Fremantle extract ascii grid 269 xminFremantle = 376000 270 xmaxFremantle = 388000 271 yminFremantle = 6449000 272 ymaxFremantle = 6461000 273 274 #Rockingham extract ascii grid 275 xminRockingham = 373500 276 xmaxRockingham = 385500 277 yminRockingham = 6424000 278 ymaxRockingham = 6433000 279
Note: See TracChangeset
for help on using the changeset viewer.