示例#1
0
def TNx_calculation(arr, fill_val=None):

    """    
    Calculates the TNx indice: maximum of daily minimum temperature.
    
    :param arr: daily min temperature (e.g. "tasmin")
    :type arr: numpy.ndarray (3D) or numpy.ma.MaskedArray (3D)
    :param fill_val: fill value
    :type fill_val: float
    
    :rtype: numpy.ndarray (2D)        (if "arr" is numpy.ndarray)
         or numpy.ma.MaskedArray (2D) (if "arr" is numpy.ma.MaskedArray)
    """
    # .. warning:: If "arr" is a masked array, the parameter "fill_val" is ignored, because it has no sense in this case.

    TNx = calc.simple_stat(arr, stat_operation="max", fill_val=fill_val)

    return TNx
示例#2
0
def TG_calculation(arr, fill_val=None):
    
    '''    
    Calculates the TG indice: mean of daily mean temperature.
    
    :param arr: daily mean temperature (e.g. "tas")
    :type arr: numpy.ndarray (3D) or numpy.ma.MaskedArray (3D)
    :param fill_val: fill value  
    :type fill_val: float
    
    :rtype: numpy.ndarray (2D)        (if "arr" is numpy.ndarray)
         or numpy.ma.MaskedArray (2D) (if "arr" is numpy.ma.MaskedArray)
         
    .. warning:: If "arr" is a masked array, the parameter "fill_val" is ignored, because it has no sense in this case.    
    '''
    
    TG = calc.simple_stat(arr, stat_operation="mean", fill_val=fill_val)
    
    return TG
示例#3
0
def RX1day_calculation(arr, fill_val=None):
    """
    Calculates the RX1day indice: maximum 1-day precipitation amount [mm]
    
    :param arr: daily precipitation (liquid form) flux (e.g. "pr") in mm/day
    :type arr: numpy.ndarray (3D) or numpy.ma.MaskedArray (3D)
    :param fill_val: fill value 
    :type fill_val: float
    
    :rtype: numpy.ndarray (2D)        (if "arr" is numpy.ndarray)
         or numpy.ma.MaskedArray (2D) (if "arr" is numpy.ma.MaskedArray)
         
    .. warning:: Units of "arr" must be mm/day.
    
    .. warning:: If "arr" is a masked array, the parameter "fill_val" is ignored, because it has no sense in this case.
    """

    RX1day = calc.simple_stat(arr, stat_operation="max", fill_val=fill_val)

    return RX1day
示例#4
0
def PRCPTOT_calculation(arr, fill_val=None):
    '''
    Calculates the PRCPTOT indice: total precipitation in wet days [mm]
    
    :param arr: daily precipitation (liquid form) flux (e.g. "pr") in mm/day
    :type arr: numpy.ndarray (3D) or numpy.ma.MaskedArray (3D)
    :param fill_val: fill value 
    :type fill_val: float
    
    :rtype: numpy.ndarray (2D)        (if "arr" is numpy.ndarray)
         or numpy.ma.MaskedArray (2D) (if "arr" is numpy.ma.MaskedArray)
         
    .. warning:: Units of "arr" must be mm/day.
    
    .. warning:: If "arr" is a masked array, the parameter "fill_val" is ignored, because it has no sense in this case.
    '''
    
    PRCPTOT = calc.simple_stat(arr, stat_operation="sum", coef=1.0, fill_val=fill_val, thresh=1.0, logical_operation='get')
    
    return PRCPTOT
示例#5
0
def SD_calculation(arr, fill_val=None):
    """
    Calculates the SD indice: mean of daily snow depth [cm]
    
    :param arr: daily snowfall precipitation flux (e.g. "prsn") in mm/day
    :type arr: numpy.ndarray (3D) or numpy.ma.MaskedArray (3D)
    :param fill_val: fill value 
    :type fill_val: float
    
    :rtype: numpy.ndarray (2D)        (if "arr" is numpy.ndarray)
         or numpy.ma.MaskedArray (2D) (if "arr" is numpy.ma.MaskedArray)
         
    .. warning:: Units of "arr" must be ????.
    
    .. warning:: If "arr" is a masked array, the parameter "fill_val" is ignored, because it has no sense in this case.
    """

    c = 0.1  # mm/day --> cm/day
    SD = calc.simple_stat(arr, stat_operation="mean", coef=c, fill_val=fill_val)

    return SD
示例#6
0
def SDII_calculation(arr, fill_val=None):
    '''
    Calculates the SDII (simple daily intensity index) indice:  mean precipitation amount of wet days (i.e. days with daily precipitation amount > = 1 mm) [mm]
    
    :param arr: daily precipitation (liquid form) flux (e.g. "pr") in mm/day
    :type arr: numpy.ndarray (3D) or numpy.ma.MaskedArray (3D)
    :param fill_val: fill value 
    :type fill_val: float
    
    :rtype: numpy.ndarray (2D)        (if "arr" is numpy.ndarray)
         or numpy.ma.MaskedArray (2D) (if "arr" is numpy.ma.MaskedArray)
         
    .. warning:: Units of "arr" must be mm/day.
    
    .. warning:: If "arr" is a masked array, the parameter "fill_val" is ignored, because it has no sense in this case.
    '''

    
    ### mean of wet days (logical_operation='get', thresh=1.0)
    SDII = calc.simple_stat(arr=arr, stat_operation='mean', logical_operation='get', thresh=1.0, coef=1.0, fill_val=fill_val)
    
    return SDII