Exemplo n.º 1
0
def SurfaceLoad_1_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec, NRur, NUrb, Area,
                    CNI_0, AntMoist_0, Grow_0, CNP_0, Imper, ISRR, ISRA,
                    Qretention, PctAreaInfil, Nqual, LoadRateImp, LoadRatePerv,
                    Storm, UrbBMPRed, FilterWidth, PctStrmBuf):
    nlu = NLU(NRur, NUrb)
    result = zeros((NYrs, 12, 31, nlu - NRur, Nqual))
    water = Water_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec)
    adjurbanqtotal = AdjUrbanQTotal_f(NYrs, DaysMonth, Temp, InitSnow_0, Prec,
                                      NRur, NUrb, Area, CNI_0, AntMoist_0,
                                      Grow_0, CNP_0, Imper, ISRR, ISRA,
                                      Qretention, PctAreaInfil)
    surfaceload = SurfaceLoad_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec, NRur,
                                NUrb, Area, CNI_0, AntMoist_0, Grow_0, CNP_0,
                                Imper, ISRR, ISRA, Qretention, PctAreaInfil,
                                Nqual, LoadRateImp, LoadRatePerv, Storm,
                                UrbBMPRed)
    retentioneff = RetentionEff_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec,
                                  Qretention, NRur, NUrb, Area, CNI_0,
                                  AntMoist_0, Grow_0, CNP_0, Imper, ISRR, ISRA,
                                  PctAreaInfil)[:, :, :, None, None]
    retentioneff = repeat(repeat(retentioneff, nlu - NRur, axis=3),
                          Nqual,
                          axis=4)
    filtereff = FilterEff_f(FilterWidth)
    nonzero = where((Temp > 0) & (water > 0.01) & (adjurbanqtotal > 0.001))
    result[nonzero] = surfaceload[nonzero] * (1 - retentioneff[nonzero]) * (
        1 - (filtereff * PctStrmBuf))
    return result
Exemplo n.º 2
0
def WashImperv_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec, CNI_0, AntMoist_0,
                 Grow_0, NRur, NUrb):
    nlu = NLU(NRur, NUrb)
    water = Water_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec)
    qruni = QrunI_f(NYrs, DaysMonth, NRur, NUrb, Temp, InitSnow_0, Prec, CNI_0,
                    AntMoist_0, Grow_0)
    return WashImperv_inner(NYrs, DaysMonth, Temp, NRur, nlu, water, qruni)
Exemplo n.º 3
0
def NetSolidLoad_f(NYrs, DaysMonth, Temp, InitSnow_0, Prec, NRur, NUrb, Area,
                   CNI_0, AntMoist_0, Grow_0, CNP_0, Imper, ISRR, ISRA,
                   Qretention, PctAreaInfil, Nqual, LoadRateImp, LoadRatePerv,
                   Storm, UrbBMPRed, DisFract, FilterWidth, PctStrmBuf):
    nlu = NLU(NRur, NUrb)
    result = zeros((NYrs, 12, 31, nlu - NRur, Nqual))
    water = Water_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec)
    adjurbanqtotal = AdjUrbanQTotal_f(NYrs, DaysMonth, Temp, InitSnow_0, Prec,
                                      NRur, NUrb, Area, CNI_0, AntMoist_0,
                                      Grow_0, CNP_0, Imper, ISRR, ISRA,
                                      Qretention, PctAreaInfil)
    dissurfaceload = DisSurfLoad_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec,
                                   Nqual, NRur, NUrb, Area, CNI_0, AntMoist_0,
                                   Grow_0, CNP_0, Imper, ISRR, ISRA,
                                   Qretention, PctAreaInfil, LoadRateImp,
                                   LoadRatePerv, Storm, UrbBMPRed, DisFract,
                                   FilterWidth, PctStrmBuf)
    surfaceload_1 = SurfaceLoad_1_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec,
                                    NRur, NUrb, Area, CNI_0, AntMoist_0,
                                    Grow_0, CNP_0, Imper, ISRR, ISRA,
                                    Qretention, PctAreaInfil, Nqual,
                                    LoadRateImp, LoadRatePerv, Storm,
                                    UrbBMPRed, FilterWidth, PctStrmBuf)
    nonzero = where((Temp > 0) & (water > 0.01) & (adjurbanqtotal > 0.001))
    result[nonzero] = surfaceload_1[nonzero] - dissurfaceload[nonzero]
    return sum(result, axis=3)
Exemplo n.º 4
0
def CNumPerv_f(NYrs, DaysMonth, Temp, NRur, NUrb, CNP_0, InitSnow_0, Prec, Grow_0, AntMoist_0):
    nlu = NLU(NRur, NUrb)
    cnp = CNP_f(NRur, NUrb, CNP_0)
    water = Water_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec)
    melt = Melt_1_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec)
    grow_factor = GrowFactor(Grow_0)  # TODO: some bug in cnumperv_inner causes an error if this is switched to _f
    amc5 = AMC5_yesterday(NYrs, DaysMonth, Temp, Prec, InitSnow_0, AntMoist_0)
    return CNumPerv_inner(NYrs, DaysMonth, Temp, NRur, nlu, cnp, water, melt, grow_factor, amc5)
Exemplo n.º 5
0
def AdjUrbanQTotal_f(NYrs, DaysMonth, Temp, InitSnow_0, Prec, NRur, NUrb, Area, CNI_0, AntMoist_0, Grow_0, CNP_0, Imper,
                     ISRR, ISRA, Qretention, PctAreaInfil):
    water = Water_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec)
    urban_q_total = UrbanQTotal_f(NYrs, DaysMonth, NRur, NUrb, Temp, InitSnow_0, Prec, Area, CNI_0, AntMoist_0, Grow_0,
                                  CNP_0, Imper, ISRR, ISRA)
    urb_area_total = UrbAreaTotal_f(NRur, NUrb, Area)
    area_total = AreaTotal_f(Area)
    return AdjUrbanQTotal_inner(NYrs, DaysMonth, Temp, Qretention, PctAreaInfil, water, urban_q_total, urb_area_total,
                                area_total)
Exemplo n.º 6
0
def CNum_f(NYrs, DaysMonth, Temp, Prec, InitSnow_0, AntMoist_0, CN, NRur, NUrb,
           Grow_0):
    melt_pest = Melt_1_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec)
    newcn = NewCN_f(NRur, NUrb, CN)
    amc5 = AMC5_yesterday(NYrs, DaysMonth, Temp, Prec, InitSnow_0, AntMoist_0)
    grow_factor = GrowFactor_f(Grow_0)
    water = Water_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec)
    return CNum_inner(NYrs, DaysMonth, Temp, CN, NRur, melt_pest, newcn, amc5,
                      grow_factor, water)
Exemplo n.º 7
0
def Infiltration_f(NYrs, DaysMonth, Temp, InitSnow_0, Prec, NRur, NUrb, Area,
                   CNI_0, AntMoist_0, Grow_0, CNP_0, Imper, ISRR, ISRA, CN):
    result = zeros((NYrs, 12, 31))
    qtotal = QTotal_f(NYrs, DaysMonth, Temp, InitSnow_0, Prec, NRur, NUrb,
                      Area, CNI_0, AntMoist_0, Grow_0, CNP_0, Imper, ISRR,
                      ISRA, CN)
    water = Water_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec)
    result[where(qtotal < water)] = water[where(
        qtotal < water)] - qtotal[where(qtotal < water)]
    return result
Exemplo n.º 8
0
def AgRunoff_f(NYrs, DaysMonth, Temp, InitSnow_0, Prec, NRur, CN, AntMoist_0,
               NUrb, Grow_0, Landuse, Area):
    result = zeros((NYrs, 12, 31))
    water = Water_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec)
    ag_q_total = AgQTotal_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec, NRur, CN,
                            AntMoist_0, NUrb, Grow_0, Landuse, Area)
    result[where((Temp > 0)
                 & (water > 0.01))] = ag_q_total[where((Temp > 0)
                                                       & (water > 0.01))]
    return sum(result, axis=2)
Exemplo n.º 9
0
def CNumImperv_f(NYrs, NRur, NUrb, DaysMonth, InitSnow_0, Temp, Prec, CNI_0,
                 Grow_0, AntMoist_0):
    nlu = NLU(NRur, NUrb)
    cni = CNI_f(NRur, NUrb, CNI_0)
    water = Water_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec)
    melt = Melt_1_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec)
    grow_factor = GrowFactor_f(Grow_0)
    amc5 = AMC5_yesterday(NYrs, DaysMonth, Temp, Prec, InitSnow_0, AntMoist_0)
    return CNumImperv_inner(NYrs, NRur, DaysMonth, Temp, nlu, cni, water, melt,
                            grow_factor, amc5)
Exemplo n.º 10
0
def SedTrans_f(NYrs, DaysMonth, Temp, InitSnow_0, Prec, NRur, NUrb, Area,
               CNI_0, AntMoist_0, Grow_0, CNP_0, Imper, ISRR, ISRA, Qretention,
               PctAreaInfil, n25b, CN):
    water = Water_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec)
    adjqtotal = AdjQTotal_f(NYrs, DaysMonth, Temp, InitSnow_0, Prec, NRur,
                            NUrb, Area, CNI_0, AntMoist_0, Grow_0, CNP_0,
                            Imper, ISRR, ISRA, Qretention, PctAreaInfil, n25b,
                            CN)

    return sum(where(logical_and(Temp > 0, water > 0.01), adjqtotal**1.67, 0),
               axis=2)
Exemplo n.º 11
0
def DisLoad_f(NYrs, DaysMonth, Temp, InitSnow_0, Prec, NRur, NUrb, Area, CNI_0, AntMoist_0,
              Grow_0, CNP_0, Imper, ISRR, ISRA, Qretention, PctAreaInfil, Nqual, LoadRateImp,
              LoadRatePerv, Storm, UrbBMPRed, DisFract, FilterWidth, PctStrmBuf):
    water = repeat(Water_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec)[:, :, :, None], Nqual, axis=3)
    temp = repeat(Temp[:, :, :, None], Nqual, axis=3)
    netdisload = NetDisLoad_f(NYrs, DaysMonth, Temp, InitSnow_0, Prec, NRur, NUrb, Area, CNI_0, AntMoist_0,
                              Grow_0, CNP_0, Imper, ISRR, ISRA, Qretention, PctAreaInfil, Nqual, LoadRateImp,
                              LoadRatePerv, Storm, UrbBMPRed, DisFract, FilterWidth, PctStrmBuf)
    result = sum(where((temp > 0) & (water > 0.01), netdisload, 0), axis=2)
    result[result < 0] = 0
    return result
Exemplo n.º 12
0
def RurQRunoff_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec, AntMoist_0, NRur,
                 NUrb, CN, Grow_0):
    water = reshape(
        repeat(Water_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec),
               repeats=NRur,
               axis=2), (NYrs, 12, 31, NRur))
    retention = Retention_f(NYrs, DaysMonth, Temp, Prec, InitSnow_0,
                            AntMoist_0, NRur, NUrb, CN, Grow_0)[:, :, :, :NRur]
    qrun = Qrun_f(NYrs, DaysMonth, Temp, InitSnow_0, Prec, NRur, NUrb, CN,
                  AntMoist_0, Grow_0)[:, :, :, :NRur]
    return sum(where((water >= 0.2 * retention) & (CN[:NRur] > 0), qrun, 0),
               axis=2)
Exemplo n.º 13
0
def RurEros_f(NYrs, DaysMonth, Temp, InitSnow_0, Prec, Acoef, NRur, KF, LS, C,
              P, Area):
    erosiv = repeat(Erosiv_f(NYrs, DaysMonth, Temp, InitSnow_0, Prec,
                             Acoef)[:, :, :, None],
                    NRur,
                    axis=3)
    water = Water_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec)
    water = water[:, :, :, None]
    resized_temp = repeat(Temp[:, :, :, None], NRur, axis=3)
    water_r = repeat(water, NRur, axis=3)
    temp = KF * LS * C * P * Area
    return where((resized_temp > 0) & (water_r > 0.01),
                 1.32 * erosiv * temp[:NRur], 0.)
Exemplo n.º 14
0
def QTotal_f(NYrs, DaysMonth, Temp, InitSnow_0, Prec, NRur, NUrb, Area, CNI_0,
             AntMoist_0, Grow_0, CNP_0, Imper, ISRR, ISRA, CN):
    result = zeros((NYrs, 12, 31))
    urban_q_total_1 = UrbanQTotal_1_f(NYrs, DaysMonth, Temp, InitSnow_0, Prec,
                                      NRur, NUrb, Area, CNI_0, AntMoist_0,
                                      Grow_0, CNP_0, Imper, ISRR, ISRA)
    rural_q_total = RuralQTotal_f(NYrs, DaysMonth, Temp, InitSnow_0, Prec,
                                  NRur, CN, NUrb, AntMoist_0, Grow_0, Area)
    water = Water_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec)
    result[where((Temp > 0) & (water > 0))] = urban_q_total_1[where(
        (Temp > 0) & (water > 0))] + rural_q_total[where((Temp > 0)
                                                         & (water > 0))]

    return result
Exemplo n.º 15
0
def AdjQTotal_f(NYrs, DaysMonth, Temp, InitSnow_0, Prec, NRur, NUrb, Area,
                CNI_0, AntMoist_0, Grow_0, CNP_0, Imper, ISRR, ISRA,
                Qretention, PctAreaInfil, n25b, CN):
    result = zeros((NYrs, 12, 31))
    water = Water_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec)
    adj_urban_q_total = AdjUrbanQTotal_1_f(NYrs, DaysMonth, Temp, InitSnow_0,
                                           Prec, NRur, NUrb, Area, CNI_0,
                                           AntMoist_0, Grow_0, CNP_0, Imper,
                                           ISRR, ISRA, Qretention,
                                           PctAreaInfil)
    rural_q_total = RuralQTotal_f(NYrs, DaysMonth, Temp, InitSnow_0, Prec,
                                  NRur, CN, NUrb, AntMoist_0, Grow_0, Area)
    result[where((Temp > 0) & (water > 0.01))] = (
        adj_urban_q_total[where((Temp > 0) & (water > 0.01))] *
        (1 - (n25b * 0.2))) + rural_q_total[where((Temp > 0) & (water > 0.01))]
    return result
Exemplo n.º 16
0
def Retention_f(NYrs, DaysMonth, Temp, Prec, InitSnow_0, AntMoist_0, NRur,
                NUrb, CN, Grow_0):
    nlu = NLU(NRur, NUrb)
    result = zeros((NYrs, 12, 31, nlu))
    c_num = CNum_f(NYrs, DaysMonth, Temp, Prec, InitSnow_0, AntMoist_0, CN,
                   NRur, NUrb, Grow_0)
    cnrur = tile(CN[:NRur][None, None, None, :], (NYrs, 12, 31, 1))
    water = repeat(Water_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec)[:, :, :,
                                                                    None],
                   NRur,
                   axis=3)
    TempE = repeat(Temp[:, :, :, None], NRur, axis=3)
    result[where((TempE > 0) & (water > 0.01)
                 & (cnrur > 0))] = 2540 / c_num[where(
                     (TempE > 0) & (water > 0.01) & (cnrur > 0))] - 25.4
    result[where(result < 0)] = 0
    return result
Exemplo n.º 17
0
def CNumImpervReten_f(NYrs, DaysMonth, Temp, Prec, InitSnow_0, AntMoist_0,
                      NRur, NUrb, CNI_0, Grow_0):
    cni = CNI_f(NRur, NUrb, CNI_0)
    cni_1 = tile(cni[1][None, None, None, :], (NYrs, 12, 31, 1))
    c_num_imperv = CNumImperv_f(NYrs, NRur, NUrb, DaysMonth, InitSnow_0, Temp,
                                Prec, CNI_0, Grow_0, AntMoist_0)
    nlu = NLU(NRur, NUrb)
    water = repeat(Water_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec)[:, :, :,
                                                                    None],
                   nlu,
                   axis=3)
    result = zeros((NYrs, 12, 31, nlu))
    TempE = repeat(Temp[:, :, :, None], nlu, axis=3)
    result[where((TempE > 0) & (water >= 0.05)
                 & (cni_1 > 0))] = 2540 / c_num_imperv[where(
                     (TempE > 0) & (water >= 0.05) & (cni_1 > 0))] - 25.4
    result[where(result < 0)] = 0
    return result
Exemplo n.º 18
0
def Qrun_f(NYrs, DaysMonth, Temp, InitSnow_0, Prec, NRur, NUrb, CN, AntMoist_0,
           Grow_0):
    nlu = NLU(NRur, NUrb)
    result = zeros((NYrs, 12, 31, nlu))
    water = repeat(Water_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec)[:, :, :,
                                                                    None],
                   nlu,
                   axis=3)
    TempE = repeat(Temp[:, :, :, None], nlu, axis=3)
    cnrur = tile(CN[None, None, None, :], (NYrs, 12, 31, 1))
    retention = Retention_f(NYrs, DaysMonth, Temp, Prec, InitSnow_0,
                            AntMoist_0, NRur, NUrb, CN, Grow_0)
    retention02 = 0.2 * retention
    nonzero = where((TempE > 0) & (water > 0.01) & (water >= retention02)
                    & (cnrur > 0))
    result[nonzero] = (water[nonzero] - retention02[nonzero])**2 / (
        water[nonzero] + 0.8 * retention[nonzero])
    return result
Exemplo n.º 19
0
def RetentionEff_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec, Qretention, NRur,
                   NUrb, Area, CNI_0, AntMoist_0, Grow_0, CNP_0, Imper, ISRR,
                   ISRA, PctAreaInfil):
    result = zeros((NYrs, 12, 31))
    water = Water_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec)
    urbanqtotal = UrbanQTotal_f(NYrs, DaysMonth, NRur, NUrb, Temp, InitSnow_0,
                                Prec, Area, CNI_0, AntMoist_0, Grow_0, CNP_0,
                                Imper, ISRR, ISRA)
    result[where((Temp > 0) & (water > 0.05) & (Qretention > 0)
                 & (urbanqtotal > 0)
                 & (urbanqtotal <= Qretention * PctAreaInfil))] = 1
    result[where((Temp > 0) & (water > 0.05) & (Qretention > 0) & (urbanqtotal > 0) & (
            urbanqtotal > Qretention * PctAreaInfil))] = \
        Qretention * PctAreaInfil / urbanqtotal[where(
            (Temp > 0) & (water > 0.05) & (Qretention > 0) & (urbanqtotal > 0) & (
                    urbanqtotal > Qretention * PctAreaInfil))]

    return result
Exemplo n.º 20
0
def DayRunoff_f(NYrs, DaysMonth, Temp, InitSnow_0, Prec, NRur, NUrb, Area,
                CNI_0, AntMoist_0, Grow_0, CNP_0, Imper, ISRR, ISRA,
                Qretention, PctAreaInfil, n25b, CN):
    result = zeros((NYrs, 12, 31))
    water = Water_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec)
    adj_q_total = AdjQTotal_f(NYrs, DaysMonth, Temp, InitSnow_0, Prec, NRur,
                              NUrb, Area, CNI_0, AntMoist_0, Grow_0, CNP_0,
                              Imper, ISRR, ISRA, Qretention, PctAreaInfil,
                              n25b, CN)
    q_total = QTotal_f(NYrs, DaysMonth, Temp, InitSnow_0, Prec, NRur, NUrb,
                       Area, CNI_0, AntMoist_0, Grow_0, CNP_0, Imper, ISRR,
                       ISRA, CN)
    result[where((Temp > 0) & (water > 0.01)
                 & (adj_q_total > 0))] = adj_q_total[where(
                     (Temp > 0) & (water > 0) & (adj_q_total > 0))]
    result[where((Temp > 0) & (water > 0.01)
                 & (q_total > 0))] = q_total[where((Temp > 0) & (water > 0)
                                                   & (q_total > 0))]
    return result
Exemplo n.º 21
0
def QrunP_f(NYrs, DaysMonth, NRur, NUrb, Temp, InitSnow_0, Prec, CNP_0,
            AntMoist_0, Grow_0):
    nlu = NLU(NRur, NUrb)
    result = zeros((NYrs, 12, 31, nlu))
    water = repeat(Water_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec)[:, :, :,
                                                                    None],
                   nlu,
                   axis=3)
    TempE = repeat(Temp[:, :, :, None], nlu, axis=3)
    c_num_perv_reten = CNumPervReten_f(NYrs, DaysMonth, Temp, Prec, InitSnow_0,
                                       AntMoist_0, NRur, NUrb, CNP_0, Grow_0)
    c_num_perv_reten02 = 0.2 * c_num_perv_reten
    cnp = CNP_f(NRur, NUrb, CNP_0)
    cnp_1 = tile(cnp[1][None, None, None, :], (NYrs, 12, 31, 1))
    nonzero = where((TempE > 0) & (water >= 0.05) & (cnp_1 > 0)
                    & (water >= c_num_perv_reten02))
    result[nonzero] = (water[nonzero] - c_num_perv_reten02[nonzero])**2 / (
        water[nonzero] + 0.8 * c_num_perv_reten[nonzero])
    return result
Exemplo n.º 22
0
def SurfaceLoad_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec, NRur, NUrb, Area,
                  CNI_0, AntMoist_0, Grow_0, CNP_0, Imper, ISRR, ISRA,
                  Qretention, PctAreaInfil, Nqual, LoadRateImp, LoadRatePerv,
                  Storm, UrbBMPRed):
    nlu = NLU(NRur, NUrb)
    result = zeros((NYrs, 12, 31, nlu - NRur, Nqual))
    water = Water_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec)
    adjurbanqtotal = AdjUrbanQTotal_f(NYrs, DaysMonth, Temp, InitSnow_0, Prec,
                                      NRur, NUrb, Area, CNI_0, AntMoist_0,
                                      Grow_0, CNP_0, Imper, ISRR, ISRA,
                                      Qretention, PctAreaInfil)
    nonzeroday = where((Temp > 0) & (water > 0.01) & (adjurbanqtotal > 0.001))
    washimperv = reshape(
        repeat(WashImperv_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec, CNI_0,
                            AntMoist_0, Grow_0, NRur, NUrb)[:, :, :, NRur:],
               repeats=Nqual,
               axis=3), (NYrs, 12, 31, nlu - NRur, Nqual))
    washperv = reshape(
        repeat(WashPerv_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec, CNP_0,
                          AntMoist_0, Grow_0, NRur, NUrb)[:, :, :, NRur:],
               repeats=Nqual,
               axis=3), (NYrs, 12, 31, nlu - NRur, Nqual))
    urbloadred = UrbLoadRed_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec, NRur,
                              NUrb, Area, CNI_0, AntMoist_0, Grow_0, CNP_0,
                              Imper, ISRR, ISRA, Qretention, PctAreaInfil,
                              Nqual, Storm, UrbBMPRed)[:, :, :, NRur:]

    temp = reshape(
        repeat(Imper[NRur:] * (1 - ISRR) * (1 - ISRA), repeats=Nqual, axis=0),
        (-1, Nqual))
    # making an assumption that Area cannot be negative. Therefor where area = 0 result will be <= 0 and will be set to zero before returned (eliminating an if)
    result[nonzeroday] = (washimperv[nonzeroday] * LoadRateImp[NRur:] * temp +
                          washperv[nonzeroday] * LoadRatePerv[NRur:] *
                          (1 - temp)) * reshape(
                              repeat(Area[NRur:], repeats=Nqual, axis=0),
                              (nlu - NRur, Nqual)) - urbloadred[nonzeroday]
    return maximum(result, 0)
Exemplo n.º 23
0
def Erosion_f(NYrs, DaysMonth, Temp, InitSnow_0, Prec, Acoef, NRur, KF, LS, C,
              P, Area):
    water = Water_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec)
    rureros = RurEros_f(NYrs, DaysMonth, Temp, InitSnow_0, Prec, Acoef, NRur,
                        KF, LS, C, P, Area)
    return sum(sum(rureros, axis=3), axis=2)
Exemplo n.º 24
0
def AMC5_yesterday(NYrs, DaysMonth, Temp, Prec, InitSnow_0, AntMoist_0):
    water = Water_f(NYrs, DaysMonth, InitSnow_0, Temp, Prec)
    return AMC5_yesterday_inner(NYrs, DaysMonth, AntMoist_0, water)