Vous pouvez lire le billet sur le blog La Minute pour plus d'informations sur les RSS !
Feeds
4987 items (0 unread) in 101 feeds
-
Décryptagéo, l'information géographique
-
Revue Internationale de Géomatique
-
SIGMAG & SIGTV.FR - Un autre regard sur la géomatique
-
Imagerie Géospatiale
-
Geospatial made in France
-
GéoTrouveTout
-
Humblogue
-
le blog decigeo
-
Articque - Les Sytèmes d'Analyse Géographique, la cartographie, le géomarketing et la géostatistique
-
GeoConcept
-
arcOrama, un blog sur les SIG, ceux d ESRI en particulier
-
arcOpole - Actualité du Programme
-
Géoclip, le générateur d'observatoire cartographique
-
Le blog de Geomatys
-
Camptocamp
-
Blog GEOCONCEPT FR
-
Cartographie – Icem7
-
Monde géonumérique
-
GeoInWeb
-
Le monde de la Géomatique et des SIG ... tel que je le vois
-
Géographie 2.0
-
BloGoMaps - google maps france
-
GeoRezo.net - Géoblogs
-
Geotribu
-
Benjamin Chartier
-
neogeo
-
OpenSource, Geospatial et Web ?.0
-
Faire joujou avec son GPS
-
Géomatique et Topographie
-
HelioMap
-
La chronique de la parallaxe
-
Remote In Every Sense
-
UrbaLine
-
GEMTICE
-
Serial Mapper
-
SIG-o-Matic
-
Librairie La GéoGraphie • Actualité internationale
-
Les Cafés géographiques
-
Une carte du monde.
-
Les blogs du Diplo - Visions cartographiques
-
Oslandia
-
Inventis Géomarketing
-
Blogue de la géomatique du MSP
-
Blog technique de Nicolas Boonaert
-
WebMapping
-
A GeoSpatial World
-
Cartes et Cartographie / Maps and Mapping
-
Sample Digital Orthophoto Images
-
RSS Libre@vous
-
Blog d'Intelli3
-
Audissey
-
GeoReader's Digest
-
Michael TRANCHANT
-
Le blog d'Henri Pornon
-
Data and GIS tips
-
Geo By The Cloud
-
123 Opendata
-
ReLucBlog
-
L'Atelier de Cartographie
-
AdrienVH.fr, le blog » Cartographie
-
Cartes et figures du monde
-
Baptiste Coulmont » cartographie
-
l'aménagerie » SIG
-
geomarketing.ca
-
Libertic
-
My Geomatic
-
OpenStreetMap France
-
Sigea : actualités
-
Géosource
-
www.touraineverte.com
-
archeomatic
-
Geographica » Cartographica
-
Tutoriels et formations gratuits des logiciels SIG ArcGIS, MapInfo, ArcView GIS etc.
-
simon mercier
-
GIS-blog.fr
-
Séries temporelles
-
Le blog d'Alexandre Cazaux
-
Veille cartographie
-
TempoGéo
-
Chroniques Cartographiques
-
Carnet (neo)cartographique
-
GEOMATIQUE
-
Geomatick
-
Planet Geospatial - http://planetgs.com
-
Google Maps Mania
-
All Points Blog
-
Directions Media - Podcasts
-
Navx
-
James Fee GIS Blog
-
OGC News Feed
Cartographie – Icem7
-
19:04
Qui est Jacques Bertin ?
sur Cartographie – Icem7Lorsque l’on s’intéresse, comme nous à icem7, à la sémiologie graphique, il est incontournable de s’interroger à propos de Jacques Bertin. Afin de dresser son portrait, j’ai entrepris quelques recherches à son sujet. Aujourd’hui, Internet rend cela plus facile (à condition de ne pas se laisser noyer par la quantité d’informations).
Jacques Bertin, celles et ceux qui s’intéressent à la cartographie thématique le savent, est le père de la sémiologie graphique. Il est l’auteur de l’ouvrage de référence à ce propos, Sémiologie graphique : les diagrammes, les réseaux, les cartes, paru pour la première fois en 1967, réédité en 1973, puis en 1999, toujours considéré aujourd’hui comme un fondamental de cette approche interdisciplinaire, à l’intersection entre la géographie, la cartographie, la statistique.
Jacques Bertin est cartographe. Il convient de le préciser dans son moteur de recherche, pour éviter toute confusion avec un homonyme encore plus illustre, Jacques Bertin, chanteur [1]. Wikipédia compte une notice pour chacun des deux hommes.
Les principes énoncés par Bertin sont toujours inspirantsRevenons au cartographe qui, décédé en 2010, aurait eu 100 ans en 2018. En 2017, pour célébrer le 50e anniversaire de la première publication de son œuvre principale, une rétrospective lui a été consacrée. Gilles Palsky lui a rendu hommage en expliquant en quoi « le traité de Jacques Bertin s’est imposé comme une sorte de doxa cartographique et a modelé la pratique de générations de cartographes depuis les années 1970. »
Jacques Bertin a passé l’essentiel de sa vie professionnelle à la tête de l’Atelier de cartographie, renommé ensuite Atelier de graphique, au sein de l’École des Hautes Études en Sciences Sociales (EHESS). Outre le considérable pavé de 430 pages déjà cité, il a publié en 1977 La graphique et le traitement graphique de l’information, ainsi qu’un Atlas historique de l’humanité.
En tant que cartographe, il est aussi l’auteur, en 1953, d’une projection de la carte du monde tout à fait singulière. Cette représentation, outre ses qualités esthétiques (Jacques Bertin, fils d’un peintre, était très attaché à ces questions), a pour caractéristique de ne pas trop modifier la forme des continents (sauf celle de l’Amérique du Nord).
Généralement, les ouvrages signés par des universitaires sont truffés de références bibliographiques. Ce n’est pas le cas des livres de Jacques Bertin, puisque ce dernier a consacré sa carrière à défricher un domaine entièrement nouveau à cette époque. En revanche, ses écrits sont cités en références dans d’innombrables publications scientifiques. Une requête dans Google Scholar, moteur de recherche académique, renvoie plus de 3 000 résultats à partir de « Jacques Bertin ».
La Sémiologie graphique a marqué les esprits en France, non seulement à l’université, mais aussi à l’Insee, la Datar, l’IGN, Sciences Po… Ce fut aussi le cas aux États-Unis, mais plus de 15 ans après, avec la première traduction en anglais, Semiology of Graphics (University of Wisconsin, 1983). Jacques Bertin est tout autant, voire plus populaire outre-atlantique qu’en France. Il a influencé les plus grands chercheurs en visualisation : Edward Tufte, Leland Wilkinson, puis la nouvelle génération des Hadley Wickham (R), Mike Bostock (D3), Jeffrey Heer (Vega), qui le citent comme une référence majeure.
L’image d’un homme modesteCependant, il n’y a que peu de traces laissées sur l’homme qu’il était. Il faut bien chercher pour trouver des images qui montrent son visage. Je n’en ai trouvées que 4 ou 5, toutes de petite taille, souvent en noir et blanc. Elles montrent un homme d’allure débonnaire, avec un visage rond, un crâne largement dégarni, un regard vif derrière de grandes lunettes, souvent la pipe à la main. On imagine quelqu’un de calme, modeste et néanmoins solide et déterminé.
Il a conduit ses travaux à une époque où l’informatique n’était pas aussi puissante et accessible qu’aujourd’hui et a mené ses recherches à partir d’observations empiriques.
Entourant Jacques Bertin, l'équipe du Laboratoire de cartographie de l'EHESS, en 1964.Il a mis au point une méthode manuelle astucieuse pour trier et ordonner un tableau croisé, connue sous le nom de « matrice de Bertin ». Cette méthode a été automatisée et est accessible en ligne sous le nom de « bertifier ». Cela n’est pas donné à tout le monde de voir son patronyme transformé en nom commun !
Ce que voient nos yeux et ce que comprend notre cerveauSi Jacques Bertin poursuivait ses travaux de nos jours, je suis sûre qu’il se passionnerait pour les neurosciences, qui cherchent à comprendre le fonctionnement de notre système nerveux. Il se pencherait sans nul doute sur la question de comment notre cerveau interprète ce que nos yeux perçoivent, à la lumière de ce que montrent les nouvelles techniques d’imagerie médicale par résonance magnétique.
Un élément central de ses travaux porte sur les perceptions visuelles. Il a décrit et théorisé la notion de variables visuelles en partant du constat que nos yeux cherchent d’abord à reconnaître des similitudes ou repérer des différences.
Comparer, trier, classer, ordonner : à chaque instant, notre cerveau analyse chaque image qui nous tombe sous les yeux.
Jacques Bertin a identifié 6 variables rétiniennes qu’il convient de savoir utiliser à bon escient pour construire une représentation graphique : taille, valeur, grain, couleur, orientation et forme. Aujourd’hui, des outils graphiques aussi populaires que Tableau, GGplot2, Vega utilisent explicitement le concept d’encodage d’indicateurs en variables visuelles élémentaires.
Une idée forte de la « pensée bertinienne » est que nos yeux appréhendent d’abord une image comme un tout. Il convient par conséquent que l’image délivre son message directement, dès que le regard se pose sur elle. Pour qu’une image délivre son message, il ne doit pas être brouillé par des éléments parasites. Pour obtenir in fine une représentation graphique claire et efficace, le travail de préparation et de construction en amont peut s’avérer complexe.
Quelques références- Hypergéo :
- Cybergéo :
- La graphique et le traitement graphique de l’information
- Le Manifeste des cartographes
- Bon anniversaire, Jacques Bertin !
- Traduire encore Bertin aujourd’hui
- L’héritage pédagogique de Jacques Bertin
Image extraite de l'ouvrage Sémiologie graphique pour illustrer l'effet vibratoire du grain. On dirait de l'art moderne !
- Tableau des niveaux des variables rétiniennes
- Design graphique et recherches en sciences sociales. Jacques Bertin et le Laboratoire de Graphique. EHESS 1954-2000
- Projection Bertin (1953)
- Archives du Laboratoire de cartographie de l’EPHE/EHESS aux Archives nationales – un instrument de recherche en ligne
- Comment fabriquer une “matrice de Bertin” : DIY Bertin Matrix
- L’œil du peintre : une courte vidéo qui montre Jacques Bertin !
[1] Jacques Bertin, le chanteur, plus jeune que le cartographe, est toujours de ce monde. À près de 75 ans, il continue de mener une carrière discrète dans la chanson française « à textes », loin des paillettes du show business. La célébrité est une notion relative… Parmi les quelques 20 000 personnes portant le patronyme Bertin, un certain nombre doit se prénommer Jacques… Le réseau professionnel LinkedIn en compte 52 (mais une seule page icem7
).
L’article Qui est Jacques Bertin ? est apparu en premier sur Icem7.
-
17:22
Les trésors cachés de TopoJSON, format cartographique et topologique
sur Cartographie – Icem7TopoJSON est un format cartographique astucieux. Très compact, il passe plus facilement sur le web. Topologique, il décrit les relations de voisinage entre territoires et facilite toutes sortes de traitements : reprojections, agrégations géométriques, lissages, généralisations, anamorphoses…
TopoJSON constitue une ré-implémentation moderne, optimisée pour le web, d’une vieille idée, celle de la représentation topologique en cartographie. Bien que posé en 2012 (Mike Bostock/D3), TopoJSON est encore peu employé à sa juste valeur. Cet article détaille ses avantages et aborde comment le générer et l’utiliser.
Voici tout d’abord les idées-clés à retenir, elles seront traduites en programmes plus concrets (R, Javascript) dans de futurs articles.
CompacitéJusqu’à trois fois plus léger que d’autres formats textes, il permet de valoriser en ligne, dans un navigateur, des fonds de carte plus volumineux. Par exemple le maillage des communes de France, dont le volume compressé peut être réduit à moins de 3 Mo.
GeoJSON TopoJSON GeoJSON
compresséTopoJSON
compressé24 9 7 2,5 Posons tout d’abord quelques définitions de topologie : dans un maillage polygonal, un nœud est un point de rencontre entre 3 segments ou plus, un arc une portion de tracé entre deux nœuds. Un polygone peut se décomposer en arcs. Dans la figure ci-contre, chacun des deux polygones se réduit à deux arcs.
2 territoires sont voisins (ou contigus ou limitrophes) quand ils partagent une même frontière (ou un même arc), ce qui est caractéristique d’un maillage dont tous les éléments s’emboîtent parfaitement.
Adjacences, inclusions, typologie de formes, bordures…Le format topologique permet d’établir facilement la liste des territoires limitrophes d’une entité. Il est pratique de trier cette liste par azimuth croissant, comme le fait Wikipedia de façon purement topologique, sans indiquer de façon précise les distances ou les angles.
Communes limitrophes de Pechbonnieu (31)
La topologie s’intéresse aux relations d’adjacence et d’inclusion, et aussi aux formes. Elle distingue par exemple les entités trouées, ou à l’inverse enclavées, ou isolées comme peut l’être une île, ou en plusieurs parties. Avec le format topologique, il est facile d’identifier toutes les communes possédant chacune de ces particularités.
La Bastide-de-Sérou englobant Suzan (09), l'Íle d'Yeu (85) et Lourdes (65)
Envie de lister toutes les communes littorales et/ou frontalières ? C’est aussi possible par l’entremise d’un raisonnement purement topologique, où l’on s’attache à distinguer la notion de “bord” de la notion de “ligne de démarcation” entre territoires. Si dans une commune on détecte un arc qui n’est pas partagé avec une autre commune, c’est qu’on a affaire à une commune “en bordure”, dont certaines limites sont aux marges du maillage.
Il est en revanche plus difficile de distinguer une commune littorale d’une commune frontalière, d’autant que ces deux concepts ne sont pas exclusifs. Hendaye est littorale, mais a aussi une frontière avec l’Espagne.
Généralisation/simplificationSimplifier le contour d’un territoire, c’est assez facile en retirant du tracé un point de temps en temps. Le défi consiste à maintenir ce-faisant la cohérence du découpage, ce que peu de logiciels cartographiques savent réaliser, faute de maîtriser la décomposition topologique. En simplifiant chaque arc plutôt que chaque périmètre indépendamment des autres, la topologie est préservée.
Simplification cohérente de tous les tracés Anamorphose
Cette transformation déforme le contour des territoires en simulant l’application d’un champ de forces sur chacun des points des tracés. Ce champ résulte de la distribution d’une valeur statistique. Celle-ci, généralement non uniforme, va donc agir de façon différenciée dans l’espace. Ce calcul est souvent lourd et convoque plusieurs itérations. Le format topologique permet de l’accélérer, et par conséquent d’appliquer l’anamorphose à des fonds de carte plus volumineux.
L'anamorphose déforme tout en préservant l'adjacence Reprojection
Projeter, ou changer de système de coordonnées, peut s’appliquer indépendamment à chaque territoire sans que l’adjacence ne soit altérée, puisque le nombre de points de chaque tracé reste le même. Deux points qui coïncidaient avant transformation mathématique coïncideront après. Comme pour l’anamorphose, il s’agit avec le format topologique de gagner en rapidité (pratiquement d’un facteur deux).
De la projection Lambert 93 à WGS84 Recherches rapides dans un voisinage, lissages
L’accès rapide aux voisins facilite l’identification du territoire survolé par la souris. L’algorithme peut commencer par une identification imprécise, et conduire un test plus décisif (pointInPolygon) sur le champ réduit des territoires “voisins” de cette localisation. C’est ainsi que l’on peut garantir par exemple une bonne fluidité de l’affichage correct de l’infobulle, même quand le pointeur de la souris se déplace rapidement.
Une autre application de l’accès au voisinage consiste à associer un disque spatial mobile au calcul d’un indicateur (typiquement un taux), étendant à deux dimensions le principe du lissage par moyenne mobile habituellement appliqué à une série temporelle. Pour bien faire, on identifiera par couronnes successives les territoires dont le chef-lieu est dans un rayon donné, en appliquant une pondération inverse à la distance.
Lissage par disque mobile Regroupements par dissolution des frontières intérieures
Les polygones étant décomposés en arcs, leur fusion géométrique devient triviale. Elle élimine les frontières intérieures en ne gardant que les frontières extérieures. Comment distinguer les deux types de frontières ? Une frontière intérieure est utilisée deux fois dans le dessin (par deux territoires limitrophes), alors qu’une frontière extérieure n’est parcourue qu’une fois.
Regroupement des communes vers les départements, puis la Corse Esthétique du rendu cartographique
L’analyse topologique ne sert pas qu’à accélérer les traitements mathématiques ou les dessins, elle les rend aussi plus esthétiques ! Considérons une couche des contours départementaux, que l’on voudrait exposer de façon claire. Si on la construit à partir de polygones départementaux, les limites entre deux départements sont dessinées deux fois, et elles vont ainsi paraitre plus épaisses ou foncées, comme si le stylo parcourait deux fois le même tracé (image de gauche).
En revanche, si cette couche est décomposée topologiquement en arcs élémentaires, ceux-ci vont produire un tracé homogène, qu’il s’agisse de limites entre départements ou de bordures littorales, sans aucune redondance de segments. Mieux encore : la décomposition topologique distingue les arcs intérieurs des arcs de bordure, ce qui permet de les dessiner différemment, par exemple (image de droite) avec un contour plus foncé pour le tracé extérieur.
1 - Tracé classique et imparfait 2 - Rendu homogène 3 - Tracé soigneusement différencié
Structure du format de description topologiqueUne autre exploitation des relations de voisinage consiste à colorier un maillage en faisant en sorte que deux territoires adjacents n’aient jamais la même couleur. C’est une façon élégante de présenter un zonage, sans y rapporter de donnée statistique particulière. Un théorème édicte que 4 couleurs seulement sont nécessaires pour paver tout l’ensemble. Les algorithmes les plus rapides mobilisent en pratique jusqu’à 6 couleurs, ce qui reste très raisonnable.
avec TopoJSONTopoJSON est un format texte avec lequel je peux décrire entièrement un fond de carte, par exemple un maillage communal. Mais à la différence du standard GeoJSON, il va distinguer :
- une information purement géométrique : elle est déclinée par arc, c’est-à-dire que pour chaque arc un vecteur exprime la suite des points (coordonnées x/y) de son tracé. Le fond de carte de la France et ses 35 000 communes peut ainsi se décomposer en 104 000 arcs ;
- une information purement topologique : on s’intéresse cette-fois-ci aux polygones, définis chacun comme une suite d’arcs. Un polygone est décrit par un vecteur de petits numéros (les indices d’arcs), certains pouvant être négatifs, on va voir tout de suite pourquoi.
Prenons un exemple très simple avec les deux départements de Corse, qui peuvent être décrits par 3 arcs numérotés de 0 à 2, dont le premier est la frontière entre 2A et 2B. La Corse-du-Sud (2A) réunit les arcs 0 et1, tandis que la Haute-Corse (2B) mobilise les arcs 0 et 2.
Mais un programme de dessin a besoin d’une information supplémentaire : le sens de parcours, typiquement celui des aiguilles d’une montre. Chaque arc est par nature orienté : en tant que suite de points, il a un début et une fin. On voit que pour 2A, les 2 arcs 0 et 1 s’enchainent naturellement. Mais pas pour 2B : il faudrait par exemple commencer avec l’arc 2 et remonter l’arc 0 dans l’autre sens.
Pour dessiner chaque département,
l'arc frontière (en bleu) est parcouru dans un sens, puis dans un autrePour traduire cette idée d’un arc à parcourir dans le sens inverse, on utilise une valeur négative d’indice d’arc. La petite délicatesse est que comme les indices positifs commencent à 0 : 0, 1, 2… les indices négatifs vont eux commencer à -1 : -1, -2, -3. Ainsi le “négatif” de 0 est -1, celui de 1 est -2, etc. Il y a un décalage de 1 à prendre en compte quand on référence un arc à parcourir en sens inverse.
Une fois ceci compris, on peut décrire chaque polygone avec ces indices d’arc, en ayant en tête que 0 et -1 désignent le même arc, tout comme 2 et -3.
Si maintenant, considérant un arc donné, d’indice absolu n, je veux identifier les polygones qui l’utilisent, il me suffit de partir à la recherche des indices n ou -n-1. C’est ainsi que, de fil en aiguille, considérant par exemple une commune et les indices absolus d’arc qui la définissent, je vais identifier les polygones qui ont avec elle un arc en commun, et qui sont donc ses voisins.
Quelques pistes algorithmiquesJ’exposerai plus en détail comment procéder dans de prochains articles. Voici en guise d’apéritif quelques idées à traduire en code.
Entités à trousLa Bastide-de-Sérou (09) encercle une autre commune, celle de Suzan. Ces deux communes ont un arc en commun (d’indice 1 ou -2). La Bastide a deux arcs, qui sont aussi deux “rings” fermés. La convention pour qu’un trou apparaisse dans un tel multi-polygone est que le sens de ces anneaux diffère (typiquement clockwise pour le ring principal, anti-clockwise pour le trou). Ce trou correspond à la commune de Suzan, décrite par un indice d’arc opposé. Rappel : -2 et 1 désignent le même arc, mais de façon inversée.
Un multi-polygone se reconnait à ce que son vecteur d’arcs est un vecteur de vecteurs (voir les crochets emboîtés). La définition de Suzan se retrouve dans la définition de La Bastide-de-Sérou, à cela on identifie la paire que forment une commune trouée et une autre enclavée.
Pour rendre la comparaison plus évidente, il est utile de passer les indices d’arc en “valeur absolue” (au décalage de 1 près lors du changement de signe). Ainsi la définition simplifiée de La Bastide-de-Sérou devient : [ [ 0 ], [ 1 ] ] à comparer avec [ 1 ] pour Suzan. On voit bien que la première englobe la seconde.
Entités isoléesTrès simple ici, il s’agit d’une entité sans voisins identifiés. On retrouve là essentiellement des îles.
Entités en plusieurs parties distinctesOn peut l’approcher comme une entité multi-polygonale qui ne serait pas trouée…
Comment utiliser TopoJSONJ’exposerai plus en détail comment procéder dans de prochains articles. Mais pour commencer à jouer avec TopoJSON, il faut d’abord être en mesure de générer ce format, ou d’accéder à des fichiers déjà constitués. Mapshaper exporte très rapidement vers TopoJSON un fichier de format d’origine shapefile ou GeoJSON. Il est aussi en mesure de lire tout fichier TopoJSON, de le visualiser et de procéder à quelques traitements topologiques : généralisations, fusions géométriques.
La librairie D3 offre de très utiles fonctions en complément, dont un calcul de la liste des voisins de chaque entité d’une couche (cf. topojson.neighbors()). Elle sait dessiner une carte en Javascript, et donc dans un navigateur, à partir d’un fichier TopoJSON.
Outre mapshaper et D3, de nombreuses technologies peuvent exploiter TopoJSON en mode web ou bureautique : D3/Observable, Magrit, Khartis, Datawrapper, PowerBI… Géoclip valorise également un format topologique en reprenant les principes du TopoJSON dans un format binaire encore plus compact.
Voici pour les curieux d’une implémentation concrète un premier aperçu, sous forme de jeu topologique, mais grandeur réelle.
Ce fichier CSV présente une série d’informations topologiques pour chaque commune de France, en 2020 : liste des voisins triée par azimuth, territoires enclavés, troués, en bordure… Nous verrons ultérieurement comment il a été élaboré à partir du fichier TopoJSON.
RécapitulatifTopoJSON est un format de description de couches cartographiques, typiquement des maillages administratifs. Facile à générer et à lire, puisque textuel, Il est optimisé pour une exploitation en ligne, dans un navigateur.
Décomposant les formes en arcs élémentaires, il accélère les traitements géométriques par des boucles plus courtes, tout en maintenant la contiguïté initiale des entités. Il facilite également généralisations et regroupements géométriques.
Informant sur la topologie, c’est-à-dire les relations d’adjacence entre territoires, il permet enfin des analyses spatiales originales.
Pour en savoir plus sur le format topologique
et TopoJSONLe concept de topologie dans les systèmes d’information géographique n’est pas neuf. Il est même, paradoxalement, fondateur de la discipline.
ARC/INFO, le premier logiciel SIG moderne, valorisait dès les années 1980 un format de « couvertures » décrivant et garantissant l’intégrité topologique, érigée à l’époque comme valeur cardinale.
Ces principes ont quelque peu perdu de leur vigueur avec la naissance du format Shapefile, à l’occasion de la sortie d’ArcView 2 (Esri) au début des années 1990. Shapefile n’est pas topologique, Esri l’a conçu comme une alternative plus démocratique. Il offrait à l’époque bien plus de souplesse que le format topologique d’ARC/INFO : pour digitaliser en masse et afficher rapidement les cartes sur les ordinateurs de l’époque.
Car l’intégrité topologique amène beaucoup de contraintes de saisie et impose un peu de calcul pour reconstituer des polygones et les dessiner à l’écran.
Avec le web et la montée en puissance de la cartographie statistique, la topologie, sa compacité, sa flexibilité reprennent des couleurs, d’autant que les fonds de carte administratifs supports de datavisualisations sont généralement produits par des organismes soucieux de qualité …topologique.
TopoJSON a été formalisé, pour des besoins concrets de publication web, par Mike Bostock, à l’époque data-journaliste au New-York-Times, par ailleurs chercheur en datavisualisation, concepteur et programmeur de génie. Outre la description topologique, il incorpore des astuces complémentaires pour réduire encore la taille des fichiers (quantization, delta-encoding). Bostock s’est aussi inspiré des travaux antérieurs de Mark Harrower et Matthew Bloch, créateurs du toujours fringant mapshaper, construit lui-aussi autour d’un mécanisme de décomposition topologique.
Ressources- Dépôt officiel github TopoJSON
- Présentation de la décomposition topologique, Mike Bostock, 2013
- The TopoJSON Format Specification
- Présentation du format topologique, Rencontres Décryptagéo, Yannick Lafont, 2014
- Understanding Topology and Shapefiles, David M. Theobald,2001
L’article Les trésors cachés de TopoJSON, format cartographique et topologique est apparu en premier sur Icem7.
-
11:45
(Ne) généralisons (pas) !
sur Cartographie – Icem7« Il ne faut pas généraliser » est une formule fréquemment employée, qui invite à la prudence et au discernement : ne confondons pas tout, ne tirons pas de conclusion globale à partir de quelques situations particulières.
En cartographie, et plus largement pour toute représentation visuelle, généraliser est utile, voire indispensable. Éric l’explique de manière magistrale dans son dernier article Un fond de carte France par commune optimisé pour le web et l’analyse statistique. Mon associé dans notre nouvelle aventure icem7 déploie ses talents de pédagogue pour décrire les contraintes techniques de la généralisation, à partir de sa longue expérience de statisticien-cartographe.
Généraliser, c’est aussi ce que cherche à faire la statistique, en visant à dégager des caractéristiques d’ensemble, à partir de données recueillies sur une population. Pour éviter l’écueil de la généralisation abusive, la statistique requiert de s’appuyer sur de grands nombres d’observations.
Mais là n’est pas le sujet. Pour vous reposer et vous distraire un peu, après cette plongée dans les subtilités du code officiel géographique, de la qualité topologique d’un fond de carte ou du bon positionnement d’un centroïde, je vous invite à aborder le sujet sous un angle plus visuel.
« La carte n’est pas le territoire. » [1]
Le cartographe, comme tout utilisateur de cartes, le sait bien : une carte est toujours une représentation simplifiée de la réalité du terrain. Elle s’appuie toujours sur des choix et suppose une simplification plus ou moins grande, selon l’objectif visé. Les livres ou les cours de sémiologie cartographie le rappellent : une carte peut mentir.
Pour observer combien une carte correspond à un objectif de son auteur et à un besoin de son lecteur, rien ne vaut une plongée dans les innombrables couches du Géoportail. Prenons un même lieu, par exemple le site emblématique de la baie du Mont-St-Michel, en Normandie [2]. Parmi toutes les représentations disponibles, retenons-en par exemple trois.
Photographie aérienneC'est l’image la plus « réaliste », même si elle serait toute autre, selon la saison ou la marée. Elle évoque une œuvre d'art abstrait, alternant courbes et lignes droites, teintes vertes et couleur sable.Carte topographiqueC'est le résultat de conventions sur les symbolisations, par exemple le bleu représente de l'eau. (Mon goût pour la marche a choisi la version adaptée à la randonnée [3])Limites administrativesC'est la plus austère, celle qui correspond au besoin du statisticien-cartographe, pour servir de support à des analyses thématiques. Previous NextVoici un lien pour visualiser directement sur le Géoportail ces trois représentations de la baie du Mont-St-Michel. Bien d’autres sont accessibles, toutes aussi instructives. Je vous recommande notamment celles qui permettent de voyager dans le temps, en affichant d’autres couches : des cartes ou vues aériennes des années 50, d’anciennes cartes d’état major et même la carte de Cassini.
Ces images sont vues du dessus, selon une vision cartographique. La même comparaison peut être faite sous un autre angle, avec trois autres images : une photographie, un dessin illustratif et un dessin schématisé. Tout l’art de la simplification réside dans le choix des éléments clés à conserver, pour produire un résultat homogène. L’intention esthétique est plus marquée dans cette vue, même si elle n’était pas totalement absente de la vue cartographique.
PhotographieUn exemple publié sur une banque d’images gratuites parmi les milliers qui représentent ce rocher singulier, mondialement célèbre.IllustrationUne image représentant un tableau à l’aquarelle, comme il en existe certainement d’innombrables quantités, en cartes postales, posters ou autres tableaux.Dessin schématiséUne représentation au style graphique très stylisé, appartenant une série représentant des villes ou des lieux emblématiques, un peu partout dans le monde. Previous NextMon choix de ces trois images, effectué dans des banques d’images libres de droit [4], est évidemment arbitraire, simplement guidé par mes préférences esthétiques du moment. J’aurais pu par exemple opter pour une image encore plus simplifiée, une simple silhouette ou une ligne de contour. Il est toujours amusant de constater combien nos yeux sont capables de reconnaître une image déjà vue. Mon cerveau est capable d’identifier sans hésitation le Mont-Saint-Michel, alors même que je n’y ai jamais mis les pieds : un vrai champion de la généralisation !
[1] Ce célèbre aphorisme
dépasse le domaine de la cartographie. Il fait par exemple partie des concepts de base en PNL : chaque individu dispose de sa propre représentation du monde, des difficultés de communication naissent donc inévitablement des différences entre les représentations de chacun.[2] Nous ne reviendrons pas sur l’immémoriale autant qu’irréconciliable querelle « Le mont Saint-Michel est-il breton ou normand ? », nous nous en tiendrons à ce qu’indique le Code Officiel Géographique, qui rattache cette commune au département de la Manche, qui est lui, indiscutablement normand.
[3] Il n’y a pas moins de 4 sentiers de grande randonnée qui aboutissent au célèbre Mont ou qui en partent : le GR 22, le GR 34, le GR 39 et le GR 223 ! J’espère bien marcher sur l’un d’entre eux un jour, en particulier ceux qui longent la côte.[4] Les banques d’images sont Freepik (merci au photographe vwalakte) et 123rf (merci aux auteurs iconisa et condello)
L’article (Ne) généralisons (pas) ! est apparu en premier sur Icem7.
-
12:20
Un fond de carte France par commune optimisé pour le web et l’analyse statistique
sur Cartographie – Icem7Je mets à disposition sur data.gouv.fr un fond de carte France par commune affiné pour la réalisation de cartographies thématiques, qu’elles soient diffusées en ligne ou à affiner dans un logiciel de dessin. Ce fond, dérivé de celui de l’IGN, est deux fois plus léger, homogène, rigoureusement topologique, utilisable France entière ou à l’échelle d’une région ou d’un département. Cet article explique à quels critères il répond et comment je l’ai préparé à partir de sources plus détaillées.
Un fond de carte adapté à la datavisualisation se doit d’être élégant, compact et épuré. Il est au service des données statistiques détaillées qu’il va permettre d’exprimer de façon très visuelle. Il doit d’une certaine manière savoir s’effacer devant la donnée, dissimuler les détails inutiles, tout ce qui pourrait brouiller la compréhension immédiate des phénomènes exposés. Pour autant, chacun doit pouvoir reconnaître les territoires qui lui sont familiers, de près comme de loin. L’art de la généralisation consiste à trouver le meilleur compromis.
D’autres techniques sont présentées ici, comme placer un symbole au meilleur endroit au sein d’un territoire : le milieu n’est pas toujours là où on le croit !
C’est enfin une nouvelle occasion de mettre en avant la puissance et la richesse fonctionnelle de l’outil web gratuit mapshaper, déjà présenté dans ce blog. Cet outil est rapide et très efficace en matière de généralisation : il préserve parfaitement l’emboîtement des territoires qu’il simplifie.
Fond de carte France par commune au 1er janvier 2020
Pour visualiser France par commune directement dans mapshaper
Le cahier des charges du fond idéalLa France est découpée en un peu moins de 35 000 communes, 34 968 exactement au 1er janvier 2020, département et régions d’outre-mer (Droms) compris, de la Guadeloupe à Mayotte. Il existe quantité d’indicateurs statistiques sur les communes. Pour les analyser dans l’espace géographique, on a besoin d’un fond de carte de ces communes, qui exprimera visuellement les phénomènes par des colorations, des symboles, voire des déformations géométriques. Mais quelles sont les caractéristiques idéales d’un tel fond de carte, dans une double optique de rigueur statistique et de diffusion tous médias ?
Il doit tout d’abord se conformer au Code Officiel Géographique (COG), tenu à jour par l’Insee. Un jeu de données se rapportant au maillage communal officiel au 1er janvier 2020 sera ainsi projeté sur un fond de carte décrivant exactement les mêmes communes, identifiées par les mêmes codes Insee.
Pour représenter la France dans son ensemble, les 5 « Droms » seront rapprochés de la métropole. Plutôt que créer des cartes séparées pour les assembler in fine sous forme de cartouches dans un logiciel de dessin, il est plus commode de partir d’une couche cartographique déjà aménagée.
Le degré de précision des tracés communaux sera optimisé en fonction de deux critères a priori adverses. Tout d’abord alléger la définition géométrique du fond de carte, ce que l’usager d’une carte interactive sur le web appréciera, elle se chargera plus vite et réagira de façon fluide à ses interactions. Mais aussi maintenir pour les géographes et habitants une morphologie reconnaissable et acceptable de leurs points de repère caractéristiques (estuaires, grandes îles…) ou de leur propre commune, quelle qu’elle soit. Une triangulation « à la Voronoï » n’est pas une option soutenable !
Simplifier les tracés d’un fond de référence très détaillé (Cadastre, BD Topo, numérisation collaborative…), c’est aussi ce que l’on nomme « généraliser ». Une bonne généralisation sera homogène dans l’espace et préservera l’emboitement parfait des contours. La qualité topologique d’un fond de carte se mesure à l’aune de la qualité des frontières entre deux territoires, qui doivent se dessiner en un tracé net, évitant toute béance ou recouvrement disgracieux. Un fond « parfaitement topologique » peut se décrire sous une forme allégée, à partir des frontières entre les territoires (les « arcs ») et non du tracé complet de chaque entité. Le gain de description (et donc de poids) est presque de moitié, chaque frontière n’étant décrite qu’une fois, ce qui procure une fluidité accrue en ligne. Outre le code Insee, le fond de carte embarquera quelques attributs normalisés : le libellé de chaque commune dans sa définition officielle, le code département, le code région. Des informations complémentaires s’avèreront précieuses pour habiller la carte ou dessiner certaines analyses : le statut administratif (permettant d’isoler des chefs-lieux, des capitales) et la localisation de la mairie (pour optimiser le centrage des symboles). Ce fond de carte idéal sera enfin gratuit, librement réutilisable, et disponible dès que de besoin, c’est-à-dire à l’officialisation d’un nouveau millésime de COG (en général vers le mois de mars pour la validation définitive, après recours éventuels). 2 sources majeures : IGN ou OpenStreetMapLa plateforme data.gouv.fr propose tout d’abord ce jeu de ressources OpenStreetMap :
- export simple du 1er janvier 2020 (shp zippé, 222 Mo),
- export de janvier 2019 (geojson simplifié zippé, 24 Mo).
Je considère d’abord le premier, qui correspond au millésime que je recherche (2020). Mais il a un poids considérable, il faudrait sérieusement le généraliser pour répondre à mon cahier des charges ! La précision des contours est parfois assez variable d’une commune à l’autre. Il présente aussi à plusieurs endroits des défauts topologiques, qui vont compliquer son exploitation (les regroupements géométriques seront entachés de scories).
Je note enfin qu’une commune (Bernwiller) a conservé son code d’avant 2016, qui n’est donc pas le bon (68031 => 68006).La version 2019 simplifiée est dix fois plus légère, elle mérite examen, bien que plus ancienne. Sa qualité topologique est a priori excellente. En revanche, pour une dizaine de communes au moins, il y a écart avec le COG de 2019, des fusions n’ont pas été prises en compte.
En attendant une version simplifiée conforme au COG 2020 (remarques et suggestions transmises au gestionnaire), la piste « extrait OSM via data.gouv » doit donc être écartée.
Considérons la seconde option, celle du fournisseur public et historique, l’IGN. L’Institut Géographique National a longtemps diffusé un fond de limites administratives généralisées sous la dénomination Geofla qui, avant 2014, était particulièrement légère. L’Insee valorise encore cette ancienne version, en l’éditant chaque année au rythme des fusions et scissions. On peut trouver sur insee.fr un fonds communal 2020 (et même plusieurs) dans cette précision, mais il est présenté de façon incidente comme illustration du zonage des zones d’emploi 2020, et non en tant que fond communal que l’Insee s’engagerait à mettre en ligne chaque année après la validation du COG. Je ne peux donc retenir l’Insee comme source de diffusion officielle. Pourtant, le fond Insee, tout comme l’ancien Geofla, représente un beau compromis précision/légèreté/homogénéité. C’est un exemple dont j’aimerais me rapprocher.
Depuis 2017, la gamme ADMIN-EXPRESS, sous licence ouverte, a pris la place de Geofla à l’IGN. “Les données source du produit ADMIN-EXPRESS-COG sont mises à jour annuellement à la suite de la publication du COG par l’Insee.“
Deux versions sont en réalité présentées dans ce paquet conforme au COG, la première à moyenne échelle correspond à la précision de la BD Carto, et la seconde, qui éveille bien évidemment mon attention, est “une version généralisée pour un usage de cartographie statistique en particulier.“
ADMIN-EXPRESS-COG généralisé de l'IGN
constitue la meilleure base de travailConsidérons cet ADMIN-EXPRESS-COG simplifié :
- il présente une excellente topologie et une belle homogénéité de généralisation ;
- il est bien totalement conforme au COG 2020 (comme son nom l’indique) ;
- il présente une couche de chefs-lieux avec la position de la mairie et le statut administratif des communes ;
- il est encore un peu lourd (2 fois plus que la version Insee), mais je vais jouer à le généraliser.
Pour situer les idées voici un tableau résumé du poids du fichier de géométries pour différents produits (mesure en Mo sur le fichier .shp) :
OSM détail OSM simplifié IGN ADMIN-EXPRESS-COG simplifié IGN ADMIN-EXPRESS-COG Insee 300 35 40 115 17 Voici donc mon programme, en partant de ADMIN-EXPRESS COG « généralisé » :
- le simplifier encore plus, en visant un poids d’une vingtaine de Mo,
- ajouter les îles d’Hyères, en m’aidant de la version plus détaillée,
- rapprocher les Droms,
- constituer une couche ponctuelle de centroïdes cohérents avec les limites communales,
- redessiner l’estuaire de la Loire (cf. Annexe).
Tout cela avec le seul outil web mapshaper !
Dans le paquet ADMIN-EXPRESS-COG, je vais récupérer la version France entière en WGS84 et plus précisément les 3 couches COMMUNE (version standard), COMMUNE_CARTO (version simplifiée), et CHEF_LIEU_CARTO. Elles couvrent la métropole et les Droms.
Généralisation = simplification topologique des contoursJ’utilise mapshaper pour conduire cette exploration. Après avoir récupéré ADMIN-EXPRESS-COG, je me rends donc sur mapshaper.org. Et je fais glisser d’un coup, à partir de l’explorateur de fichier par exemple, le paquet des 5 fichiers COMMUNE_CARTO.xxx dans le navigateur, par exemple dans la partie basse de l’interface pour un import rapide. La métropole et les 5 Droms s’affichent, en WGS84, soit une représentation longitude/latitude. Je vais d’abord opérer dans ce cadre et reprojeterai plus tard vers un système métrique.
Métropole, Antilles, Guyane, Mayotte et la Réunion J’ouvre la console par le bouton en haut à droite, et colle le code suivant, qui va simplifier le fond de carte en en conservant que 40 % de ses sommets initiaux.
-simplify target=COMMUNE_CARTO 40%
La puissance de cette commande, et c’est ce pourquoi mapshaper a été d’abord conçu, c’est que la simplification/généralisation préserve la qualité topologique de la couche, c’est-à-dire ici l’emboitement parfait des communes. C’est tout simplement parce que les contours géométriques ont d’abord été décomposés en arcs frontières. Les arcs sont simplifiés, et les nouvelles communes reconstruites en tant que chaines ordonnées d’arcs. L’unicité des frontières est donc préservée.
Une commande comme -simplify commence par un tiret, le paramètre target précise la couche visée, pour le moment, je n’en ai qu’une. Voici un exemple pour illustrer le résultat d’une telle simplification. Le chef-lieu de cette commune se trouve (mairie) dans le petit morceau résiduel, que je tiens donc à garder. Préserver cette situation particulière est l’une des raisons qui me fait retenir ce facteur de 40 %, à savoir une simplification en gros de moitié. Si je poussais plus loin la généralisation, je perdrais un détail important.
Commune de Villefranche-de-Conflent (66) Il faut restaurer le Mont-St-Michel !
Mais il se trouve que j’ai déjà perdu, même si je ne l’ai pas vu tout de suite, un détail très important. Parmi le groupe des communes françaises à la morphologie particulière (avec des trous, en plusieurs morceaux…), une se distingue et elle est mondialement connue, c’est celle du Mont-St-Michel, à l’étendue singulière puisque qu’elle comprend deux ensembles. Ma généralisation a effacé le Mont et sa digue-route, ce n’est évidemment pas tolérable, surtout pour un Normand comme moi !
Commune du Mont-St-Michel (50), en 2 parties avec la digue qui mène au mont. Je supprime donc, via la liste au-dessus de la carte la couche COMMUNE_CARTO, recharge l’original par glisser-déposer, et applique cette fois-ci une généralisation différenciée, qui laissera intacte la commune du Mont-St-Michel, tout en simplifiant les autres !
-simplify variable percentage='INSEE_COM == "50353" ? "100%" : "40%"'
Rendons ses îles à HyèresLes versions standard et simplifiée d’ADMIN-EXPRESS présentent la commune d’Hyères (83) de façon radicalement différente. Il est intéressant de rajouter à la comparaison la version encore plus simplifiée, sur le papier, qu’était Geofla :
Hyères avec ou sans ses 3 principales îles De nombreuses communes en France ont des îles en complément de leur territoire continental, il ne s’agit pas de toutes les représenter. Mais Porquerolles, Port-Cros et l’Île du Levant appartiennent à la physionomie familière du département du Var ou de la région Sud. Je vais donc rétablir la pratique antérieure, celle adoptée dans Geofla, en réintégrant ces 3 îles à la commune d’Hyères. Pour ce faire, je les récupère dans ADMIN-EXPRESS standard. Je charge donc la couche correspondante, COMMUNE, dans mapshaper, puis exécute les lignes suivantes :
-filter target=COMMUNE "INSEE_COM=='83069'" \ -rename-layers target=COMMUNE iles_hyeres \ -explode \ -filter 'this.area<15000000 && this.area>1000000' \ -simplify target=iles_hyeres 10%
Rappel ou précision : les commandes mapshaper s’écrivent si besoin sur plusieurs lignes avec le signe \ (précédé d’un blanc). Le paramètre target précise la couche que la commande précédente “cible”, par son nom, ou son n° d’ordre en partant du bas de l’empilement des couches à l’écran.
Après avoir extrait la commune d’Hyères dans une nouvelle couche “iles_hyeres”, je la décompose en polygones élémentaires (explode), dont je retiens les 3 îles principales par un filtre sur la superficie. J’applique enfin une forte simplification.
J’assemble désormais ces deux couches, celle de toutes les communes de France (sans les 3 îles) et celle des 3 îles. Hyères étant après cette fusion décrite par 4 objets, j’applique un dissolve qui rassemble toutes les composantes d’Hyères en une seule entité, multi-polygonale :-merge-layers target=1,2 force name=a_com2020 \ -dissolve fields=INSEE_COM,NOM_COM,INSEE_DEP,INSEE_REG
Nous voici donc ramenés au fond communal 2020 avec ses 34 968 communes officielles, comme le confirme la commande -info. On verra que Hyères est en 1ère position dans la couche, ce que l’on peut améliorer en triant selon le code Insee :-sort INSEE_COM
Reprojection et déplacement
des régions et département d'outre-mer Notre fond de carte est actuellement très étendu et pour le rendre plus compact, je vais rapprocher les 5 Droms par une combinaison de translations et de mise à l’échelle. Je me ramène d’abord à un système de coordonnées métriques, dans la projection de Mercator (code EPSG 3857), celle adoptée par défaut par OpenStreetMap ou le Géoportail de l’IGN. J’aurais pu choisir la Lambert 93, mais pour une carte statistique cela n’a pas vraiment d’importance, la différence étant visuellement peu perceptible et sans intérêt analytique. Je privilégie ici la facilité de superposition avec les globes virtuels classiques. Mes choix d’ajustement pour les Droms sont évidemment discutables, mais au moins exposés, et donc ajustables. La Guyane est sensiblement réduite, mais reste visuellement plus importante que les autres territoires ultra-marins.-proj webmercator \ -affine where="INSEE_COM.indexOf('971')==0" shift=6355000,3330000 scale=1.5 \ -affine where="INSEE_COM.indexOf('972')==0" shift=6480000,3505000 scale=1.5 \ -affine where="INSEE_COM.indexOf('973')==0" shift=5760000,4720000 scale=0.35 \ -affine where="INSEE_COM.indexOf('974')==0" shift=-6170000,7560000 scale=1.5 \ -affine where="INSEE_COM.indexOf('976')==0" shift=-4885000,6590000 scale=1.5
Régions et département d'outre-mer rapprochés de la métropole Une transformation affine agrandit ou réduit (paramètre scale) en prenant par défaut comme centre de l’homothétie le milieu du rectangle englobant la zone (avant transformation). On obtient les coordonnées de ce point avec par exemple, pour la Guadeloupe :
filter 'INSEE_COM.indexOf('971')==0' + -rectangle -points -info
Ainsi, une écriture équivalente pour rapprocher la Guadeloupe, précisant le centre de l’homothétie (avant le déplacement) serait :-affine where="INSEE_COM.indexOf('971')==0" shift=6355000,3330000 scale=1.5 anchor=-6835567,1825092
Elle nous sera utile par la suite quand il s’agira de déplacer les points centroïdes des communes de chaque Drom de façon cohérente avec le déplacement des communes, car le rectangle englobant ces points n’est pas le même que celui englobant les communes. Je termine cette séquence par quelques aménagements cosmétiques (suppression et renommage de variables, tri) :-rename-fields codgeo=INSEE_COM,libgeo=NOM_COM,dep=INSEE_DEP,reg=INSEE_REG \ -drop fields=NOM_COM_M,type,INSEE_ARR \ -sort codgeo
Préparation d'une couche de chefs-lieux
cohérente avec la couche des limites communalesEn cartographie thématique, il est nécessaire d’associer à chaque commune un point-centre, qui servira par exemple à placer des symboles, comme un disque de surface variable, une forme simple, ou une étiquette. Certains outils ou packages s’en tiennent encore à un calcul assez rudimentaire de ce centre géométrique (cf. ci-contre).
Pour déterminer un tel « centroïde », plusieurs techniques sont mobilisables :
- le milieu du rectangle englobant le territoire,
- le barycentre des sommets du contour.
Pour aller plus loin, il convient :
- d’identifier au préalable le polygone de plus vaste superficie dans une entité multi-polygonale et de retenir celui-ci comme siège du centroïde,
- de vérifier que le résultat des calculs précédents est bien dans le polygone, sinon, proposer un point qui soit garanti à l’intérieur,
- de faire en sorte que ce dernier point garanti à l’intérieur soit éloigné des bordures.
Mapshaper propose, vous vous en doutez, cet algorithme le plus abouti, avec la commande -points inner.
Mais quand bien même on atteindrait ce dernier critère, figurer la population d’une commune de montagne en plaçant un symbole dans une zone en réalité inhabitée n’est pas très pédagogique. Mieux vaut chercher à restituer la zone la plus probable de concentration de population. De ce point de vue, la position de la mairie délivre une localisation plus réaliste.À droite, la concentration de la population dans cette vallée pyrénéenne est mieux figurée
ADMIN EXPRESS comprend précisément une couche d’entités ponctuelles, CHEF_LIEU_CARTO, qui représente la position des mairies de chaque commune. Je vais donc l’utiliser. Comme la documentation associée le précise : “Dans certains cas, le chef-lieu n’est pas dans la commune“. Cela fait partie des curiosités que nous allons (re-)découvrir ensemble. Commençons par faire glisser CHEF_LIEU_CARTO dans l’interface mapshaper.
Je pars de la couche appartenant au paquet initial, donc en WGS84, ce qui veut dire que les chefs-lieux des Droms sont à leur position géographique. Je dois donc, après reprojection, les rapprocher en utilisant les mêmes règles que pour les limites communales. Comme expliqué plus haut, le paramètre anchor est ici nécessaire, afin de centrer la mise à l’échelle de la même façon que pour les communes :-proj webmercator \ -filter 'STATUT !="Arrondissement municipal"' \ -affine where="INSEE_COM.indexOf('971')==0" shift=6355000,3330000 scale=1.5 anchor=-6835567,1825092 \ -affine where="INSEE_COM.indexOf('972')==0" shift=6480000,3505000 scale=1.5 anchor=-6792785,1647381 \ -affine where="INSEE_COM.indexOf('973')==0" shift=5760000,4720000 scale=0.35 anchor=-5912255,437952 \ -affine where="INSEE_COM.indexOf('974')==0" shift=-6170000,7560000 scale=1.5 anchor=6181190,-2407474 \ -affine where="INSEE_COM.indexOf('976')==0" shift=-4885000,6590000 scale=1.5 anchor=5028338,-1439905
Chefs-lieux déplacés de façon cohérente avec les limites communales Je procède maintenant à un appariement topologique avec le fond communal. À chaque point sera associée la commune qui l’englobe. Normalement, ce devrait être la même que celle qui est indiquée dans la couche des chefs-lieux. Pour en avoir le cœur net, pointons les écarts et visualisons-les par un cercle rouge :
-join a_com2020 fields=codgeo,libgeo unjoined unmatched \ -style fill='grey' r=2 where 'INSEE_COM==codgeo' \ -style fill='red' r=5 where 'INSEE_COM!=codgeo' \ -sort 'INSEE_COM==codgeo?0:1'
En rouge les mairies qui demandent vérification de concordance
Une trentaine de points appellent vérification, voire ajustement. Il y a des situations attendues, ces communes dont la mairie est, on le sait, située en dehors. Et d’autres qui probablement proviennent de la généralisation : une mairie qui figurait bien dans les limites communales d’ADMIN EXPRESS, n’y est plus après ma simplification à 40 %, parce qu’elle était toute proche des limites initiales qui ont un peu bougé. Je me réjouis tout d’abord de constater que la mairie du Mont-St-Michel est positionnée de façon cohérente avec la précision de mon fond de carte communal !
La jointure réalisé par Mapshaper a également isolé ces non concordances dans les couches unjoined et unmatched. Car de façon symétrique, des communes se retrouvent sans chef-lieu. Après analyse, 4 cas de figure se dessinent :- Les “6 communes mortes pour la France” de la Meuse, non reconstruites après la Grande Guerre, sans habitant, dont on a décidé de conserver la mémoire en ne rattachant pas leur territoire à d’autres communes : Beaumont-en-Verdunois, Haumont-près-Samogneux, Bezonvaux, Louvemont-Côte-du-Poivre, Cumières-le-Mort-Homme et Fleury-devant-Douaumont ;
- Les 9 communes dont la mairie est officiellement située dans une commune voisine : Château-Chinon (Campagne) (58), Pourcharesses (48), Le Malzieu-Forain (48), Turquestein-Blancrupt (57), Taillepied (50), Rouvres-sous-Meilly (21), Le Plessis-Patte-d’Oie (60), Réez-Fosse-Martin (60), Demi-Quartier (74) ;
16 autres que la généralisation a séparé de leur mairie !
Mapshaper propose opportunément une option “drag points” qui rend l’opération aisée et pour ainsi dire ludique. Je peux relancer de temps en temps ce jeu d’instructions, et voir mes points rouges disparaître les uns après les autres :-drop fields=codgeo \ -join a_com2020 fields=codgeo \ -style fill='grey' r=2 where 'INSEE_COM ==codgeo' \ -style fill='red' r=5 where 'INSEE_COM !=codgeo'
Il me reste à stocker les coordonnées de ces centroïdes, car j’aimerais les injecter dans la couche des limites communales. Pour bien faire, je vais les calculer dans deux référentiels, celui de Mercator dans lequel je suis déjà, et WGS84 pour faciliter le traitement en GeoJSON. Au préalable, vérifions le nombre d’enregistrements de cette couche ponctuelle avec la commande info. Je note 35 421 points, alors que j’en attendais 34 968 – 6 = 34 962. C’est le signe qu’il y a des doublons (à signaler à l’IGN), que je vais éliminer avec la commande -uniq. J’en profite pour apprêter un peu mieux le résultat :-info \ -rename-layers p_com2020=CHEF_LIEU_CARTO \ -uniq INSEE_COM \ -drop fields=ID,INSEE_COM \ -info
J‘aboutis bien à 34 962 points. Ajoutons 4 colonnes avec les coordonnées de ces points, dans les référentiels EPSG 3857 et WGS84 (EPSG 4326) :-each "xcl3857=~~this.x;ycl3857=~~this.y" \ -proj wgs84 \ -each "xcl4326=this.x;ycl4326=this.y" \ -proj webmercator
Je peux maintenant ajouter à la table a_com2020 des limites communales les coordonnées de ces centroïdes. J’utilise un paramètre keys pour déclencher une jointure classique sur le code Insee (codgeo), et non une jointure topologique :-target a_com2020 -join p_com2020 keys=codgeo,codgeo fields=xcl3857,ycl3857,xcl4326,ycl4326
Export de ces deux couches dans 3 formats pour servir différents usagesPour stocker le résultat de mon travail, il me suffit de cliquer le bouton Export, et de choisir parmi les différents formats. Shapefile, GeoJSON et TopoJSON ont chacun leurs avantages :
- Shapefile est un format binaire compact, le plus largement utilisé dans le monde des systèmes d’informations géographiques. Il s’agit d’un format propriétaire élaboré par Esri. Il est performant et rapide à charger, même pour de gros fichiers, et il encode les données dans la projection choisie. C’est donc un choix pertinent pour un fond de carte volumineux optimisé pour une projection particulière, ce qui est le cas ici. Exporté avec l’option precision=1, qui arrondit les coordonnées métriques à l’entier, il représente, zippé, 9 Mo. La plupart des logiciels cartographiques le lisent. L’inconvénient de ce format est qu’il recouvre en réalité un lot de 5 fichiers différents, mais on peut souvent charger le zip directement, par exemple dans QGIS ou dans… mapshaper
- GeoJSON est un format texte, qui présente l’avantage d’être un standard ouvert (spécifié par un groupe de développeurs indépendants) et facilement lisible. Les fichiers sont en revanche plus volumineux, et la norme impose un encodage en WGS84 ;
- TopoJSON est une extension du format GeoJSON mise au point par Mike Bostock, créateur de la librairie D3, qui valorise la décomposition topologique en arcs qui est aussi au cœur de mapshaper. Cela permet de produire des fichiers bien plus légers et donc plus facilement utilisables sur le web (notamment avec D3). L’outil Magrit, qui limite la taille des fichiers en entrée à 26 Mo (non zippés), pourra charger la version TopoJSON de notre fond de carte, mais pas la version GeoJSON.
J’ai donc élaboré deux couches cartographiques relatives aux communes françaises, dans le référentiel normalisé du Code Officiel Géographique 2020 :
- a_com2020 : limites communales au 1er janvier 2020, simplifiées de moitié par rapport à la version originale ADMIN-EXPRESS, avec une définition proche de celle de l’ancien Geofla. Les Droms sont rapprochés. Cette couche comprend outre le code et le libellé officiel de chaque commune, quelques informations pratiques : département, région, coordonnées d’un centroïde pertinent.
- p_com2020 : centroïdes / chefs-lieux des communes. Cette couche renseigne également le statut administratif, ce qui permet de sélectionner par exemple les chefs-lieux de régions pour les afficher comme couche d’habillage.
Ces deux couches sont disponibles, sous différents formats, sur la plateforme data.gouv.fr. Elles seront naturellement complétées avec les versions 2021 dès la parution d’ADMIN-EXPRESS-COG dans ce millésime (vers le mois de mars).
Pour visualiser France par commune directement dans mapshaper
Pour aller plus loinJ’ai eu beaucoup de plaisir pendant cette exploration à découvrir encore de nouvelles fonctions mapshaper. Alors que je pensais devoir en passer par QGIS pour certaines étapes, il s’est avéré que mapshaper savait, quasiment, tout faire ! En tous cas tout ce dont j’avais besoin. Son créateur Matthew Bloch vient même de me communiquer un bon tuyau sur la simplification conditionnelle. Voici donc quelques ressources additionnelles pour approfondir votre connaissance de cet outil. Je salue également la qualité des fichiers produits par l’IGN, dont l’expertise en matière de généralisation nous permet, depuis bien des années, de réaliser des cartes statistiques web-compatibles.
- Liste des commandes mapshaper et wiki
- Introduction à mapshaper (ce blog icem7)
- Présentation du produit ADMIN-EXPRESS (IGN)
Les principaux estuaires sont dessinés de façon a priori illogique dans ADMIN-EXPRESS, plus cohérente dans Geofla. Geofla les évoque de façon claire, suffisante pour que l’on reconnaisse leur existence, mais sans chercher l’exactitude géographique, la limite de salure des eaux ou plus loin encore le trait de côte. ADMIN-EXPRESS simplifié présente toute la Gironde, évoque la Seine, et ignore la Loire. Plus curieux encore, ADMIN-EXPRESS simplifié est en réalité plus détaillé que la version standard dans le cas de la Gironde !
Intéressons-nous donc à la Loire, j’aimerais obtenir la découpe de droite, partant de la situation de gauche. Mon idée est de dessiner un pochoir, et de l’appliquer ensuite à mon fond communal.
Je sélectionne les communes en bordure d’Estuaire pour délimiter ma zone d’intervention, puis exporte cette sélection renommée com_loire au format geojson (j’applique au préalable une reprojection en WGS84 par -proj wgs84, car GeoJSON impose ce système de référence) :
Sélection manuelle de quelques communes
Mapshaper ne me permet pas de dessiner des formes géométriques libres (voilà, j’ai trouvé une de ses limites !), je vais en passer par un autre outil web gratuit : [https:]] . Une fois ces communes chargées, je dessine par dessus mon pochoir :
Édition d'un pochoir avec geojson.io Je supprime les communes qui m’ont servi de repérage pour ne conserver que le pochoir, que j’exporte à nouveau sous la forme d’un estuaire_loire.geojson, pour le charger dans mapshaper. J’applique une reprojection pour le superposer à ma couche communale à découper et je termine par un -erase :
-proj target=estuaire_loire webmercator \ -erase target=a_com2020 source=estuaire_loire
Fond communal avec l'estuaire de la loire redessiné
L’article Un fond de carte France par commune optimisé pour le web et l’analyse statistique est apparu en premier sur Icem7.
-
18:55
Émile Cheysson, représentant méconnu de l’âge d’or de la datavisualisation
sur Cartographie – Icem7L’Album de statistique graphique paraît annuellement de 1879 à 1895, puis tous les deux ans de 1895 à 1899. Cette vingtaine d’albums sont considérés par Michael Friendly, un chercheur américain qui en a rassemblé la collection complète, comme l’apogée du « Golden Age (1850-1900) de l’art de la data-visualisation ».
Après Charles Joseph Minard, Émile Cheysson, un autre polytechnicien des Ponts-et-Chaussées, y collecte et produit des planches d’une inventivité et d’un souci de composition remarquables. On peut en consulter en ligne[1] plusieurs dizaines de cartes et graphiques en très haute résolution et admirer la splendeur, l’originalité et la méticulosité de ce créateur méconnu.
Carte Figurative des Recettes des Stations des Chemins de Fer Francais en 1883.
This atlas is one in a series of annual or biannual editions; we have from the period 1879 – 1900. In French. Most maps have a detailed inset showing the map’s theme as it applies to the vicinity of Paris. The maps were inspired by the earlier work of Charles Joseph Minard (see our copies…
www.davidrumsey.com
Cette carte « figurative » des recettes des stations de chemins de fer est quasiment un cartogramme, les symboles ne se chevauchent jamais, l’auteur a su décaler subtilement les symboles (voir Sète, à l’époque orthographié Cette, ou Rivesaltes). La légende est en elle-même un roman… Le rayon dépend bien de la racine carrée de la valeur. La réalisation est impeccable.
L’on découvre une bien curieuse anamorphose ici, où la baisse des prix des voyages est figurée par un rétrécissement progressif du territoire, comme si ses marges devenaient soudain plus accessibles…
Baisse de Prix des Voyages en France depuis 1800.
This atlas is one in a series of annual or biannual editions; we have from the period 1879 – 1900. In French. Most maps have a detailed inset showing the map’s theme as it applies to the vicinity of Paris. The maps were inspired by the earlier work of Charles Joseph Minard (see our copies…
www.davidrumsey.com
Émile Cheysson innove encore avec cette représentation spatio-temporelle des évolutions de population (« cartogrammes à foyers diagraphiques »), le rouge figurant les pertes, le gris, les gains, par rapport à l’année de référence, milieu de la plage de l’analyse.
Mouvement quinquennal de la population française par département de 1861 à 1881 Il revient donc à un statisticien américain, Friendly, d’avoir remis en lumière cette production considérable, que peu de spécialistes (à l’exception notable de Gilles Palsky[3]) connaissaient aussi en détail en France. Michael Friendly se passionnait dans les années 1990 pour les graphiques en mosaïques, qu’il appliquait de façon originale à la représentation visuelle de tableaux de contingence.
A l’occasion d’une visite en France, en 1995, Antoine de Falguerolles, statisticien de l’université de Toulouse, lui présente cette carte, qui l’électrise littéralement (« it knocked me off the chair i was sitting on[2] » ). Friendly a devant les yeux un travail qui fait écho à ses propres recherches, mais de plus de 100 ans précurseur du sien ! Il va alors s’employer à rassembler tous les albums. Coup de chance, 2 ans plus tard, on l’informe qu’un libraire de la rue des Beaux-Arts à Paris en détiendrait la collection complète. Friendly se précipite à Paris. Renseignements pris, il peut les acquérir tous pour 10 000 francs. Il propose alors de créer une association de chercheurs passionnés qui pourra rassembler cette somme. Constituée en une semaine à peine, elle se dénomme « Les Chevaliers des Albums de Statistique Graphique ». En voici les membres, autour de la tombe de Charles Joseph Minard au cimetière du Montparnasse, sur laquelle ils ont fait poser une plaque (2017) exposant son plus fameux graphique.
Tombe de Charles Joseph Minard au cimetière du Montparnasse Avec les Albums, Michael Friendly découvre « the most amazing graphics, a collection of new and modern graphic forms[2] ». Ce choc esthétique le conduira, quelques année plus tard, à créer le Milestones project[4] (2002), une histoire de la datavisualisation avec tous ses jalons, ses innovations décisives, ses personnages emblématiques. Le graphique suivant synthétise l’évolution du volume de ces développements depuis le 16ème siècle, et met en évidence un Golden Age[5], dont les plus illustres représentants furent selon lui Charles Joseph Minard, Émile Cheysson, Florence Nightingale et Francis Galton.
The time distribution of events considered milestones in the history of data visualization
Autre facteur favorable, vers 1850, les techniques lithographiques ont été adaptées à l’impression couleur, lui permettant d’être utilisée comme une variable visuelle importante dans la conception de cartes thématiques et de diagrammes statistiques. Les Albums en sont une illustration remarquable.
Friendly[5] célèbre ainsi le travail d’Émile Cheysson :
« These Album de Statistique Graphique can be considered the pinnacle of the Golden Age, an exquisite sampler of nearly all known graphical forms, and a few that make their first appearance in these volumes »
Terminons par deux citations d’Émile Cheysson en personne, lors d’un exposé[6] prononcé à l’Exposition Universelle de 1878 : « Un diagramme n’est pas allemand, anglais ou italien ; tout le monde saisit immédiatement ses rapports de mesure, de surface ou de coloration. On est donc en droit de le dire : la statistique graphique est la véritable langue universelle, et permet aux savants de tous les pays d’échanger librement leurs idées et leurs travaux, au grand profit de la science elle-même. » « Dans le même ordre d’idées, je signale aussi l’abus des longues légendes. Un diagramme qu’on ne devine qu’à travers les explications d’un long texte pêche gravement contre la méthode. » Pour en savoir plus[1] Les Albums de statistique graphique – David Rumsey Collection
[2] A conversation on historical datavisualisation, Friendly, Rendgen, Lima, 2020
[3] Des Chiffres et des cartes, Gilles Palsky, 1996
[4] The Milestones project, Friendly, Denis, 2002
[5] The Golden Age of Statistical Graphics, Friendly, 2008
[7] L’ingénieur d’État ou le père de famille : Émile Cheysson et la statistique, Desrosières, 2008
L’article Émile Cheysson, représentant méconnu de l’âge d’or de la datavisualisation est apparu en premier sur Icem7.
-
15:00
Mapshaper, un outil précieux pour visualiser et affiner des fonds de carte
sur Cartographie – Icem7Un fond de carte (ou une couche) reste un objet mystérieux, dans son format comme dans son maniement numérique, pour qui n’est pas familier d’outils spécialisés comme QGIS ou tout autre logiciel SIG. Je vais vous montrer comment l’outil web Mapshaper peut spectaculairement vous simplifier la tâche, que vous soyez novice ou géomaticien chevronné.
Zones d'emploi 2020, Île de France et Droms déplacés, ZE multi-régionales en orange
Plus précisément nous allons voir ici comment, avec un simple navigateur :
- visualiser une couche cartographique vectorielle (format shp ou geojson),
- reprojeter une couche,
- déplacer certains territoires,
- agréger une couche en regroupant des entités géographiques,
- personnaliser le style (contour, remplissage) des objets géographiques,
- apparier un fond de carte et un fichier csv,
- exporter le résultat de son travail vers divers formats géographiques, statistiques ou graphiques,
- comparer 2 couches polygonales (2 zonages), visualiser leurs intersections,
- ajouter des formes géométriques simples.
Cet exposé est plutôt technique. Mais vous pouvez dans tous les cas reproduire vous-même toute la séquence.
L’Insee vient de publier la nouvelle définition des 306 zones d’emploi (2020) et met à disposition un fond de carte (au format shapefile) zippé. J’ai souhaité travailler ce fond de carte en vue d’analyses statistiques ultérieures. Mon exploration a nourri cet article. Chargement du fond de carte dans MapshaperLa première chose à faire pour visualiser rapidement un fond de carte, c’est donc d’aller sur mapshaper.org, vous pouvez par simple glisser-déposer y charger votre fichier, zippé ou pas.
Allons-y donc avec ce fond_ZE2020_geo20.zip. Il s’affiche en un clin d’œil. Mais avec ce fichier proposé par l’Insee, double surprise, l’étendue est bien large, les Droms (départements et régions d’outre-mer) figurant à leur vraie position géographique, et il semble y avoir un peu plus que 300 entités géographiques !
Métropole, Antilles, Guyane, Mayotte et la Réunion
L’icone flèche de l’interface active les fonctions de survol et je comprends assez vite qu’il s’agit d’un fond communal (cf. champs code et libelle), dans lequel figurent toutefois 2 informations complémentaires : le code (ze2020) et le libellé (lb_clst) de la zone d’emploi englobante. J’ai donc a priori suffisamment d’information pour constituer le vrai fond de carte des zones d’emploi 2020. J’aimerais aussi le rendre plus compact, en rapprochant les Droms de la métropole.
J’ouvre la console (bouton en haut à droite), et entre :-info
Le message renvoyé me précise que j’ai affaire à une couche de 34 968 polygones, dans un système longitude/latitude (non projeté). Sans trop réfléchir, je tape alors les lignes suivantes :-proj crs=epsg:3857 \ -affine where="code.indexOf('971')==0" shift=6355000,3330000 scale=1.5 \ -affine where="code.indexOf('972')==0" shift=6480000,3505000 scale=1.5 \ -affine where="code.indexOf('973')==0" shift=5760000,4720000 scale=0.35 \ -affine where="code.indexOf('974')==0" shift=-6170000,7560000 scale=1.5 \ -affine where="code.indexOf('976')==0" shift=-4885000,6590000 scale=1.5 \ -rename-layers fond_com2020
Vous pouvez copier/coller ce bloc dans la console, ce qui devrait vous amener, après Entrée, à ceci :Un joli fond reprojeté et compact, avec les Droms rapprochés Cette disposition me va bien. Toujours saisi par l’inspiration, je rajoute :
-dissolve ze2020 +
Fond compact des zones d'emploi 2020 !
Plutôt pas mal ! Je suis déjà tout proche de ce que je voulais créer, une couche de 306 zones d’emploi, compacte, réutilisable. C’est le moment de détailler la signification de ces commandes tapées dans la console Mapshaper.
Une chaine de commandes peut s’écrire sur plusieurs lignes, la fin de ligne étant matérialisée par un \ (précédé d’un blanc). Les commandes Mapshaper commencent par un – et peuvent donc s’enchaîner dans un tunnel de traitements.
J’ai d’abord reprojeté avec -proj la couche communale vers un système métrique classique, la projection dite de Mercator, codée selon la norme EPSG avec 3857. Cette projection va ici me simplifier l’étape suivante, consistant à rapprocher les Droms, sans trop les déformer. J’aurais pu écrire cette ligne de façon alternative -proj webmercator, des alias sont disponibles pour les projections les plus courantes (taper projections pour les afficher).
Les lignes -affine translatent, puis agrandissent ou rétrécissent chacun des Drom afin de les aligner plus ou moins harmonieusement sous la métropole. Je suis amené ici, dans un souci de lisibilité, à agrandir les Antilles et les îles de l’océan indien, et à réduire la Guyane, relativement aux territoires métropolitains. Ces instructions de déplacement (ajustables) sont à conserver précieusement, car je peux vouloir les appliquer, plus tard, à d’autres couches ajoutées (villes, etc.) pour conserver un alignement parfait sur mes Droms rapprochés.
Nombre de commandes ont un paramètre de filtrage possible, sous forme d’une instruction javascript (where=”…”)
Enfin, l’opération la plus spectaculaire est la fusion géométrique, agrégeant les communes en zones d’emploi. Il suffit de préciser, après la commande -dissolve, la variable de regroupement.
Le signe + en fin de commande indique à Mapshaper qu’il faut créer une nouvelle couche. Sinon, c’est la couche courante qui sera remplacée par le résultat du traitement.
Affinage et export de la couche des zones d’emploi 2020 Le bouton flèche (ou la commande -info) m’informe que cette couche des zones d’emploi n’a qu’une colonne (ze2020). Le fond est par ailleurs dénommé d’une façon inesthétique ([unnamed layer]). Ajustons cela :-target fond_com2020 \ -dissolve ze2020 copy-fields=lb_clst + name=fond_ze2020 \ -rename-fields lib_ze=lb_clst -style fill='#f6f6f6' stroke='#ddd' \ -dissolve + name=contour_france -lines -style stroke='#666' stroke-width=1.5
Explications : par défaut, une commande opère sur la couche active (la dernière créée ou modifiée par exemple). Si je veux reprendre un traitement sur une autre couche (ici, je veux repartir de fond_com2020), je la cible au préalable avec la commande -target. Pour préciser la ou les colonnes additionnelles à conserver lors de la fusion géométrique (ici le libellé des zones d’emploi), j’utiliserai après -dissolve le paramètre copy-fields. Après le +, le name nomme la couche résultat du traitement. La commande -rename-fields renomme une colonne de façon plus lisible. Un style graphique (léger grisé avec contours) est affecté aux zones d’emploi. Je crée enfin une nouvelle couche de contour général de la France, convertie en polyligne, pour rehausser l’ensemble.
L’interface de Mapshaper offre quelques possibilités d’actions plus simples, pour supprimer des couches, les renommer, les réordonner, en contrôler la visibilité, il suffit de dérouler la liste figurant au-dessus de la carte.
Le bouton export propose une batterie de formats possibles, soit de type SIG, que je pourrai retravailler dans un logiciel spécialisé comme QGIS, ou D3/Observable en topojson, soit SVG pour affinage par exemple dans Illustrator ou affichage dans une page web. Je choisis un export Shapefile de la couche fond_ze2020. Un zip est généré, que je peux faire “glisser”, par exemple, dans l’interface de QGIS, si j’ai cet outil SIG dans ma mallette personnelle. Comme on peut le constater, cette couche est parfaitement géoréférencée et réutilisable. J’aurais pu la simplifier au préalable, via le bouton Simplify, en convoquant de puissants algorithmes de généralisation (cf. article à venir).
Fond des zones d'emploi dans QGIS, par dessus une couche OpenStreetMap D’où vient Mapshaper ?
C’est un outil créé et activement maintenu par Matthew Bloch, qui travaille aujourd’hui au New-York Times. Il a initié ce projet en 2005, sous la supervision de Mark Harrower de l’Université du Wisconsin. J’ai eu le plaisir d’échanger avec Matthew dès 2007, nous partagions à l’époque le même engouement pour Flash/Actionscript, PHP et les optimisations de performance de rendu web. Mapshaper est en effet d’une vélocité et d’une fluidité incroyable, je connais peu de programmes capables d’afficher des fonds de carte volumineux aussi vite, avec zoom et interactivité fluides (à part Géoclip, et même mieux que Géoclip…)
Bloch et Harrower ont construit Mapshaper à partir de 2 fonctionnalités-clés : un algorithme de décomposition topologique (bien avant que Mike Bostock – D3 – ne popularise le format topojson), et un process de généralisation privilégiant l’algorithme de Visvalingam-Whyatt, plus efficace que le classique Douglas-Peucker. Mapshaper a évolué pour répondre aux besoins très pratiques des data-journalistes du New-York Times, tout en restant libre d’accès et open-source. Matthew est toujours à l’écoute de “feature requests”, même s’il a peu de temps libre.
Cette carte, préparée avec Mapshaper avec la commande -clip et réalisée par Tim Wallace, un collègue de Matthew, a été primée au 25ème concours international d’infographie de presse Malofiej.
Les fonctions décrites dans cette page ne représentent qu’une fraction des possibilités de Mapshaper, raison pour laquelle il y aura trois autres articles ! Mais celui-ci n’est pas encore terminé, restons concentrés !
Ajout des nouvelles régionsLes zones d’emploi s’inscrivent pour la plupart dans les régions administratives, sauf 14 d’entre elles. Il est parfois utilisé une variante dite “régionalisée” du maillage des zones d’emploi (ZE), qui subdivise ces ZE à cheval sur plusieurs régions.
Nous allons donc voir comment avec Mapshaper comparer zones d’emploi et régions, identifier les ZE multirégionales, constituer le zonage alternatif découpé strictement selon les régions. Ces opérations topologiques nécessitent habituellement d’en passer par des bibliothèques géographiques spécialisées. Avec Mapshaper, aucun logiciel à installer, un simple navigateur web suffit.
Le fait d’être parti d’un fond communal nous facilite la tâche, nous pouvons essayer de l’agréger par région. Comme nous avons déplacé les Droms, nous obtiendrons une couche cohérente avec celle des zones d’emploi. Il nous manque juste pour le moment l’information “code région”, qui ne figure pas dans le fond de carte proposé par l’Insee. Qu’à cela ne tienne, nous allons chercher la correspondance commune => région dans un fichier csv externe, et l’ajouter au fond communal par jointure.
Une grille de points apparait à l’écran, c’est simplement parce que ce csv n’est pas un fond de carte. Entrons ces instructions de filtrage puis de jointure, notre fond communal va réapparaître :Sur cette page Insee, j’accède à la liste des communes en géographie 2020, format csv, avec un code région associé, téléchargeons donc le fichier csv zippé proposé, pour l’importer dans Mapshaper par glisser/déposer. Pour déjouer un petit piège de conversion caractère => numérique, je précise une option string-fields=* (sans quoi un code 01 risque de devenir 1) : tous les champs importés seront typés caractère par défaut.
-filter target=communes2020 "typecom=='COM'" \ -join target=fond_com2020 communes2020 keys=code,com fields=reg
Un filtrage préalable du csv s’impose ici car cette liste de communes comprend aussi des communes déléguées, ce qui amène à des doublons de code Insee. La commande -join précise la clé de jointure entre les deux tables (fond géographique des communes et nouvelle liste des communes), et permet de spécifier la seule colonne nouvelle (reg) que l’on veut ainsi injecter dans le fond géographique (sinon, toutes les colonnes du fichier joint seront ajoutées).Au survol de fond_com2020, je peux maintenant vérifier que le champ reg est bien présent. Je vais maintenant fusionner les communes en régions. La nouvelle couche polygonale ainsi créée (nommée fond_reg2020) est ensuite convertie en une couche de polylignes. Cette couche de limites régionales est plus légère que la couche polygonale dont elle est dérivée, car les frontières communes à deux régions ne sont décrites qu’une fois : c’est l’un des charmes de la décomposition topologique ! Mapshaper ajoute un attribut TYPE permettant de différencier les frontières intérieures des autres. Nous l’utilisons pour affecter un style graphique différent au contour général de la France.
-dissolve target=fond_com2020 reg + name=fond_reg2020 \ -lines + name=contour_reg \ -style stroke="#999" where='TYPE == "inner"' \ -style stroke="#333" where='TYPE == "outer"'
Régions avec un style différent pour les limites intérieures, par dessus les zones d'emploi en gris Sur la page Insee du Code officiel Géographique utilisée précédemment, nous téléchargeons cette fois le fichier csv des régions, afin de récupérer le libellé des régions. Nous l’insérons dans Mapshaper par glisser/déposer, toujours avec l’option string-fields=* , et déclenchons l’appariement :
-join target=fond_reg2020 region2020 keys=reg,reg fields=libelle \ -rename-fields lib_reg=libelle
Nous voilà donc avec un fond des régions, tout à fait cohérent et superposable au fond des zones d’emploi. Filtrage des zones d’emploi d’une région choisie Examinons ce cas d’école : je m’intéresse à la région Hauts-de-France et ses zones d’emploi. Comme 2 ZE débordent en Normandie, je peux envisager 3 variantes pour cartographier :- les ZE entièrement comprises dans les Hauts-de-France (ne couvrant pas toute la région),
- les ZE strictement réduites aux Hauts-de-France, év. découpées pour ne garder que la partie Hauts-de-France (notion de ZE régionalisées, formant une partition de la région),
- les ZE qui intersectent d’une manière ou d’une autre les Hauts de France (débordant parfois).
Dans un logiciel SIG ou une base de données spatiale, je peux utiliser des instructions du type contain, intersect, within… Mais elles ne sont pas disponibles dans Mapshaper, ce qui m’oblige à faire preuve d’imagination. Je vais utiliser la commande -clip. Au préalable, je cible la région Hauts-de-France que je place dans une nouvelle couche reg32 :-target fond_reg2020 -filter "reg=='32'" + name=reg32 \ -target fond_ze2020 -each "area=this.area" \ -clip reg32 + name=zeclipped32 -each "typo_clip=area==this.area?0:1" \ -style fill="typo_clip==1?'#e8f5f5':'#fef8ed'" \ -lines target=reg32 -style stroke-width=1.5 stroke='#1e9b9e'
J’ai ensuite stocké dans une variable area la surface de toutes les ZE de France, ce qui me permet de la confronter avec la nouvelle surface des ZE après application du -clip par la région 32. Si égalité il y a, la ZE est bien complète, sinon, c’est qu’elle est découpée. La variable typo_clip me permet de distinguer les 3 cas de figure ci-dessus. Je joins enfin les couches fond_ze2020 et zeclipped32 pour filtrer à ma guise :-target fond_ze2020 -join zeclipped32 fields=typo_clip keys=ze2020,ze2020 \ -target fond_ze2020 -filter 'typo_clip==0' + name=ze32_v1 \ -style fill='#fef8ed' \ -target fond_ze2020 -filter 'typo_clip!==null' + name=ze32_v3 \ -style fill="typo_clip==1?'#e8f5f5':'#fef8ed'"
Zones d'emploi intéressant la région Hauts-de-France Comparaison topologique entre zones d’emploi et régions pour toute la France Nous disposons de deux fonds France entière cohérents, fond_ze2020 et fond_reg2020, nous allons pouvoir les comparer et analyser leurs intersections de façon plus globale.
-drop target=fond_com2020 \ -merge-layers target=fond_ze2020,fond_reg2020 force name=fond_ze2020_reg \ -mosaic target=fond_ze2020_reg calc='ze2020=min(ze2020),reg=min(reg)' \ -filter 'ze2020 !==null' \ -dissolve fields=ze2020,reg
-drop libère un peu de mémoire en supprimant la couche communale dont nous n’avons plus besoin (pas indispensable, mais c’est bien de faire le ménage de temps en temps). -merge-layers concatène les deux couches, ajoutant donc les régions aux ZE, le paramètre force fait que les colonnes de l’une et de l’autre sont toutes récupérées (on retrouve donc deux colonnes ze2020 et reg, partiellement remplies). -mosaic analyse les superpositions entre objets de la couche, et les découpe en fonction, de façon à obtenir une mosaïque d’objets plus petits, sans chevauchements. calc permet d’affecter à chaque objet découpé à la fois le code ze2020 et le code reg. Un dernier dissolve s’impose car -mosaic individualise toutes les petites îles. Comme le confirmera la commande -info, Nous sommes passés de 306 zones d’emploi à 320 zones d’emploi régionalisées, 14 ZE ont ainsi été divisées car elles chevauchaient une frontière régionale. Comment puis-je les mettre en évidence ? Les familiers de la logique SQL auront déjà trouvé la réponse. Je vais regrouper cette couche des ZE régionalisées par code ze2020, en comptant le nombre de régions associées. La variable nreg ainsi créée est testée pour affecter une couleur orange aux ZE à cheval :-dissolve fields=ze2020 calc='nreg=count()' + name=ze_reg \ -style fill="nreg>1?'#f4b84d':'#f6f6f6'" stroke="nreg>1?'purple':'#ccc'"
Zones d'emploi à cheval sur 2 régions mises en évidence en orange Touche finale : déplacement de l’Ile-de-France et ajout de cadres Je déplace et agrandis l’Ile-de-France, à l’instar de ce qu’il est fréquent de faire avec Paris et sa petite couronne, pour mieux visualiser les phénomènes qui les concernent :
-affine target=ze_reg where="ze2020.substr(0,2)=='11'" shift=-650000,275000 scale=1.5 \ -dissolve target=ze_reg + name=newcont -style stroke='#666' -lines
Je cible les Droms pour dessiner un rectangle qui les englobe, puis je procède de même pour l’ensemble de la couche :-target ze_reg -filter "ze2020>='01' && ze2020<'11'" + name=droms \ -rectangle offset=5km \ -rectangle target=ze_reg offset=20km + name=cadre \ -merge-layers target=droms,cadre name=cadre -lines -style stroke='#1e9b9e'
Conclusion
Mapshaper nous a permis de de réaliser des opérations puissantes et élaborées sans besoin d’installer un logiciel spécialisé en traitements spatiaux. Il est capable d’opérer sur des fonds de carte habituels en usage statistique (France, voire Europe par commune) sans ciller. Il faut certes maîtriser un langage de commandes pour en exploiter tout le potentiel, et l’objet ici n’est pas de les retenir par cœur, mais de savoir qu’elles existent et ce qu’elles permettent de faire. L’instruction -help donne le détail des paramètres de chaque commande (par exemple -help affine).
Il est possible de se passer des commandes de la console, en utilisant les menus de l’interface, pour mettre en œuvre des opérations simples mais néanmoins très utiles :
- charger un fond de carte shp et le convertir en geojson ou topojson pour le réutiliser dans un autre outil requérant ces formats,
- simplifier un fond de carte pour le rendre plus facilement publiable sur le web (cf. prochain article),
- et tout simplement visualiser un fond de carte vectoriel, quel qu’il soit, quand la plupart des autres services en ligne explosent à partir d’un certain volume.
3 articles à venir sur le présent blog :
- Préparation d’un fond France par commune optimisé pour le web et l’analyse statistique
- Les trésors cachés de TopoJSON, format cartographique et topologique
- Mapshaper et R : productivité maximale !
Autres ressources externes :
- Liste des commandes Mapshaper et wiki
- Mapshaper Mini-Workshop, Matthew Bloch, Nacis, 2017
- Mapshaper.org: a map generalization web service, Bloch, Harrower, 2006
- Dasymetric reaggregation using Mapshaper
- Fusion de polygones avec Mapshaper (italien)
L’article Mapshaper, un outil précieux pour visualiser et affiner des fonds de carte est apparu en premier sur Icem7.
-
17:34
Projections du monde
sur Cartographie – Icem7Quand on regarde une carte mondiale, il n’est pas toujours simple d’identifier la projection utilisée. Bon ici, on comprend assez vite qu’il ne s’agit pas de la vieille Mercator !
Mais si l’on n’est pas sino-centrique, quel pourrait être le meilleur choix ?
La Chine se cartographie au centre du monde
Révolutionnaire, cette vision de la planète, qui brise la représentation occidentale, a été adoptée par la défense nationale chinoise.
Le Monde.fr
À regarder ce qui se publie en ligne (atlas, journaux, sites cartographes), les plus fréquentes sont :
- Robinson,
- Winkel III,
- Gall-Peters,
- Natural Earth (II),
- et en France, Bertin (1953).
Essayons de comprendre le contexte d’apparition de chacune, leurs forces et leurs faiblesses.
L’américain Arthur Robinson pose en 1963 une démarche originale. Il explique : « I started with a kind of artistic approach. I visualized the best-looking shapes and sizes. » Il plie ensuite les mathématiques à sa vision, cherchant les formules lui permettant de la reproduire. Sa projection, dont la définition est publiée en 1974, se veut un bon compromis, offrant une image du monde agréable.
Projection de Robinson
Elle élimine le fameux Greenland problem, anomalie qui présente chez Mercator cette île de la même superficie que l’Afrique (alors qu’elle n’en fait que le 1/14ème). La National Geographic Society se met à utiliser, en 1988, la Robinson projection et contribue à la légitimer.
Mais en 1998, la NGS lui préfère et sort ainsi de l’ombre une projection plus ancienne, la Winkel Tripel, crée par Oscar Winkel en 1923. Elle traite un peu mieux les latitudes extrêmes et donne à la carte un aspect plus sphérique, les parallèles n’étant plus tous horizontaux. Elle cherche à minimiser 3 distorsions : de surface, de direction et de distance, ce à quoi fait référence le terme allemand Tripel.
Projection Winkel-Tripel
A la même époque que Robinson, l’allemand Arno Peters, historien et réalisateur, déclenche en 1973 une tempête politico-cartographique avec ce qu’il affirme être « the most accurate representation of the world », une projection parée de toutes les qualités, préservant les surfaces.
Projection de Gall–Peters
Peters dénonce avec force le biais de la projection de Mercator et ses utilisateurs : « Elle surévalue l’homme blanc et déforme l’image du monde au profit des maîtres coloniaux de l’époque ». Peters veut redonner au tiers monde sa véritable importance, avec sa superficie réelle.
Il séduit l’Unicef, l’Unesco, des mouvements tiers-mondistes voulant présenter une vision démographique et sociale du monde plus équitable. Mais les cartographes académiques l’attaquent avec une rare violence, cherchant même à bloquer la parution du Peters Atlas of the World, 1991.
On lui reproche :
- d’avoir fait des erreurs de calcul, de prétendre à tort qu’elle respecte exactement les surfaces,
- d’avoir plagié l’écossais James Gall (1855), d’où la dénomination « Gall-Peters » désormais retenue pour cette projection,
- de délivrer une représentation “laide” et trompeuse.
Robinson va jusqu’à cingler : « La carte de Peters est une attaque astucieuse, astucieusement trompeuse contre la cartographie. Les masses terrestres font quelque peu penser à des sous-vêtements d’hiver longs, mouillés et déchiquetés, accrochés pour sécher sur le cercle arctique ».
Ce débat est toujours d’actualité. En 2017 les écoles publiques de Boston remplacent toutes leurs cartes du monde par celle de Peters, ravivant la polémique antérieure.
Boston public schools map switch aims to amend 500 years of distortion
A district will drop the distorted Mercator projection, which places imperialist Europe at the center of the world, for the Peters, a fairer guide to the globe
the Guardian
En réponse à cette controverse rallumée, Patterson, Jenny et Šavri? se mettent en quête d’un compromis capable de satisfaire l’aspiration esthétique de Robinson et la préservation des surfaces chère à Peters. Ils mettent au point une nouvelle projection baptisée Equal Earth.
Projection Equal Earth
La carte murale Equal Earth réalisée par Tom Patterson en 2018 est une magnifique illustration de ce travail. Elle est librement téléchargeable et représente une merveille de traitement sémiologique, comme le décrit Laurent Jégou dans l’article ci-dessous.
J’aimerais bien dénicher une belle impression de cette carte murale !
Une carte exemplaire : la carte murale Equal-Earth
Sources et ressources : La carte est disponible en ligne, au format image JPEG mais aussi Adobe Illustrator vectoriel, selon trois centrages sur les méridiens 0°, 90°W et 150°E. Son utilisation est libre, elle a été placée dans le domaine public par son auteur, Tom Patterson (du service cartographique des parcs nationaux des USA). La…
Carnet (neo)cartographique
Patterson et ses collègues sont aussi connus pour avoir conçu la projection Natural Earth (et sa variante II en 2015). A l’instar d’Arthur Robinson, ils sont partis d’une démarche visuelle, avec un outil interactif qu’ils ont mis au point, Flex Projector. Natural Earth est l’une des projections du monde les plus populaires, d’après un panel de près de 500 cartographes interrogés par Patterson en 2016.
L’anglais Danny Dorling, connu pour ses cartogrammes, propose une réponse originale à la recherche de la représentation fidèle des superficies. Ce n’est pas une projection, mais la simple application de son algorithme d’anamorphose à la variable « surface » : brilliant !
Cf. The atlas of the real world.
The Atlas of the real world - Land area
Un Français ne saurait terminer cette présentation sans évoquer la création originale de Jacques Bertin, cette projection de 1953 est présentée ici. Elle a le mérite de préserver à peu près les surfaces, sans pour autant trop déformer les pays. Elle présente une faible distortion au pôle nord, zone stratégique pour les cartes géopolitiques. Elle est devenue populaire chez les cartographes français, grâce au travail de Philippe Rivière et son intégration dans l’outil Magrit de l’UMS_RIATE.
projection Bertin 1953
Voici un site bien pratique pour visualiser des projections et les comparer visuellement : [https:]]
L’article Projections du monde est apparu en premier sur Icem7.
-
16:57
La « brutale éloquence » de Minard
sur Cartographie – Icem7Charles Joseph Minard est connu pour sa Carte figurative des pertes successives en hommes de l’armée française dans la campagne de Russie 1812-1813, « probablement le meilleur graphique statistique jamais dessiné » d’après le statisticien sémiologue Edward Tufte.
Ce que l’on sait moins, c’est que Minard l’a publiée à 88 ans, un an avant sa mort survenue en 1870. C’est le geste artistique ultime d’un homme dont les dernières années ont été les plus fécondes.
Vite reconnue pour sa puissance visuelle et sa « brutale éloquence » (Étienne-Jules Marey), cette carte appartient en réalité à une planche plus vaste, figurant en vis-à-vis les pertes de la marche d’Hannibal de l’Espagne vers l’Italie, et celle de Napoléon. Minard a utilisé volontairement la même échelle numérique pour ces 2 figures, afin d’en faciliter la comparaison.
Il avait connu en 1813 les rigueurs du siège d’Anvers par l’armée prussienne. A la fin de sa vie, malade, infirme, sentant l’histoire se répéter, avant de quitter Paris pour fuir l’avancée allemande, il souligne ainsi l’énormité des pertes humaines de son siècle et l’absurdité de la guerre.
C’est une fois retraité, à 70 ans, que Minard s’est montré le plus créatif et pionnier dans le domaine de la statistique, discipline encore jeune, et de la cartographie « figurative ». S’il s’est spécialisé dans les cartes de flux, il a été le premier à utiliser des camemberts sur une carte.
Avant le très original traitement de l’axe temporel dans sa carte sur la campagne de Russie de 1812-1813, il avait proposé des cartes comparatives, à échelle constante dans le temps. A la rigueur du légendage et du commentaire s’ajoute ici un graphique de synthèse, avec des courbes d’évolution.
La carte de la campagne de Russie est tellement iconique que, tel le tableau d’un grand peintre ou la photo d’un modèle, elle a fait l’objet de retouches anonymes. La célèbre planche que l’on voit publiée chez Tufte ou sur Wikipedia est en réalité une copie de l’original conservé en France, avec de subtiles améliorations de netteté (typographie), mais aussi une légère altération des couleurs. Norbert Landsteiner avance qu’Elaine Morse, autrice d’une méticuleuse version anglaise de ce graphique, en est probablement à l’origine (peut-être a-t-elle voulu s’exercer avant de se lancer dans la traduction).
(Now Go Bang!) Minard / Morse / Tufte and Authenticity on the Web
Observations on information spread and authenticity of well-known objects on the Internet.
Now Go Bang! — mass:werk / Blog
Noter cette curieuse mention apposée par Minard
pour conclure sa fresque, comme pour souligner l’inanité de toute cette aventure : « Les Cosaques passent au galop le Niemen gelé ».
Quelques jours auparavant, le franchissement de la Bérézina n’avait pourtant pas été le désastre que l’on croit. Les historiens la considèrent comme « une bataille victorieuse menée dans une campagne perdue », car l’essentiel des maigres troupes restantes ont réussi à traverser, malgré l’opposition des trois armées russes.
Beaucoup s’interrogent sur cette branche qui relie Polotzk à Bobr. C’est à Polotzk que fut stoppée, dès le début de la campagne, l’avance vers le nord d’un corps d’armée mené par Nicolas-Charles Oudinot. Napoléon, tout en poursuivant sa marche vers Moscou, entendait alors faire pression sur l’empereur Alexandre réfugié à Saint-Pétersbourg. Contraint après la seconde bataille de Polotzk de rejoindre la Grande Armée de Napoléon en retraite, Oudinot la précède à Borisov et jouera un rôle crucial pour préparer et sécuriser le franchissement de la Bérézina. Il aura lieu un peu plus au nord, au niveau du petit village de Studienka.
Pour en savoir plus et découvrir l’extraordinaire richesse du travail de Charles Joseph Minard, avec des couleurs superbement conservées, il faut lire l’ouvrage de Sandra Rendgen, paru en anglais mais bientôt disponible en français (novembre 2020). En voici un aperçu : https://visionscarto.net/charles-joseph-minard-cinquante-cartes
Outre Edward Tufte, Minard continue d’inspirer d’éminents et jeunes chercheurs en datavisualisation, comme Mike Bostock (D3) ou Hadley Wickham (R/ggplot2), qui ont recréé, l’un avec protovis, l’autre avec R, leur propre version de cet incroyable graphique : http://datavis.ca/gallery/re-minard.php
L’article La « brutale éloquence » de Minard est apparu en premier sur Icem7.