logoSCIENCES NUMERIQUES ET TECHNOLOGIE

Niveau : Seconde SNT


Accueil

D
É
C
O
N
N
E
C
T
É

La Géolocalisation

I. Partie 1 : Principe du GPS et coordonnées

1. Préambule

Le Global Positioning System (GPS) ou « Géo-positionnement par satellite », est un système de positionnement par satellites appartenant au gouvernement des États-Unis. Mis en place par le département de la Défense des États-Unis à des fins militaires, le système avec 24 satellites est totalement opérationnel en 1995 et s’ouvre au civil en 2000.

2. Fonctionnement

Les 24 satellites de constellation GPS sont situés à 20184 km d’altitude, et font le tour de la terre en 12h

Répondre aux questions suivantes :

3. A mémoriser

  1. Pour pouvoir déterminer sa position sur Terre, son récepteur GPS doit pouvoir capter à tout moment satellites
  2. Le GPS permet d’obtenir les coordonnées définies par :
    • Le méridien terrestre où on se situe , cela donne la .
    • Le parallèle terrestre où on se situe, cela donne la .
    • La hauteur par rapport au niveau moyen de la mer, cela donne .

4. Exercice

Lancer un navigateur puis aller sur le site https://www.coordonnees-gps.fr/

Déterminer alors les coordonnées GPS du lycée Lavoisier

Latitude (décimal)
Latitude (DMS)
Longitude (décimal)
Longitude (DMS)
Altitude

5. Programme donnant la latitude et la longitude

Localement, sur une petite surface, on peut assimiler la sphère terrestre à un plan.

On peut considérer que la variation de la longitude ou de la latitude est proportionnelle à la variation de l’abscisse x ou de l’ordonnée y.


Autrement dit : longitude = f(x) et latitude = g(y) avec f et g deux fonctions affines


À l’aide du site https://www.coordonnees-gps.fr remplir de tableau suivant :

VilleMulhouseOrléansMarseilleBrestLilleBordeaux
abscisse (écran) : x
ordonnée (écran) : y
longitude (à 10−4 près) :
latitude (à 10−4 près) :

La fonction f permettant de passer de x à la longitude est une fonction affine définie par f (x) = ax + b

À l’aide des données recueillies pour les longitudes et abscisses de Mulhouse et Brest, écrire un système d’équations, d’inconnues a et b.

A l'aide de la calculatrice résoudre ce système d'équations à deux inconnues.

f(x) = *x+

Vérifier que le déplacement horizontal du curseur sur la carte correspond maintenant à la longitude.

À l’aide des données recueillies pour les latitudes et ordonnées de Marseille et Lille, écrire un système d’équations, d’inconnues a et b

Résoudre le système d'équations à l'aide de la calculatrice, puis reporter ci-dessous les coefficients de a et b qui forment la fonction f(x).

g(y) = *x+

Vérifier que le déplacement vertical du curseur sur la carte correspond maintenant à la latitude.

II. Partie 2 : Analyse des données GPS

Le but de cette partie est d’apprendre à interpréter les données géographiques à partir d’un signal GPS reçu (appelé trame GPGGA) par un appareil situé au sol (smartphone, boitier situé dans une voiture,...)

1. Exemple :

Un récepteur GPS reçoit le type de signal suivant :

$GPGGA,064036.289,4836.5375,N,00740.9373,E,1,04,3.2,200.2,M„„*0E

Comment interpréter ce signal ?

$GPGGAType de trame (ici trame GPS)
064036.289 Trame envoyée à 06h 40m 36,289s (heure UTC)
4836.5375,N Latitude : 48°36,5375’ = 48,608958° Nord
00740.9373,E Longitude : 7°40.9373’= 7,682288° Est
1 Type de positionnement (1 signifie positionnement GPS)
04 Nombre de satellites utilisés pour calculer les coordonnées
3.2 Précision horizontale ou HDOP (Horizontal dilution of precision)
200.2,M Altitude 200.2 mètres

2. Exercice

  1. Votre récepteur GPS capte la trame suivante :
  2. $GPGGA,113239.512,4545.47208,N,0449.93164,E,1,08,0.6,3.4,155.3,M„,4A"

    1. Analyser cette trame pour déterminer les paramètres ci-dessous :

3. Programmation en langage Phyton

Le but de cette partie est de récupérer la longitude et latitude d'une trame provenant d'un récepteur GPS.

Dans le programme ci-dessous, la fonction latitude permet de retourner la latitude au format décimal.


				                
                
					
				
  1. A la ligne 11, Créer une chaine de caractères regroupant la trame reçue par le récepteur GPS
  2. trame ="$GPGGA,123519.512,4745.6689,N,00719.8057,E,1,08,0.9,545.4,M,241.0,M,,*67"

  3. Créer une liste en découpant la trame à chaque virgule :
  4. liste = trame.split(",")

    Désormais liste[0] contient $GPGGA, liste[1] contient 123519.512, liste[2] contient 4745.6689, etc.

  5. Exécuter ce programme puis le tester en rajoutant :
  6. print(latitude(liste))

  7. Copier puis coller la fonction latitude, puis modifier-la pour en faire une fonction qui retourne la longitude.
  8. Exécuter le programme puis le tester la fonction longitude en rajoutant :
  9. print(longitude(liste))

  10. A quel endroit se trouve le récepteur GPS ?

III . Partie 3 : Géolocaliser une photo (EXIF)

Voici la photo que j'ai prise avec mon smartphone, mais que cache-t-elle ?

Saurez-vous me dire où et quand la photo a été prise ?

photo

IV. Recherche du chemin le plus court : l'algorithme de Dijkstra

Un des problèmes classiques en informatique est de trouver le plus court chemin reliant deux éléments d'un même réseau, que ce soit deux villes dans un réseau routier ou deux routeurs d'un réseau informatique.

1. Représenter une carte routière, notion de graphe

On considère l'extrait de carte de la région Auvergne-Rhône-Alpes donné ci-dessous :

Carte_Auvergne.png

Un technicien d'une entreprise doit se déplacer et pouvoir intervenir sur les différents sites de cette entreprises, situés dans les villes suivantes : Aurillac (A), Bourg-en-Bresse (B), Clermont-Ferrand (C), Saint-Etienne (E), Grenoble(G), Lyon (L), Le Puy-en-Velay(P), Valence(V). Il connait les distances suivantes par autoroute, en km :

  • AC = 160
  • AP = 180
  • CP = 130
  • CE = 140
  • CL = 180
  • PE = 80
  • PV = 100
  • EL = 70
  • EV = 100
  • LV = 100
  • LB = 80
  • LG = 110
  • BG = 180
  • VG = 90

1.1 Exercice

Donner une représentation graphique simplifiée de la situation présentée ci-dessus.

    1. Télécharger l'image du fond de carte : carte.png,
    2. Télécharger le graphe suivant : graphe.graphml,
    3. Cliquez sur le lien pour accéder au site Internet suivant : https://graphonline.ru/fr/,
    4. Depuis le menu graphe, importer le fichier graphe.graphml précédemment téléchargé,
    5. Depuis le menu "Réglage" "Background", cliquez sur "Upload" et enregistrer l'image du fond de carte,
    6. Cliquez sur "Ajouter un sommet" pour ajouter des villes manquantes : Saint-Etienne (E), Grenoble(G), Lyon (L), Le Puy-en-Velay(P), Valence(V). Un clic droit sur un sommet permet de le renommer,
    7. Cliquez ensuite sur "Lier les sommets", puis placer les arrêtes en reliant les villes entre elles et indiquer la distance qui les séparent,
    8. Depuis le menu "Graphe" exporter votre graphe vers un fichier, puis "Save graph to SVG".
    9. Connectez-vous afin de pouvoir téléverser vos fichiers en ligne

1.2 Notion de graphe (non orienté)

  • Un tel type de représentation s'appelle un graphe non orienté (undirected graph) - car les segments peuvent être parcourus dans les deux sens.
  • Les points A, B, C, etc sont appelés sommets (nodes) du graphe.
  • Les segments reliant deux sommets sont appelés arêtes (edges).
  • Les valeurs sur les arêtes sont appelées poids (weights).
  • Deux sommets sont dits voisins s'il existe une arête entre ces deux sommets.
  • Une chaîne (ou un chemin, path en anglais) est une suite finie d'arêtes consécutive, et le poids d'une chaîne est la somme des poids de ses arêtes.

2. L'algorithme de Dijkstra

Edsger Dijkstra

Edsger Wybe Dijkstra (mathématicien et informaticien néerlandais 1930 − 2002) a proposé en 1959 un algorithme qui permet de calculer le plus court chemin entre un sommet particulier et tous les autres. C'est l'un des plus efficaces pour traiter les problèmes de plus court chemin. Grâce à la puissance du traitement informatique, il est utilisé par les logiciels d'optimisation de trajets réels (Navigateurs GPS, Site RATP. . .) ou virtuels (routage internet). Cet algorithme ne fonctionne que si le graphe ne possède que des valeurs positives.

Dijkstra.jpg

2.1 Description de l'algorithme

Algorithme de Dijkstra

2.2 Exemple complet débranché

Pour faciliter la recherche du plus court chemin il est commode de présenter les résultats dans un tableau.

  1. Ayant terminé sa semaine de travail à Bourg-en-Bresse, le technicien souhaite retourner chez lui à Aurillac en faisant le moins de kilomètres possibles. Déterminer, en utilisant l'algorithme de Dijkstra, le plus court chemin entre les villes de Bourg-en-Bresse et Aurillac en empruntant le réseau routier, en s'aidant du tableau ci-dessous :

  2. Etape n°Sommet choisiABCEGLPV
    0Initialisation0
    1 X180(B)80(B)
    2
    3
    4
    5
    6
    7

  • Reporter les distances les plus courtes sur le graphe.
  • Quelle est alors la route à emprunter ?
  • Vérifier vos résultats sur https://graphonline.ru/fr/ menu "Algorithme" - "Plus court chemin avec l'algorithme de Dijkstra". Sélectionner "rapport complet".

    La route entre Le Puy-en-Velay et Aurillac est fermée à la circulation. Quel chemin doit-il alors emprunter ?

  • 2.3 Exercice 2

    Alexis part en voyage dans l’Est des Etats-Unis. Il souhaite visiter les villes suivantes : Atlanta (A), Boston (B), Chicago (C), Miami (M), New York (N)et Washington (W). Une compagnie aérienne propose les liaisons suivantes représentées par le graphe ci-dessous :

    GrapheAeroports.png

    1. Alexis veut relier Boston à Miami. Déterminer le trajet le moins cher ainsi que le coût de ce trajet.

    2. Etape n°Sommet choisiABCMNW
      0
      1
      2
      3
      4
      5

    3. Reporter les meilleurs coûts sur le graphe.
    4. GrapheAeroports.png

    5. Quel est trajet le moins cher ?
    6. Se rendre sur le site https://graphonline.ru/fr/ tracer le graphe des coûts et de déterminer entre autres le chemin le plus court grâce à l'algorithme de Dijkstra. Vérifiez vos calculs précédents avec ce site.

    V. Grille de notation :

    Partie 1
    (12 pts)
    Partie 2
    (5 pts)
    Partie 3
    (0.5 pt)
    Partie 4
    (5.5 pts)
    Total
    (23 pts)
    Note
    (20 pts)
    0 0