def test_lookup_cn(self): """ Do some spot-checks on the data from Table C. """ self.assertEqual(lookup_cn('a', 'water'), 100) self.assertEqual(lookup_cn('b', 'li_residential'), 68) self.assertEqual(lookup_cn('c', 'hi_residential'), 90) self.assertEqual(lookup_cn('d', 'commercial'), 95) self.assertEqual(lookup_cn('a', 'rock'), 77) self.assertEqual(lookup_cn('b', 'deciduous_forest'), 55) self.assertEqual(lookup_cn('c', 'evergreen_forest'), 70) self.assertEqual(lookup_cn('d', 'mixed_forest'), 77)
def test_lookup_cn(self): """ Do some spot-checks on the data from Table C. """ self.assertEqual(lookup_cn('a', 'open_water'), 100) self.assertEqual(lookup_cn('b', 'developed_low'), 80) self.assertEqual(lookup_cn('c', 'developed_med'), 91) self.assertEqual(lookup_cn('d', 'developed_high'), 96) self.assertEqual(lookup_cn('a', 'barren_land'), 77) self.assertEqual(lookup_cn('b', 'deciduous_forest'), 55) self.assertEqual(lookup_cn('c', 'evergreen_forest'), 70) self.assertEqual(lookup_cn('d', 'mixed_forest'), 77)
def runoff_nrcs(precip, evaptrans, soil_type, land_use): """ The runoff equation from the TR-55 document. The output is a runoff value in inches. """ curve_number = lookup_cn(soil_type, land_use) if nrcs_cutoff(precip, curve_number): return 0.0 potential_retention = (1000.0 / curve_number) - 10 initial_abs = 0.2 * potential_retention precip_minus_initial_abs = precip - initial_abs numerator = pow(precip_minus_initial_abs, 2) denominator = (precip_minus_initial_abs + potential_retention) runoff = numerator / denominator return min(runoff, precip - evaptrans)
def runoff_nrcs(precip, evaptrans, soil_type, land_use): """ The runoff equation from the TR-55 document. The output is a runoff value in inches. """ if land_use == 'cluster_housing': land_use = 'developed_low' curve_number = lookup_cn(soil_type, land_use) if nrcs_cutoff(precip, curve_number): return 0.0 potential_retention = (1000.0 / curve_number) - 10 initial_abs = 0.2 * potential_retention precip_minus_initial_abs = precip - initial_abs numerator = pow(precip_minus_initial_abs, 2) denominator = (precip_minus_initial_abs + potential_retention) runoff = numerator / denominator return min(runoff, precip - evaptrans)