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

Last change on this file since 4354 was 3769, checked in by ole, 18 years ago

Changed references to convert_points_from_latlon_to_utm to the new convert_from_latlan_to_utm as introduced in changeset:3739

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_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_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.