def test_get_watershed_outlet(): grid = RasterModelGrid((7, 7), 1) z = np.array([ -9999., -9999., -9999., -9999., -9999., -9999., -9999., -9999., 26., 0., 30., 32., 34., -9999., -9999., 28., 1., 25., 28., 32., -9999., -9999., 30., 3., 3., 11., 34., -9999., -9999., 32., 11., 25., 18., 38., -9999., -9999., 34., 32., 34., 36., 40., -9999., -9999., -9999., -9999., -9999., -9999., -9999., -9999. ]) grid.at_node['topographic__elevation'] = z imposed_outlet = 2 grid.set_watershed_boundary_condition_outlet_id(imposed_outlet, z, nodata_value=-9999.) fr = FlowAccumulator(grid, flow_director='D8') fr.run_one_step() test_node = 32 determined_outlet = get_watershed_outlet(grid, test_node) np.testing.assert_equal(determined_outlet, imposed_outlet) # Create a pit. pit_node = 38 grid.at_node['topographic__elevation'][pit_node] -= 32 fr.run_one_step() pit_outlet = get_watershed_outlet(grid, test_node) np.testing.assert_equal(pit_outlet, pit_node)
def test_get_watershed_outlet(): grid = RasterModelGrid((7, 7), 1) z = np.array([ -9999., -9999., -9999., -9999., -9999., -9999., -9999., -9999., 26., 0., 30., 32., 34., -9999., -9999., 28., 1., 25., 28., 32., -9999., -9999., 30., 3., 3., 11., 34., -9999., -9999., 32., 11., 25., 18., 38., -9999., -9999., 34., 32., 34., 36., 40., -9999., -9999., -9999., -9999., -9999., -9999., -9999., -9999.]) grid.at_node['topographic__elevation'] = z imposed_outlet = 2 grid.set_watershed_boundary_condition_outlet_id(imposed_outlet, z, nodata_value=-9999.) fr = FlowAccumulator(grid, flow_director='D8') fr.run_one_step() test_node = 32 determined_outlet = get_watershed_outlet(grid, test_node) np.testing.assert_equal(determined_outlet, imposed_outlet) # Create a pit. pit_node = 38 grid.at_node['topographic__elevation'][pit_node] -= 32 fr.run_one_step() pit_outlet = get_watershed_outlet(grid, test_node) np.testing.assert_equal(pit_outlet, pit_node)
def test_route_to_multiple_error_raised_watershed_outlet(): mg = RasterModelGrid((10, 10)) z = mg.add_zeros("topographic__elevation", at="node") z += mg.x_of_node + mg.y_of_node fa = FlowAccumulator(mg, flow_director="MFD") fa.run_one_step() with pytest.raises(NotImplementedError): get_watershed_outlet(mg, 10)
def test_route_to_multiple_error_raised_watershed_outlet(): mg = RasterModelGrid((10, 10)) z = mg.add_zeros("node", "topographic__elevation") z += mg.x_of_node + mg.y_of_node fa = FlowAccumulator(mg, flow_director="MFD") fa.run_one_step() with pytest.raises(NotImplementedError): get_watershed_outlet(mg, 10)