Ignore:
Timestamp:
Sep 7, 2012, 3:27:55 PM (13 years ago)
Author:
steve
Message:

Setting up sww2dem for Yuyang to change to faster code.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/anuga_core/source/anuga/file_conversion/sww2dem.py

    r8544 r8562  
    302302    assert len(vertex_points.shape) == 2
    303303
    304     grid_points = num.zeros ((ncols*nrows, 2), num.float)
    305 
    306     for i in xrange(nrows):
    307         if out_ext == '.asc':
    308             yg = i * cellsize
    309         else:
    310             # this will flip the order of the y values for ers
    311             yg = (nrows-i) * cellsize
    312 
    313         for j in xrange(ncols):
    314             xg = j * cellsize
    315             k = i*ncols + j
    316 
    317             grid_points[k, 0] = xg
    318             grid_points[k, 1] = yg
    319 
    320     # Interpolate
    321     from anuga.fit_interpolate.interpolate import Interpolate
    322 
    323     # Remove loners from vertex_points, volumes here
    324     vertex_points, volumes = remove_lone_verts(vertex_points, volumes)
    325     # export_mesh_file('monkey.tsh',{'vertices':vertex_points, 'triangles':volumes})
    326 
    327     interp = Interpolate(vertex_points, volumes, verbose = verbose)
    328 
    329     # Interpolate using quantity values
    330     if verbose: log.critical('Interpolating')
    331     grid_values = interp.interpolate(result, grid_points).flatten()
    332     outside_indices = interp.get_outside_poly_indices()
     304
     305    def calc_grid_values(vertex_points, volumes, result):
     306
     307        grid_points = num.zeros ((ncols*nrows, 2), num.float)
     308
     309        for i in xrange(nrows):
     310            if out_ext == '.asc':
     311                yg = i * cellsize
     312            else:
     313                # this will flip the order of the y values for ers
     314                yg = (nrows-i) * cellsize
     315
     316            for j in xrange(ncols):
     317                xg = j * cellsize
     318                k = i*ncols + j
     319
     320                grid_points[k, 0] = xg
     321                grid_points[k, 1] = yg
     322
     323        # Interpolate
     324        from anuga.fit_interpolate.interpolate import Interpolate
     325
     326        # Remove loners from vertex_points, volumes here
     327        vertex_points, volumes = remove_lone_verts(vertex_points, volumes)
     328        # export_mesh_file('monkey.tsh',{'vertices':vertex_points, 'triangles':volumes})
     329
     330
     331
     332        #
     333
     334        interp = Interpolate(vertex_points, volumes, verbose = verbose)
     335
     336        # Interpolate using quantity values
     337        if verbose: log.critical('Interpolating')
     338        grid_values = interp.interpolate(result, grid_points).flatten()
     339        outside_indices = interp.get_outside_poly_indices()
     340
     341        for i in outside_indices:
     342            #print 'change grid_value',NODATA_value
     343            grid_values[i] = NODATA_value
     344
     345        return grid_values
     346
     347
     348
     349    grid_values = calc_grid_values(vertex_points, volumes, result)
     350
     351
    333352
    334353    #print outside_indices
     
    343362#    outside_indices = outside_polygon(grid_points, P, closed=True)
    344363
    345     for i in outside_indices:
    346         #print 'change grid_value',NODATA_value
    347         grid_values[i] = NODATA_value
     364
    348365
    349366    if out_ext == '.ers':
Note: See TracChangeset for help on using the changeset viewer.