source: anuga_work/production/busselton_2006/project.py @ 4058

Last change on this file since 4058 was 3908, checked in by sexton, 18 years ago

adding script for locating indigeneous communities for FESA nominated areas

File size: 6.2 KB
RevLine 
[3908]1# -*- coding: cp1252 -*-
2"""Common filenames and locations for topographic data, meshes and outputs.
3"""
4
5from os import sep, environ, getenv, getcwd
6from os.path import expanduser
7import sys
8from time import localtime, strftime, gmtime
9from anuga.utilities.polygon import read_polygon, plot_polygons, polygon_area, is_inside_polygon
10
11if sys.platform == 'win32':
12    home = getenv('INUNDATIONHOME')
13    user = getenv('USERPROFILE')
14
15else:   
16    home = getenv('INUNDATIONHOME', sep+'d'+sep+'xrd'+sep+'gem'+sep+'2'+sep+'ramp'+sep+'risk_assessment_methods_project'+sep+'inundation')     
17    user = getenv('LOGNAME')
18    print 'USER:', user
19
20# INUNDATIONHOME is the inundation directory, not the data directory.
21home += sep +'data'
22
23#Making assumptions about the location of scenario data
24state = 'western_australia'
25scenario_dir_name = 'busselton_tsunami_scenario_2006'
26
27# onshore data provided by WA DLI
28onshore_name =  ''# original
29
30# AHO + DPI data
31offshore_name1 = 'XY100011610'
32offshore_name2 = 'XY100011611'
33offshore_name3 = 'XY100011613'
34offshore_name4 = 'XY100011614'
35offshore_name5 = 'XY100011616'
36offshore_name6 = 'XY100011617'
37offshore_name7 = 'XY100011618'
38offshore_name8 = 'XY100011621'
39offshore_name9 = 'XY100011623'
40offshore_name10 = 'XY100011745'
41offshore_name11 = 'XY100011746'
42offshore_name12 = 'XY100017530'
43offshore_name13 = 'XY100017532'
44offshore_name14 = 'XY100017538'
45offshore_name15 = 'XY100017540'
46offshore_name16 = 'XYBR66'
47offshore_name17 = 'XYBR70'
48offshore_name18 = 'XYBR80'
49offshore_name19 = 'XYBR88'
50offshore_name20 = 'XYBR93'
51offshore_name21 = 'XYBR0110'
52offshore_name22 = 'XYWADPI'
53
54# developed by NM&I
55coast_name = 'coastline'
56
57boundary_basename = 'SU-AU' # Mw ?
58
59#swollen/ all data output
60basename = 'source'
61codename = 'project.py'
62
63#Derive subdirectories and filenames
64local_time = strftime('%Y%m%d_%H%M%S',gmtime()) 
65meshdir = home+sep+state+sep+scenario_dir_name+sep+'anuga'+sep+'meshes'+sep
66datadir = home+sep+state+sep+scenario_dir_name+sep+'anuga'+sep+'topographies'+sep
67gaugedir = home+sep+state+sep+scenario_dir_name+sep+'anuga'+sep+'gauges'+sep
68polygondir = home+sep+state+sep+scenario_dir_name+sep+'anuga'+sep+'polygons'+sep
69boundarydir = home+sep+sep+state+sep+scenario_dir_name+sep+'anuga'+sep+'boundaries'+sep
70outputdir = home+sep+state+sep+scenario_dir_name+sep+'anuga'+sep+'outputs'+sep
71outputtimedir = outputdir + local_time + sep
72polygondir = home+sep+state+sep+scenario_dir_name+sep+'anuga'+sep+'polygons'+sep
73
74gauge_filename = gaugedir + 'busselton_gauges.csv'
75community_filename = gaugedir + 'CHINS_v2.csv'
76community_broome = gaugedir + 'community_busselton.csv'
77codedir = getcwd()+sep                           
78codedirname = codedir + 'project.py'
79meshname = outputtimedir + 'mesh_' + basename
80
81# Necessary if using point datasets, rather than grid
82onshore_dem_name = datadir + onshore_name
83offshore_dem_name1 = datadir + offshore_name1
84offshore_dem_name2 = datadir + offshore_name2
85offshore_dem_name3 = datadir + offshore_name3
86offshore_dem_name4 = datadir + offshore_name4
87offshore_dem_name5 = datadir + offshore_name5
88offshore_dem_name6 = datadir + offshore_name6
89offshore_dem_name7 = datadir + offshore_name7
90offshore_dem_name8 = datadir + offshore_name8
91offshore_dem_name9 = datadir + offshore_name9
92offshore_dem_name10 = datadir + offshore_name10
93offshore_dem_name11 = datadir + offshore_name11
94offshore_dem_name12 = datadir + offshore_name12
95offshore_dem_name13 = datadir + offshore_name13
96offshore_dem_name14 = datadir + offshore_name14
97offshore_dem_name15 = datadir + offshore_name15
98offshore_dem_name16 = datadir + offshore_name16
99offshore_dem_name17 = datadir + offshore_name17
100offshore_dem_name18 = datadir + offshore_name18
101offshore_dem_name19 = datadir + offshore_name19
102offshore_dem_name20 = datadir + offshore_name20
103offshore_dem_name21 = datadir + offshore_name21
104offshore_dem_name22 = datadir + offshore_name22
105
106coast_dem_name = datadir + coast_name
107
108combined_dem_name   = datadir + 'broome_combined_elevation'
109
110###############################
111# Domain definitions
112###############################
113
114# bounding box for clipping MOST/URS output (much bigger than study area)
115##south = degminsec2decimal_degrees(-19,0,0)
116##north = degminsec2decimal_degrees(-17,15,0)
117##west  = degminsec2decimal_degrees(120,0,0)
118##east  = degminsec2decimal_degrees(122,30,0)
119##
120##d0 = [south, west]
121##d1 = [south, east]
122##d2 = [north, east]
123##d3 = [north, west]
124##poly_bc, zone = convert_points_from_latlon_to_utm([d0, d1, d2, d3])
125##refzone = zone
126
127# bounding polygon for study area
128polyAll = read_polygon(polygondir+'extent.csv')
129
130# plot bounding polygon and make sure BC info surrounds it
131#plot_polygons([polyAll, poly_bc],'boundingpoly',verbose=False)
132print 'Area of bounding polygon', polygon_area(polyAll)/1000000.0
133
134###################################################################
135# Clipping regions for export to asc and regions for clipping data
136###################################################################
137
138# exporting asc grid
139eastingmin = 406215.87
140eastingmax = 440208.78
141northingmin = 7983427.73
142northingmax = 8032834.52
143
144###############################
145# Interior region definitions
146###############################
147
148# broome digitized polygons
149poly_busselton1 = read_polygon(polygondir+'buss_Local_Polygon_update.csv')
150poly_busselton2 = read_polygon(polygondir+'buss_Close2_update.csv')
151poly_busselton3 = read_polygon(polygondir+'buss_Coast_update.csv')
152
153plot_polygons([polyAll,poly_broome1,poly_broome2,poly_broome3],'boundingpoly2',verbose=False)
154print 'Area of local polygon', polygon_area(poly_broome1)/1000000.0
155print 'Area of close polygon', polygon_area(poly_broome2)/1000000.0
156print 'Area of coastal polygon', polygon_area(poly_broome3)/1000000.0
157
158for i in poly_broome3:
159    v = is_inside_polygon(i,poly_broome1, verbose=False)
160    if v == False: print v
161
162def number_mesh_triangles(interior_regions, bounding_poly, remainder_res):
163    from anuga.utilities.polygon import polygon_area
164   
165    # TO DO check if any of the regions fall inside one another
166    no_triangles = 0.0
167    area = polygon_area(bounding_poly)
168    for i,j in interior_regions:
169        this_area = polygon_area(i)
170        no_triangles += this_area/j
171        area -= this_area
172        print j, this_area/1000000., area/1000000.
173    no_triangles += area/remainder_res
174    return int(no_triangles/0.7)
Note: See TracBrowser for help on using the repository browser.