Contribute Media
A thank you to everyone who makes this possible: Read More

La cartographie c'est simple et "complexe"

Description

Contexte : J'ai commencé à faire des cartes avec les données INSEE disponibles sur opendata il y a 2 semaines.

J'ai trouvé quelques outils comme qGIS, mais ayant une machine asthmatique, j'ai fini par construire les cartes depuis rien, juste en regardant les fichiers sources, et les cartes SVG et c'est facile : tout le monde peut y arriver.

C'est si simple avec les bons outils (python + SVG + HTML + matplotlib et une connaissance minimale en math), que ce serait bien de rendre ce savoir disponible pour tous.

La plupart des difficultés techniques comme : un point est il dans un polygone ?

Quel sont les points minimum et le maximum dans une carte ?

Sont résolues simplement sans classe avec un outil mal aimé de python : les nombres complexes.

(Ceci au passage est un "rant" contre la classe point 2D qui est donnée en exemple comme la classe pour apprendre, et une réaffirmation que les maths sont une abstraction plus importante que l'objet.)

Dans un premier temps on va prendre un fichier source, le regarder, et tenter naïvement de construire une carte.

On va rappeler très rapidement ce qu'est un nombre complexe.

On va prendre un fichier de destination et le regarder, et sans connaissance du SVG tenter de le construire.

Ensuite on va utiliser matplotlib pour automatiser la coloration par gradient.

On va y arriver.

On va aussi découvrir une méthode de résolution des problèmes de contraste par "non linéarisation" des niveaux de couleurs (tri ordonné) qui marche à quasiment tous les coups (merci les OrderedDict et les sets).

On va utiliser un algo simple pour trouver le polygone qui contient un point et le mettre en œuvre. Parler de distance et éviter en beauté le problème des projections en cartographie car j'y connais rien.

On va peut être comparer avec qgis en terme de vitesse pour la génération de carte SVG, et aux tutos disponibles sur internet, et se dire que ça vaut le coup de partager ce savoir.

Enfin on va montrer que la complexité afférente à écrire un cadricel étant supérieure à la 100 aine de ligne de codes pour faire le travail sans se fatiguer, c'est peut être pas nécessaire de faire un cadriciel.

Et évidemment, je vais conclure sur les quaternions, et leur utilisation par les riggers dans l'industrie du jeu plutôt que les matrices pour la 3D et souligner qu'on a des modules pour les quaternions en python, parce qu'on a une communauté de qualité avec des scientifiques qui contribuent et que sans eux, ce serait bien plus dur de faire le kakou en 100 lignes de codes. Remercions aussi les initiatives d'opendata sans lesquelles on pourrait rien faire et rendons hommage à la qualité de données si simple que leur mise en œuvre est aisée.

Et voilà comment on construit une carte de représentation de données sans rien y connaître en cartographie. Parce qu'il y a des gars biens qui partagent les données sans les "obscurcir" et d'autres leur code et qu'il y a une communauté au milieu pour mettre les savoirs en relation.

Details

Improve this page