Géolocalisation

Introduction :

Pour se situer et s’orienter sur Terre, les humains ont d’abord utilisé des repères de leur environnement, puis des cartes de plus en plus précises ont été établies pour représenter la surface du globe et ses points remarquables. Les étoiles servaient également de points de repère pour s’orienter. Une nouvelle étape majeure a été franchie dans les années 1960 avec la mise en orbite d’un ensemble de satellites artificiels permettant de se situer partout dans le monde avec une grande précision. Ces systèmes, communément appelés GPS, se sont par la suite perfectionnés et multipliés.

Nous présenterons dans un premier temps le principe de la géolocalisation au moyen de réseaux satellitaires et les principales constellations proposant ce type de service. Dans un deuxième temps nous apprendrons à analyser des messages de géolocalisation. Nous nous intéresserons enfin aux enjeux techniques et sociétaux liés à la géolocalisation, en abordant également les autres moyens qui permettent de nous géolocaliser, parfois à notre insu.

Géolocalisation

Nous allons dans un premier temps présenter le principe général de fonctionnement des systèmes de géolocalisation par satellites, puis dans un second temps nous passerons en revue les principales constellations qui proposent ce type de service.

bannière definition

Définition

Géolocalisation :

Technique employée pour déterminer la position d'un objet ou d'un individu sur la surface de la Terre.

Cette position est usuellement associée à des coordonnées exprimées sous forme de degrés de longitude et de latitude, mais elle peut aussi être transposée sous forme d’adresse physique telle qu’une adresse postale.

bannière rappel

Rappel

On peut utiliser des degrés décimaux $(1\degree=60^\prime)$ ou des degrés sexagésimaux $(1\degree =3600^{\prime\prime})$.

bannière exemple

Exemple

Degrés $48.225833$
Degrés, minutes $48\degree 13,54998^\prime$
Degrés, minutes, secondes $48\degree 13^\prime 32.9988^{\prime \prime}$

Principe de la géolocalisation par réseaux de satellites

La géolocalisation s’appuie sur un ou plusieurs réseaux de satellites artificiels spécialisés. Ils sont suffisamment nombreux et répartis en orbites autour de la Terre pour que plusieurs d’entre eux soient simultanément visibles en tout point de la surface du globe.

Ces satellites transmettent en continu leur position et l’heure exacte à laquelle leur message est émis. Une horloge atomique embarquée dans chaque satellite garantit une grande précision de l’heure, et les satellites sont synchronisés entre eux.

Ces signaux sont captés par un récepteur spécialisé, communément appelé « récepteur GPS », et dont le nom est souvent raccourci au seul sigle « GPS ».

bannière definition

Définition

GPS :

Le sigle GPS signifie Global Positioning System, soit « système de positionnement global ».

Comment fonctionne la géolocalisation récepteur gps réseau de satellites horloge atomique signal sciences numériques et technologie seconde

Les récepteurs GPS

Un récepteur GPS collecte les signaux émis par les différents satellites dont il peut capter le signal.

  • Le récepteur traite ensuite les signaux pour déterminer et produire des données de géolocalisation.
bannière definition

Définition

Récepteur GPS :

Ces appareils spécialisés sont conçus pour recevoir et analyser les signaux transmis par les réseaux de satellites afin de déterminer une géolocalisation.

Il existe différents types de récepteurs GPS. Certains sont de simples récepteurs qui se bornent à produire des données de géolocalisation transmises ensuite à d’autres appareils. D’autres récepteurs GPS intègrent un écran et peuvent positionner l’utilisateur sur une carte numérique, ou être exploités en lien avec d’autres appareils comme un système de pilotage automatique dans le monde maritime ou de calcul d’itinéraire routier.
D’autres appareils électroniques beaucoup plus courants intègrent un récepteur GPS : c’est notamment le cas de la plupart des smartphones récents.

Le traitement des signaux reçus pas les récepteurs GPS

En se basant sur les décalages temporels de réception des signaux par rapport à leur horaire d’émission, le récepteur peut donc estimer sa distance avec chaque satellite, lequel a aussi communiqué sa propre position au moment où il a émis son signal.

Le traitement des signaux satellites par un récepteur GPS géolocalisation décalage temporel sciences numériques et technologie seconde

bannière astuce

Astuce

La vitesse de transmission des ondes radio étant constante, le délai de réception du signal est donc proportionnel à la distance qui sépare le récepteur de chaque satellite émetteur.

Il est ainsi possible de déterminer une position géographique du récepteur en croisant les données issues d’au moins trois satellites, et idéalement de quatre pour une meilleure précision. Des techniques de correction et de filtrage permettent de compenser les nombreux paramètres qui peuvent influer sur la transmission et la réception des signaux.

Le niveau de précision est variable d’une constellation de satellites à l’autre et dépend du type d’utilisation, pour des raisons qui peuvent être techniques, commerciales ou encore stratégiques, notamment pour des usages militaires. Cette précision est au plus de l’ordre de quelques mètres, et dans certains cas inférieure au mètre.

Les réseaux de satellites

On comprend qu’un système de géolocalisation nécessite un nombre important de satellites pour pouvoir couvrir la surface du globe avec une qualité suffisante et un minimum de redondance pour pouvoir pallier d’éventuels dysfonctionnements.

Les deux principales constellations de satellites de géolocalisation sont l’américaine Navstar GPS et l’européenne Galileo. Nous mentionnerons également deux autres constellations d’envergure globale ainsi que des réseaux à vocation plus régionale.

Le réseau américain Navstar GPS

Les États-Unis sont à l’origine du tout premier réseau de satellites de géolocalisation. Initialement appelé Navstar GPS, ce système géré par les forces armées américaines a rapidement été désigné par le seul sigle « GPS ».

Son déploiement a commencé à la fin des années 1970 et s’est poursuivi jusqu’au début des années 1990, aboutissant à une constellation de 24 satellites, suffisante pour proposer une couverture globale. Des satellites supplémentaires ont ensuite été lancés régulièrement pour pallier des défaillances ou remplacer des satellites plus anciens.

  • Plus de 70 satellites ont été lancés depuis le début du programme et la constellation GPS américaine fonctionne actuellement avec une trentaine de satellites.

Le réseau européen Galileo

Désireuse de disposer d’un système de géopositionnement global indépendant, l’Europe a initié son propre programme appelé Galileo dans les années 2000. Son déploiement s’est poursuivi tout au long de la décennie 2010.

  • Galileo est actuellement composé d’une constellation de 26 satellites proposant une couverture globale pour des usages civils et commerciaux.

De futurs lancements sont déjà prévus dans les années à venir pour remplacer les satellites les plus anciens de la constellation Galileo.

Autres réseaux globaux et régionaux

Les grandes puissances sont conscientes de l’importance stratégique d’un réseau indépendant de satellites de géolocalisation qu’elles peuvent contrôler et dont elles peuvent le cas échéant se réserver l’usage en cas de conflit.

Lancée à l’époque de l’Union soviétique dans les années 1980 et 1990, la constellation Glonass est aujourd’hui contrôlée par la Russie. Elle est composée de 26 satellites.

La Chine a également lancé son propre système de géolocalisation par satellite appelé BeiDou dans les années 2000. Ce système assurait initialement une couverture régionale sur la Chine et ses environs, mais le programme dont le déploiement est presque achevé vise une couverture globale avec 35 satellites.

D’autres puissances exploitent des réseaux satellitaires dont la vocation et la couverture sont uniquement régionales : l’Inde dispose du réseau Navic et le Japon du réseau QZSS.

Les signaux émis par ces différentes constellations de satellites sont captés par des récepteurs GPS. Nous allons maintenant apprendre à analyser des messages normalisés de géolocalisation produits par les récepteurs GPS.

Analyse de données de géolocalisation

La structure des messages de géolocalisation obéit à une norme issue du monde maritime américain : la norme NMEA 0183.

La norme NMEA 0183

La norme NMEA 0183 définit un ensemble de caractéristiques techniques pour le traitement et la transmission de données par les équipements électroniques marins. Cette norme couvre les récepteurs GPS mais aussi de nombreux équipements nautiques : sonars, anémomètres, radars, capteurs moteurs, pilotes automatiques, radiotéléphones, balises, etc.

Les messages émis par ces appareils obéissent au protocole de transmission et aux formats de messages définis par la norme NMEA 0183. Cette norme précise à la fois comment les données sont transmises et le format que doivent revêtir les messages appelés trames.

La transmission des données s’appuie sur une transmission série conforme à la norme RS-232, avec une vitesse de transmission de $4800$ bauds, $8$ bits de données (dont un bit d’arrêt), pas de bit de parité, ni de contrôle de flux.

C’est un mode de transmission assez ancien et lent selon les critères modernes, mais largement répandu et suffisant pour transmettre des messages courts tels que ceux qui indiquent le géopositionnement.

Structure des trames

Les récepteurs GPS analysent les signaux transmis par les constellations de satellites pour déterminer leur position. Une fois celle-ci déterminée, l’appareil forme des trames à destination de l'équipement auquel il est couplé et dont la structure est précisément définie par la norme NMEA 0183.

Il existe plus d’une trentaine de types de trames pour les seuls GPS. Ces trames forment des phrases avec des syntaxes spécifiques afin de transmettre différents types d’informations selon les besoins : position géographique, mais aussi, le cas échéant, vitesse et direction de déplacement, entre autres.

bannière exemple

Exemple

Voici une trame générée par un récepteur GPS.

$GPGGA,171005,4885.0858,N,230.7242,E,1,04,2.6,100.00,M,-37,M, ,0000*40

La nature et le nombre de données peuvent varier d’un type de trame à l’autre, mais toutes les trames respectent une structure commune.

Ainsi toutes les trames sont :

  • données en caractères ASCII imprimables ;
  • balisées par un caractère matérialisant le début et la fin de trame ;
  • séparées intérieurement par des virgules pour délimiter chaque donnée individuelle ;
  • d’une longueur maximale de 82 caractères.

Certains caractères ASCII sont réservés pour la structuration des messages, et notamment :

  • le $ et le ! pour le début de trames ;
  • le signe , (virgule) pour délimiter les données individuelles composant une trame ;
  • le * pour délimiter le début d’une somme de contrôle (optionnelle) ;
  • les caractères non imprimables <CR> (retour en début de ligne) et <LF> (nouvelle ligne) terminent la trame.

$GPGGA , 171005 , 4885.0858 , N , 230.7242 , E , 1 , 04 , 2.6 , 100.00 , M , -37 , M , , 0000*40

Les cinq caractères suivant le signe de début de trame définissent le type d’émetteur.

  • Le type de satellite émetteur, codé sur deux caractères, peut être BD pour un satellite BeiDou ou GApour un satellite Galileo, dans l’exemple il s’agit de GP pour un satellite GPS.
  • Le type de message est codé sur trois caractères (ex : GGA, GLL, GSA, RMC, VTG).

Les données étant séparées par des virgules, en cas de données manquantes, aucun caractère n’est inséré mais le délimiteur l’est.

  • Il est donc possible que plusieurs délimiteurs se suivent sans données entre eux.

La somme de contrôle, si elle est présente, est située à la fin de la trame, elle permet de s’assurer que la trame est correcte. Elle est matérialisée par un astérisque * suivi par un nombre hexadécimal sur deux caractères qui correspond à un « ou » exclusif (XOR) appliqué à l’ensemble des valeurs binaires des caractères compris entre le signe $ et le signe *. Cette somme de contrôle est optionnelle pour la plupart des trames, mais obligatoire pour certaines d’entre elles.

Décodage de trames

Comme indiqué précédemment, la nature et le nombre de données varie d’un type de message à l’autre, et il en existe une trentaine pour les seules trames de géolocalisation.

Pour illustrer leur structure, nous allons apprendre à décoder un type de message très courant : les messages de type GGA, qui fournissent la position courante du récepteur.

bannière exemple

Exemple

Considérons la trame suivante : $GPGGA,114507,4851.0516,N,218.435,E,1,04,2.6,100.00,M, , , ,00000*25

Elle se décompose de la manière suivante :

GPGGA Type émetteur GPS, type message GGA
114507 heure UTC de génération de la trame (17 h 1 0m 05 s)
4851.0516 valeur angulaire de la latitude (au format ddmm.mmmm)
N orientation de la latitude (N pour Nord, S pour Sud)
218.435 valeur angulaire de la longitude (au format ddmm.mmmm)
E orientation de la longitude (W pour Ouest, E pour Est)
1 mode d’acquisition de la position (0 invalide, 1 GPS, 2 GPS différentiel)
4 nombre de satellites visibles
2.6 précision horizontale de la position
100.00 altitude de la position
M unité de mesure d’altitude
-33.9 correction de la hauteur
M unité de mesure de la correction
, , ,0000 matérialisation des données complémentaires non présentes dans cette trame par les virgules qui se suivent et les valeurs à zéro
* délimiteur annonçant une somme de contrôle
25 somme de contrôle de la trame au format hexadécimal

C’est la norme NMEA 0183 qui définit pour chaque type de trame quelle donnée figure à quel emplacement dans la phrase formée par la séquence d’éléments.

  • En nous appuyant sur les spécifications de la norme, nous pouvons concevoir un code en langage Python capable de décoder les trames de ce type pour en extraire les information de géolocalisation.

Reprenons la trame utilisée en exemple ci-dessus. Nous conservons uniquement la partie utile de celle-ci, comprise en les signes $ et *.

trame = ‘GPGGA,114507,4851.0516,N,218.435,E,1,04,2.6,100.00,M<sub>,,00000’

  • Les données individuelles composant la phrase sont séparées par des virgules. Nous indiquons ce délimiteur comme critère de séparation pour la création d’une liste d’éléments avec la méthode split() appliquée à la chaîne de caractères trame.

elements = trame.split(‘,’)
print(elements)
# affiche [‘GPGGA’, ‘114507’, ‘4851.0516’, ‘N’, ‘218.435’, ‘E’, ‘1’, ‘04’, ‘2.6’, ‘100.00’, ‘M’, ‘‘, ‘‘, ‘‘, ‘00000’]

  • Commençons par évaluer la longueur de la liste.

print(len(elements))
# affiche 15

  • Notre liste comporte 15 éléments (dont certains sont une chaîne de caractères vide).
bannière astuce

Astuce

En Python les données de type liste sont accessibles individuellement avec la notation entre crochets pour désigner le numéro de l’élément dans la liste, la numérotation commençant à zéro.

  • Le type de trame est le premier élément. Il correspond à l’indice 0 de la liste.

print(elements[0])
# affiche GPGGA

  • Nous pouvons aussi affecter des éléments individuels à des variables pour rendre leur identification plus explicite.

heure = elements[1]
print(heure)
# affiche 114507

  • Les degrés de latitude et de longitude aux indices 2 et 4 de la liste sont de type chaînes de caractères. Nous pouvons les convertir en valeurs numériques réelles afin de pouvoir le cas échéant effectuer des calculs. Nous récupérons aussi l’orientation cardinale de la latitude et de la longitude.

latitude = float(elements[2])
longitude = float(elements[4])
orientation_latitude = elements[3]
orientation_longitude = elements[5]

  • Nous pouvons ainsi présenter les coordonnées géographiques extraites de la trame. La norme NMEA 0183 présente les données angulaires sous la forme ddmm.mmmmm, où les « d » représentent des degrés et les « m » des minutes d’angle.

print(latitude, orientation_latitude, longitude, orientation_longitude)
# affiche 4851.0516 N 218.435 E

Notre extraction des coordonnées géographiques repose sur une exploitation partielle des données contenue dans la trame, et notre code s’applique uniquement aux trames de type GGA. Il nous faudrait continuer à développer notre base de code pour pouvoir traiter la trame en totalité. Nous devrions également écrire du code pour chacune des autres trames. L’autre solution est d’utiliser une bibliothèque spécialisée comportant déjà un tel code.

Bibliothèque spécialisée

Le langage Python est au centre d’un riche écosystème de bibliothèques spécialisées qui permettent d’étendre les fonctionnalités du langage pour des besoins spécifiques.

  • La bibliothèque Python pynmea2 a été conçue pour le décodage et le traitement de trames NMEA 0183.

Cette bibliothèque n’est pas incluse dans la bibliothèque standard, mais son installation s’effectue très simplement depuis la ligne de commande à l’aide de l’outil d’installation pip, en indiquant la commande suivante :

pip install pynmea2

Une fois la bibliothèque téléchargée et installée, on peut la mobiliser de la même manière que les modules de la bibliothèque standard, avec l’instruction import. Nous pouvons ensuite accéder à toutes les fonctions et méthodes spécialisées intégrées à cette bibliothèque. La lecture de la documentation associée apporte les informations utiles à son exploitation.

import pynmea2

trame = pynmea2.NMEASentence.parse("$GPGGA,114507,4851.0516,N,218.435,E,1,04,2.6,100.00,M</sub>,,00000*25")

Nous pouvons faire afficher la latitude telle qu’elle figure dans la trame.

print(trame.lat) # affiche 4851.0516

Nous pouvons aussi mettre à profit les fonctionnalités incluses dans la bibliothèque pour obtenir la décomposition de cette latitude en degrés décimaux pour une meilleure compréhension par un humain ou pour une utilisation par un logiciel. La bibliothèque permet facilement, à partir du format « ddmm.mmmm » d’obtenir des degrés décimaux ou des degrés minutes secondes.

print(trame.latitude) # affiche 48.85086

Nous pouvons également obtenir le nombre de minutes et de secondes d’angles avec les propriétés correspondantes.

print(trame.latitude_minutes) # affiche 51.05159999999978

print(trame.latitude_seconds) # affiche 3.095999999990454

Cette courte illustration montre que l’utilisation d’une bibliothèque spécialisée peut faire gagner beaucoup de temps.

Enjeux techniques et sociétaux

La seule fonction d’un récepteur GPS est de géolocaliser son utilisateur. Cependant dans la pratique de nombreux récepteurs GPS sont couplés à d’autres d’appareils ou intégrés à eux. On retrouve de tels dispositifs dans des secteurs d'activités variés tels que le transport, les loisirs, l'urbanisme ou, sans les citer tous, l'agriculture.

C’est notamment le cas des smartphones, sur lesquels les utilisateurs installent et utilisent toutes sortes d’applications. Ces applications peuvent, si on les y autorise, accéder aux données de géolocalisation produites par le téléphone.

L’aspect pratique est indéniable dans bien des cas.

bannière exemple

Exemple

Les applications d’itinéraire peuvent déterminer automatiquement notre point de départ du trajet.
Les applications de recommandation de commerces ou de location de logements peuvent nous proposer des résultats locaux.

De la même manière, les photographies réalisées avec le téléphone peuvent indiquer à quel endroit elles ont été prises, même si rien sur l’image ne permet de le deviner. Les métadonnées ou données d’accompagnement EXIF présentes dans le fichier informatique stockant la photo permettent d’obtenir de nombreuses informations sur le cliché : date et heure de la prise de vue, type d’appareil utilisé et réglages, mais aussi localisation géographique si le téléphone est paramétré en conséquence.

Prise de conscience sociétale

Les données de géolocalisation sont abondamment exploitées à des fins commerciales et publicitaires sans que l’utilisateur n’en soit toujours correctement informé. Des révélations récentes sur l’ampleur de cette collecte ont contribué à faire émerger une prise de conscience et à souligner les risques en matière de vie privée.

  • De nombreuses applications sans lien apparent avec un besoin de géopositionnement collectent, parfois en permanence, la position de l’utilisateur.
bannière exemple

Exemple

La CNIL (Commission Nationale Informatique et Libertés) a récemment mis en demeure plusieurs sociétés qui traitaient abusivement des données de géolocalisation à des fins publicitaires sans avoir recueilli le consentement préalable des utilisateurs.

Les données collectées peuvent ensuite être analysées et le cas échéant recoupées avec d’autres données pour connaître ou déduire des activités ou des modes de vie des utilisateurs.

bannière exemple

Exemple

En cartographiant globalement les lieux d’activité sportives de bracelets connectés, un site web a accidentellement contribué à révéler l’emplacement de sites militaires au sein desquels circulaient les soldats équipés de tels dispositifs. Ces derniers auraient dû désactiver la géolocalisation de leurs parcours, mais ces appareils électroniques courants font tellement partie de notre quotidien qu’on néglige parfois de prendre des précautions élémentaires de bonne hygiène numérique.

Dans les entreprises les véhicules sont fréquemment équipés de dispositifs de géolocalisation. Leur usage est encadré : ces systèmes ne doivent pas être installés à l’insu des salariés, et la collecte de données ne doit pas être inconsidérée ou effectuée pour contrôler un employé en permanence. Un tel dispositif doit en outre figurer au registre des activités de traitement tenu par l’employeur dans le cadre du RGPD (Règlement Général pour la Protection des Données).

Notons également que les systèmes développés autour de la géolocalisation peuvent présenter des erreurs. Il importe de garder du recul par rapport aux données qu'ils fournissent.

Enfin, avec l'essor des systèmes de géolocalisation et des opérations dans l'espace, celui-ci se trouve aujourd'hui peuplé de plus de 25 000 objets et d'environ 600 000 débris qui gravitent autour de la terre. Les conséquences environnementales de l'activité humaine dépassent ainsi le périmètre de la Terre…

Confidentialité de la géolocalisation

Les éditeurs des systèmes d’exploitation mobiles Google et Apple proposent à l’utilisateur différents réglages de géolocalisation, globalement ou par application, et le cas échéant en fonction du contexte (par exemple seulement si l’application est active).

De la même manière les deux éditeurs permettent sur Android et iOS de limiter le suivi publicitaire et la personnalisation des annonces en fonction des centres d’intérêt.

bannière à retenir

À retenir

Il est recommandé d’accorder des droits de géolocalisation uniquement quand c’est nécessaire ou raisonnable : ça peut l’être pour une application d’itinéraire ou de météo, mais une application de type « lampe torche » ou « calculatrice » n’a aucunement besoin de connaître la position géographique de son utilisateur.
Dans tous les cas il faut prendre le temps de passer en revue les éléments auxquels les applications ont la permission d’accéder : une lampe torche n’a pas besoin d’accéder à vos contacts, vos messages, votre micro ou à vos photos, et une application de météo non plus.

Géolocalisation non satellitaire

On associe généralement la géolocalisation au seul système de positionnement par satellites, mais il existe plusieurs autres solutions techniques pour déterminer la localisation géographique, au moins approximative, d’un utilisateur de smartphone ou d’ordinateur.

Les opérateurs de téléphonie mobile sont en mesure de déterminer assez précisément la localisation géographique d’un client utilisateur à partir des antennes relais desquelles il est proche.

Les adresses IP utilisées par les internautes pour se connecter aux sites internet peuvent être rapprochées de localisations géographiques, au moins approximatives. Il existe également des bases de données qui répertorient la localisation géographique des réseaux wifi.

Ces données peuvent, le cas échéant, être croisées entre elles par des entreprises spécialisées dans le profilage. Ce profilage est en général à vocation publicitaire. De nombreux pays s’intéressent aussi aux possibilités de surveillance généralisée des citoyens permises par ces technologies.

Conclusion :

Les systèmes de géolocalisation à partir de constellations de satellites ont constitué une grande avancée dans la capacité de l’humain à se situer partout sur la planète via des récepteurs spécialisés. Nous avons analysé certains des messages générés par ces appareils pour en extraire des coordonnées géographiques.

Les progrès technologiques et la démocratisation des appareils et solutions de géopositionnement satellitaire ont contribué à ancrer cette capacité à se localiser à tout moment dans notre quotidien. Nous avons ensuite montré que cette possibilité de nous géolocaliser en tout temps et en tous lieux pouvait, si on n’y prenait pas garde, menacer notre vie privée.