def setUp(self): network = networks.Network() s31 = network.create_node() out = network.create_node() rc18 = sections.Circle(diameter=1.5, n=0.012) s31.create_reach(node_2=out, invert_1=4.1, invert_2=4.0, length=65.76, section=rc18) b31 = hydrology.Basin(tc=10.0, area=1.58, c=0.276) s31.add_basin(b31) zone10_03year = distributions.Evaluator( equation= '[a] + [b] * log([t]) + [c] * log([t])**2 + [d] * log([t])**3', x_key='[t]', eq_kwargs={ '[a]': 11.32916, '[b]': -1.38557, '[c]': -0.36672, '[d]': 0.05012 }, x_multi=60.0) analysis = hydraulics.Analysis(node=out, tw=4.85, intensity=zone10_03year) self.node = out self.data = analysis.hgl_solution_data()
def test_practice_problem_4(self): # Four contiguous 5 ac watersheds are served by an adjacent 1200 ft storm drain (n = 0.013 # and slope = 0.005). Inlets to the storm drain are placed every 300 ft along the storm # drain. The inlet time for each area served by an inlet is 15 min, and the area's runoff # coefficient is 0.55. I = 100 / (tc + 10). network = networks.Network() s201 = network.create_node() s202 = network.create_node() s203 = network.create_node() s204 = network.create_node() out = network.create_node() rc18 = sections.Circle(diameter=1.5, n=0.012) rc24 = sections.Circle(diameter=2.0, n=0.012) s201.create_reach(node_2=s202, slope=0.005, section=rc18) s202.create_reach(node_2=s203, slope=0.005, section=rc18) s203.create_reach(node_2=s204, slope=0.005, section=rc24) s204.create_reach(node_2=out, slope=0.005, section=rc18) b201 = hydrology.Basin(tc=15.0, area=5.0, c=0.55) b202 = hydrology.Basin(tc=15.0, area=5.0, c=0.55) b203 = hydrology.Basin(tc=15.0, area=5.0, c=0.55) b204 = hydrology.Basin(tc=15.0, area=5.0, c=0.55) s201.add_basin(b201) s202.add_basin(b202) s203.add_basin(b203) s204.add_basin(b204) i = distributions.Evaluator(equation='100.0 / ([t] + 10.0)', x_key='[t]', x_multi=60.0) analysis = hydraulics.Analysis(node=out, tw=6.10, intensity=i) self.data = analysis.hgl_solution_data()
def test_cumulative_runoff_data(self): network = networks.Network() s102 = network.create_node() s101 = network.create_node() o1_1 = network.create_node() rc18 = sections.Circle(diameter=1.5, mannings=0.012) r1 = s101.create_reach(node_2=s102, inverts=(8.0, 7.0), length=300.0, section=rc18) r2 = s102.create_reach(node_2=o1_1, inverts=(7.0, 6.0), length=300.0, section=rc18) b101 = hydrology.Basin(tc=10.0, area=0.1, c=0.95) b102 = hydrology.Basin(tc=10.0, area=0.2, c=0.95) s101.add_basin(b101) s102.add_basin(b102) basin_data = hydraulics.totaled_basin_data(o1_1) control_area_1 = b101.area control_area_2 = control_area_1 + b102.area control_runoff_1 = b101.runoff_area control_runoff_2 = control_runoff_1 + b102.runoff_area result_area_1 = basin_data[r1]['area'] result_area_2 = basin_data[r2]['area'] result_runoff_1 = result_area_1 * basin_data[r1]['c'] result_runoff_2 = result_area_2 * basin_data[r2]['c'] expected = (control_area_1, control_area_2, control_runoff_1, control_runoff_2) produced = (result_area_1, result_area_2, result_runoff_1, result_runoff_2) # self.assertEqual(produced, expected) self.assertTupleEqual(produced, expected)
def test_cumulative_runoff_data(self): network = networks.Network() s102 = network.create_node() s101 = network.create_node() o1_1 = network.create_node() rc18 = sections.Circle(diameter=1.5, mannings=0.012) s101.create_reach(node_2=s102, invert_1=8.0, invert_2=7.0, length=300.0, section=rc18) s102.create_reach(node_2=o1_1, invert_1=7.0, invert_2=6.0, length=300.0, section=rc18) b101 = hydrology.Basin(tc=10.0, area=0.1, c=0.95) b102 = hydrology.Basin(tc=10.0, area=0.2, c=0.95) s101.add_basin(b101) s102.add_basin(b102) runoff_data = hydraulics.totaled_basin_data(o1_1) control_area_1 = b101.area control_area_2 = control_area_1 + b102.area control_runoff_1 = b101.runoff_area control_runoff_2 = control_runoff_1 + b102.runoff_area result_area_1 = runoff_data[0]['area'] result_area_2 = runoff_data[1]['area'] result_runoff_1 = runoff_data[0]['runoff_area'] result_runoff_2 = runoff_data[1]['runoff_area'] self.assertEqual( (control_area_1, control_area_2, control_runoff_1, control_runoff_2), (result_area_1, result_area_2, result_runoff_1, result_runoff_2))
def setUp(self): network = networks.Network() s201 = network.create_node() s202 = network.create_node() s203 = network.create_node() s204 = network.create_node() s203a = network.create_node() out = network.create_node() rc18 = sections.Circle(diameter=1.5, n=0.012) rc24 = sections.Circle(diameter=2.0, n=0.012) s201.create_reach(node_2=s203, invert_1=25.5, invert_2=20.3, length=642.35, section=rc18) s202.create_reach(node_2=s204, invert_1=25.4, invert_2=20.3, length=625.32, section=rc18) s203.create_reach(node_2=s203a, invert_1=-1.0, invert_2=-1.2, length=85.82, section=rc24) s204.create_reach(node_2=s203, invert_1=19.5, invert_2=19.3, length=81.26, section=rc18) s203a.create_reach(node_2=out, invert_1=-1.2, invert_2=-1.3, length=23.00, section=rc24) b201 = hydrology.Basin(tc=10.0, area=1.00, c=0.950) b202 = hydrology.Basin(tc=10.0, area=0.99, c=0.950) b203 = hydrology.Basin(tc=10.0, area=0.71, c=0.950) b204 = hydrology.Basin(tc=10.0, area=0.70, c=0.950) s201.add_basin(b201) s202.add_basin(b202) s203.add_basin(b203) s204.add_basin(b204) zone10_03year = distributions.Evaluator( equation= '[a] + [b] * log([t]) + [c] * log([t])**2 + [d] * log([t])**3', x_key='[t]', eq_kwargs={ '[a]': 11.32916, '[b]': -1.38557, '[c]': -0.36672, '[d]': 0.05012 }, x_multi=60.0) analysis = hydraulics.Analysis(node=out, tw=6.10, intensity=zone10_03year) self.node = out self.data = analysis.hgl_solution_data()
def test_same_node_reach_from_func(self): network = networks.Network() s101 = network.create_node() with self.assertRaises(ValueError): rc18 = sections.Circle(diameter=1.5, mannings=0.012) s101.create_reach(node_2=s101, invert_1=8.0, invert_2=7.0, length=300.0, section=rc18)
def test_reaches_ordered_up_from_node(self): network = nw.Network() s102 = network.create_node() s101 = network.create_node() o1_1 = network.create_node() rc18 = sections.Circle(diameter=1.5, mannings=0.012) p101 = s101.create_reach(node_2=s102, inverts=(8.0, 7.0), length=300.0, section=rc18) p102 = s102.create_reach(node_2=o1_1, inverts=(7.0, 6.0), length=300.0, section=rc18) reaches = [node.reach for node in network.nodes if node.reach] produced = build.links_up_from_node(o1_1, reaches) expected = [p102, p101] self.assertEqual(produced, expected)
def test_reaches_ordered_up_from_node(self): network = nw.Network() s102 = network.create_node() s101 = network.create_node() o1_1 = network.create_node() rc18 = sections.Circle(diameter=1.5, mannings=0.012) p101 = s101.create_reach(node_2=s102, invert_1=8.0, invert_2=7.0, length=300.0, section=rc18) p102 = s102.create_reach(node_2=o1_1, invert_1=7.0, invert_2=6.0, length=300.0, section=rc18) reaches = [node.reach for node in network.nodes if node.reach] reaches = build.links_up_from_node(o1_1, reaches) self.assertEqual(reaches, [p102, p101])
def setUp(self): network = networks.Network() nw5 = network.create_node() self.contours = [(16.0, 0.10 * 43560.0), (21.5, 0.42 * 43560.0), (23.5, 0.61 * 43560.0), (29.8, 1.25 * 43560.0)] self.reservoir = routing.Reservoir(contours=self.contours, start_stage=25.35) nw5.add_reservoir(reservoir=self.reservoir) out = network.create_node() diameter = 3.25 / 12.0 ci3 = sections.Circle(diameter=diameter) self.weir = nw5.create_weir(node_2=out, invert=23.5, k_orif=0.6, k_weir=3.2, section=ci3) interval = 5.0 / 60.0 self.analysis = routing.Analysis(node=out, tw=0.0, duration=2.0, interval=interval)
def setUp(self): network = networks.Network() s11 = network.create_node() s12 = network.create_node() s13 = network.create_node() s14 = network.create_node() s15 = network.create_node() out = network.create_node() rc18 = sections.Circle(diameter=1.5, n=0.012) rc24 = sections.Circle(diameter=2.0, n=0.012) s15.create_reach(node_2=s14, invert_1=55.2, invert_2=54.7, length=300.0, section=rc18) s14.create_reach(node_2=s13, invert_1=54.7, invert_2=54.2, length=300.0, section=rc18) s13.create_reach(node_2=s12, invert_1=54.2, invert_2=50.0, length=300.0, section=rc18) s12.create_reach(node_2=s11, invert_1=50.0, invert_2=46.0, length=300.0, section=rc18) s11.create_reach(node_2=out, invert_1=45.5, invert_2=44.5, length=300.0, section=rc24) b15 = hydrology.Basin(tc=10.0, area=0.2, c=0.80) s15.add_basin(b15) b14 = hydrology.Basin(tc=10.0, area=1.0, c=0.80) s14.add_basin(b14) b13 = hydrology.Basin(tc=10.0, area=0.6, c=0.80) s13.add_basin(b13) b12 = hydrology.Basin(tc=10.0, area=0.5, c=0.80) s12.add_basin(b12) b11 = hydrology.Basin(tc=10.0, area=1.1, c=0.80) s11.add_basin(b11) zone07_03year = distributions.Evaluator( equation= '[a] + [b] * log([t]) + [c] * log([t])**2 + [d] * log([t])**3', x_key='[t]', eq_kwargs={ '[a]': 12.43560, '[b]': -2.56458, '[c]': -0.06903, '[d]': 0.02787 }, x_multi=60.0) analysis = hydraulics.Analysis(node=out, tw=47.1, intensity=zone07_03year) self.node = out self.data = analysis.hgl_solution_data()
def setUp(self): network = networks.Network() s1 = network.create_node() s2 = network.create_node() s3 = network.create_node() s4 = network.create_node() s5 = network.create_node() s6 = network.create_node() s7 = network.create_node() s8 = network.create_node() ol = network.create_node() rc18 = sections.Circle(diameter=1.5, n=0.012) rc24 = sections.Circle(diameter=2.0, n=0.012) s1.create_reach(node_2=s2, invert_1=6.4, invert_2=6.2, length=110.0, section=rc18) s2.create_reach(node_2=s3, invert_1=6.2, invert_2=5.9, length=200.0, section=rc18) s3.create_reach(node_2=s4, invert_1=5.9, invert_2=5.6, length=200.0, section=rc18) s4.create_reach(node_2=s7, invert_1=5.6, invert_2=5.4, length=100.0, section=rc18) s5.create_reach(node_2=s7, invert_1=5.6, invert_2=5.4, length=110.0, section=rc18) s7.create_reach(node_2=s8, invert_1=5.4, invert_2=4.5, length=025.0, section=rc24) s6.create_reach(node_2=s8, invert_1=4.6, invert_2=4.5, length=032.0, section=rc18) s8.create_reach(node_2=ol, invert_1=4.5, invert_2=4.2, length=250.0, section=rc24) b1 = hydrology.Basin(tc=10.0, shapes=((0.30, 0.95), (0.05, 0.20))) s1.add_basin(b1) b2 = hydrology.Basin(tc=10.0, shapes=((0.20, 0.95), (0.03, 0.20))) s2.add_basin(b2) b4 = hydrology.Basin(tc=10.0, shapes=((0.40, 0.95), (0.10, 0.20))) s4.add_basin(b4) b5 = hydrology.Basin(tc=10.0, shapes=((0.40, 0.95), (0.50, 0.20))) s5.add_basin(b5) b6 = hydrology.Basin(tc=10.0, shapes=((0.15, 0.95), (0.50, 0.20))) s6.add_basin(b6) b8 = hydrology.Basin(tc=10.0, shapes=((0.25, 0.95), (0.50, 0.20))) s8.add_basin(b8) zone06_03year = distributions.Evaluator( equation= '[a] + [b] * log([t]) + [c] * log([t])**2 + [d] * log([t])**3', x_key='[t]', eq_kwargs={ '[a]': 14.98331, '[b]': -4.44963, '[c]': 0.35683, '[d]': -0.00224 }, x_multi=60.0) analysis = hydraulics.Analysis(node=ol, tw=8.3, intensity=zone06_03year) self.node = ol self.data = analysis.hgl_solution_data()
def test_same_node_reach_from_init(self): network = networks.Network() s101 = network.create_node() with self.assertRaises(ValueError): rc18 = sections.Circle(diameter=1.5, mannings=0.012) links.Reach(node_1=s101, node_2=s101, inverts=(8.0, 7.0), length=300.0, section=rc18)