Ignore:
Timestamp:
Sep 25, 2008, 2:24:38 PM (16 years ago)
Author:
kristy
Message:

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

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.
     2This script is the heart of all scripts in the folder
    33"""
    4 
    5 from os import sep, environ, getenv, getcwd ,umask
     4#------------------------------------------------------------------------------
     5# Import necessary modules
     6#------------------------------------------------------------------------------
     7
     8from os import sep, environ, getenv, getcwd
    69from os.path import expanduser
    710import sys
    811from time import localtime, strftime, gmtime
    912from 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_utm
    1113from anuga.utilities.system_tools import get_user_name, get_host_name
     14from anuga.shallow_water.data_manager import urs2sts,create_sts_boundary
    1215from anuga.utilities.polygon import read_polygon, plot_polygons, polygon_area, is_inside_polygon
    1316
    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
     22home = getenv('INUNDATIONHOME') + sep +'data'+sep #Sandpit's parent diruser = get_user_name()
    1923muxhome = getenv('MUXHOME')
    2024user = get_user_name()
    2125host = get_host_name()
    2226
    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
     28time = strftime('%Y%m%d_%H%M%S',localtime())
     29gtime = strftime('%Y%m%d_%H%M%S',gmtime())
    2830build_time = time+'_build'
    2931run_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
    3339state = 'western_australia'
    3440scenario_name = 'busselton'
    3541scenario = 'busselton_tsunami_scenario'
    3642
    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
     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.
    4756
    4857if setup =='trial':
     
    6271    yieldstep=60
    6372
     73#------------------------------------------------------------------------------
     74# Revision numbers - for comparisons study
     75#------------------------------------------------------------------------------
    6476rev_num = 'newExtent'
    6577#rev_num = '5449'
     
    7890
    7991
    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
     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)
    90110offshore_name = 'Busselton_NavyFinal'
    91111offshore_name1 = 'Busselton_Chart'
     
    95115offshore_name5 = 'Busselton_TIN' # for area within Busselton 500 mesh less than zero generated from TIN
    96116
    97 
    98 #final topo name
     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)
    99134combined_name ='busselton_combined_elevation'
    100 combined_name_small = 'busselton_combined_elevation_smaller'
    101 
     135combined_smaller_name = 'busselton_combined_elevation_smaller'
     136
     137#------------------------------------------------------------------------------
     138# Directory Structure
     139#------------------------------------------------------------------------------
    102140anuga_dir = home+state+sep+scenario+sep+'anuga'+sep
    103 
    104141topographies_in_dir = home+state+sep+scenario+sep+'elevation_final'+sep+'points'+sep
    105142topographies_dir = anuga_dir+'topographies'+sep
    106 
    107 # input topo file location
     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
    108154onshore_in_dir_name = topographies_in_dir + onshore_name #topo
    109 
    110155coast_in_dir_name = topographies_in_dir + coast_name #coastline
    111156coast_in_dir_name1 = topographies_in_dir + coast_name1 #beach survey
    112 
    113157offshore_in_dir_name = topographies_in_dir + offshore_name #bathymetry
    114158offshore_in_dir_name1 = topographies_in_dir + offshore_name1 #bathymetry Charts
     
    118162offshore_in_dir_name5 = topographies_in_dir + offshore_name5 #Busselton TIN
    119163
    120 #output to anuga from build file
     164# where the output data sits
    121165onshore_dir_name = topographies_dir + onshore_name
    122166
     
    131175offshore_dir_name5 = topographies_dir + offshore_name5
    132176
    133 #final topo files
     177# where the combined elevation file sits
    134178combined_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
     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
    158192boundaries_dir_mux = muxhome
    159193
    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
     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
    164197output_run_time_dir_name = output_run_time_dir + scenario_name  #Used by post processing
    165198
    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
     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#------------------------------------------------------------------------------
    182204# 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
     208poly_mainland = read_polygon(polygons_dir+'initial_condition.csv')
     209
     210# Initial bounding polygon for data clipping
    186211poly_all = read_polygon(polygons_dir+'poly_all_extend.csv')
    187212res_poly_all = 100000*res_factor
    188213
    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)
     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   
    217248trigs_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 ###################################################################
     249print 'min estimated number of triangles', trigs_min
     250   
     251#------------------------------------------------------------------------------
    224252# 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
     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 TracChangeset for help on using the changeset viewer.