source: anuga_work/production/onslow_2006/make_gauges.py @ 3650

Last change on this file since 3650 was 3535, checked in by duncan, 17 years ago

change imports so reflect the new structure

File size: 3.1 KB
Line 
1""" Make a line of gauges from near the boundary to near centre polygon
2for Onslow study to look at MOST wave and compare to ANUGA output
3Output from here is used as the gauge file input in MOST_timeseries.py
4"""
5import project
6from pylab import plot, xlabel, ylabel, title, ion, axis, savefig, close, text
7from anuga.utilities.polygon import poly_xy, is_inside_polygon
8from Numeric import arange
9from anuga.pmesh.create_mesh import convert_points_from_latlon_to_utm
10
11x_bound, y_bound = poly_xy(project.polyAll)
12
13MOST_south = project.south
14MOST_north = project.north
15MOST_east = project.east
16MOST_west = project.west
17p0 = [MOST_south, MOST_west]
18p1 = [MOST_south, MOST_east]
19p2 = [MOST_north, MOST_east]
20p3 = [MOST_north, MOST_west]
21MOSTpoly, zone = convert_points_from_latlon_to_utm([p0, p1, p2, p3])
22
23MOSTymax = 0
24MOSTymin = 7800000.0
25MOSTxmax = 0
26MOSTxmin = 7800000.0
27for i, point in enumerate(MOSTpoly):
28    x = point[0]
29    y = point[1]
30    if y > MOSTymax: MOSTymax = y
31    if y < MOSTymin: MOSTymin = y
32    if x > MOSTxmax: MOSTxmax = x
33    if x < MOSTxmin: MOSTxmin = x
34
35MOSTymax = MOSTymax-3000.0
36# nominated point in centre region for Onslow
37x2 = 305000.0
38y2 = 7605000.0
39testy = 7625000.0
40
41d0 = project.d0
42d1 = project.d1
43d2 = project.d2
44d3 = project.d3
45
46d = [d0, d1, d2, d3]
47ion()
48fid = open(project.gauge_comparison,'w')
49s = 'Easting,Northing,Name,Elevation \n'
50fid.write(s)
51count = 0
52miny = 7580000.0
53maxy = 7800000.0
54xplot = []
55yplot = []
56names = []
57for i, point in enumerate(d):
58    x = point[0]
59    y = point[1]
60    m = (y-y2)/(x-x2)
61    c = y2-m*x2
62    if m > 0:
63        plotx = arange(MOSTxmin,MOSTxmax,1000.0)
64        for j, xpoint in enumerate(plotx):
65            ypoint = m*xpoint+c
66            test = is_inside_polygon([xpoint,ypoint],project.polyAll,closed=True)
67            if test == True:
68                if ypoint > testy and ypoint < MOSTymax:
69                    xplot.append(xpoint)
70                    yplot.append(ypoint)
71                    thisname = 'Point%d' %count
72                    names.append(thisname)
73                    count += 1
74                    s = '%.2f,%.2f,%s,%.2f \n' %(xpoint,ypoint,thisname,0.0)
75                    fid.write(s)
76    else:
77        plotx = arange(MOSTxmin,MOSTxmax,5000.0)
78        for j, xpoint in enumerate(plotx):
79            ypoint = m*xpoint+c
80            test = is_inside_polygon([xpoint,ypoint],project.polyAll,closed=True)
81            if test == True:
82                if ypoint > testy and ypoint < MOSTymax:
83                    xplot.append(xpoint)
84                    yplot.append(ypoint)
85                    thisname = 'Point%d' %count
86                    names.append(thisname)
87                    count += 1
88                    s = '%.2f,%.2f,%s,%.2f \n' %(xpoint,ypoint,thisname,0.0)
89                    fid.write(s)
90
91    plot(x_bound, y_bound, xplot, yplot,'b+')
92    for i, string in enumerate(names):
93        if xplot[i] > 240000 and xplot[i] < 340000:
94            text(xplot[i],yplot[i],string,fontsize=7)
95
96axis([240000,340000, miny, maxy])
97savefig('boundarycomparison')
98close('all')
Note: See TracBrowser for help on using the repository browser.