org.das2.datum
Class UnitsUtil

java.lang.Object
  extended by org.das2.datum.UnitsUtil

public class UnitsUtil
extends java.lang.Object


Constructor Summary
UnitsUtil()
           
 
Method Summary
static Datum divide(Datum aDatum, Datum bDatum)
          attempt to perform the division of two Datums by looking for convertable units or dimensionless.
static java.lang.String divideToString(Datum aDatum, Datum bDatum)
          Special division operation that either does the Datum division if possible, or returns the division of the magitude parts of the Datums plus the unit names "A/B", suitable for human consumption.
static Units getInverseUnit(Units unit)
          returns the unit whose product with the parameter unit is unity.
static boolean isIntervalMeasurement(Units unit)
          returns true if the unit is a interval measurement, meaning the choice of zero is arbitrary.
static boolean isNominalMeasurement(Units unit)
          returns true if the unit is nominal, meaning that Datums with this unit can only be equal or not equal.
static boolean isOrdinalMeasurement(Units unit)
          returns true if the unit is ordinal, meaning that Datums with this unit can only be equal or not equal, or compared.
static boolean isRatioMeasurement(Units unit)
          returns true if the unit is a ratio measurement, meaning there is a physical zero and you can make meaningful ratios between arbitary numbers.
static boolean isRatiometric(Units unit)
          returns true if the unit is used to measure distance in a logarithmic space, such as decibels or percent increase.
static boolean isTimeLocation(Units unit)
          returns true if the unit describes a location in time, as in us2000.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UnitsUtil

public UnitsUtil()
Method Detail

isRatiometric

public static final boolean isRatiometric(Units unit)
returns true if the unit is used to measure distance in a logarithmic space, such as decibels or percent increase. Note Units.dimensionless are not considered ratiometric. (Of course, all ratiometic units are dimensionless...)


isTimeLocation

public static final boolean isTimeLocation(Units unit)
returns true if the unit describes a location in time, as in us2000.


isRatioMeasurement

public static final boolean isRatioMeasurement(Units unit)
returns true if the unit is a ratio measurement, meaning there is a physical zero and you can make meaningful ratios between arbitary numbers. All operations like add, multiply and divide are allowed. (What about negative numbers? We need a statistician!) Examples include "5 km" or "0.2/cc" and "15 counts" See http://en.wikipedia.org/wiki/Level_of_measurement

Parameters:
unit -
Returns:

isIntervalMeasurement

public static final boolean isIntervalMeasurement(Units unit)
returns true if the unit is a interval measurement, meaning the choice of zero is arbitrary. Subtraction and comparison are allowed, but addition, multiplication and division are invalid operators. Examples include "2008-04-09T14:27:00Z" and 15 deg W Longitude. See http://en.wikipedia.org/wiki/Level_of_measurement

Parameters:
unit -
Returns:

isNominalMeasurement

public static final boolean isNominalMeasurement(Units unit)
returns true if the unit is nominal, meaning that Datums with this unit can only be equal or not equal. Currently all nominal data is stored as ordinal data, so this always returns false. Examples include "Iowa City", and "Voyager 1". See http://en.wikipedia.org/wiki/Level_of_measurement

Parameters:
unit -
Returns:
true if the unit is nominal.

isOrdinalMeasurement

public static final boolean isOrdinalMeasurement(Units unit)
returns true if the unit is ordinal, meaning that Datums with this unit can only be equal or not equal, or compared. subtract, add, multiply, divide are invalid. Examples include energy bin labels and quality measures. See http://en.wikipedia.org/wiki/Level_of_measurement

Parameters:
unit -
Returns:
true if the unit is ordinal.

getInverseUnit

public static Units getInverseUnit(Units unit)
returns the unit whose product with the parameter unit is unity.


divideToString

public static java.lang.String divideToString(Datum aDatum,
                                              Datum bDatum)
Special division operation that either does the Datum division if possible, or returns the division of the magitude parts of the Datums plus the unit names "A/B", suitable for human consumption.


divide

public static Datum divide(Datum aDatum,
                           Datum bDatum)
attempt to perform the division of two Datums by looking for convertable units or dimensionless.