Le programme de mon cours n'est pas encore prêt, tout est in statu nascendi...
GPS classiques, téléphones portables, drones et autres robots (sur la Terre et ailleurs), tout équipement électronique militaire, presque tout grand véhicule sur l'eau ou dans les airs, votre serveur DLNA connecté aux sources multi-média, et même votre réfrigérateur intelligent et connecté, qui veut savoir où commander quelques pizzas de manière ergonomique [et compatible avec les intérêts commerciaux du producteur/vendeur]... – tout "veut savoir" quelle est sa position par rapport à un repère connu.
On attache l'équipement GPS et des transmetteurs aux animaux sauvages et domestiques, conteneurs et baleines. Les résultat des mesures sont stockés, affichés sur une carte, comparés, peuvent déclencher des alarmes, etc.
L'idée de cette partie du cours est de vous donner une introduction au traitement des données de géolocalisation (ou géoréférencement). On ne parlera pas trop de l'acquisition, mais vous aurez un très court survol. La localisation sattelitaire n'est pas la seule possible...
Le système d'acquisition GPS ramasse les signaux venant des satellites, et en rend, en temps réel, des coordonnées dans le système de coordonnées géodésiques (référentiel) approprié. Ensuite on peut répertorier le point trouvé, avec, ou sans la troisième coordonnée : la hauteur, sur une carte.
Pour tracer la carte et la position, le logiciel devra effectuer une projection cartographique, la transformation entre les coordonnées géodésiques et la géométrie de la fenêtre d'affichage.
Ceci est un processus à part, qui peut avoir lieu très loin. Il est compliqué, par ex. la manipulation des données pixel (images de la Terre) et l'affichage des données vectorielles (shapefiles, bases de données de Google Maps / Open Street Map, etc.), est très différente.
Le nombre de projections utilisables dans la pratique est très grand, car dans des contextes différents, on a besoin de propriétés différentes, et ceci malgré la standardisation des cartes "officielles" par chaque pays. Les détails viendront.
Ce module n'est pas un cours d'informatique géographique.
En particulier, nous ne pourrons travailler sur un système SIG (GIS en anglais...) complet, car on aurait besoin d'au moins un mois pour apprivoiser les fonctionnalités présentes dans un système complet. Par contre, on fera des petits exercices, réalisables dans un contexte autonôme. (Les SIG en principe n'ont rien à voir avec le nomadisme). Les détails peuvent changer après les consultations avec vous et vos enseignants, concernant vos besoins, et vos aptitudes.
Les modalités d'évaluation peuvent changer, mais à l'heure actuelle je prévois (au moins) un devoir maison, peut-être quelques différents au choix ; le codage d'un paquetage de rendu / conversion / communication ...
Il y aura également un devoir surveillé, dont les détails seront réglés plus tard (j'ignore l'organisation de vos études, les protocoles habituels).
Le choix du langage de programmation est délicat. Je ne veux pas utiliser C/C++, car ce qui compte n'est pas la vitesse d'exécution (pour l'instant), mais la facilité de programmation, interactivité, bon support pédagogique (exemples lisibles, librairies utilisables facilement), etc.
Mon choix est : Python, ensuite Java. Quoi que l'on vous dise, sur des petites plates-formes, y compris les microcontrôleurs, ce qui domine au niveau utilisateur final, ce sont des langages interprétés par une machine virtuelle, et non pas compilés en code machine binaire.
Android, c'est Java/Dalvik. Raspbian, le noyau, est codé probablement en C ou équivalent, mais les programmes utilisateur sont souvent en Python...
Sous Python nous disposons d'une excellente librairie graphique Matplotlib, dont l'apprentissage de base prendra 15 minutes, et aussi un paquetage de gestion géographique. Et la communication, et des outils numériques pour tout le monde...