source: production/gippsland_2005/create_mesh.py @ 2378

Last change on this file since 2378 was 2141, checked in by duncan, 19 years ago

compiling triangle using setup.

File size: 2.1 KB
Line 
1"""Create a mesh of the Gippsland Lakes coast based on 100m
2   bathymetric data.
3"""
4
5#import os, sys
6#sys.path.append('..')
7
8
9
10# add storm_surge dir to your pythonpath
11from pmesh.mesh import *
12from pyvolution.coordinate_transforms.geo_reference import Geo_reference
13
14#Lower right corner
15xlrcorner = 601018
16ylrcorner = 5797629
17   
18def create_mesh(max_area, mesh_file=None, triangles_in_name = False):
19    global xlrcorner
20    global ylrcorner
21   
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
35    #xlrcorner = 601018
36    #ylrcorner = 5797629
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
63    m.generateMesh('q28.0z', maxArea = max_area)
64    triangle_count = len(m.getTriangulation())
65    if mesh_file is None:   
66        return m, triangle_count
67    else:
68        if triangles_in_name is True:
69            mesh_file = mesh_file[:-4] + '_' + str(triangle_count) \
70                        + mesh_file[-4:]
71        m.export_mesh_file(mesh_file)
72        return mesh_file, triangle_count
73
74
75#-------------------------------------------------------------
76if __name__ == "__main__":
77    _, triangle_count = create_mesh(1000000)
78    print "triangle_count",triangle_count
Note: See TracBrowser for help on using the repository browser.