Example #1
0
 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()
Example #2
0
 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()
Example #3
0
 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)
Example #4
0
 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))
Example #5
0
 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()
Example #6
0
 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)
Example #7
0
 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)
Example #8
0
 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])
Example #9
0
 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)
Example #10
0
    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()
Example #11
0
    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()
Example #12
0
 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)