def make_model(): duration_hrs = 48 time_step = 900 num_steps = duration_hrs * 3600 / time_step mod = Model(start_time=t, duration=timedelta(hours=duration_hrs), time_step=time_step) spill = point_line_release_spill(num_elements=1000, amount=1600, units='kg', start_position=(0.5, 0.5, 0.0), release_time=t, end_release_time=t + timedelta(hours=4)) mod.spills += spill method = 'Trapezoid' images_dir = method + '-' + str( time_step / 60) + 'min-' + str(num_steps) + 'steps' renderer = Renderer(output_dir=images_dir, image_size=(800, 800)) renderer.delay = 5 renderer.add_grid(g) renderer.add_vec_prop(vg) renderer.graticule.set_max_lines(max_lines=0) mod.outputters += renderer mod.movers += PyCurrentMover(current=vg, default_num_method=method, extrapolate=True) mod.movers += RandomMover(diffusion_coef=10) netCDF_fn = os.path.join(base_dir, images_dir + '.nc') mod.outputters += NetCDFOutput(netCDF_fn, which_data='all') return mod
def make_model(): duration_hrs=48 time_step=900 num_steps = duration_hrs * 3600 / time_step mod = Model(start_time=t, duration=timedelta(hours=duration_hrs), time_step=time_step) spill = point_line_release_spill(num_elements=1000, amount=1600, units='kg', start_position=(0.5, 0.5, 0.0), release_time=t, end_release_time=t+timedelta(hours=4) ) mod.spills += spill method='Trapezoid' images_dir = method + '-' + str(time_step / 60) + 'min-' + str(num_steps) + 'steps' renderer = Renderer(output_dir=images_dir, image_size=(800,800)) renderer.delay = 5 renderer.add_grid(g) renderer.add_vec_prop(vg) renderer.graticule.set_max_lines(max_lines=0) mod.outputters += renderer mod.movers += PyGridCurrentMover(current=vg, default_num_method=method, extrapolate=True) mod.movers += RandomMover(diffusion_coef=10) netCDF_fn = os.path.join(base_dir, images_dir + '.nc') mod.outputters += NetCDFOutput(netCDF_fn, which_data='all') return mod
def make_model(images_dir=os.path.join(base_dir, 'images')): print 'initializing the model' start_time = datetime(2016, 4, 5, 18, 0) model = Model(start_time=start_time, duration=timedelta(hours=12), time_step=.25*3600) mapfile = (os.path.join(base_dir, 'coast.bna')) print 'adding the map' '''TODO: sort out MapFromBna's map_bounds parameter... it does nothing right now, and the spill is out of bounds''' model.map = MapFromBNA(mapfile, refloat_halflife=0.0) # seconds # draw_ontop can be 'uncertain' or 'forecast' # 'forecast' LEs are in black, and 'uncertain' are in red # default is 'forecast' LEs draw on top renderer = Renderer(mapfile, images_dir, image_size=(1024, 768)) # renderer.viewport = ((-73.5, 40.5), (-73.1, 40.75)) # renderer.viewport = ((-122.9, 45.6), (-122.6, 46.0)) print 'adding outputters' model.outputters += renderer print 'adding a spill' # for now subsurface spill stays on initial layer # - will need diffusion and rise velocity # - wind doesn't act # - start_position = (-76.126872, 37.680952, 5.0), spill1 = point_line_release_spill(num_elements=500, start_position=(-82.73888, 27.5475, 0.0), release_time=start_time, end_release_time=start_time+timedelta(hours=24)) spill2 = point_line_release_spill(num_elements=500, start_position=(-82.73888, 27.545, 0.0), release_time=start_time, end_release_time=start_time+timedelta(hours=24)) spill3 = point_line_release_spill(num_elements=500, start_position=(-82.73888, 27.5425, 0.0), release_time=start_time, end_release_time=start_time+timedelta(hours=24)) spill4 = point_line_release_spill(num_elements=500, start_position=(-82.73988, 27.5475, 0.0), release_time=start_time, end_release_time=start_time+timedelta(hours=24)) spill5 = point_line_release_spill(num_elements=500, start_position=(-82.73988, 27.5450, 0.0), release_time=start_time, end_release_time=start_time+timedelta(hours=24)) spill6 = point_line_release_spill(num_elements=500, start_position=(-82.73988, 27.5425, 0.0), release_time=start_time, end_release_time=start_time+timedelta(hours=24)) model.spills += spill1 model.spills += spill2 model.spills += spill3 model.spills += spill4 model.spills += spill5 model.spills += spill6 model.spills._spill_container.spills.remove(0) print 'adding a current mover:' fn = 'nos.tbofs.fields.n000.20160406.t00z_sgrid.nc' #fn = 'dbofs_newFormat.nc' cf = GridCurrent.from_netCDF(filename=fn) u_mover = PyGridCurrentMover(cf, extrapolate=True) #u_mover = GridCurrentMover(fn) renderer.add_grid(cf.grid) # renderer.add_vec_prop(cf) model.movers += u_mover # curr_file = get_datafile(os.path.join(base_dir, 'COOPSu_CREOFS24.nc')) # c_mover = GridCurrentMover(curr_file) # model.movers += c_mover return model
def make_model(images_dir=os.path.join(base_dir, 'images')): print 'initializing the model' start_time = datetime(2012, 10, 25, 0, 1) # start_time = datetime(2015, 12, 18, 06, 01) # 1 day of data in file # 1/2 hr in seconds model = Model(start_time=start_time, duration=timedelta(hours=6), time_step=900) mapfile = get_datafile(os.path.join(base_dir, 'nyharbor.bna')) print 'adding the map' '''TODO: sort out MapFromBna's map_bounds parameter... it does nothing right now, and the spill is out of bounds''' model.map = MapFromBNA(mapfile, refloat_halflife=0.0) # seconds # draw_ontop can be 'uncertain' or 'forecast' # 'forecast' LEs are in black, and 'uncertain' are in red # default is 'forecast' LEs draw on top renderer = Renderer(mapfile, images_dir, image_size=(1024, 768)) # renderer.viewport = ((-73.5, 40.5), (-73.1, 40.75)) # renderer.viewport = ((-122.9, 45.6), (-122.6, 46.0)) print 'adding outputters' model.outputters += renderer print 'adding a spill' # for now subsurface spill stays on initial layer # - will need diffusion and rise velocity # - wind doesn't act # - start_position = (-76.126872, 37.680952, 5.0), spill1 = point_line_release_spill(num_elements=1000, start_position=(-74.15, 40.5, 0.0), release_time=start_time) model.spills += spill1 print 'adding a RandomMover:' model.movers += RandomMover(diffusion_coef=50000) print 'adding a wind mover:' model.movers += constant_wind_mover(4, 270, units='m/s') print 'adding a current mover:' url = ( 'http://geoport.whoi.edu/thredds/dodsC/clay/usgs/users/jcwarner/Projects/Sandy/triple_nest/00_dir_NYB05.ncml' ) # cf = roms_field('nos.tbofs.fields.n000.20160406.t00z_sgrid.nc') cf = GridCurrent.from_netCDF(url) renderer.add_grid(cf.grid) renderer.delay = 25 u_mover = PyGridCurrentMover(cf) model.movers += u_mover # curr_file = get_datafile(os.path.join(base_dir, 'COOPSu_CREOFS24.nc')) # c_mover = GridCurrentMover(curr_file) # model.movers += c_mover return model
def make_model(images_dir=os.path.join(base_dir, 'images')): print 'initializing the model' start_time = datetime(2016, 4, 5, 18, 0) model = Model(start_time=start_time, duration=timedelta(hours=12), time_step=.25 * 3600) mapfile = (os.path.join(base_dir, 'coast.bna')) print 'adding the map' '''TODO: sort out MapFromBna's map_bounds parameter... it does nothing right now, and the spill is out of bounds''' model.map = MapFromBNA(mapfile, refloat_halflife=0.0) # seconds # draw_ontop can be 'uncertain' or 'forecast' # 'forecast' LEs are in black, and 'uncertain' are in red # default is 'forecast' LEs draw on top renderer = Renderer(mapfile, images_dir, image_size=(1024, 768)) # renderer.viewport = ((-73.5, 40.5), (-73.1, 40.75)) # renderer.viewport = ((-122.9, 45.6), (-122.6, 46.0)) print 'adding outputters' model.outputters += renderer print 'adding a spill' # for now subsurface spill stays on initial layer # - will need diffusion and rise velocity # - wind doesn't act # - start_position = (-76.126872, 37.680952, 5.0), spill1 = point_line_release_spill(num_elements=500, start_position=(-82.73888, 27.5475, 0.0), release_time=start_time, end_release_time=start_time + timedelta(hours=24)) spill2 = point_line_release_spill(num_elements=500, start_position=(-82.73888, 27.545, 0.0), release_time=start_time, end_release_time=start_time + timedelta(hours=24)) spill3 = point_line_release_spill(num_elements=500, start_position=(-82.73888, 27.5425, 0.0), release_time=start_time, end_release_time=start_time + timedelta(hours=24)) spill4 = point_line_release_spill(num_elements=500, start_position=(-82.73988, 27.5475, 0.0), release_time=start_time, end_release_time=start_time + timedelta(hours=24)) spill5 = point_line_release_spill(num_elements=500, start_position=(-82.73988, 27.5450, 0.0), release_time=start_time, end_release_time=start_time + timedelta(hours=24)) spill6 = point_line_release_spill(num_elements=500, start_position=(-82.73988, 27.5425, 0.0), release_time=start_time, end_release_time=start_time + timedelta(hours=24)) model.spills += spill1 model.spills += spill2 model.spills += spill3 model.spills += spill4 model.spills += spill5 model.spills += spill6 model.spills._spill_container.spills.remove(0) print 'adding a current mover:' fn = 'nos.tbofs.fields.n000.20160406.t00z_sgrid.nc' #fn = 'dbofs_newFormat.nc' cf = GridCurrent.from_netCDF(filename=fn) u_mover = PyGridCurrentMover(cf, extrapolate=True) #u_mover = GridCurrentMover(fn) renderer.add_grid(cf.grid) # renderer.add_vec_prop(cf) model.movers += u_mover # curr_file = get_datafile(os.path.join(base_dir, 'COOPSu_CREOFS24.nc')) # c_mover = GridCurrentMover(curr_file) # model.movers += c_mover return model
def make_model(images_dir=os.path.join(base_dir, 'images')): print 'initializing the model' start_time = datetime(2012, 10, 25, 0, 1) # start_time = datetime(2015, 12, 18, 06, 01) # 1 day of data in file # 1/2 hr in seconds model = Model(start_time=start_time, duration=timedelta(hours=6), time_step=900) mapfile = get_datafile(os.path.join(base_dir, 'nyharbor.bna')) print 'adding the map' '''TODO: sort out MapFromBna's map_bounds parameter... it does nothing right now, and the spill is out of bounds''' model.map = MapFromBNA(mapfile, refloat_halflife=0.0) # seconds # draw_ontop can be 'uncertain' or 'forecast' # 'forecast' LEs are in black, and 'uncertain' are in red # default is 'forecast' LEs draw on top renderer = Renderer(mapfile, images_dir, image_size=(1024, 768)) # renderer.viewport = ((-73.5, 40.5), (-73.1, 40.75)) # renderer.viewport = ((-122.9, 45.6), (-122.6, 46.0)) print 'adding outputters' model.outputters += renderer print 'adding a spill' # for now subsurface spill stays on initial layer # - will need diffusion and rise velocity # - wind doesn't act # - start_position = (-76.126872, 37.680952, 5.0), spill1 = point_line_release_spill(num_elements=1000, start_position=(-74.15, 40.5, 0.0), release_time=start_time) model.spills += spill1 print 'adding a RandomMover:' model.movers += RandomMover(diffusion_coef=50000) print 'adding a wind mover:' model.movers += constant_wind_mover(4, 270, units='m/s') print 'adding a current mover:' url = ('http://geoport.whoi.edu/thredds/dodsC/clay/usgs/users/jcwarner/Projects/Sandy/triple_nest/00_dir_NYB05.ncml') # cf = roms_field('nos.tbofs.fields.n000.20160406.t00z_sgrid.nc') cf = GridCurrent.from_netCDF(url) renderer.add_grid(cf.grid) renderer.delay = 25 u_mover = PyGridCurrentMover(cf, default_num_method='Euler') model.movers += u_mover # curr_file = get_datafile(os.path.join(base_dir, 'COOPSu_CREOFS24.nc')) # c_mover = GridCurrentMover(curr_file) # model.movers += c_mover return model