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