Exemple #1
0
def snow_rain(self, k):
    """
    - snow melt based on degree day factor and minimum surface temperature
    - meltfactor increases with temperature
    - 
    - Code for ini-file: 6
    """

    JarvisCoefficients.calcEpSnow(self, k)
    #self.PotEvaporation = self.EpHour
    self.PotEvaporation = cover(ifthenelse(self.EpHour > 0, self.EpHour, 0), 0)

    self.Sw[k] = self.Sw_t[k] + self.PrecipitationSnow

    self.Fm2 = max(self.Fm[k] * self.Precipitation, self.Fm[k])
    self.Ew1 = max(min(self.PotEvaporation, self.Sw[k]), 0)
    self.Qw1 = max(min(self.Fm2 * (self.Temperature - self.Tm[k]), self.Sw[k]),
                   0)

    self.Sw[k] = self.Sw_t[k] + self.PrecipitationSnow - self.Ew1 - self.Qw1

    self.Sw_diff = ifthenelse(self.Sw[k] < 0, self.Sw[k], 0)
    self.Ew = self.Ew1 + (self.Ew1 / ifthenelse(
        self.Ew1 + self.Qw1 > 0, self.Ew1 + self.Qw1, 1)) * self.Sw_diff
    self.Qw = self.Qw1 + (self.Qw1 / ifthenelse(
        self.Ew1 + self.Qw1 > 0, self.Ew1 + self.Qw1, 1)) * self.Sw_diff
    self.Sw[k] = self.Sw_t[k] + self.PrecipitationSnow - self.Ew - self.Qw
    self.Sw[k] = ifthenelse(self.Sw[k] < 0, 0, self.Sw[k])
    self.Sw_diff2 = ifthen(self.Sw[k] < 0, self.Sw[k])

    self.wbSw_[k] = self.PrecipitationSnow - self.Ew - self.Qw - self.Sw[
        k] + self.Sw_t[k]

    self.Ew_[k] = self.Ew
    self.Qw_[k] = self.Qw
Exemple #2
0
def snow_rain(self,k):
    """
    - snow melt based on degree day factor and minimum surface temperature
    - meltfactor increases with temperature
    """
   
    JarvisCoefficients.calcEpSnow(self,k)
    self.PotEvaporation = cover(ifthenelse(self.EpHour > 0, self.EpHour, 0),0)
    
    self.Sw[k] = self.Sw_t[k] + self.PrecipitationSnow
    
    self.Fm2 = max(self.Fm[k] * self.Precipitation, self.Fm[k])
    self.Ew1 = max(min(self.PotEvaporation, self.Sw[k]),0)
    self.Qw1 = max(min(self.Fm2 * (self.Temperature - self.Tm[k]), self.Sw[k]), 0)
    
    self.Sw[k] = self.Sw_t[k] + self.PrecipitationSnow - self.Ew1 - self.Qw1

    self.Sw_diff = ifthenelse(self.Sw[k] < 0, self.Sw[k], 0)
    self.Ew = self.Ew1 + (self.Ew1/ifthenelse(self.Ew1 + self.Qw1 > 0 , self.Ew1 + self.Qw1 , 1)) * self.Sw_diff
    self.Qw = self.Qw1 + (self.Qw1/ifthenelse(self.Ew1 + self.Qw1 > 0 , self.Ew1 + self.Qw1 , 1)) * self.Sw_diff
    self.Sw[k] = self.Sw_t[k] + self.PrecipitationSnow - self.Ew - self.Qw
    self.Sw[k] = ifthenelse(self.Sw[k] < 0, 0 , self.Sw[k])    
    self.Sw_diff2 = ifthen(self.Sw[k] < 0, self.Sw[k]) 

    self.wbSw_[k] = self.PrecipitationSnow - self.Ew - self.Qw - self.Sw[k] + self.Sw_t[k]
    
    self.Ew_[k] = self.Ew
    self.Qw_[k] = self.Qw
Exemple #3
0
def snow_no_reservoir(self, k):
    """
    This function is used when no snow zone reservoir is used and only
    passes fluxes from the upper reservoirs to the lower
    Qw = Psnow
    Ew = 0.
    Storage in snow zone = 0.

    !!!still needs a final check!!!    
	
	k is the class indication
    self contains all the variables of the model
    
    """
    try:
        JarvisCoefficients.calcEpSnow(self, k)
    except:
        JarvisCoefficients.calcEpSnowHour(self, k)
    self.PotEvaporation = self.EpHour
    self.PotEvaporation = cover(ifthenelse(self.EpHour > 0, self.EpHour, 0), 0)

    self.Qw_[k] = max(self.PrecipitationSnow, 0)
    self.Ew_[k] = 0.
    self.Sw[k] = 0.
    self.wbSw_[k] = self.Precipitation - self.Ew_[k] - self.Qw_[k] - self.Sw[
        k] + self.Sw_t[k]
Exemple #4
0
def snow(self, k):
    """
    - snow melt based on degree day factor and 
    """
    JarvisCoefficients.calcEpSnow(self, k)
    self.PotEvaporation = cover(ifthenelse(self.EpHour > 0, self.EpHour, 0), 0)

    self.Sw[k] = self.Sw_t[k] + self.PrecipitationSnow

    self.Ew1 = max(min(self.PotEvaporation, self.Sw[k]), 0)
    self.Qw1 = max(self.Fm[k] * (self.Temperature - self.Tm[k]), 0)

    self.Sw[k] = self.Sw_t[k] + self.PrecipitationSnow - self.Ew1 - self.Qw1

    self.Sw_diff = ifthenelse(self.Sw[k] < 0, self.Sw[k], 0)
    self.Ew = self.Ew1 + (self.Ew1 / ifthenelse(
        self.Ew1 + self.Qw1 > 0, self.Ew1 + self.Qw1, 1)) * self.Sw_diff
    self.Qw = self.Qw1 + (self.Qw1 / ifthenelse(
        self.Ew1 + self.Qw1 > 0, self.Ew1 + self.Qw1, 1)) * self.Sw_diff
    self.Sw[k] = self.Sw_t[k] + self.PrecipitationSnow - self.Ew - self.Qw
    self.Sw[k] = ifthenelse(self.Sw[k] < 0, 0, self.Sw[k])
    self.Sw_diff2 = ifthen(self.Sw[k] < 0, self.Sw[k])

    self.wbSw_[k] = self.PrecipitationSnow - self.Ew - self.Qw - self.Sw[
        k] + self.Sw_t[k]

    self.Ew_[k] = self.Ew
    self.Qw_[k] = self.Qw