Package org.meteoinfo.data
Class DataMath
- java.lang.Object
-
- org.meteoinfo.data.DataMath
-
public abstract class DataMath extends java.lang.ObjectTemplate
-
-
Constructor Summary
Constructors Constructor Description DataMath()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.Objectabs(java.lang.Object a)Take abstract valuestatic java.lang.Objectacos(java.lang.Object a)Take anti-cosine valuestatic java.lang.Objectadd(java.lang.Object a, java.lang.Object b)Tack add operator of two objectsstatic java.lang.Objectasin(java.lang.Object a)Take anti-sine valuestatic java.lang.Objectatan(java.lang.Object a)Take anti-tangent valuestatic GridDataaverage(java.util.List<GridData> gDataList)Calculate average grid data from grid data liststatic GridDataaverage(java.util.List<GridData> gDataList, boolean ignoreUndef)Calculate average grid data from grid data liststatic GridDataaverage(java.util.List<GridData> gDataList, boolean ignoreUndef, int validNum)Calculate average grid data from grid data liststatic GridDatacdiff(GridData aData, boolean isX)Performs a centered difference operation on a grid data in the x or y directionstatic java.lang.Objectcos(java.lang.Object a)Take cosine valuestatic java.lang.Objectdiv(java.lang.Object a, java.lang.Object b)Take divide operator of two objectsstatic GridDatadiv_1(double value, GridData gridData)Divide operation between a double value and a grid datastatic StationDatadiv_1(double value, StationData stData)Divide operator between a double value and a station datastatic java.lang.Objectexp(java.lang.Object a)Take e base power valuestatic java.lang.Object[]gauss2Lats(int nlat)This function provides latitudes on a Gaussian grid from the number of latitude linesstatic double[]getDSFromUV(double U, double V)Get wind direction/speed from U/Vstatic GridData[]getDSFromUV(GridData uData, GridData vData)Get wind direction/speed grid data from wind U/V grid datastatic StationData[]getDSFromUV(StationData uData, StationData vData)Get wind direction/speed station data from wind U/V station datastatic double[]getEndPoint(double x, double y, double angle, double len)Get end point by start point, angle and lengthstatic floatgetR(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 floatgetR(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/speedstatic GridData[]getUVFromDS(GridData windDirData, GridData windSpeedData)Get wind U/V grid data from wind direction/speed grid datastatic StationData[]getUVFromDS(StationData windDirData, StationData windSpeedData)Get wind U/V station data from wind direction/speed station datastatic GridDatahcurl(GridData uData, GridData vData)Calculates the vertical component of the curl (ie, vorticity)static GridDatahdivg(GridData uData, GridData vData)Calculates the horizontal divergence using finite differencingstatic double[]leastSquareTrend(double[] xData, double[] yData)Determine the least square trend equation - linear fittingstatic GridDataleastSquareTrend(java.util.List<GridData> dataList, double[] xData)Determine the least square trend equation - linear fittingstatic java.lang.Objectlog(java.lang.Object a)Take logrithm valuestatic java.lang.Objectlog10(java.lang.Object a)Take 10 base logrithm valuestatic GridDatamagnitude(GridData uData, GridData vData)Take magnitude value from U/V grid datastatic StationDatamagnitude(StationData uData, StationData vData)Take magnitude value from U/V station datastatic double[]mann_Kendall_Trend(double[] ts)Mann-Kendall trend statisticsstatic double[]mann_Kendall_Trend(java.util.List<java.lang.Double> ts)Mann-Kendall trend statisticsstatic double[]mann_Kendall_Trend_1(double[] ts)Mann-Kendall trend statisticsstatic StationDatamean(java.util.List<StationData> datalist)Compute the arithmetic mean station datastatic java.lang.Objectmul(java.lang.Object a, java.lang.Object b)Take multiply operator of two objectsstatic java.lang.Objectpow(java.lang.Object a, double p)Take power valuestatic java.lang.Objectsin(java.lang.Object a)Take sine valuestatic java.lang.Objectsqrt(java.lang.Object a)Take squre root valuestatic GridDatasub(double value, GridData gridData)Subtract operation between a double value and a grid datastatic StationDatasub(double value, StationData stData)Subtract operator between a double value and a station datastatic java.lang.Objectsub(java.lang.Object a, java.lang.Object b)Take subtract operator of two objectsstatic doublesum(double[] values)Summary the value arraystatic java.lang.Objecttan(java.lang.Object a)Take tangent value
-
-
-
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 ab- 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 ab- 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 valuegridData- 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 valuestData- 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 ab- 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 ab- 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 valuegridData- 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 valuestData- 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 directionwindSpeed- 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 datawindSpeedData- 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 datawindSpeedData- 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 valueV- 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 datavData- 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 datavData- 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 xy- Start point yangle- Anglelen- 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 ap- 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 listignoreUndef- 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 listignoreUndef- If ignore missing valuevalidNum- 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 arrayyData- 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 listxData- 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 arrayyData- 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 arrayycData- 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 datavData- 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 datavData- 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 dataisX- 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 componentvData- V component- Returns:
- Curl
-
hdivg
public static GridData hdivg(GridData uData, GridData vData)
Calculates the horizontal divergence using finite differencing- Parameters:
uData- U componentvData- 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
-
-