Class DataMath



  • public abstract class DataMath
    extends java.lang.Object
    Template
    • Constructor Summary

      Constructors 
      Constructor Description
      DataMath​()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.Object abs​(java.lang.Object a)
      Take abstract value
      static java.lang.Object acos​(java.lang.Object a)
      Take anti-cosine value
      static java.lang.Object add​(java.lang.Object a, java.lang.Object b)
      Tack add operator of two objects
      static java.lang.Object asin​(java.lang.Object a)
      Take anti-sine value
      static java.lang.Object atan​(java.lang.Object a)
      Take anti-tangent value
      static GridData average​(java.util.List<GridData> gDataList)
      Calculate average grid data from grid data list
      static GridData average​(java.util.List<GridData> gDataList, boolean ignoreUndef)
      Calculate average grid data from grid data list
      static GridData average​(java.util.List<GridData> gDataList, boolean ignoreUndef, int validNum)
      Calculate average grid data from grid data list
      static GridData cdiff​(GridData aData, boolean isX)
      Performs a centered difference operation on a grid data in the x or y direction
      static java.lang.Object cos​(java.lang.Object a)
      Take cosine value
      static java.lang.Object div​(java.lang.Object a, java.lang.Object b)
      Take divide operator of two objects
      static GridData div_1​(double value, GridData gridData)
      Divide operation between a double value and a grid data
      static StationData div_1​(double value, StationData stData)
      Divide operator between a double value and a station data
      static java.lang.Object exp​(java.lang.Object a)
      Take e base power value
      static java.lang.Object[] gauss2Lats​(int nlat)
      This function provides latitudes on a Gaussian grid from the number of latitude lines
      static double[] getDSFromUV​(double U, double V)
      Get wind direction/speed from U/V
      static GridData[] getDSFromUV​(GridData uData, GridData vData)
      Get wind direction/speed grid data from wind U/V grid data
      static StationData[] getDSFromUV​(StationData uData, StationData vData)
      Get wind direction/speed station data from wind U/V station data
      static double[] getEndPoint​(double x, double y, double angle, double len)
      Get end point by start point, angle and length
      static float getR​(java.util.List<java.lang.Double> xData, java.util.List<java.lang.Double> yData)
      Get correlation coefficient How well did the forecast values correspond to the observed values? Range: -1 to 1.
      static float getR​(ColumnData xcData, ColumnData ycData)
      Get correlation coefficient How well did the forecast values correspond to the observed values? Range: -1 to 1.
      static double[] getUVFromDS​(double windDir, double windSpeed)
      Get wind U/V from wind direction/speed
      static GridData[] getUVFromDS​(GridData windDirData, GridData windSpeedData)
      Get wind U/V grid data from wind direction/speed grid data
      static StationData[] getUVFromDS​(StationData windDirData, StationData windSpeedData)
      Get wind U/V station data from wind direction/speed station data
      static GridData hcurl​(GridData uData, GridData vData)
      Calculates the vertical component of the curl (ie, vorticity)
      static GridData hdivg​(GridData uData, GridData vData)
      Calculates the horizontal divergence using finite differencing
      static double[] leastSquareTrend​(double[] xData, double[] yData)
      Determine the least square trend equation - linear fitting
      static GridData leastSquareTrend​(java.util.List<GridData> dataList, double[] xData)
      Determine the least square trend equation - linear fitting
      static java.lang.Object log​(java.lang.Object a)
      Take logrithm value
      static java.lang.Object log10​(java.lang.Object a)
      Take 10 base logrithm value
      static GridData magnitude​(GridData uData, GridData vData)
      Take magnitude value from U/V grid data
      static StationData magnitude​(StationData uData, StationData vData)
      Take magnitude value from U/V station data
      static double[] mann_Kendall_Trend​(double[] ts)
      Mann-Kendall trend statistics
      static double[] mann_Kendall_Trend​(java.util.List<java.lang.Double> ts)
      Mann-Kendall trend statistics
      static double[] mann_Kendall_Trend_1​(double[] ts)
      Mann-Kendall trend statistics
      static StationData mean​(java.util.List<StationData> datalist)
      Compute the arithmetic mean station data
      static java.lang.Object mul​(java.lang.Object a, java.lang.Object b)
      Take multiply operator of two objects
      static java.lang.Object pow​(java.lang.Object a, double p)
      Take power value
      static java.lang.Object sin​(java.lang.Object a)
      Take sine value
      static java.lang.Object sqrt​(java.lang.Object a)
      Take squre root value
      static GridData sub​(double value, GridData gridData)
      Subtract operation between a double value and a grid data
      static StationData sub​(double value, StationData stData)
      Subtract operator between a double value and a station data
      static java.lang.Object sub​(java.lang.Object a, java.lang.Object b)
      Take subtract operator of two objects
      static double sum​(double[] values)
      Summary the value array
      static java.lang.Object tan​(java.lang.Object a)
      Take tangent value
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • DataMath

        public DataMath​()
    • Method Detail

      • add

        public static java.lang.Object add​(java.lang.Object a,
                                           java.lang.Object b)
        Tack add operator of two objects
        Parameters:
        a - Object a
        b - Object b
        Returns:
        Result object
      • sub

        public static java.lang.Object sub​(java.lang.Object a,
                                           java.lang.Object b)
        Take subtract operator of two objects
        Parameters:
        a - Object a
        b - Object b
        Returns:
        Result object
      • sub

        public static GridData sub​(double value,
                                   GridData gridData)
        Subtract operation between a double value and a grid data
        Parameters:
        value - Double value
        gridData - Grid data
        Returns:
        Result grid data
      • sub

        public static StationData sub​(double value,
                                      StationData stData)
        Subtract operator between a double value and a station data
        Parameters:
        value - The value
        stData - Station data
        Returns:
        Result station data
      • mul

        public static java.lang.Object mul​(java.lang.Object a,
                                           java.lang.Object b)
        Take multiply operator of two objects
        Parameters:
        a - Object a
        b - Object b
        Returns:
        Result object
      • div

        public static java.lang.Object div​(java.lang.Object a,
                                           java.lang.Object b)
        Take divide operator of two objects
        Parameters:
        a - Object a
        b - Object b
        Returns:
        Result object
      • div_1

        public static GridData div_1​(double value,
                                     GridData gridData)
        Divide operation between a double value and a grid data
        Parameters:
        value - Double value
        gridData - Grid data
        Returns:
        Result grid data
      • div_1

        public static StationData div_1​(double value,
                                        StationData stData)
        Divide operator between a double value and a station data
        Parameters:
        value - The value
        stData - Station data
        Returns:
        Result station data
      • getUVFromDS

        public static double[] getUVFromDS​(double windDir,
                                           double windSpeed)
        Get wind U/V from wind direction/speed
        Parameters:
        windDir - The wind direction
        windSpeed - The wind speed
        Returns:
        Wind U/V
      • getUVFromDS

        public static GridData[] getUVFromDS​(GridData windDirData,
                                             GridData windSpeedData)
        Get wind U/V grid data from wind direction/speed grid data
        Parameters:
        windDirData - Wind directoin grid data
        windSpeedData - Wind speed grid data
        Returns:
        U/V grid data
      • getUVFromDS

        public static StationData[] getUVFromDS​(StationData windDirData,
                                                StationData windSpeedData)
        Get wind U/V station data from wind direction/speed station data
        Parameters:
        windDirData - Wind direction station data
        windSpeedData - Wind speed station data
        Returns:
        U/V station data
      • getDSFromUV

        public static double[] getDSFromUV​(double U,
                                           double V)
        Get wind direction/speed from U/V
        Parameters:
        U - The U value
        V - The V value
        Returns:
        Wind direction/speed array
      • getDSFromUV

        public static GridData[] getDSFromUV​(GridData uData,
                                             GridData vData)
        Get wind direction/speed grid data from wind U/V grid data
        Parameters:
        uData - U grid data
        vData - V grid data
        Returns:
        Wind direction/speed grid data
      • getDSFromUV

        public static StationData[] getDSFromUV​(StationData uData,
                                                StationData vData)
        Get wind direction/speed station data from wind U/V station data
        Parameters:
        uData - U station data
        vData - V station data
        Returns:
        Wind direction/speed station data
      • getEndPoint

        public static double[] getEndPoint​(double x,
                                           double y,
                                           double angle,
                                           double len)
        Get end point by start point, angle and length
        Parameters:
        x - Start point x
        y - Start point y
        angle - Angle
        len - Length
        Returns:
        End point x/y values;
      • sum

        public static double sum​(double[] values)
        Summary the value array
        Parameters:
        values - Values
        Returns:
        Summary
      • abs

        public static java.lang.Object abs​(java.lang.Object a)
        Take abstract value
        Parameters:
        a - Object a
        Returns:
        Result object
      • asin

        public static java.lang.Object asin​(java.lang.Object a)
        Take anti-sine value
        Parameters:
        a - Object a
        Returns:
        Result object
      • acos

        public static java.lang.Object acos​(java.lang.Object a)
        Take anti-cosine value
        Parameters:
        a - Object a
        Returns:
        Result object
      • atan

        public static java.lang.Object atan​(java.lang.Object a)
        Take anti-tangent value
        Parameters:
        a - Object a
        Returns:
        Result object
      • sin

        public static java.lang.Object sin​(java.lang.Object a)
        Take sine value
        Parameters:
        a - Object a
        Returns:
        Result object
      • cos

        public static java.lang.Object cos​(java.lang.Object a)
        Take cosine value
        Parameters:
        a - Object a
        Returns:
        Result object
      • tan

        public static java.lang.Object tan​(java.lang.Object a)
        Take tangent value
        Parameters:
        a - Object a
        Returns:
        Result object
      • exp

        public static java.lang.Object exp​(java.lang.Object a)
        Take e base power value
        Parameters:
        a - Object a
        Returns:
        Result object
      • pow

        public static java.lang.Object pow​(java.lang.Object a,
                                           double p)
        Take power value
        Parameters:
        a - Object a
        p - Power value
        Returns:
        Result object
      • log

        public static java.lang.Object log​(java.lang.Object a)
        Take logrithm value
        Parameters:
        a - Object a
        Returns:
        Result object
      • log10

        public static java.lang.Object log10​(java.lang.Object a)
        Take 10 base logrithm value
        Parameters:
        a - Object a
        Returns:
        Result object
      • sqrt

        public static java.lang.Object sqrt​(java.lang.Object a)
        Take squre root value
        Parameters:
        a - Object a
        Returns:
        Result object
      • average

        public static GridData average​(java.util.List<GridData> gDataList)
        Calculate average grid data from grid data list
        Parameters:
        gDataList - Grid data list
        Returns:
        Averaged grid data
      • average

        public static GridData average​(java.util.List<GridData> gDataList,
                                       boolean ignoreUndef)
        Calculate average grid data from grid data list
        Parameters:
        gDataList - Grid data list
        ignoreUndef - If ignore missing data
        Returns:
        Averaged grid data
      • average

        public static GridData average​(java.util.List<GridData> gDataList,
                                       boolean ignoreUndef,
                                       int validNum)
        Calculate average grid data from grid data list
        Parameters:
        gDataList - Grid data list
        ignoreUndef - If ignore missing value
        validNum - Valid number
        Returns:
        Averaged grid data
      • mean

        public static StationData mean​(java.util.List<StationData> datalist)
        Compute the arithmetic mean station data
        Parameters:
        datalist - station data list
        Returns:
        Mean station data
      • leastSquareTrend

        public static double[] leastSquareTrend​(double[] xData,
                                                double[] yData)
        Determine the least square trend equation - linear fitting
        Parameters:
        xData - X data array
        yData - Y data array
        Returns:
        Result array - y intercept and slope
      • leastSquareTrend

        public static GridData leastSquareTrend​(java.util.List<GridData> dataList,
                                                double[] xData)
        Determine the least square trend equation - linear fitting
        Parameters:
        dataList - Grid data list
        xData - X data array
        Returns:
        Result grid data - slop
      • getR

        public static float getR​(java.util.List<java.lang.Double> xData,
                                 java.util.List<java.lang.Double> yData)
        Get correlation coefficient How well did the forecast values correspond to the observed values? Range: -1 to 1. Perfect score: 1.
        Parameters:
        xData - X data array
        yData - Y data array
        Returns:
        Correlation coefficent
      • getR

        public static float getR​(ColumnData xcData,
                                 ColumnData ycData)
        Get correlation coefficient How well did the forecast values correspond to the observed values? Range: -1 to 1. Perfect score: 1.
        Parameters:
        xcData - X data array
        ycData - Y data array
        Returns:
        Correlation coefficent
      • mann_Kendall_Trend

        public static double[] mann_Kendall_Trend​(java.util.List<java.lang.Double> ts)
        Mann-Kendall trend statistics
        Parameters:
        ts - Input data list
        Returns:
        Result array - z (trend)/beta (change value per unit time)
      • mann_Kendall_Trend

        public static double[] mann_Kendall_Trend​(double[] ts)
        Mann-Kendall trend statistics
        Parameters:
        ts - Input data array
        Returns:
        Result array - z (trend)/beta (change value per unit time)
      • mann_Kendall_Trend_1

        public static double[] mann_Kendall_Trend_1​(double[] ts)
        Mann-Kendall trend statistics
        Parameters:
        ts - Input data array
        Returns:
        Result array - z (trend)/beta (change value per unit time)
      • magnitude

        public static GridData magnitude​(GridData uData,
                                         GridData vData)
        Take magnitude value from U/V grid data
        Parameters:
        uData - U grid data
        vData - V grid data
        Returns:
        Magnitude grid data
      • magnitude

        public static StationData magnitude​(StationData uData,
                                            StationData vData)
        Take magnitude value from U/V station data
        Parameters:
        uData - U station data
        vData - V station data
        Returns:
        Magnitude station data
      • cdiff

        public static GridData cdiff​(GridData aData,
                                     boolean isX)
        Performs a centered difference operation on a grid data in the x or y direction
        Parameters:
        aData - The grid data
        isX - If is x direction
        Returns:
        Result grid data
      • hcurl

        public static GridData hcurl​(GridData uData,
                                     GridData vData)
        Calculates the vertical component of the curl (ie, vorticity)
        Parameters:
        uData - U component
        vData - V component
        Returns:
        Curl
      • hdivg

        public static GridData hdivg​(GridData uData,
                                     GridData vData)
        Calculates the horizontal divergence using finite differencing
        Parameters:
        uData - U component
        vData - V component
        Returns:
        Divergence
      • gauss2Lats

        public static java.lang.Object[] gauss2Lats​(int nlat)
        This function provides latitudes on a Gaussian grid from the number of latitude lines
        Parameters:
        nlat - the number of latitude lines
        Returns:
        The latitudes of hemisphere