Represents an unit of a physical measure. The org.geotools.units package is a temporary placeholder for the upcomming javax.units package.

 

THIS TEMPORARY PACKAGE WILL BE FULLY DELETED WHEN THE REAL JSR-108: Units specification WILL BE PUBLICLY AVAILABLE. THE REAL JSR-108 SPECIFICATION WILL BE INCOMPATIBLE WITH THIS TEMPORARY IMPLEMENTATION.

 

 

 


 

Classes représentant des unités. Les classes de ce paquet servent à satisfaire une règle d'or en science, qui veut que l'on écrive toujours les unités d'une valeur. Pour un programme informatique, il n'est pas satisfaisant de représenter des unités par une simple chaîne de caractères (par exemple "°C"), car alors l'ordinateur ne saurait pas comment faire les conversions entre différentes unités (par exemple de "°F" vers "°C"). La classe {@link org.geotools.units.Unit} est un moyen plus efficace de représenter une unité. Un objet {@link org.geotools.units.Unit} est capable par exemple de convertir une valeur à partir d'une autre unité.

On peut obtenir un objet {@link org.geotools.units.Unit} à partir de son symbole. Par exemple le code {@link org.geotools.units.Unit#get(String) Unit.get}("°C") retournera un objet {@link org.geotools.units.Unit} qui représente les degrés celcius. Le tableau ci-dessous énumère les unités reconnues par défaut. La plupart des définitions ci-dessous proviennent de la documentation officielle du bureau international des poids et mesures. Les symboles apparaissant dans ce tableau sont les symboles officiels pour ces unités, sauf ceux qui sont marqués d'un astérix (*).



Unités de base
m Unité de longueur (metre). Le mètre est la longueur du trajet parcouru dans le vide par la lumière pendant une durée de 1/299 792 458 de seconde.
kg Unité de masse (klogramme). Le kilogramme est l'unité de masse; il est égal à la masse du prototype international du kilogramme.
s Unité de temps (seconde). La seconde est la durée de 9 192 631 770 périodes de la radiation correspondant à la transition entre les deux niveaux hyperfins de l'état fonda-mental de l'atome de césium 133. Cette définition se réfère à un atome de césium au repos, à une température de 0 K.
A Unité de courant électrique (ampère). L'ampère est l'intensité d'un courant constant qui, maintenu dans deux conducteurs parallèles, rectilignes, de longueur infinie, de section circulaire négligeable et placés à une distance de 1 mètre l'un de l'autre dans le vide, produirait entre ces conducteurs une force égale à 2x10-7 newton par mètre de longueur.
K Unité de température thermodynamique (kelvin). Le kelvin, unité de température thermodynamique, est la fraction 1/273,16 de la température thermodynamique du point triple de l'eau. La valeur numérique d'une température Celsius t exprimée en degrés Celsius est donnée par la relation: t/°C = T/K - 273,15.
mol Unité de quantité de matière (mole). La mole est la quantité de matière d'un système contenant autant d'entités élémentaires qu'il y a d'atomes dans 0,012 kilogramme de carbone 12; son symbole est « mol ». Lorsqu'on emploie la mole, les entités élémentaires doivent être spécifiées et peuvent être des atomes, des molécules, des ions, des électrons, d'autres particules ou des groupements spécifiés de telles particules.
cd Unité d'intensité lumineuse (candela). La candela est l'intensité lumineuse, dans une direction donnée, d'une source qui émet un rayonnement monochromatique de fréquence 540x1012 Hertz et dont l'intensité énergétique dans cette direction est 1/683 watt par stéradian.
rad Unité d'angle plan (radian). The radian is the plane angle between two radii of a circle that cut off on the circumference an arc equal in length to the radius.
sr Unité d'angle solide (stéradian).
PSS78* Unité de la salinité de l'eau de mer. Pour être strict, les mesures de salinités n'ont aucune unité puisqu'elles sont calculées à partir d'un rapport de conductivité. Mais il est toutefois pratique de considérer la salinité comme si elle avait une unité, afin de rendre plus facile certaines vérifications et conversions.


Unités dérivées
Hz Unité de fréquence (Hertz = 1/s).
N Unité de force (Newton). L'unité de force [dans le système MKS (mètre, kilogramme, seconde)] est la force qui communique à une masse de 1 kilogramme l'accélération de 1 mètre par seconde, par seconde.
Pa Unité de pression (Pascal = N/m²).
J Unité d'énergie ou de travail (Joule = N*m). Le joule est le travail effectué lorsque le point d'application de 1 unité MKS de force [newton] se déplace d'une distance égale à 1 mètre dans la direction de la force.
W Unité de puissance (Watt = J/s). Le watt est la puissance qui donne lieu à une production d'énergie égale à 1 joule par seconde.
C Unité de quantité d'électricité (C). Le coulomb est la quantité d'électricité transportée en 1 seconde par un courant de 1 ampère.
V Unité de différence de potentiel et de force électromotrice (Volt = W/A). Le volt est la différence de potentiel électrique qui existe entre deux points d'un fil conducteur transportant un courant constant de 1 ampère, lorsque la puissance dissipée entre ces points est égale à 1 watt.
F Unité de capacité électrique (Farad = C/V). Le farad est la capacité d'un condensateur électrique entre les armatures duquel apparaît une différence de potentiel électrique de 1 volt, lorsqu'il est chargé d'une quantité d'électricité égale à 1 coulomb.
\u03A9 Unité de résistance électrique (Ohm = V/A). L'ohm est la résistance électrique qui existe entre deux points d'un conducteur lorsqu'une différence de potentiel constante de 1 volt, appliquée entre ces deux points, produit, dans ce conducteur, un courant de 1 ampère, ce conducteur n'étant le siège d'aucune force électromotrice.
S Unité de conductance électrique (Siemmens = A/V).
Wb Unité de flux magnétique (Weber = V*s). Le weber est le flux magnétique qui, traversant un circuit d'une seule spire, y produirait une force électromotrice de 1 volt, si on l'amenait à zéro en 1 seconde par décroissance uniforme.
T Unité d'induction magnétique (Tesla = Wb/m²).
H Unité d'inductance électrique (H = Wb/A). Le henry est l'inductance électrique d'un circuit fermé dans lequel une force électromotrice de 1 volt est produite lorsque le courant électrique qui parcourt le circuit varie uniformément à raison de 1 ampère par seconde.
°C Unité de température (Celcius). Notez que cette unité ne peut pas être multipliée ou divisée par d'autres unités. Par exemple il ne sera pas possible d'exprimer un gradient de température en °C/m. Il faudra au lieu de cela utiliser les degrés Kelvin (K/m).
lm Unité de flux lumineux (Lumen = cd*sr).
lx Unité d'éclairement lumineux (Lux = lm/m²).
Bq Unité d'activité d'un radionucléide (Becquerel = 1/s)
Gy Unité des dose absorbée, énergie massique (communiquée), kerma (Gray = J/kg).
Sv Unité des équivalent de dose, équivalent de dose ambiant, équivalent de dose directionnel, équivalent de dose individuel, dose équivalente dans un organe (Sievert = J/kg).


Unités Non-SI
min Minute.
h Heure.
d Jour.
° Degré d'angle.
' Minute d'angle.
" Seconde d'angle.
l ou L Litre.
t Tonne métrique.
Np Unité logarithmique. Le neper est utilisé pour exprimer la valeur de grandeurs logarithmiques telles que le niveau de champ, le niveau de puissance, le niveau de pression acoustique ou le décrément logarithmique. Les logarithmes naturels sont utilisés pour obtenir les valeurs numériques des grandeurs exprimées en nepers. Note: cette unité n'est pas encore implémentée dans la version actuelle.
Bel Unité logarithmique. Le bel est utilisé pour exprimer la valeur de grandeurs logarithmiques telles que le niveau de champ, le niveau de puissance, le niveau de pression acoustique ou l'atténuation. Les logarithmes de base dix sont utilisés pour obtenir les valeurs numériques de grandeurs exprimées en bels. Le sous-multiple décibel, dB, est d'usage courant. Note: cette unité n'est pas encore implémentée dans la version actuelle.
eV L'électronvolt est l'énergie cinétique acquise par un électron après traversée d'une différence de potentiel de 1V dans le vide.
u L'unité de masse atomique unifiée est égale à 1/12 de la masse d'un atome du nucléide 12 C, non lié, au repos, et dans son état fondamental. Dans le domaine de la biochimie, l'unité de masse atomique unifiée est aussi appelée dalton, symbole Da.
ua L'unité astronomique est une unité de longueur; sa valeur est à peu près égale à la distance moyenne entre la Terre et le soleil. Elle est telle que, lorsqu'elle est utilisée pour décrire les mouvements des corps dans le système solaire, la constante gravitationnelle héliocentrique est de (0,017 202 09895)2ua3·d-2.
inch* Unité de longueur (pouce).
foot* Unité de longueur (pied).
yard* Unité de longueur (yard).
fathom* Unité de longueur (brasse anglaise).
brasse* Unité de longueur (brasse française).
mile* Unité de longueur (mille).
nmile* Unité de longueur (mille marin). Le mille marin est une unité spéciale employée en navigation maritime et aérienne pour exprimer la distance. Cette valeur fut adoptée par convention par la Première Conférence hydrographique internationale extraordinaire, Monaco, 1929, sous le nom de «mille marin international». Il n'existe pas de symbole convenu au niveau international. À l'origine, cette unité avait été choisie parce qu'un mille marin à la surface de la Terre est intercepté approximativement par une minute d'angle au centre de la Terre.
knot* Noeud (vitesse correspondant à un mille marin par heure).
are Les unités are et hectare et leurs symboles furent adoptés parle Comité international en 1879 (PV, 1879, 41) et sont utilisés pour exprimer des superficies agraires.
ha Les unités are et hectare et leurs symboles furent adoptés parle Comité international en 1879 (PV, 1879, 41) et sont utilisés pour exprimer des superficies agraires.
bar Unité de pression (bar). La pression en milieu océanographique augmente d'environ 1 dbar par mètre de profondeur.
Å Unité de longueur (ångström).
barn Le barn est une unité spéciale employée en physique nucléaire pour exprimer les sections efficaces.
erg Unité d'énergie (erg).
dyn Unité de force (dyne).
P Poise.
St Stokes.
G Gauss.
Oe oersted.
Mx maxwell.
sb stilb.
ph phot.
gal Le gal est une unité spéciale employée en géodésie et en géophysique pour exprimer l'accélération due à la pesanteur.
Ci Le curie est une unité spéciale employée en physique nucléaire pour exprimer l'activité des radionucléides.
R Le röntgen est une unité spéciale employée pour exprimer l'exposition aux rayonnements x ou gamma.
rd Le rad est une unité spéciale employée pour exprimer la dose absorbée de rayonnements ionisants.
rem Le rem est une unité spéciale employée en radioprotection pour exprimer l'équivalent de dose.
Jy jansky.
Torr Unité de pression (torr).
atm Unité de pression (atmosphère normale).
pounds* Unité de poids (livre).
onze* Unité de poids (onze).
°F* Unité de température (fahrenheit).
    * Ce symbole n'est pas standard.

La plupart des unités SI peuvent aussi être précédes d'un préfix. Par exemple si le symbole "Pa" désigne les pascals, alors le symbole "kPa" sera reconnu comme désignant les kilopascals. Le tableau ci-dessous énumère les préfix standards du système SI.

Facteur Préfix Symbole   Facteur Préfix Symbole
10-1 déci d  101 deca da
10-2 centic  102 hectoh
10-3 millim  103 kilo k
10-6 microµ 106 mega M
10-9 nano n  109 giga G
10-12pico p  1012tera T
10-15femtof  1015peta P
10-18atto a  1018exa E
10-21zeptoz  1021zettaZ
10-24yoctoy  1024yottaY

Il est possible d'utiliser des symboles qui multiplient et divisent des unités. Par exemple des symboles tels que "g/cm" sont valides et seront reconnus. Toutes les unités sont construites à partir d'un ensemble restreint d'unités de base:

Ampère Pour les mesures de courants électriques
Candela Pour les mesures d'intensités lumineuses
Kelvin Pour les mesures de températures
Kilogramme Pour les mesures de masses
mètre Pour les mesures de longueurs
seconde Pour les mesures de temps

D'autres unités qui ne sont pas réellement des unités de bases (par exemple les moles, radians ou la salinité) peuvent être définies comme telles par commodité.

Les constructeurs des classes du paquet org.geotools.units n'étant pas publiques, on ne peut pas créer directement de nouvelles unités. La création d'une nouvelle unité doit se faire de façon indirecte en combinant les opérations {@link org.geotools.units.Unit#scale} et {@link org.geotools.units.Unit#shift} sur une ancienne unité. Par exemple on peut créer des unités de miles nautiques avec:

{@link org.geotools.units.Unit Unit} mile=METRE.{@link org.geotools.units.Unit#scale scale}(1853);

Ce code signifie qu'un mile nautique correspond à 1.853 kilomètres. Comme autre exemple, si degC représente les degrés Celsius, alors on peut créer des unités pour les degrés Fahrenheit à l'aide du code suivant:

{@link org.geotools.units.Unit Unit} degF = degC.{@link org.geotools.units.Unit#scale scale}(5./9).{@link org.geotools.units.Unit#shift shift}(-32);

Ce code signifie que pour convertir des degrés Celsius en degrés Fahrenheit, il faudra d'abord diviser par 5/9 les degrés Celsius et ensuite ajouter 32. Une autre façon d'interpréter ce code est de le lire en sens inverse: à partir des degrés Fahrenheit, on retranche 32 et on multiplie par 5/9 pour obtenir des degrés Celsius.

Il est aussi possible d'utiliser les méthodes de {@link org.geotools.units.Unit} pour transformer des unités inconnus en unités d'une autre dimension. Par exemple supposons que l'on dispose d'unités de temps pour les mesures de la période d'un signal, et que l'on veut les transformer en unités de fréquences et de vitesses. On pourrait écrire:

Unit timeUnit      = Unit.get("min"); // Minutes, juste en guise d'exemple
Unit frequencyUnit = timeUnit.pow(-1);
Unit speedUnit     = get("km").multiply(frequencyUnit);

Ce code fonctionnera même si les unités de timeUnit ne sont pas connues à l'avance.

Toutes les classes de ce paquet sont immutables et sécuritaires dans un environnement multi-threads, ce qui implique que l'on peut sans crainte partager plusieurs références vers une même unité. Toutes les méthodes de ce paquet sont définies de façon à partager autant que possibles les mêmes références, ce qui réduit la consommation de mémoire.

 

Crédits

Le paquet org.geotools.units est fortement inspiré de la bibliothèque UD units library, développée par Steve Emmerson de Unidata. Cette dernière est utilisée entre autre par VisAD, une bibliothèque Java du domaine publique. Dans le cadre du projet org.geotools.units toutefois, le code source a été entièrement réécrit afin de mieux l'adapter à nos besoins. Mais l'esprit de base du paquet fut conservé. Longtemps avant son introduction dans org.geotools.units, il a fait ses preuves auprès de d'autres programmeurs. La license de Unidata contenait la mention suivante:

Access and use of this software shall impose the following obligations and understandings on the user. The user is granted the right, without any fee or cost, to use, copy, modify, alter, enhance and distribute this software, and any derivative works thereof, and its supporting documentation for any purpose whatsoever, provided that this entire notice appears in all copies of the software, derivative works and supporting documentation. Further, UCAR requests that the user credit UCAR/Unidata in any publications that result from the use of this software or in any product that includes this software. The names UCAR and/or Unidata, however, may not be used in any advertising or publicity to endorse or promote any products or commercial entity unless specific written permission is obtained from UCAR/Unidata. The user also understands that UCAR/Unidata is not obligated to provide the user with any support, consulting, training or assistance of any kind with regard to the use, operation and performance of this software nor to provide the user with any updates, revisions, new versions or "bug fixes."

THIS SOFTWARE IS PROVIDED BY UCAR/UNIDATA "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL UCAR/UNIDATA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.