Changeset 4570


Ignore:
Timestamp:
Jun 28, 2007, 5:54:00 PM (17 years ago)
Author:
ole
Message:

Setup shark bay initial runs

Location:
anuga_work/production/shark_bay_2007
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • anuga_work/production/shark_bay_2007/build_shark_bay.py

    r4552 r4570  
    2828from anuga.shallow_water import File_boundary
    2929from anuga.shallow_water import Reflective_boundary
    30 from anuga.shallow_water.data_manager import convert_dem_from_ascii2netcdf, dem2pts
     30from anuga.shallow_water.data_manager import convert_dem_from_ascii2netcdf
     31from anuga.shallow_water.data_manager import dem2pts
    3132from anuga.pmesh.mesh_interface import create_mesh_from_regions
    3233from anuga.geospatial_data.geospatial_data import Geospatial_data
    3334from anuga.shallow_water.data_manager import start_screen_catcher
    3435from anuga.shallow_water.data_manager import copy_code_files
    35 
     36from anuga.shallow_water.data_manager import urs_ungridded2sww
    3637from anuga_parallel.parallel_abstraction import get_processor_name
    3738
     
    4647
    4748copy_code_files(project.output_build_time_dir,__file__,
    48                dirname(project.__file__)+sep+ project.__name__+'.py' )
     49               dirname(project.__file__)+sep+ project.__name__+'.py' )#
    4950
    5051start_screen_catcher(project.output_build_time_dir)
     
    6768geospatial_data = None
    6869# create DEMs from asc data
     70
     71# FIXME (Ole): Clip data by interior regions if possible
     72
    6973print 'creating geospatial data objects from asc data (via dem and pts formats)'
    7074for filename in project.ascii_grid_filenames:
     
    7478    dem2pts(filename, use_cache=True, verbose=True)
    7579
    76     geospatial_data += Geospatial_data(file_name = filename + '.pts', verbose=True)
     80    geospatial_data += Geospatial_data(file_name=filename + '.pts',
     81                                       verbose=True)
    7782
    7883
    7984print 'creating geospatial data objects from txt data'
    8085for filename in project.point_filenames:
    81     geospatial_data += Geospatial_data(file_name = filename + '.txt', verbose=True)
     86    geospatial_data += Geospatial_data(file_name=filename + '.txt',
     87                                       verbose=True)
    8288
    8389
    8490print 'clip combined geospatial object by bounding polygon'
    85 G = geospatial_data.clip(project.poly_all)
     91G = geospatial_data.clip(project.bounding_polygon)
    8692
    8793
     
    104110#-------------------------------------------------------------------------
    105111print 'converting boundary conditions to sww format'
    106 #boundaries_in_dir_name = project.boundaries_in_dir_name
    107112
    108 #print 'minlat=project.north_boundary, maxlat=project.south_boundary',project.north_boundary, project.south_boundary
    109 #print 'minlon= project.west_boundary, maxlon=project.east_boundary',project.west_boundary, project.east_boundary
    110        
    111 from anuga.shallow_water.data_manager import urs_ungridded2sww
     113print 'boundary_dir', project.boundary_dir
     114print 'project.boundary_name', project.boundary_name
    112115
    113 print 'boundaries_dir', project.boundaries_dir
    114 print 'project.boundaries_name', project.boundaries_name
    115 
    116 urs_ungridded2sww(project.boundaries_name,
    117                   verbose=True, mint=5000, maxt=35000, zscale=1)
     116urs_ungridded2sww(project.boundary_name, verbose=True);
     117                  #verbose=True, mint=5000, maxt=35000, zscale=1)
    118118
    119119
  • anuga_work/production/shark_bay_2007/project.py

    r4552 r4570  
    3232
    3333#tide = -3.9
    34 #tide = 0.0
    35 tide = 3.6
     34tide = 0.0
     35#tide = 3.6
    3636
    3737#Maybe will try to make project a class to allow these parameters to be passed in.
     
    4040finaltime=25000
    4141starttime=3600
    42 setup='final'
     42setup='basic'
    4343source='shark_bay'
    4444
     
    6767                   'clipped_bathymetry_final', 'coast_points_final']
    6868
    69 #final topo name
     69# final topo name
    7070combined_name ='shark_bay_combined_elevation'
    7171combined_small_name = 'shark_bay_combined_elevation_small'
     
    7474anuga_dir = join(home, state, scenario, 'anuga')
    7575
    76 topographies_in_dir = join(home, state, scenario, 'elevation_final', 'test_area')
     76topographies_in_dir = join(home, state, scenario,
     77                           'elevation_final', 'test_area')
     78
    7779topographies_dir = join(anuga_dir, 'topographies') # Output dir for ANUGA
    7880
     
    8789
    8890
    89 meshes_dir = join(anuga_dir, 'meshes')
    90 meshes_dir_name = join(meshes_dir, scenario_name)
     91mesh_dir = join(anuga_dir, 'meshes')
     92mesh_name = join(mesh_dir, scenario_name)
    9193
    9294
     
    9799# locations for boundary conditions
    98100if source=='shark_bay':
    99     boundaries_file_name = 'shark_bay_3867_18052007'
    100     boundaries_dir = join(anuga_dir, 'boundaries', 'shark_bay', '1_10000')
     101    boundary_file_name = 'shark_bay_3867_18052007'
     102    boundary_dir = join(anuga_dir, 'boundaries', 'shark_bay', '1_10000')
    101103
    102 boundaries_name = join(boundaries_dir, boundaries_file_name)
     104boundary_name = join(boundary_dir, boundary_file_name)
    103105
    104106#output locations
    105 output_dir = join(anuga_dir, 'outputs')
     107output_dir = join(anuga_dir, 'outputs')+sep
    106108output_build_time_dir = output_dir+build_time+sep
    107109output_run_time_dir = output_dir +run_time+dir_comment+sep
     
    147149
    148150#from anuga.coordinate_transforms.redfearn import redfearn
    149 poly_all = read_polygon(join(polygons_dir, 'boundary_extent.csv'))
    150 res_poly_all = 250000*res_factor
     151bounding_polygon = read_polygon(join(polygons_dir, 'boundary_extent.csv'))
     152res_bounding_polygon = 250000*res_factor
    151153
    152154#Interior regions
    153155poly_inundated_area = read_polygon(join(polygons_dir, 'inundated_area.csv'))
    154 res_inundated_area = 50000*res_factor
     156res_inundated_area = 1000*res_factor
    155157
    156158poly_bay_area = read_polygon(join(polygons_dir, 'bay_area.csv'))                                   
    157 res_bay_area = 100000*res_factor                                   
     159res_bay_area = 5000*res_factor                                   
    158160
    159 interior_regions = [[poly_bay_area, res_bay_area], [poly_inundated_area, res_inundated_area]]
     161interior_regions = [[poly_bay_area, res_bay_area],
     162                    [poly_inundated_area, res_inundated_area]]
    160163
    161 trigs_min = number_mesh_triangles(interior_regions, poly_all, res_poly_all)
     164trigs_min = number_mesh_triangles(interior_regions,
     165                                  bounding_polygon,
     166                                  res_bounding_polygon)
    162167
    163168print 'min number triangles', trigs_min
    164169
     170onshore_polygon = read_polygon(join(topographies_in_dir,
     171                                    'initial_condition.txt'))
    165172
  • anuga_work/production/shark_bay_2007/run_shark_bay.py

    r4505 r4570  
    3232
    3333from anuga.pmesh.mesh_interface import create_mesh_from_regions
    34 from anuga.abstract_2d_finite_volumes.util import start_screen_catcher, copy_code_files,store_parameters
     34from anuga.shallow_water.data_manager import start_screen_catcher
     35from anuga.shallow_water.data_manager import copy_code_files
     36from anuga.shallow_water.data_manager import store_parameters
    3537from anuga_parallel.parallel_api import distribute, numprocs, myid, barrier
    3638from anuga_parallel.parallel_abstraction import get_processor_name
    3739from anuga.caching import myhash
     40
    3841# Application specific imports
    39 import project_urs                 # Definition of file names and polygons
     42import project                 # Definition of file names and polygons
    4043
    4144def run_model(**kwargs):
     
    5457    #copy script must be before screen_catcher
    5558    print 'tide',tide
    56     kwargs['est_num_trigs']=project_urs.trigs_min
     59    kwargs['est_num_trigs']=project.trigs_min
    5760    kwargs['num_cpu']=numprocs
    58     kwargs['host']=project_urs.host
    59     kwargs['res_factor']=project_urs.res_factor
    60     kwargs['starttime']=project_urs.starttime
    61     kwargs['yieldstep']=project_urs.yieldstep
    62     kwargs['finaltime']=project_urs.finaltime
    63    
    64     kwargs['output_dir']=project_urs.output_run_time_dir
    65     kwargs['bathy_file']=project_urs.combined_dir_name + '.txt'
    66 #    kwargs['bathy_file']=project_urs.combined_small_dir_name + '.pts'
    67     kwargs['boundary_file']=project_urs.boundaries_dir_name + '.sww'
     61    kwargs['host']=project.host
     62    kwargs['res_factor']=project.res_factor
     63    kwargs['starttime']=project.starttime
     64    kwargs['yieldstep']=project.yieldstep
     65    kwargs['finaltime']=project.finaltime
     66   
     67    kwargs['output_dir']=project.output_run_time_dir
     68    kwargs['bathy_file']=project.combined_dir_name + '.txt'
     69#    kwargs['bathy_file']=project.combined_small_dir_name + '.pts'
     70    kwargs['boundary_file']=project.boundary_name + '.sww'
    6871#    kwargs['Completed']=''
    6972
     
    7174    if myid == 0:
    7275        copy_code_files(kwargs['output_dir'],__file__,
    73                  dirname(project_urs.__file__)+sep+ project_urs.__name__+'.py' )
     76                 dirname(project.__file__)+sep+ project.__name__+'.py' )
    7477
    7578        store_parameters(**kwargs)
     
    7982    start_screen_catcher(kwargs['output_dir'], myid, numprocs)
    8083
    81     print "Processor Name:",get_processor_name()
     84    print 'Processor Name:', get_processor_name()
    8285
    8386    # creates copy of code in output dir
    84     print 'min triangles', project_urs.trigs_min,
     87    print 'min triangles', project.trigs_min,
    8588    print 'Note: This is generally about 20% less than the final amount'
    8689
     
    8891    # Create the triangular mesh based on overall clipping polygon with a
    8992    # tagged
    90     # boundary and interior regions defined in project_urs.py along with
     93    # boundary and interior regions defined in project.py along with
    9194    # resolutions (maximal area of per triangle) for each polygon
    9295    #--------------------------------------------------------------------------
     
    97100   
    98101        print 'start create mesh from regions'
    99 
    100         create_mesh_from_regions(project_urs.poly_all,
    101                              boundary_tags={'back': [3, 4, 5, 6], 'side': [2, 7],
    102                                             'ocean': [0, 1]},
    103                              maximum_triangle_area=project_urs.res_poly_all,
    104                              interior_regions=project_urs.interior_regions,
    105                              filename=project_urs.meshes_dir_name+'.msh',
    106                              use_cache=False,
    107                              verbose=True)
    108     barrier()
     102       
     103        # FIXME (Ole): What if tags are wrong?
     104        create_mesh_from_regions(project.bounding_polygon,
     105                                 boundary_tags={'back': [1, 2, 3, 4, 5],
     106                                                'side': [0, 6],
     107                                                'ocean': [7, 8, 9, 10, 11]},
     108                                 maximum_triangle_area=project.res_bounding_polygon,
     109                                 interior_regions=project.interior_regions,
     110                                 filename=project.mesh_name+'.msh',
     111                                 use_cache=False,
     112                                 verbose=True)
    109113
    110114    #-------------------------------------------------------------------------
     
    113117    print 'Setup computational domain'
    114118
    115     #domain = cache(Domain, (meshes_dir_name), {'use_cache':True, 'verbose':True}, verbose=True)
     119    #domain = cache(Domain, (mesh_name), {'use_cache':True, 'verbose':True}, verbose=True)
    116120    #above don't work
    117     domain = Domain(project_urs.meshes_dir_name+'.msh', use_cache=False, verbose=True)
     121    domain = Domain(project.mesh_name+'.msh',
     122                    use_cache=False, verbose=True)
    118123       
    119124    print domain.statistics()
     
    127132    if myid == 0:
    128133
    129         print 'Setup initial conditions'
    130 
     134        print 'Create onshore polygon'
    131135        from polygon import Polygon_function
    132136        #following sets the stage/water to be offcoast only
    133         IC = Polygon_function( [(project_urs.poly_mainland, -1.0)], default = tide,
    134                                  geo_reference = domain.geo_reference)
     137        IC = Polygon_function([(project.onshore_polygon, -1.0)],
     138                              default = tide,
     139                              geo_reference = domain.geo_reference)
     140
     141        print 'set initial condition'
    135142        domain.set_quantity('stage', IC)
    136143        domain.set_quantity('friction', friction)
    137        
    138         print 'Start Set quantity'
    139 
    140144        domain.set_quantity('elevation',
    141145                            filename = kwargs['bathy_file'],
     
    143147                            verbose = True,
    144148                            alpha = alpha)
    145         print 'Finished Set quantity'
     149       
     150
     151    #------------------------------------------------------
     152    # Distribute domain to implement parallelism !!!
     153    #------------------------------------------------------
    146154    barrier()
    147 
    148     #------------------------------------------------------
    149     # Distribute domain to implement parallelism !!!
    150     #------------------------------------------------------
    151 
    152155    if numprocs > 1:
    153156        domain=distribute(domain)
     
    167170    domain.beta_h = 0
    168171    #domain.limit2007 = 1
     172   
    169173
    170174    #-------------------------------------------------------------------------
     
    173177    print 'Available boundary tags', domain.get_boundary_tags()
    174178    print 'domain id', id(domain)
    175     #print 'Reading Boundary file',project_urs.boundaries_dir_namea + '.sww'
     179    #print 'Reading Boundary file',project.boundaries_dir_namea + '.sww'
    176180
    177181    Bf = Field_boundary(kwargs['boundary_file'],
    178                     domain, time_thinning=time_thinning, mean_stage=tide,
    179                     use_cache=True, verbose=True)
     182                        domain,
     183                        time_thinning=time_thinning,
     184                        mean_stage=tide,
     185                        use_cache=True,
     186                        verbose=True)
    180187                   
    181188    kwargs['input_start_time']=domain.starttime
     
    227234if __name__ == "__main__":
    228235
    229     run_model(file_name=project_urs.home+'detail.csv', aa_scenario_name=project_urs.scenario_name,
    230               ab_time=project_urs.time, res_factor= project_urs.res_factor, tide=project_urs.tide, user=project_urs.user,
    231               alpha = project_urs.alpha, friction=project_urs.friction,
    232               time_thinning = project_urs.time_thinning,
    233               dir_comment=project_urs.dir_comment)
    234 
    235 
     236    run_model(file_name=project.home+'detail.csv', aa_scenario_name=project.scenario_name,
     237              ab_time=project.time, res_factor= project.res_factor, tide=project.tide, user=project.user,
     238              alpha = project.alpha, friction=project.friction,
     239              time_thinning = project.time_thinning,
     240              dir_comment=project.dir_comment)
     241
     242
Note: See TracChangeset for help on using the changeset viewer.