Systèmes de références spatiales

Pour donner une position sur la Terre, on peut utiliser des noms tels que celui d’une ville ou une adresse postale — on parle alors de références spatiales par identifiants — ou on peut donner des valeurs numériques valides dans un système de coordonnées donné telles que les latitudes et longitudes — on parle alors de références spatiales par coordonnées. Chaque système de référence implique des approximations telles que le choix de la forme géométrique (géoïde, ellipsoïde, etc.) utilisée comme approximation de la forme de la Terre, le choix des propriétés géométriques (angles, distances, etc.) à préserver lors de la représentation d’une carte sur une surface plane, et les pertes de précision lorsque l’on doit transformer des coordonnées vers des systèmes utilisant un référentiel différent.

Une fausse croyance très répandue dit que l’on peut éviter cette complexité en choisissant un seul système de référence des coordonnées (typiquement WGS84) comme système universel pour toutes les données. Les chapitres suivants expliqueront pourquoi la réalité n’est pas si simple. Qu’un système universel réponde ou non aux besoins d’une application dépend de la précision désirée, ainsi que du type de calculs que l’on souhaite effectuer avec les coordonnées. Sauf indication contraire, Apache SIS tente d’assurer une précision de 1 centimètre pour les coordonnées sur la Terre. Mais la maîtrise de cette précision nécessite le respect de certaines conditions:

Bibliothèques de type « early binding » versus « late binding »

Le caractère universel du système WGS84 rend tentante l’idée de l’utiliser comme système pivot, afin de simplifier l’implémentation d’une bibliothèque de transformation de coordonnées. La transformation d’une coordonnée d’un référentiel A vers un référentiel B pourrait se faire en transformant d’abord de A vers WGS84, puis de WGS84 vers B. Il suffirait ainsi de stocker dans chaque objet GeodeticDatum les informations nécessaires à la transformation vers WGS84. Cette approche était encouragée dans la version 1 du format WKT, qui définissait un élément TOWGS84[…] remplissant ce rôle. Cette approche est désignée par EPSG sous le nom de « early binding » car elle associe des informations sur la transformations de coordonnées très tôt dans la définition des objets géodésiques, souvent directement au moment de la construction d’un object GeographicCRS. Bien que EPSG reconnaisse que cette approche soit couramment employée, elle n’est pas recommandée pour plusieurs raisons:

Exemple: la base de données géodésiques EPSG définie une cinquantaine de transformations de NAD27 vers NAD83. Dans une approche de type « early binding », le même système de référence « NAD27 » représenté dans le format WKT 1 aurait besoin d’être défini avec un élément TOWGS84[-8, 160, 176] pour des coordonnées aux États-Unis, ou avec un élément TOWGS84[-10, 158, 187] pour coordonnées aux Canada. Différents paramètres existent aussi pour d’autres régions telles que Cuba. Il n’est donc pas possible de représenter une telle diversité en associant un seul élément TOWGS84[…] à un système de référence des coordonnées. Même en restreignant l’usage d’un référenciel au domaine de validité de son élément TOWGS84[…], ces transformations resteraient approximatives avec une précision de 10 mètres dans le cas des États-Unis. Des transformations plus précises existent sous la forme des grilles de changements de référentiel NADCON, mais ces grilles sont pour des transformations de NAD27 vers NAD83 (qui se déplacent ensemble sur la même plaque continentale) et non vers WGS84 (qui se déplace indépendamment). Cette différence était souvent ignorée lorsque l’on considérait que NAD83 et WGS84 étaient pratiquement équivalents, mais cette supposition est aujourd’hui à prendre avec plus de précautions.

EPSG recommande plutôt d’utiliser une approche dite « late binding », selon laquelle les méthodes et paramètres nécessaires aux transformations de coordonnées sont définis pour des paires de référentiels « A vers B » (éventuellement complétées par leurs domaines de validité) plutôt qu’associés à des référentiels pris isolément. Apache SIS est une implémentation de type « late binding », bien qu’une réminiscence de l’approche « early binding » existe toujours sous la forme de la propriété DefaultGeodeticDatum.getBursaWolfParameters(). SIS n’utilise cette dernière que comme solution de dernier recours s’il ne peut pas appliquer l’approche « late binding » avec les systèmes de références donnés.

Le module sis-referencing de Apache SIS fournit un ensemble de classes implémentant les différentes spécialisations de l’interface ReferenceSystem ainsi que leurs composantes. Ces implémentations permettent de stocker une description des systèmes de références spatiales ainsi que leurs méta-données telles que la zone de validité. Toutefois ces objets n’effectuent aucune opération sur les coordonnées. Les conversions ainsi que les transformations de coordonnées sont le travail d’une autre famille de classes, dont la racine est l’interface CoordinateOperation. Ces classes seront discutées dans une autre section.