# Class Units

Object
Units

public final class Units extends Object
Provides constants for various Units of Measurement together with static methods working on `Unit` instances. Unit names and definitions in this class follow the definitions provided in the EPSG geodetic dataset (when the unit exists in that dataset), except “year” which has been renamed “tropical year”. This class focuses on the most commonly used units in the geospatial domain: angular units (degree, arc-second, …), linear units (kilometre, nautical mile, …) and temporal units (day, year, …), but some other kind of units are also provided for completeness. The main quantities are listed below, together with some related units:

Some quantities and related units
Quantity type | System unit | Some conventional units
--- | --- | ---
Fundamental:
`Length` | (L) | `METRE` | `CENTIMETRE`, `KILOMETRE`, `NAUTICAL_MILE`, `STATUTE_MILE`, `FOOT`
`Mass` | (M) | `KILOGRAM` |
`Time` | (T) | `SECOND` | `NANOSECOND`, `MILLISECOND`, `MINUTE`, `HOUR`, `DAY`, `WEEK`, `TROPICAL_YEAR`
`ElectricCurrent` | (I) | `AMPERE` |
`Temperature` | (Θ) | `KELVIN` | `CELSIUS`, `FAHRENHEIT`
`AmountOfSubstance` | (N) | `MOLE` |
`LuminousIntensity` | (J) | `CANDELA` |
Dimensionless:
`Angle` |  | `RADIAN` | `DEGREE`, `ARC_MINUTE`, `ARC_SECOND`, `GRAD`
`SolidAngle` |  | `STERADIAN` |
Derived:
`Area` | (A) | `SQUARE_METRE` | `HECTARE`
`Volume` | (V) | `CUBIC_METRE` |
`Speed` | (ν) | `METRES_PER_SECOND` | `KILOMETRES_PER_HOUR`
`Pressure` |  | `PASCAL` | `HECTOPASCAL`, `DECIBAR`, `BAR`, `ATMOSPHERE`

Since:
  0.3

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final Unit<ElectricCurrent>`
  `AMPERE`
  The SI base unit for electric current (A).
  `static final Unit<Angle>`
  `ARC_MINUTE`
  Unit of measurement defined as 1/60 degree (1′).
  `static final Unit<Angle>`
  `ARC_SECOND`
  Unit of measurement defined as 1/(60×60) degree (1″).
  `static final Unit<Pressure>`
  `ATMOSPHERE`
  Unit of measurement defined as 101325 pascals (1 atm).
  `static final Unit<Pressure>`
  `BAR`
  Unit of measurement defined as 100000 pascals (1 bar).
  `static final Unit<Radioactivity>`
  `BECQUEREL`
  The SI derived unit for radioactivity (Bq).
  `static final Unit<LuminousIntensity>`
  `CANDELA`
  The SI base unit for luminous intensity (cd).
  `static final Unit<Temperature>`
  `CELSIUS`
  Unit of measurement defined as the temperature in Kelvin minus 273.15.
  `static final Unit<Length>`
  `CENTIMETRE`
  Unit of measurement defined as 0.01 metres (1 cm).
  `static final Unit<Length>`
  `CLARKE_FOOT`
  Unit of measurement defined as 0.3047972654 metres.
  `static final Unit<ElectricCharge>`
  `COULOMB`
  The SI derived unit for electric charge (C).
  `static final Unit<Volume>`
  `CUBIC_METRE`
  The SI derived unit for volume (m³).
  `static final Unit<Radioactivity>`
  `CURIE`
  Unit of measurement defined as 3.7 × 10¹⁰ becquerel The symbol is Ci and the unlocalized name is “curie”.
  `static final Unit<Time>`
  `DAY`
  Unit of measurement defined as 24×60×60 seconds (1 d).
  `static final Unit<Pressure>`
  `DECIBAR`
  Unit of measurement defined as 10000 pascals (1 dbar).
  `static final Unit<Dimensionless>`
  `DECIBEL`
  Sub-division of logarithm of ratio of the measured quantity to a reference quantity (dB).
  `static final Unit<Angle>`
  `DEGREE`
  Unit of measurement defined as π/180 radians (1°).
  `static final Unit<Temperature>`
  `FAHRENHEIT`
  Unit of measurement defined as 1.8 degree Celsius plus 32.
  `static final Unit<ElectricCapacitance>`
  `FARAD`
  The SI derived unit for electric capacitance (F).
  `static final Unit<Length>`
  `FOOT`
  Unit of measurement defined as exactly 0.3048 metres (1 ft).
  `static final Unit<Acceleration>`
  `GAL`
  Unit of measurement defined as 1/100 metres per second squared (1 cm/s²).
  `static final Unit<Angle>`
  `GRAD`
  Unit of measurement defined as π/200 radians (1 grad).
  `static final Unit<Mass>`
  `GRAM`
  A SI conventional unit for mass (g).
  `static final Unit<Area>`
  `HECTARE`
  Unit of measurement defined as 10,000 square metres (1 ha).
  `static final Unit<Pressure>`
  `HECTOPASCAL`
  Unit of measurement defined as 100 pascals (1 hPa).
  `static final Unit<ElectricInductance>`
  `HENRY`
  The SI derived unit for inductance (H).
  `static final Unit<Frequency>`
  `HERTZ`
  The SI derived unit for frequency (Hz).
  `static final Unit<Time>`
  `HOUR`
  Unit of measurement defined as 60×60 seconds (1 h).
  `static final Unit<Length>`
  `INCH`
  Unit of measurement defined as 2.54 centimetres (1 in).
  `static final Unit<Energy>`
  `JOULE`
  The SI derived unit for energy (J).
  `static final Unit<Temperature>`
  `KELVIN`
  The SI base unit for thermodynamic temperature (K).
  `static final Unit<Mass>`
  `KILOGRAM`
  The SI base unit for mass (kg).
  `static final Unit<Length>`
  `KILOMETRE`
  Unit of measurement defined as 1000 metres (1 km).
  `static final Unit<Speed>`
  `KILOMETRES_PER_HOUR`
  Unit of measurement defined as 1/3.6 metres per second (1 km/h).
  `static final Unit<Speed>`
  `KNOT`
  Unit of measurement defined as 1.852 km/h.
  `static final Unit<Volume>`
  `LITRE`
  The unit for litre volume (L, l or ℓ).
  `static final Unit<LuminousFlux>`
  `LUMEN`
  The SI derived unit for luminous flux (lm).
  `static final Unit<Illuminance>`
  `LUX`
  The SI derived unit for illuminance (lx).
  `static final Unit<Length>`
  `METRE`
  The SI base unit for distances (m).
  `static final Unit<Speed>`
  `METRES_PER_SECOND`
  The SI derived unit for speed (m/s).
  `static final Unit<Acceleration>`
  `METRES_PER_SECOND_SQUARED`
  The SI derived unit for acceleration (m/s²).
  `static final Unit<Angle>`
  `MICRORADIAN`
  Unit of measurement defined as 10-6 radians (1 µrad).
  `static final Unit<Length>`
  `MILLIMETRE`
  Unit of measurement defined as 0.001 metres (1 mm).
  `static final Unit<Time>`
  `MILLISECOND`
  Unit of measurement defined as 10-3 seconds (1 ms).
  `static final Unit<Time>`
  `MINUTE`
  Unit of measurement defined as 60 seconds (1 min).
  `static final Unit<AmountOfSubstance>`
  `MOLE`
  The SI base unit for amount of substance (mol).
  `static final Unit<Length>`
  `NANOMETRE`
  Unit of measurement defined as 10-9 metres (1 nm).
  `static final Unit<Time>`
  `NANOSECOND`
  Unit of measurement defined as 10-9 seconds (1 ms).
  `static final Unit<Length>`
  `NAUTICAL_MILE`
  Unit of measurement defined as exactly 1852 metres (1 M).
  `static final Unit<Force>`
  `NEWTON`
  The SI derived unit for force (N).
  `static final Unit<ElectricResistance>`
  `OHM`
  The SI derived unit for electric resistance (Ω).
  `static final Unit<Pressure>`
  `PASCAL`
  The SI derived unit for pressure (Pa).
  `static final Unit<Dimensionless>`
  `PERCENT`
  Dimensionless unit for percentages (%).
  `static final Unit<Dimensionless>`
  `PIXEL`
  Dimensionless unit for pixels (px).
  `static final Unit<Length>`
  `POINT`
  Unit of measurement defined as 0.013837 inch (1 pt).
  `static final Unit<Dimensionless>`
  `PPM`
  Dimensionless unit for parts per million (ppm).
  `static final Unit<Salinity>`
  `PSU`
  Salinity measured using PSS-78.
  `static final Unit<Angle>`
  `RADIAN`
  The SI unit for plane angles (rad).
  `static final Unit<AngularVelocity>`
  `RADIANS_PER_SECOND`
  The unit for angular velocity (rad/s).
  `static final Unit<Time>`
  `SECOND`
  The SI base unit for durations (s).
  `static final Unit<ElectricConductance>`
  `SIEMENS`
  The SI derived unit for electric conductance (S).
  `static final Unit<Area>`
  `SQUARE_METRE`
  The SI derived unit for area (m²).
  `static final Unit<Length>`
  `STATUTE_MILE`
  Unit of measurement defined as exactly 1609.344 metres (1 mi).
  `static final Unit<SolidAngle>`
  `STERADIAN`
  The SI unit for solid angles (sr).
  `static final Unit<MagneticFluxDensity>`
  `TESLA`
  The SI derived unit for magnetic flux density (T).
  `static final Unit<Mass>`
  `TONNE`
  The SI convention unit for mass (t).
  `static final Unit<Time>`
  `TROPICAL_YEAR`
  Unit of measurement approximately equals to 365.24219 days (1 a).
  `static final Unit<Dimensionless>`
  `UNITY`
  The base dimensionless unit for scale measurements.
  `static final Unit<Length>`
  `US_SURVEY_FOOT`
  Unit of measurement approximately equals to 0.3048006096… metres.
  `static final Unit<ElectricPotential>`
  `VOLT`
  The SI derived unit for electric potential difference (V).
  `static final Unit<Power>`
  `WATT`
  The SI derived unit for power (W).
  `static final Unit<MagneticFlux>`
  `WEBER`
  The SI derived unit for magnetic flux (Wb).
  `static final Unit<Time>`
  `WEEK`
  Unit of measurement defined as 7 days (1 wk).

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static Number[]`
  `coefficients(UnitConverter converter)`
  Returns the coefficients of the given converter expressed as a polynomial equation.
  `static UnitConverter`
  `converter(Number scale, Number offset)`
  Creates a linear converter from the given scale and offset.
  `static double`
  `derivative(UnitConverter converter, double value)`
  Returns the derivative of the given converter at the given value, or `NaN` if this method cannot compute it.
  `static Unit<Angle>`
  `ensureAngular(Unit<?> unit)`
  Makes sure that the specified unit is either null or an angular unit.
  `static Unit<Length>`
  `ensureLinear(Unit<?> unit)`
  Makes sure that the specified unit is either null or a linear unit.
  `static Unit<Dimensionless>`
  `ensureScale(Unit<?> unit)`
  Makes sure that the specified unit is either null or a scale unit.
  `static Unit<Time>`
  `ensureTemporal(Unit<?> unit)`
  Makes sure that the specified unit is either null or a temporal unit.
  `static Integer`
  `getEpsgCode(Unit<?> unit, boolean inAxis)`
  Returns the EPSG code of the given units, or `null` if unknown.
  `static boolean`
  `isAngular(Unit<?> unit)`
  Returns `true` if the given unit is a linear unit.
  `static boolean`
  `isLinear(Unit<?> unit)`
  Returns `true` if the given unit is a linear unit.
  `static boolean`
  `isPressure(Unit<?> unit)`
  Returns `true` if the given unit is a pressure unit.
  `static boolean`
  `isScale(Unit<?> unit)`
  Returns `true` if the given unit is a dimensionless scale unit.
  `static boolean`
  `isTemporal(Unit<?> unit)`
  Returns `true` if the given unit is a temporal unit.
  `static <Q extends Quantity<Q>>
  Unit<Q>`
  `logarithm(Unit<Q> unit)`
  Creates an unit for values computed by the logarithm in base 10 of values in the given unit.
  `static <Q extends Quantity<Q>>
  Unit<Q>`
  `multiply(Unit<Q> unit, double numerator, double denominator)`
  Multiplies the given unit by the given ratio.
  `static <Q extends Quantity<Q>>
  double`
  `toStandardUnit(Unit<Q> unit)`
  Returns the factor by which to multiply the standard unit in order to get the given unit.
  `static Unit<?>`
  `valueOf(String uom)`
  Parses the given symbol.
  `static Unit<?>`
  `valueOfEPSG(int code)`
  Returns a hard-coded unit from an EPSG code.

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### NANOMETRE

    public static final Unit<Length> NANOMETRE
    Unit of measurement defined as 10-9 metres (1 nm). This unit is often used in wavelength measurements. The system unit is `METRE` and the unlocalized name is "nanometre".

    Related units
    SI length units: | `NANOMETRE`, `MILLIMETRE`, `CENTIMETRE`, `METRE`, `KILOMETRE`.
    Non-SI units: | `POINT`, `INCH`, `FOOT`, `CLARKE_FOOT`, `US_SURVEY_FOOT`, `STATUTE_MILE`, `NAUTICAL_MILE`.
    Derived units: | `SQUARE_METRE`, `CUBIC_METRE`, `METRES_PER_SECOND`.

    Since:
      0.8
    See Also:
      - `DefaultBand​.getBoundUnits()`

  - ### MILLIMETRE

    public static final Unit<Length> MILLIMETRE
    Unit of measurement defined as 0.001 metres (1 mm). The system unit is `METRE`, the unlocalized name is “millimetre” and the identifier is EPSG:1025.

    Related units
    SI length units: | `NANOMETRE`, `MILLIMETRE`, `CENTIMETRE`, `METRE`, `KILOMETRE`.
    Non-SI units: | `POINT`, `INCH`, `FOOT`, `CLARKE_FOOT`, `US_SURVEY_FOOT`, `STATUTE_MILE`, `NAUTICAL_MILE`.
    Derived units: | `SQUARE_METRE`, `CUBIC_METRE`, `METRES_PER_SECOND`.

    Since:
      0.8

  - ### CENTIMETRE

    public static final Unit<Length> CENTIMETRE
    Unit of measurement defined as 0.01 metres (1 cm). The system unit is `METRE`, the unlocalized name is “centimetre” and the identifier is EPSG:1033.

    Related units
    SI length units: | `NANOMETRE`, `MILLIMETRE`, `CENTIMETRE`, `METRE`, `KILOMETRE`.
    Non-SI units: | `POINT`, `INCH`, `FOOT`, `CLARKE_FOOT`, `US_SURVEY_FOOT`, `STATUTE_MILE`, `NAUTICAL_MILE`.
    Derived units: | `SQUARE_METRE`, `CUBIC_METRE`, `METRES_PER_SECOND`.

    Since:
      0.8

  - ### METRE

    public static final Unit<Length> METRE
    The SI base unit for distances (m). The unlocalized name is “metre” and the identifier is EPSG:9001. This is the base of all other linear units.

    Related units
    SI length units: | `NANOMETRE`, `MILLIMETRE`, `CENTIMETRE`, `METRE`, `KILOMETRE`.
    Non-SI units: | `POINT`, `INCH`, `FOOT`, `CLARKE_FOOT`, `US_SURVEY_FOOT`, `STATUTE_MILE`, `NAUTICAL_MILE`.
    Derived units: | `SQUARE_METRE`, `CUBIC_METRE`, `METRES_PER_SECOND`.

    Since:
      0.8

  - ### KILOMETRE

    public static final Unit<Length> KILOMETRE
    Unit of measurement defined as 1000 metres (1 km). The system unit is `METRE`, the unlocalized name is “kilometre” and the identifier is EPSG:9036.

    Related units
    SI length units: | `NANOMETRE`, `MILLIMETRE`, `CENTIMETRE`, `METRE`, `KILOMETRE`.
    Non-SI units: | `POINT`, `INCH`, `FOOT`, `CLARKE_FOOT`, `US_SURVEY_FOOT`, `STATUTE_MILE`, `NAUTICAL_MILE`.
    Derived units: | `SQUARE_METRE`, `CUBIC_METRE`, `KILOMETRES_PER_HOUR`.

    Since:
      0.8

  - ### NAUTICAL_MILE

    public static final Unit<Length> NAUTICAL_MILE
    Unit of measurement defined as exactly 1852 metres (1 M). This is approximately the distance between two parallels of latitude separated by one arc-minute. The system unit is `METRE`, the unlocalized name is “nautical mile” and the identifier is EPSG:9030.

    There is no internationally agreed symbol for nautical mile. Apache SIS uses “M” in agreement with the International Hydrographic Organization (IHO) and the International Bureau of Weights and Measures (BIPM). But “NM” and “nmi” are also in use.

    Related units
    SI length units: | `NANOMETRE`, `MILLIMETRE`, `CENTIMETRE`, `METRE`, `KILOMETRE`.
    Non-SI units: | `POINT`, `INCH`, `FOOT`, `CLARKE_FOOT`, `US_SURVEY_FOOT`, `STATUTE_MILE`, `NAUTICAL_MILE`.
    Derived units: | `SQUARE_METRE`, `CUBIC_METRE`, `KILOMETRES_PER_HOUR`.

    Since:
      0.8

  - ### STATUTE_MILE

    public static final Unit<Length> STATUTE_MILE
    Unit of measurement defined as exactly 1609.344 metres (1 mi). This unit is often named “mile” without qualifier, but Apache SIS uses “statute mile” for emphasing the difference with nautical mile. The system unit is `METRE`. The unlocalized name is “statute mile” but is localized as "international mile" in the US for avoiding confusion with the US survey mile. The identifier is EPSG:9093.

    Related units
    SI length units: | `NANOMETRE`, `MILLIMETRE`, `CENTIMETRE`, `METRE`, `KILOMETRE`.
    Non-SI units: | `POINT`, `INCH`, `FOOT`, `CLARKE_FOOT`, `US_SURVEY_FOOT`, `STATUTE_MILE`, `NAUTICAL_MILE`.
    Derived units: | `SQUARE_METRE`, `CUBIC_METRE`, `KILOMETRES_PER_HOUR`.

    Since:
      0.8

  - ### US_SURVEY_FOOT

    public static final Unit<Length> US_SURVEY_FOOT
    Unit of measurement approximately equals to 0.3048006096… metres. The legal definition is exactly 12/39.37 metres. The system unit is `METRE`, the unlocalized name is “US survey foot” and the identifier is EPSG:9003.

    Related units
    SI length units: | `NANOMETRE`, `MILLIMETRE`, `CENTIMETRE`, `METRE`, `KILOMETRE`.
    Non-SI units: | `POINT`, `INCH`, `FOOT`, `CLARKE_FOOT`, `US_SURVEY_FOOT`, `STATUTE_MILE`, `NAUTICAL_MILE`.
    Derived units: | `SQUARE_METRE`, `CUBIC_METRE`, `METRES_PER_SECOND`.

    Since:
      0.8

  - ### CLARKE_FOOT

    public static final Unit<Length> CLARKE_FOOT
    Unit of measurement defined as 0.3047972654 metres. The system unit is `METRE`, the unlocalized name is “Clarke’s foot” and the identifier is EPSG:9005.

    Related units
    SI length units: | `NANOMETRE`, `MILLIMETRE`, `CENTIMETRE`, `METRE`, `KILOMETRE`.
    Non-SI units: | `POINT`, `INCH`, `FOOT`, `CLARKE_FOOT`, `US_SURVEY_FOOT`, `STATUTE_MILE`, `NAUTICAL_MILE`.
    Derived units: | `SQUARE_METRE`, `CUBIC_METRE`, `METRES_PER_SECOND`.

    Since:
      0.8

  - ### FOOT

    public static final Unit<Length> FOOT
    Unit of measurement defined as exactly 0.3048 metres (1 ft). The system unit is `METRE`, the unlocalized name is “foot” and the identifier is EPSG:9002.

    Related units
    SI length units: | `NANOMETRE`, `MILLIMETRE`, `CENTIMETRE`, `METRE`, `KILOMETRE`.
    Non-SI units: | `POINT`, `INCH`, `FOOT`, `CLARKE_FOOT`, `US_SURVEY_FOOT`, `STATUTE_MILE`, `NAUTICAL_MILE`.
    Derived units: | `SQUARE_METRE`, `CUBIC_METRE`, `METRES_PER_SECOND`.

    Since:
      0.8

  - ### INCH

    public static final Unit<Length> INCH
    Unit of measurement defined as 2.54 centimetres (1 in). The system unit is `METRE` and the unlocalized name is “inch”.

    Related units
    SI length units: | `NANOMETRE`, `MILLIMETRE`, `CENTIMETRE`, `METRE`, `KILOMETRE`.
    Non-SI units: | `POINT`, `INCH`, `FOOT`, `CLARKE_FOOT`, `US_SURVEY_FOOT`, `STATUTE_MILE`, `NAUTICAL_MILE`.
    Derived units: | `SQUARE_METRE`, `CUBIC_METRE`, `METRES_PER_SECOND`.

    Since:
      0.8

  - ### POINT

    public static final Unit<Length> POINT
    Unit of measurement defined as 0.013837 inch (1 pt). This is commonly used to measure the height of a font. The system unit is `METRE` and the unlocalized name is “point”.

    Related units
    SI length units: | `NANOMETRE`, `MILLIMETRE`, `CENTIMETRE`, `METRE`, `KILOMETRE`.
    Non-SI units: | `POINT`, `INCH`, `FOOT`, `CLARKE_FOOT`, `US_SURVEY_FOOT`, `STATUTE_MILE`, `NAUTICAL_MILE`.
    Derived units: | `SQUARE_METRE`, `CUBIC_METRE`, `METRES_PER_SECOND`.

    Since:
      0.8

  - ### SQUARE_METRE

    public static final Unit<Area> SQUARE_METRE
    The SI derived unit for area (m²). The unlocalized name is “square metre”.

    Related units
    SI area units: | `SQUARE_METRE`, `HECTARE`.
    Derived units: | `CUBIC_METRE`.

    Since:
      0.8

  - ### HECTARE

    public static final Unit<Area> HECTARE
    Unit of measurement defined as 10,000 square metres (1 ha). One hectare is exactly equals to one hectometre (1 hm²). While not an SI unit, the hectare is often used in the measurement of land. The unlocalized name is “hectare”.

    Related units
    SI area units: | `SQUARE_METRE`, `HECTARE`.
    Derived units: | `CUBIC_METRE`.

    Since:
      0.8

  - ### CUBIC_METRE

    public static final Unit<Volume> CUBIC_METRE
    The SI derived unit for volume (m³). The unlocalized name is “cubic metre”.
    Since:
      0.8

  - ### LITRE

    public static final Unit<Volume> LITRE
    The unit for litre volume (L, l or ℓ). The unlocalized name is “litre”.
    Since:
      0.8

  - ### STERADIAN

    public static final Unit<SolidAngle> STERADIAN
    The SI unit for solid angles (sr). The unlocalized name is “steradian”.
    Since:
      0.8

  - ### MICRORADIAN

    public static final Unit<Angle> MICRORADIAN
    Unit of measurement defined as 10-6 radians (1 µrad). The distance of one microradian of latitude on Earth is approximately 2 millimetres. The system unit is `RADIAN`, the unlocalized name is “microradian” and the identifier is EPSG:9109.

    Related units
    SI angle units: | `MICRORADIAN`, `RADIAN`.
    Non-SI units: | `DEGREE`, `ARC_MINUTE`, `ARC_SECOND`, `GRAD`.
    Derived units: | `STERADIAN`.

    Since:
      0.8

  - ### RADIAN

    public static final Unit<Angle> RADIAN
    The SI unit for plane angles (rad). There is 2π radians in a circle. The unlocalized name is “radian” and the identifier is EPSG:9101. This is the base of all other angular units.

    Related units
    SI angle units: | `MICRORADIAN`, `RADIAN`.
    Non-SI units: | `DEGREE`, `ARC_MINUTE`, `ARC_SECOND`, `GRAD`.
    Derived units: | `STERADIAN`, `RADIANS_PER_SECOND`.

    Since:
      0.8

  - ### DEGREE

    public static final Unit<Angle> DEGREE
    Unit of measurement defined as π/180 radians (1°). There is 360° in a circle. The system unit is `RADIAN`, the unlocalized name is “degree” and the identifier is EPSG:9102.

    Related units
    SI angle units: | `MICRORADIAN`, `RADIAN`.
    Non-SI units: | `DEGREE`, `ARC_MINUTE`, `ARC_SECOND`, `GRAD`.
    Derived units: | `STERADIAN`.

    Since:
      0.8

  - ### ARC_MINUTE

    public static final Unit<Angle> ARC_MINUTE
    Unit of measurement defined as 1/60 degree (1′). The distance of one arc-minute of latitude on Earth is approximately 1852 metres (one nautical mile). The system unit is `RADIAN`, the unlocalized name is “arc-minute” and the identifier is EPSG:9103.

    Related units
    SI angle units: | `MICRORADIAN`, `RADIAN`.
    Non-SI units: | `DEGREE`, `ARC_MINUTE`, `ARC_SECOND`, `GRAD`.
    Derived units: | `STERADIAN`.

    Since:
      0.8

  - ### ARC_SECOND

    public static final Unit<Angle> ARC_SECOND
    Unit of measurement defined as 1/(60×60) degree (1″). The distance of one arc-second of latitude on Earth is approximately 31 metres. This unit of measurement is used for rotation terms in Bursa-Wolf parameters. The system unit is `RADIAN`, the unlocalized name is “arc-second” and the identifier is EPSG:9104.

    Related units
    SI angle units: | `MICRORADIAN`, `RADIAN`.
    Non-SI units: | `DEGREE`, `ARC_MINUTE`, `ARC_SECOND`, `GRAD`.
    Derived units: | `STERADIAN`.

    Since:
      0.8

  - ### GRAD

    public static final Unit<Angle> GRAD
    Unit of measurement defined as π/200 radians (1 grad). There is 400 grads in a circle. The system unit is `RADIAN`, the unlocalized name is “grad”, but the “gon” alias is also accepted. The identifier is EPSG:9105.

    Related units
    SI angle units: | `MICRORADIAN`, `RADIAN`.
    Non-SI units: | `DEGREE`, `ARC_MINUTE`, `ARC_SECOND`, `GRAD`.
    Derived units: | `STERADIAN`.

    Since:
      0.8

  - ### NANOSECOND

    public static final Unit<Time> NANOSECOND
    Unit of measurement defined as 10-9 seconds (1 ms). This unit is useful for inter-operability with various methods from the standard Java library. The system unit is `SECOND` and the unlocalized name is “nanosecond”.

    Related units
    SI time units: | `NANOSECOND`, `MILLISECOND`, `SECOND`.
    Non-SI units: | `MINUTE`, `HOUR`, `DAY`, `WEEK`, `TROPICAL_YEAR`.
    Derived units: | `METRES_PER_SECOND`, `HERTZ`, `BECQUEREL`.

    Since:
      1.5
    See Also:
      - `TimeUnit​.NANOSECONDS`

  - ### MILLISECOND

    public static final Unit<Time> MILLISECOND
    Unit of measurement defined as 10-3 seconds (1 ms). This unit is useful for inter-operability with various methods from the standard Java library. The system unit is `SECOND` and the unlocalized name is “millisecond”.

    Related units
    SI time units: | `NANOSECOND`, `MILLISECOND`, `SECOND`.
    Non-SI units: | `MINUTE`, `HOUR`, `DAY`, `WEEK`, `TROPICAL_YEAR`.
    Derived units: | `METRES_PER_SECOND`, `HERTZ`, `BECQUEREL`.

    Since:
      0.3
    See Also:
      - `TimeUnit​.MILLISECONDS`

  - ### SECOND

    public static final Unit<Time> SECOND
    The SI base unit for durations (s). The unlocalized name is “second” and the identifier is EPSG:1040. This is the base of all other temporal units.

    Related units
    SI time units: | `NANOSECOND`, `MILLISECOND`, `SECOND`.
    Non-SI units: | `MINUTE`, `HOUR`, `DAY`, `WEEK`, `TROPICAL_YEAR`.
    Derived units: | `METRES_PER_SECOND`, `HERTZ`, `BECQUEREL`.

    Since:
      0.8

  - ### MINUTE

    public static final Unit<Time> MINUTE
    Unit of measurement defined as 60 seconds (1 min). The system unit is `SECOND` and the unlocalized name is “minute”.

    Related units
    SI time units: | `NANOSECOND`, `MILLISECOND`, `SECOND`.
    Non-SI units: | `MINUTE`, `HOUR`, `DAY`, `WEEK`, `TROPICAL_YEAR`.
    Derived units: | `METRES_PER_SECOND`, `HERTZ`, `BECQUEREL`.

    Since:
      0.8

  - ### HOUR

    public static final Unit<Time> HOUR
    Unit of measurement defined as 60×60 seconds (1 h). The system unit is `SECOND` and the unlocalized name is “hour”.

    Related units
    SI time units: | `NANOSECOND`, `MILLISECOND`, `SECOND`.
    Non-SI units: | `MINUTE`, `HOUR`, `DAY`, `WEEK`, `TROPICAL_YEAR`.
    Derived units: | `KILOMETRES_PER_HOUR`, `HERTZ`, `BECQUEREL`.

    Since:
      0.8

  - ### DAY

    public static final Unit<Time> DAY
    Unit of measurement defined as 24×60×60 seconds (1 d). The system unit is `SECOND` and the unlocalized name is “day”.

    Related units
    SI time units: | `NANOSECOND`, `MILLISECOND`, `SECOND`.
    Non-SI units: | `MINUTE`, `HOUR`, `DAY`, `WEEK`, `TROPICAL_YEAR`.
    Derived units: | `KILOMETRES_PER_HOUR`, `HERTZ`, `BECQUEREL`.

    Since:
      0.8

  - ### WEEK

    public static final Unit<Time> WEEK
    Unit of measurement defined as 7 days (1 wk). The system unit is `SECOND` and the unlocalized name is “week”.

    Related units
    SI time units: | `NANOSECOND`, `MILLISECOND`, `SECOND`.
    Non-SI units: | `MINUTE`, `HOUR`, `DAY`, `WEEK`, `TROPICAL_YEAR`.
    Derived units: | `KILOMETRES_PER_HOUR`, `HERTZ`, `BECQUEREL`.

    Since:
      0.8

  - ### TROPICAL_YEAR

    public static final Unit<Time> TROPICAL_YEAR
    Unit of measurement approximately equals to 365.24219 days (1 a). This is defined by the International Union of Geological Sciences (IUGS) as exactly 31556925.445 seconds, taken as the length of the tropical year in the year 2000. The system unit is `SECOND`, the unlocalized name is “year” and the identifier is EPSG:1029.

    Related units
    SI time units: | `NANOSECOND`, `MILLISECOND`, `SECOND`.
    Non-SI units: | `MINUTE`, `HOUR`, `DAY`, `WEEK`, `TROPICAL_YEAR`.
    Derived units: | `KILOMETRES_PER_HOUR`, `HERTZ`, `BECQUEREL`.

    Since:
      0.8

  - ### HERTZ

    public static final Unit<Frequency> HERTZ
    The SI derived unit for frequency (Hz). One hertz is equal to one cycle per second. The unlocalized name is “hertz”.

    Related units
    Components: | `SECOND`-1

    Since:
      0.8

  - ### RADIANS_PER_SECOND

    public static final Unit<AngularVelocity> RADIANS_PER_SECOND
    The unit for angular velocity (rad/s). The identifier is EPSG:1035.

    Related units
    Components: | `RADIAN` ∕ `SECOND`

    Since:
      0.8

  - ### METRES_PER_SECOND

    public static final Unit<Speed> METRES_PER_SECOND
    The SI derived unit for speed (m/s). The unlocalized name is “metres per second” and the identifier is EPSG:1026.

    Related units
    SI speed units: | `METRES_PER_SECOND`.
    Non-SI units: | `KILOMETRES_PER_HOUR`, `KNOT`.
    Components: | `METRE` ∕ `SECOND`

    Since:
      0.8

  - ### KILOMETRES_PER_HOUR

    public static final Unit<Speed> KILOMETRES_PER_HOUR
    Unit of measurement defined as 1/3.6 metres per second (1 km/h). The system unit is `METRES_PER_SECOND` and the unlocalized name is “kilometres per hour”.

    Related units
    SI speed units: | `METRES_PER_SECOND`.
    Non-SI units: | `KILOMETRES_PER_HOUR`, `KNOT`.
    Components: | `KILOMETRE` ∕ `HOUR`

    Since:
      0.8

  - ### KNOT

    public static final Unit<Speed> KNOT
    Unit of measurement defined as 1.852 km/h. The system unit is `METRES_PER_SECOND` and the unlocalized name is “knot”.

    Related units
    SI speed units: | `METRES_PER_SECOND`.
    Non-SI units: | `KILOMETRES_PER_HOUR`, `#KNOT`.
    Components: | `KILOMETRE` ∕ `HOUR`

    Since:
      1.5

  - ### METRES_PER_SECOND_SQUARED

    public static final Unit<Acceleration> METRES_PER_SECOND_SQUARED
    The SI derived unit for acceleration (m/s²). The unlocalized name is “metres per second squared”.

    Related units
    SI acceleration units: | `METRES_PER_SECOND_SQUARED`.
    Non-SI units: | `GAL`.
    Components: | `METRES_PER_SECOND` ∕ `SECOND`

    Since:
      1.2

  - ### GAL

    public static final Unit<Acceleration> GAL
    Unit of measurement defined as 1/100 metres per second squared (1 cm/s²). This is a CGS unit (not a SI unit) used in geodesy and geophysics to express acceleration due to gravity. The system unit is `METRES_PER_SECOND_SQUARED`, the symbol is "Gal" (upper-case first letter) and the unlocalized name is “gal” (lower-case letter).

    Related units
    SI acceleration units: | `METRES_PER_SECOND_SQUARED`.
    Non-SI units: | `GAL`.
    Components: | `CENTIMETRE` ∕ `SECOND`²

    Since:
      1.2

  - ### PASCAL

    public static final Unit<Pressure> PASCAL
    The SI derived unit for pressure (Pa). One pascal is equal to 1 N/m². Pressures are often used in parametric CRS for height measurements on a vertical axis. The unlocalized name is “pascal”.

    Related units
    SI pressure units: | `PASCAL`, `HECTOPASCAL`.
    Non-SI units: | `DECIBAR`, `BAR`, `ATMOSPHERE`.
    Components: | `NEWTON` ∕ `SQUARE_METRE`

    Since:
      0.8

  - ### HECTOPASCAL

    public static final Unit<Pressure> HECTOPASCAL
    Unit of measurement defined as 100 pascals (1 hPa). The hectopascal is the international unit for measuring atmospheric or barometric pressure and is exactly equal to one millibar. The system unit is `PASCAL` and the unlocalized name is “hectopascal”.

    Related units
    SI pressure units: | `PASCAL`, `HECTOPASCAL`.
    Non-SI units: | `DECIBAR`, `BAR`, `ATMOSPHERE`.
    Components: | `NEWTON` ∕ `SQUARE_METRE`

    Since:
      0.8

  - ### DECIBAR

    public static final Unit<Pressure> DECIBAR
    Unit of measurement defined as 10000 pascals (1 dbar). This unit is used in oceanography as there is an approximate numerical equivalence between pressure changes in decibars and depth changes in metres underwater. The system unit is `PASCAL` and the unlocalized name is “decibar”.

    Related units
    SI pressure units: | `PASCAL`, `HECTOPASCAL`.
    Non-SI units: | `DECIBAR`, `BAR`, `ATMOSPHERE`.
    Components: | `NEWTON` ∕ `SQUARE_METRE`

    Since:
      0.8

  - ### BAR

    public static final Unit<Pressure> BAR
    Unit of measurement defined as 100000 pascals (1 bar). One bar is slightly less than the average atmospheric pressure on Earth at sea level. One millibar is exactly equal to one hectopascal. The system unit is `PASCAL` and the unlocalized name is “bar”.

    Related units
    SI pressure units: | `PASCAL`, `HECTOPASCAL`.
    Non-SI units: | `DECIBAR`, `BAR`, `ATMOSPHERE`.
    Components: | `NEWTON` ∕ `SQUARE_METRE`

    Since:
      0.8

  - ### ATMOSPHERE

    public static final Unit<Pressure> ATMOSPHERE
    Unit of measurement defined as 101325 pascals (1 atm). One atmosphere reflects the pressure at the mean sea level for countries around 49°N of latitude. The system unit is `PASCAL` and the unlocalized name is “atmosphere”.

    Related units
    SI pressure units: | `PASCAL`, `HECTOPASCAL`.
    Non-SI units: | `DECIBAR`, `BAR`, `ATMOSPHERE`.
    Components: | `NEWTON` ∕ `SQUARE_METRE`

    Since:
      0.8

  - ### NEWTON

    public static final Unit<Force> NEWTON
    The SI derived unit for force (N). One newton is the force required to give a mass of 1 kg an acceleration of 1 m/s². The unlocalized name is “newton”.

    Related units
    Components: | `KILOGRAM` ⋅ `METRES_PER_SECOND` ∕ `SECOND`
    Derived units: | `PASCAL`, `JOULE`, `WATT`.

    Since:
      0.8

  - ### JOULE

    public static final Unit<Energy> JOULE
    The SI derived unit for energy (J). The unlocalized name is “joule”.

    Related units
    Components: | `NEWTON` ⋅ `METRE`
    Derived units: | `WATT`.

    Since:
      0.8

  - ### WATT

    public static final Unit<Power> WATT
    The SI derived unit for power (W). One watt is equal to one joule per second. The unlocalized name is “watt”.

    Related units
    Components: | `JOULE` ∕ `SECOND`
    Derived units: | `VOLT`.

    Since:
      0.8

  - ### VOLT

    public static final Unit<ElectricPotential> VOLT
    The SI derived unit for electric potential difference (V). The unlocalized name is “volt”.

    Related units
    Components: | `WATT` ∕ `AMPERE`
    Derived units: | `FARAD`, `OHM`, `SIEMENS`, `WEBER`.

    Since:
      0.8

  - ### AMPERE

    public static final Unit<ElectricCurrent> AMPERE
    The SI base unit for electric current (A). The unlocalized name is “ampere”.

    Related units
    Derived units: | `COULOMB`, `VOLT`, `OHM`, `SIEMENS`, `HENRY`.

    Since:
      0.8

  - ### COULOMB

    public static final Unit<ElectricCharge> COULOMB
    The SI derived unit for electric charge (C). One coulomb is the charge transferred by a current of one ampere during one second. The unlocalized name is “coulomb”.

    Related units
    Components: | `AMPERE` ⋅ `SECOND`
    Derived units: | `FARAD`.

    Since:
      0.8

  - ### FARAD

    public static final Unit<ElectricCapacitance> FARAD
    The SI derived unit for electric capacitance (F). The unlocalized name is “farad”.

    Related units
    Components: | `COULOMB` ∕ `VOLT`

    Since:
      0.8

  - ### OHM

    public static final Unit<ElectricResistance> OHM
    The SI derived unit for electric resistance (Ω). This is the inverse of electric conductance. The unlocalized name is “ohm”.

    Related units
    Components: | `VOLT` ∕ `AMPERE`
    Derived units: | `SIEMENS`.

    Since:
      0.8

  - ### SIEMENS

    public static final Unit<ElectricConductance> SIEMENS
    The SI derived unit for electric conductance (S). This is the inverse of electric resistance. The unlocalized name is “siemens”.

    Related units
    Components: | `AMPERE` ∕ `VOLT`
    Derived units: | `OHM`.

    Since:
      0.8

  - ### WEBER

    public static final Unit<MagneticFlux> WEBER
    The SI derived unit for magnetic flux (Wb). The unlocalized name is “weber”.

    Related units
    Components: | `VOLT` ⋅ `SECOND`
    Derived units: | `TESLA`, `HENRY`.

    Since:
      0.8

  - ### TESLA

    public static final Unit<MagneticFluxDensity> TESLA
    The SI derived unit for magnetic flux density (T). The unlocalized name is “tesla”.

    Related units
    Components: | `WEBER` ∕ `SQUARE_METRE`

    Since:
      0.8

  - ### HENRY

    public static final Unit<ElectricInductance> HENRY
    The SI derived unit for inductance (H). The unlocalized name is “henry”.

    Related units
    Components: | `WEBER` ∕ `AMPERE`

    Since:
      0.8

  - ### KELVIN

    public static final Unit<Temperature> KELVIN
    The SI base unit for thermodynamic temperature (K). The unlocalized name is “kelvin”.

    Related units
    SI temperature units: | `KELVIN`.
    Non-SI units: | `CELSIUS`, `FAHRENHEIT`.

    Since:
      0.8

  - ### CELSIUS

    public static final Unit<Temperature> CELSIUS
    Unit of measurement defined as the temperature in Kelvin minus 273.15. The symbol is °C and the unlocalized name is “Celsius”. Note that this is the only SI unit with an upper-case letter in its name.

    Related units
    SI temperature units: | `KELVIN`.
    Non-SI units: | `CELSIUS`, `FAHRENHEIT`.

    Since:
      0.8

  - ### FAHRENHEIT

    public static final Unit<Temperature> FAHRENHEIT
    Unit of measurement defined as 1.8 degree Celsius plus 32. The symbol is °F and the unlocalized name is “Fahrenheit” (note the upper-case "F" letter).

    Related units
    SI temperature units: | `KELVIN`.
    Non-SI units: | `CELSIUS`, `FAHRENHEIT`.

    Since:
      0.8

  - ### CANDELA

    public static final Unit<LuminousIntensity> CANDELA
    The SI base unit for luminous intensity (cd). The unlocalized name is “candela”.

    Related units
    Derived units: | `LUMEN`, `LUX`.

    Since:
      0.8

  - ### LUMEN

    public static final Unit<LuminousFlux> LUMEN
    The SI derived unit for luminous flux (lm). The unlocalized name is “lumen”.

    Related units
    Components: | `CANDELA` ⋅ `STERADIAN`
    Derived units: | `LUX`.

    Since:
      0.8

  - ### LUX

    public static final Unit<Illuminance> LUX
    The SI derived unit for illuminance (lx). The unlocalized name is “lux”.

    Related units
    Components: | `LUX` ∕ `SQUARE_METRE`

    Since:
      0.8

  - ### GRAM

    public static final Unit<Mass> GRAM
    A SI conventional unit for mass (g). The unlocalized name is “gram”.

    Related units
    SI mass units: | `GRAM`, `KILOGRAM`.
    Non-SI units: | `TONNE`.

    Since:
      0.8

  - ### KILOGRAM

    public static final Unit<Mass> KILOGRAM
    The SI base unit for mass (kg). The unlocalized name is “kilogram”.

    Related units
    SI mass units: | `GRAM`, `KILOGRAM`.
    Non-SI units: | `TONNE`.

    Since:
      0.8

  - ### TONNE

    public static final Unit<Mass> TONNE
    The SI convention unit for mass (t). The unlocalized name is “tonne”.

    Related units
    SI mass units: | `GRAM`, `KILOGRAM`.
    Non-SI units: | `TONNE`.

    Since:
      1.5

  - ### MOLE

    public static final Unit<AmountOfSubstance> MOLE
    The SI base unit for amount of substance (mol). The unlocalized name is “mole”.
    Since:
      0.8

  - ### BECQUEREL

    public static final Unit<Radioactivity> BECQUEREL
    The SI derived unit for radioactivity (Bq). The unlocalized name is “becquerel”.

    Related units
    Components: | `SECOND`-1
    Non-SI units: | `CURIE`.

    Since:
      1.4

  - ### CURIE

    public static final Unit<Radioactivity> CURIE
    Unit of measurement defined as 3.7 × 10¹⁰ becquerel The symbol is Ci and the unlocalized name is “curie”.

    Related units
    Components: | `SECOND`-1
    SI radioactivity units: | `BECQUEREL`.

    Since:
      1.4

  - ### UNITY

    public static final Unit<Dimensionless> UNITY
    The base dimensionless unit for scale measurements. The unlocalized name is “unity” and the identifier is EPSG:9201. This is the base of all other scale units: `PERCENT` (%), `PPM` (ppm) and `PIXEL` (px) among others.
    Since:
      0.8

  - ### PERCENT

    public static final Unit<Dimensionless> PERCENT
    Dimensionless unit for percentages (%). The system unit is `UNITY` and the unlocalized name is “percentage”.
    Since:
      0.8
    See Also:
      - `UNITY`
      - `PPM`

  - ### PPM

    public static final Unit<Dimensionless> PPM
    Dimensionless unit for parts per million (ppm). The system unit is `UNITY`, the unlocalized name is “parts per million” and the identifier is EPSG:9202.
    Since:
      0.3
    See Also:
      - `UNITY`
      - `PERCENT`

  - ### DECIBEL

    public static final Unit<Dimensionless> DECIBEL
    Sub-division of logarithm of ratio of the measured quantity to a reference quantity (dB).
    Since:
      1.0

  - ### PSU

    public static final Unit<Salinity> PSU
    Salinity measured using PSS-78. While this is a dimensionless measurement, the `"psu"` symbol is sometimes added to PSS-78 measurement. However, this is officially discouraged.
    Since:
      0.8

  - ### PIXEL

    public static final Unit<Dimensionless> PIXEL
    Dimensionless unit for pixels (px). The unlocalized name is “pixel”. This unity should not be confused with `POINT`, which is approximately equal to 1/72 of inch.
    See Also:
      - `POINT`

- ## Method Details

  - ### isAngular

    public static boolean isAngular(Unit<?> unit)
    Returns `true` if the given unit is a linear unit. Linear units are convertible to `DEGREE`.

    Angular units are dimensionless, which may be a cause of confusion with other dimensionless units like `UNITY` or `PPM`. This method take care of differentiating angular units from other dimensionless units.

    Parameters:
      `unit` - the unit to check (may be `null`).
    Returns:
      `true` if the given unit is non-null and angular.
    See Also:
      - `ensureAngular(Unit)`

  - ### isLinear

    public static boolean isLinear(Unit<?> unit)
    Returns `true` if the given unit is a linear unit. Linear units are convertible to `METRE`.
    Parameters:
      `unit` - the unit to check (may be `null`).
    Returns:
      `true` if the given unit is non-null and linear.
    See Also:
      - `METRE`
      - `ensureLinear(Unit)`

  - ### isPressure

    public static boolean isPressure(Unit<?> unit)
    Returns `true` if the given unit is a pressure unit. Pressure units are convertible to `PASCAL`. Those units are sometimes used instead of linear units for altitude measurements.
    Parameters:
      `unit` - the unit to check (may be `null`).
    Returns:
      `true` if the given unit is non-null and a pressure unit.

  - ### isTemporal

    public static boolean isTemporal(Unit<?> unit)
    Returns `true` if the given unit is a temporal unit. Temporal units are convertible to `SECOND`.
    Parameters:
      `unit` - the unit to check (may be `null`).
    Returns:
      `true` if the given unit is non-null and temporal.
    See Also:
      - `ensureTemporal(Unit)`

  - ### isScale

    public static boolean isScale(Unit<?> unit)
    Returns `true` if the given unit is a dimensionless scale unit. This include `UNITY` and `PPM`.
    Parameters:
      `unit` - the unit to check (may be `null`).
    Returns:
      `true` if the given unit is non-null and a dimensionless scale.
    See Also:
      - `UNITY`
      - `ensureScale(Unit)`

  - ### ensureAngular

    public static Unit<Angle> ensureAngular(Unit<?> unit) throws IllegalArgumentException
    Makes sure that the specified unit is either null or an angular unit. This method is used for argument checks in constructors and setter methods.
    Parameters:
      `unit` - the unit to check, or `null` if none.
    Returns:
      the given `unit` argument, which may be null.
    Throws:
      `IllegalArgumentException` - if `unit` is non-null and not an angular unit.
    See Also:
      - `isAngular(Unit)`

  - ### ensureLinear

    public static Unit<Length> ensureLinear(Unit<?> unit) throws IllegalArgumentException
    Makes sure that the specified unit is either null or a linear unit. This method is used for argument checks in constructors and setter methods.
    Parameters:
      `unit` - the unit to check, or `null` if none.
    Returns:
      the given `unit` argument, which may be null.
    Throws:
      `IllegalArgumentException` - if `unit` is non-null and not a linear unit.
    See Also:
      - `isLinear(Unit)`

  - ### ensureTemporal

    public static Unit<Time> ensureTemporal(Unit<?> unit) throws IllegalArgumentException
    Makes sure that the specified unit is either null or a temporal unit. This method is used for argument checks in constructors and setter methods.
    Parameters:
      `unit` - the unit to check, or `null` if none.
    Returns:
      the given `unit` argument, which may be null.
    Throws:
      `IllegalArgumentException` - if `unit` is non-null and not a temporal unit.
    See Also:
      - `isTemporal(Unit)`

  - ### ensureScale

    public static Unit<Dimensionless> ensureScale(Unit<?> unit) throws IllegalArgumentException
    Makes sure that the specified unit is either null or a scale unit. This method is used for argument checks in constructors and setter methods.
    Parameters:
      `unit` - the unit to check, or `null` if none.
    Returns:
      the given `unit` argument, which may be null.
    Throws:
      `IllegalArgumentException` - if `unit` is non-null and not a scale unit.
    See Also:
      - `isScale(Unit)`

  - ### multiply

    public static <Q extends Quantity<Q>> Unit<Q> multiply(Unit<Q> unit, double numerator, double denominator)
    Multiplies the given unit by the given ratio. For example, multiplying `CENTIMETRE` by 254/100 gives `INCH`. Invoking this method is equivalent to invoking `Unit​.multiply(numerator / denominator)` except that the use of a ration of integer values help Apache SIS to improve accuracy when more than one arithmetic operation are chained.
    Type Parameters:
      `Q` - the quantity measured by the unit.
    Parameters:
      `unit` - the unit to multiply.
      `numerator` - the numerator of the multiplication factor.
      `denominator` - the denominator of the multiplication factor.
    Returns:
      the unit multiplied by the given factor.
    Since:
      0.8

  - ### logarithm

    public static <Q extends Quantity<Q>> Unit<Q> logarithm(Unit<Q> unit)
    Creates an unit for values computed by the logarithm in base 10 of values in the given unit. Conversions from the given unit to the returned unit is done by `Math​.log10(double)`.

    The given unit should be dimensionless. However, this method does not enforce this constraint in order to allow the creation of units such as decibel watt. For example:

        Unit<Power> dBW = Units.logarithm(Units.WATT).divide(10);

    Type Parameters:
      `Q` - the quantity measured by the unit.
    Parameters:
      `unit` - the unit from which to convert.
    Returns:
      an unit which is the logarithm in base 10 of the given unit.
    Since:
      1.5

  - ### toStandardUnit

    public static <Q extends Quantity<Q>> double toStandardUnit(Unit<Q> unit)
    Returns the factor by which to multiply the standard unit in order to get the given unit. The "standard" unit is usually the SI unit on which the given unit is based, as given by `Unit​.getSystemUnit()`.

    If the given unit is `null` or if the conversion to the "standard" unit cannot be expressed by a single multiplication factor, then this method returns `Double​.NaN`.

    #### Example

    If the given unit is `KILOMETRE`, then this method returns 1000 since a measurement in kilometres must be multiplied by 1000 in order to give the equivalent measurement in the "standard" units (here `METRE`).
    Type Parameters:
      `Q` - the quantity measured by the unit.
    Parameters:
      `unit` - the unit for which we want the multiplication factor to standard unit, or `null`.
    Returns:
      the factor by which to multiply a measurement in the given unit in order to get an equivalent measurement in the standard unit, or NaN if the conversion cannot be expressed by a scale factor.

  - ### converter

    public static UnitConverter converter(Number scale, Number offset)
    Creates a linear converter from the given scale and offset.
    Parameters:
      `scale` - the scale factor, or `null` if none (default value of 1).
      `offset` - the offset, or `null` if none (default value of 0).
    Returns:
      a converter for the given scale and offset.
    Since:
      1.0
    See Also:
      - `MathTransforms​.linear(double, double)`

  - ### coefficients

    @OptionalCandidate public static Number[] coefficients(UnitConverter converter)
    Returns the coefficients of the given converter expressed as a polynomial equation. This method returns the first of the following choices that apply:
    - If the given converter is identity, returns an empty array.
    - If the given converter shifts the values without scaling them (for example the conversion from Kelvin to Celsius degrees), returns an array of length 1 containing only the offset.
    - If the given converter scales the values (optionally in addition to shifting them), returns an array of length 2 containing the offset and scale factor, in that order.
    This method returns `null` if it cannot get the polynomial equation coefficients from the given converter.
    Parameters:
      `converter` - the converter from which to get the coefficients of the polynomial equation, or `null`.
    Returns:
      the polynomial equation coefficients (may be any length, including zero), or `null` if the given converter is `null` or if this method cannot get the coefficients.
    Since:
      0.8

  - ### derivative

    public static double derivative(UnitConverter converter, double value)
    Returns the derivative of the given converter at the given value, or `NaN` if this method cannot compute it.
    Parameters:
      `converter` - the converter for which we want the derivative at a given point, or `null`.
      `value` - the point at which to compute the derivative. Ignored (can be `Double​.NaN`) if the conversion is linear.
    Returns:
      the derivative at the given point, or `NaN` if unknown.
    See Also:
      - `AbstractMathTransform​.derivative(DirectPosition)`

  - ### valueOf

    public static Unit<?> valueOf(String uom) throws MeasurementParseException
    Parses the given symbol. Invoking this method is equivalent to invoking `UnitFormat​.parse(CharSequence)` on a shared locale-independent instance. This method is capable to handle some symbols found during WKT parsing or in XML files. The list of symbols supported by this method is implementation-dependent and may change in future SIS versions.

    #### Parsing authority codes

    If the given `uom` arguments is of the form `"EPSG:####"`, `"urn:ogc:def:uom:EPSG:####"` or `"http://www​.opengis​.net/def/uom/EPSG/0/####"` (ignoring case and whitespaces around separators), then `"####"` is parsed as an integer and forwarded to the `valueOfEPSG(int)` method.

    #### Note on netCDF unit symbols

    In netCDF files, values of "unit" attribute are concatenations of an angular unit with an axis direction, as in `"degrees_east"` or `"degrees_north"`. This `valueOf(…)` method ignores those suffixes and unconditionally returns `DEGREE` for all axis directions.
    Parameters:
      `uom` - the symbol to parse, or `null`.
    Returns:
      the parsed symbol, or `null` if `uom` was null.
    Throws:
      `MeasurementParseException` - if the given symbol cannot be parsed.
    See Also:
      - `UnitFormat​.parse(CharSequence)`

  - ### valueOfEPSG

    @OptionalCandidate public static Unit<?> valueOfEPSG(int code)
    Returns a hard-coded unit from an EPSG code. The `code` argument given to this method shall be a code identifying a record in the `"Unit of Measure"` table of the EPSG geodetic dataset. If this method does not recognize the given code, then it returns `null`.

    The list of units recognized by this method is not exhaustive. This method recognizes the base units declared in the `TARGET_UOM_CODE` column of the above-cited table, and some frequently-used units. The list of recognized units may be updated in any future version of SIS.

    The `EPSGDataAccess` class uses this method for fetching the base units, and derives automatically other units from the information found in the EPSG database. This method is also used by other classes not directly related to the EPSG database, like `CommonAuthorityFactory` which uses EPSG codes for identifying units.

    The currently recognized values are:

    EPSG codes for units
    Angular units
    Code | Unit
    9101 | radian
    9102 | decimal degree
    9103 | minute
    9104 | second
    9105 | grad
    9107 | degree-minute-second
    9108 | degree-minute-second
    9109 | microradian
    9110 | sexagesimal degree-minute-second
    9111 | sexagesimal degree-minute
    9122 | decimal degree
    Linear units
    Code | Unit
    1025 | millimetre
    1033 | centimetre
    9001 | metre
    9002 | foot
    9003 | US survey foot
    9030 | nautical mile
    9036 | kilometre
    9093 | statute mile
    Time units
    Code | Unit
    1029 | year
    1040 | second
    Scale units
    Code | Unit
    9201 | unity
    9202 | parts per million
    9203 | unity

    #### Axis units special case

    EPSG uses code 9102 (degree) for prime meridian and coordinate operation parameters, and code 9122 (degree (supplier to define representation)) for coordinate system axes. But Apache SIS considers those two codes as synonymous.
    Parameters:
      `code` - the EPSG code for a unit of measurement.
    Returns:
      the unit, or `null` if the code is unrecognized.
    See Also:
      - `GeodeticAuthorityFactory​.createUnit(String)`

  - ### getEpsgCode

    @OptionalCandidate public static Integer getEpsgCode(Unit<?> unit, boolean inAxis)
    Returns the EPSG code of the given units, or `null` if unknown. This method is the converse of `valueOfEPSG(int)`.

    The same unit may be represented by different EPSG codes depending on the context:

    - EPSG:9102 – degree – is used for prime meridian and coordinate operation parameters.
    - EPSG:9122 – degree (supplier to define representation) – is used for coordinate system axes.
    When such choice exists, the code to return is determined by the `inAxis` argument, which specifies whether the code will be used for axis definition or in other context.
    Parameters:
      `unit` - the unit for which to get the EPSG code.
      `inAxis` - `true` for a unit used in Coordinate System Axis definition.
    Returns:
      the EPSG code of the given units, or `null` if unknown.
    Since:
      0.4
    See Also:
      - `CoordinateSystems​.getEpsgCode(Unit, AxisDirection...)`