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
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
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
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
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
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