[2059] | 1 | """Create a mesh of the Gippsland Lakes coast based on 100m |
---|
| 2 | bathymetric data. |
---|
| 3 | """ |
---|
| 4 | |
---|
[2141] | 5 | #import os, sys |
---|
| 6 | #sys.path.append('..') |
---|
[2059] | 7 | |
---|
[2141] | 8 | |
---|
| 9 | |
---|
[2059] | 10 | # add storm_surge dir to your pythonpath |
---|
| 11 | from pmesh.mesh import * |
---|
[2141] | 12 | from pyvolution.coordinate_transforms.geo_reference import Geo_reference |
---|
[2059] | 13 | |
---|
[2141] | 14 | #Lower right corner |
---|
| 15 | xlrcorner = 601018 |
---|
| 16 | ylrcorner = 5797629 |
---|
| 17 | |
---|
[2084] | 18 | def create_mesh(max_area, mesh_file=None, triangles_in_name = False): |
---|
[2141] | 19 | global xlrcorner |
---|
| 20 | global ylrcorner |
---|
| 21 | |
---|
[2059] | 22 | #Lower left corner |
---|
| 23 | xllcorner = 570066 |
---|
| 24 | yllcorner = 5773910 |
---|
| 25 | |
---|
| 26 | #Upper left corner |
---|
| 27 | xulcorner = 553571 |
---|
| 28 | yulcorner = 5796228 |
---|
| 29 | |
---|
| 30 | #Upper right corner |
---|
| 31 | xurcorner = 583675 |
---|
| 32 | yurcorner = 5820018 |
---|
| 33 | |
---|
| 34 | #Lower right corner |
---|
[2141] | 35 | #xlrcorner = 601018 |
---|
| 36 | #ylrcorner = 5797629 |
---|
[2059] | 37 | |
---|
| 38 | |
---|
| 39 | #create geo reference object for use with mesh |
---|
| 40 | geo = Geo_reference(xllcorner = xllcorner, |
---|
| 41 | yllcorner = yllcorner, |
---|
| 42 | zone = 56) |
---|
| 43 | print "***********************" |
---|
| 44 | print "geo ref", geo |
---|
| 45 | print "***********************" |
---|
| 46 | |
---|
| 47 | m = Mesh(geo_reference=geo) |
---|
| 48 | |
---|
| 49 | #Boundary |
---|
| 50 | dict = {} |
---|
| 51 | dict['points'] = [[xllcorner, yllcorner], #sw |
---|
| 52 | [xulcorner, yulcorner], |
---|
| 53 | [xurcorner, yurcorner], |
---|
| 54 | [xlrcorner, ylrcorner]] |
---|
| 55 | |
---|
| 56 | dict['segments'] = [[0,1], [1,2], [2,3], [3,0]] # the outer border |
---|
| 57 | dict['segment_tags'] = ['side', |
---|
| 58 | 'back', |
---|
| 59 | 'side', |
---|
| 60 | 'ocean'] |
---|
| 61 | m.addVertsSegs(dict) |
---|
| 62 | |
---|
[2084] | 63 | m.generateMesh('q28.0z', maxArea = max_area) |
---|
| 64 | triangle_count = len(m.getTriangulation()) |
---|
[2076] | 65 | if mesh_file is None: |
---|
[2084] | 66 | return m, triangle_count |
---|
[2076] | 67 | else: |
---|
[2084] | 68 | if triangles_in_name is True: |
---|
| 69 | mesh_file = mesh_file[:-4] + '_' + str(triangle_count) \ |
---|
| 70 | + mesh_file[-4:] |
---|
[2076] | 71 | m.export_mesh_file(mesh_file) |
---|
[2093] | 72 | return mesh_file, triangle_count |
---|
[2059] | 73 | |
---|
[2076] | 74 | |
---|
[2059] | 75 | #------------------------------------------------------------- |
---|
| 76 | if __name__ == "__main__": |
---|
| 77 | _, triangle_count = create_mesh(1000000) |
---|
| 78 | print "triangle_count",triangle_count |
---|