Changeset 4570
- Timestamp:
- Jun 28, 2007, 5:54:00 PM (18 years ago)
- 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 28 28 from anuga.shallow_water import File_boundary 29 29 from anuga.shallow_water import Reflective_boundary 30 from anuga.shallow_water.data_manager import convert_dem_from_ascii2netcdf, dem2pts 30 from anuga.shallow_water.data_manager import convert_dem_from_ascii2netcdf 31 from anuga.shallow_water.data_manager import dem2pts 31 32 from anuga.pmesh.mesh_interface import create_mesh_from_regions 32 33 from anuga.geospatial_data.geospatial_data import Geospatial_data 33 34 from anuga.shallow_water.data_manager import start_screen_catcher 34 35 from anuga.shallow_water.data_manager import copy_code_files 35 36 from anuga.shallow_water.data_manager import urs_ungridded2sww 36 37 from anuga_parallel.parallel_abstraction import get_processor_name 37 38 … … 46 47 47 48 copy_code_files(project.output_build_time_dir,__file__, 48 dirname(project.__file__)+sep+ project.__name__+'.py' ) 49 dirname(project.__file__)+sep+ project.__name__+'.py' )# 49 50 50 51 start_screen_catcher(project.output_build_time_dir) … … 67 68 geospatial_data = None 68 69 # create DEMs from asc data 70 71 # FIXME (Ole): Clip data by interior regions if possible 72 69 73 print 'creating geospatial data objects from asc data (via dem and pts formats)' 70 74 for filename in project.ascii_grid_filenames: … … 74 78 dem2pts(filename, use_cache=True, verbose=True) 75 79 76 geospatial_data += Geospatial_data(file_name = filename + '.pts', verbose=True) 80 geospatial_data += Geospatial_data(file_name=filename + '.pts', 81 verbose=True) 77 82 78 83 79 84 print 'creating geospatial data objects from txt data' 80 85 for 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) 82 88 83 89 84 90 print 'clip combined geospatial object by bounding polygon' 85 G = geospatial_data.clip(project. poly_all)91 G = geospatial_data.clip(project.bounding_polygon) 86 92 87 93 … … 104 110 #------------------------------------------------------------------------- 105 111 print 'converting boundary conditions to sww format' 106 #boundaries_in_dir_name = project.boundaries_in_dir_name107 112 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 113 print 'boundary_dir', project.boundary_dir 114 print 'project.boundary_name', project.boundary_name 112 115 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) 116 urs_ungridded2sww(project.boundary_name, verbose=True); 117 #verbose=True, mint=5000, maxt=35000, zscale=1) 118 118 119 119 -
anuga_work/production/shark_bay_2007/project.py
r4552 r4570 32 32 33 33 #tide = -3.9 34 #tide = 0.035 tide = 3.634 tide = 0.0 35 #tide = 3.6 36 36 37 37 #Maybe will try to make project a class to allow these parameters to be passed in. … … 40 40 finaltime=25000 41 41 starttime=3600 42 setup=' final'42 setup='basic' 43 43 source='shark_bay' 44 44 … … 67 67 'clipped_bathymetry_final', 'coast_points_final'] 68 68 69 # final topo name69 # final topo name 70 70 combined_name ='shark_bay_combined_elevation' 71 71 combined_small_name = 'shark_bay_combined_elevation_small' … … 74 74 anuga_dir = join(home, state, scenario, 'anuga') 75 75 76 topographies_in_dir = join(home, state, scenario, 'elevation_final', 'test_area') 76 topographies_in_dir = join(home, state, scenario, 77 'elevation_final', 'test_area') 78 77 79 topographies_dir = join(anuga_dir, 'topographies') # Output dir for ANUGA 78 80 … … 87 89 88 90 89 mesh es_dir = join(anuga_dir, 'meshes')90 mesh es_dir_name = join(meshes_dir, scenario_name)91 mesh_dir = join(anuga_dir, 'meshes') 92 mesh_name = join(mesh_dir, scenario_name) 91 93 92 94 … … 97 99 # locations for boundary conditions 98 100 if source=='shark_bay': 99 boundar ies_file_name = 'shark_bay_3867_18052007'100 boundar ies_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') 101 103 102 boundar ies_name = join(boundaries_dir, boundaries_file_name)104 boundary_name = join(boundary_dir, boundary_file_name) 103 105 104 106 #output locations 105 output_dir = join(anuga_dir, 'outputs') 107 output_dir = join(anuga_dir, 'outputs')+sep 106 108 output_build_time_dir = output_dir+build_time+sep 107 109 output_run_time_dir = output_dir +run_time+dir_comment+sep … … 147 149 148 150 #from anuga.coordinate_transforms.redfearn import redfearn 149 poly_all= read_polygon(join(polygons_dir, 'boundary_extent.csv'))150 res_ poly_all= 250000*res_factor151 bounding_polygon = read_polygon(join(polygons_dir, 'boundary_extent.csv')) 152 res_bounding_polygon = 250000*res_factor 151 153 152 154 #Interior regions 153 155 poly_inundated_area = read_polygon(join(polygons_dir, 'inundated_area.csv')) 154 res_inundated_area = 50000*res_factor156 res_inundated_area = 1000*res_factor 155 157 156 158 poly_bay_area = read_polygon(join(polygons_dir, 'bay_area.csv')) 157 res_bay_area = 100000*res_factor159 res_bay_area = 5000*res_factor 158 160 159 interior_regions = [[poly_bay_area, res_bay_area], [poly_inundated_area, res_inundated_area]] 161 interior_regions = [[poly_bay_area, res_bay_area], 162 [poly_inundated_area, res_inundated_area]] 160 163 161 trigs_min = number_mesh_triangles(interior_regions, poly_all, res_poly_all) 164 trigs_min = number_mesh_triangles(interior_regions, 165 bounding_polygon, 166 res_bounding_polygon) 162 167 163 168 print 'min number triangles', trigs_min 164 169 170 onshore_polygon = read_polygon(join(topographies_in_dir, 171 'initial_condition.txt')) 165 172 -
anuga_work/production/shark_bay_2007/run_shark_bay.py
r4505 r4570 32 32 33 33 from 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 34 from anuga.shallow_water.data_manager import start_screen_catcher 35 from anuga.shallow_water.data_manager import copy_code_files 36 from anuga.shallow_water.data_manager import store_parameters 35 37 from anuga_parallel.parallel_api import distribute, numprocs, myid, barrier 36 38 from anuga_parallel.parallel_abstraction import get_processor_name 37 39 from anuga.caching import myhash 40 38 41 # Application specific imports 39 import project _urs# Definition of file names and polygons42 import project # Definition of file names and polygons 40 43 41 44 def run_model(**kwargs): … … 54 57 #copy script must be before screen_catcher 55 58 print 'tide',tide 56 kwargs['est_num_trigs']=project _urs.trigs_min59 kwargs['est_num_trigs']=project.trigs_min 57 60 kwargs['num_cpu']=numprocs 58 kwargs['host']=project _urs.host59 kwargs['res_factor']=project _urs.res_factor60 kwargs['starttime']=project _urs.starttime61 kwargs['yieldstep']=project _urs.yieldstep62 kwargs['finaltime']=project _urs.finaltime63 64 kwargs['output_dir']=project _urs.output_run_time_dir65 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' 68 71 # kwargs['Completed']='' 69 72 … … 71 74 if myid == 0: 72 75 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' ) 74 77 75 78 store_parameters(**kwargs) … … 79 82 start_screen_catcher(kwargs['output_dir'], myid, numprocs) 80 83 81 print "Processor Name:",get_processor_name()84 print 'Processor Name:', get_processor_name() 82 85 83 86 # creates copy of code in output dir 84 print 'min triangles', project _urs.trigs_min,87 print 'min triangles', project.trigs_min, 85 88 print 'Note: This is generally about 20% less than the final amount' 86 89 … … 88 91 # Create the triangular mesh based on overall clipping polygon with a 89 92 # tagged 90 # boundary and interior regions defined in project _urs.py along with93 # boundary and interior regions defined in project.py along with 91 94 # resolutions (maximal area of per triangle) for each polygon 92 95 #-------------------------------------------------------------------------- … … 97 100 98 101 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) 109 113 110 114 #------------------------------------------------------------------------- … … 113 117 print 'Setup computational domain' 114 118 115 #domain = cache(Domain, (mesh es_dir_name), {'use_cache':True, 'verbose':True}, verbose=True)119 #domain = cache(Domain, (mesh_name), {'use_cache':True, 'verbose':True}, verbose=True) 116 120 #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) 118 123 119 124 print domain.statistics() … … 127 132 if myid == 0: 128 133 129 print 'Setup initial conditions' 130 134 print 'Create onshore polygon' 131 135 from polygon import Polygon_function 132 136 #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' 135 142 domain.set_quantity('stage', IC) 136 143 domain.set_quantity('friction', friction) 137 138 print 'Start Set quantity'139 140 144 domain.set_quantity('elevation', 141 145 filename = kwargs['bathy_file'], … … 143 147 verbose = True, 144 148 alpha = alpha) 145 print 'Finished Set quantity' 149 150 151 #------------------------------------------------------ 152 # Distribute domain to implement parallelism !!! 153 #------------------------------------------------------ 146 154 barrier() 147 148 #------------------------------------------------------149 # Distribute domain to implement parallelism !!!150 #------------------------------------------------------151 152 155 if numprocs > 1: 153 156 domain=distribute(domain) … … 167 170 domain.beta_h = 0 168 171 #domain.limit2007 = 1 172 169 173 170 174 #------------------------------------------------------------------------- … … 173 177 print 'Available boundary tags', domain.get_boundary_tags() 174 178 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' 176 180 177 181 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) 180 187 181 188 kwargs['input_start_time']=domain.starttime … … 227 234 if __name__ == "__main__": 228 235 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.