def dummy_width_bed_tributary(): map_dx = 100. dx = 1. nx = 200 surface_h = np.linspace(3000, 1000, nx) bed_h = surface_h widths = surface_h * 0. + 3. coords = np.arange(0, nx - 0.5, 1) line = shpg.LineString(np.vstack([coords, coords * 0.]).T) fl_0 = flowline.VerticalWallFlowline(line, dx, map_dx, surface_h, bed_h, widths) coords = np.arange(0, 19.1, 1) line = shpg.LineString(np.vstack([coords, coords * 0. + 1]).T) fl_1 = flowline.VerticalWallFlowline(line, dx, map_dx, surface_h[0:20], bed_h[0:20], widths[0:20]) fl_1.set_flows_to(fl_0) return [fl_1, fl_0]
def dummy_constant_bed(hmax=3000., hmin=1000., nx=200): map_dx = 100. dx = 1. surface_h = np.linspace(hmax, hmin, nx) bed_h = surface_h widths = surface_h * 0. + 3. coords = np.arange(0, nx - 0.5, 1) line = shpg.LineString(np.vstack([coords, coords * 0.]).T) return [ flowline.VerticalWallFlowline(line, dx, map_dx, surface_h, bed_h, widths) ]
def dummy_bumpy_bed(): map_dx = 100. dx = 1. nx = 200 coords = np.arange(0, nx - 0.5, 1) surface_h = np.linspace(3000, 1000, nx) surface_h += 170. * np.exp(-((coords - 30) / 5)**2) bed_h = surface_h widths = surface_h * 0. + 3. line = shpg.LineString(np.vstack([coords, coords * 0.]).T) return [ flowline.VerticalWallFlowline(line, dx, map_dx, surface_h, bed_h, widths) ]
def dummy_noisy_bed(): map_dx = 100. dx = 1. nx = 200 np.random.seed(42) coords = np.arange(0, nx - 0.5, 1) surface_h = np.linspace(3000, 1000, nx) surface_h += 100 * np.random.rand(nx) - 50. bed_h = surface_h widths = surface_h * 0. + 3. line = shpg.LineString(np.vstack([coords, coords * 0.]).T) return [ flowline.VerticalWallFlowline(line, dx, map_dx, surface_h, bed_h, widths) ]
def dummy_width_bed(): """This bed has a width of 6 during the first 20 points and then 3""" map_dx = 100. dx = 1. nx = 200 surface_h = np.linspace(3000, 1000, nx) bed_h = surface_h widths = surface_h * 0. + 3. widths[0:20] = 6. coords = np.arange(0, nx - 0.5, 1) line = shpg.LineString(np.vstack([coords, coords * 0.]).T) return [ flowline.VerticalWallFlowline(line, dx, map_dx, surface_h, bed_h, widths) ]
def dummy_constant_bed_cliff(hmax=3000., hmin=1000., nx=200): """ I introduce a cliff in the bed to test the mass conservation of the models Such a cliff could be real or a DEM error/artifact """ map_dx = 100. dx = 1. surface_h = np.linspace(hmax, hmin, nx) cliff_height = 250.0 surface_h[50:] = surface_h[50:] - cliff_height bed_h = surface_h widths = surface_h * 0. + 1. coords = np.arange(0, nx - 0.5, 1) line = shpg.LineString(np.vstack([coords, coords * 0.]).T) return [ flowline.VerticalWallFlowline(line, dx, map_dx, surface_h, bed_h, widths) ]