SigQuébec

Trouvaille du web 04 - Votre GPS est il piraté?

Bah....sûrement pas moi.... C'est ce que tout lecteur doit se dire. Je prends soin de mon GPS et même si je le voulais, je ne peux pas surfer sur internet avec. Donc les risques de me faire pirater mon outil sont quasi nuls. Si on regarde le piratage d'un côté intrusif, d'un point de vue qu'un programme indésirable peut prendre le contrôle de l'appareil.... C'est une bonne attitude. Mais pouvez-vous contrôler l'information externe, soit les ondes et leur contenu? Rien n'est moins sûr. Bah qui est capable de créer et substituer des ondes GPS. En plus selon une constellation précise qui est sans cesse en mouvement.... Bien cela existe... D'un côté inquiétant... Ça fonctionne.... Voici l'article: Des étudiants ont démontré la prise de contrôle d'un yacht en pleine mer en détournant le signal GPS et ce sans déclencher l'alarme. http://www.lemondeinformatique.fr/actualites/lire-un-yacht-pirate-en-detournant-le-signal-gps-54563.html Vous n'avez pas de yacht.... Bien quelque chose de semblable est arrivé avec des téléphones intelligents. Des gens d'une zone géographique limitée ont tous reçu le même texto : http://www.metronews.fr/info/vous-etes-fiche-le-mysterieux-texto-recu-par-les-manifestants-a-kiev/mnaw!RDjLTu6QfBCY/ Troublant ce contrôle des ondes selon une position géographique ? Pouvons-nous dire que c'est du "géohacking"? Le terme n'existe peut-être pas, mais le phénomène est bien réel.... Martin
Écrit par Martin Couture
Dernière mise à jour: 31 Mai 2014 - 11:31am

Un « ESRI Geoportal Server » libre….

Un geoportail ESRI open source. Esri Geoportal Server vous permet de cataloguer les emplacements et les descriptions de ressources géospatiales de votre organisation dans un référentiel central appelé un géoportail. Les visiteurs du géoportail peuvent rechercher et accéder à ces ressources et les utiliser dans leurs projets. Géoportails est une vue globale de vos ressources géospatiales, indépendamment de leur type ou leur emplacement. Les ressources sont enregistrées sur le site à l'aide de métadonnées, qui décrivent l'emplacement, l'âge, la qualité, et d'autres caractéristiques des ressources. Avec l'accès à cette information sur les ressources, une organisation peut prendre des décisions fondées sur les meilleures ressources disponibles. http://geoportal.sourceforge.net/ Martin
Écrit par Martin Couture
Dernière mise à jour: 31 Mai 2014 - 11:31am

La météo s’affole, voyons voir…

Nous avons connu des extrêmes météos ces dernières semaines. Le 2 janvier, le mercure a descendu en dessous des -32 degrés et 4 jours plus tard, le mercure a atteint + 4 degrés. Bref, la météo s’affole et on peut l’afficher à travers des cartes. Comment? Avec ArcGIS, Python et quelques modules.

Tout d’abord, voici le résultat final.

Carte animée de la vague de froid du 2 janvier 2014 : http://youtu.be/pWWRt6UrfW0 Carte animée du front chaud du 6 janvier 2014 : http://youtu.be/bBIELAvdwiA Le script Python utilisé :  https://github.com/geocot/Cartedetemperature_Python. Le script en mouvement : http://youtu.be/tNgjMP1z-As

Maintenant, comment?

Tout d’abord j’ai  cartographié les stations météo du Québec. Il est possible d’avoir tous les sites météo sur le site du gouvernement du Canada (Environnement Canada à http ://meteo.gc.ca). J’ai donc une classe d’entités  de points.

MeteoPY1  

 

        Pour chaque point de la carte, j’ai les informations suivantes associées dans la table :

  • Le nom de la ville pour les étiquettes de la carte.
  • L’URL où aller chercher les informations de température.
  • 2 champs de coordonnées (X et Y) de la station (à titre indicatif).
  • Le nom de la province (j’y reviens un peu plus loin).
  • La température associée à la station météo.

Je possède donc à cette étape une cartographie de base. Il me faut maintenant mettre les données de température à jour. Pour chaque site météo d’Environnement Canada (dans le bas de la page), un lien XML existe. Il est possible d’avoir l’information météo structurée en format XML (ex : http ://meteo.gc.ca/rss/city/qc-133_f.xml). Si vous observez bien dans la table, seulement la dernière partie de l’URL est inscrite (le début étant toujours le même). Par la suite,  j’ai construit un script Python qui permet de lire chaque fichier XML des stations météo (en ligne) et qui retrouve l’information sur la température. Cette dernière est ajoutée dans le champ « Température » de la classe d’entité. La matrice d’interpolation (image de couleur en fond) est créée en utilisant la fonction d’interpolation IDW (Inverse Distance Weight) du module « Spatial Analyst » d’ArcGIS. Pour pouvoir créer une carte en format JPEG (ou autres formats), j’ai fabriqué une mise en page via un fichier MXD (projet ArcGIS). J’y ai mis :

  • Les différents blocs de données (data frame)
  • Les éléments cartographiques (flèche du nord, titre, …)
  • Les étiquettes
  • Les symboles vectoriel et matriciel.

Regardons le script Python.

Tout d’abord, je tiens à préciser que le script pourrait être largement optimisé. Le script est un prototype. Le blogue est une initiative personnelle. J’ajoute des éléments à celui-ci lorsque j’ai un peu de temps.

Partie 1 : l’importation des modules

MeteoPY2    

Partie 2 : La fonction de lecture XML

Une fonction qui permet de lire le fichier XML et d’extraire la température. MeteoPY3                

  1. Cette fonction ouvre le fichier XML selon l’URL de la table.
  2. Trouve le bon nœud «summary » où se trouve l’information de la température. Il y a plus d’un nœud « summary » lorsqu’il y a des alertes et veilles météorologiques.
  3. Permets de trouver la météo dans l’information HTML incluse dans le fichier XML.
  4. Retourne la température en remplaçant les virgules par des points (décimales). J’ai utilisé le format anglais de Windows (L’OS que j’utilise est en anglais). Il était plus rapide d’utiliser le format de base que de tout transformer dans le format français.

Partie 3 : Le traitement ArcGIS

Dans une boucle pour faire les 24 heures du jour. Soit une carte aux heures.MeteoPY4                    

  1. Définition de la classe d’entités et des champs  à mettre à jour.
  2. Mise à jour des informations de température dans la table via l’objet « Update Cursor ».
  3. Vérification de la disponibilité du module « Spatial Analyst » et traitement de l’interpolation IDW ainsi que le clip de l’image selon les limites de la province.
  4. Export des données du MXD en format JPG.
  5. Utilisation du module « time » pour une pause du script d’une heure.

 

Problèmes rencontrés

  • Un des problèmes que j’ai rencontré était de trouver le bon nœud « summary » dans le fichier XML. Il change de place lorsqu’il y a des alertes et veilles météorologiques. Je m’en suis aperçu lorsque mes cartes météo étaient incomplètes.
  • J’ai dû ajouter des stations météo en dehors du Québec pour avoir une meilleure couverture et précision. C’est pourquoi il y a un champ « Province » dans la classe d’entités des stations. J'enlève les données hors Québec de la carte via une expression dans les étiquettes.
  • Certaines stations météo ont des données irrégulières. C’est-à-dire que les données sur la température ne sont pas toujours disponibles. Dans ce cas, je les remplace par la donnée -9999 et je les exclus du traitement IDW ainsi que de l’affichage dans les étiquettes (la donnée est remplacée par ND sur la carte).
  • Le choix de la méthode d’interpolation n’est nullement scientifique. J’ai pris une méthode disponible dans ArcGIS et qui est assez simple.

C’est une explication rapide de la marche à suivre. Je vous invite à m’écrire pour plus d’information. Bonne année 2014 Martin

Écrit par Martin Couture
Dernière mise à jour: 11 Juin 2014 - 11:40am

Pages

S'abonner à SigQuébec
Vous avez du contenu à publier sur SigQuébec?

Communiquez avec le Webmestre.