Message posté par : jfmoyen
----------------------------------------
Bonjour à tous,
Ci joint (en fait ci-lien) un petit traitement à partir des cartes géol harmonisées, dans
le but (1) de récupérer la liste de tous les types de polygones (formations géologiques)
possibles, en particulier pour les appliquer à la version 2019 qui ne les a pas conservés;
(2) de convertir les notations codées de façon ... exotique... en quelque chose de plus
proche (espérons) des bonnes pratiques.
https://www.dropbox.com/s/gfz4k65u2g6jmwm/LEGENDE_COMPLETE.csv?dl=0
Motivation et explications ci-dessous.
Récupérer les attributs de la carte Géologique au 1/50 000 harmonisée
1) Qu'est-ce qu'une carte harmonisée ?
======================================
Les cartes géologiques sont levées feuille par feuille (ou par groupe de feuilles). Chaque
feuille est sous la responsabilité d'une personne ou d'une équipe, parfois à des
années (> 50 ans dans les cas extrêmes !) de différence, souvent avec des
interprétations, des expériences ou des compétences différentes.
Chaque feuille est à l'origine un objet physique, où la géologie est représentée par
des surfaces de couleur (éventuellement avec des symboles), des polygones en SIG moderne.
Chaque couleur correspond à une formation géologique, à laquelle est associée une notation
(la notation est une suite de lettres romaines et grecques et de chiffres qui figurent sur
les cartes pour repérer les formations, par exemple Gz pour des dépôts glaciaires récents,
t1 pour le premier étage du Trias ... mais aussi quelque chose comme \gamma1-bt-ms pour un
granite à biotite et muscovite), une entrée de légende et une description plus ou moins
détaillées (de queques mots à plusieurs pages) dans la notice.
Une feuille, avec sa notice, est sous la responsabilité de ses auteurs (en fait c'est
un document d'interprétation, signé, avec un statut analogue à celui d'une
publication).
Par conséquent, les différentes feuilles sont incompatibles de multiples manières:
- Différences de géométrie (des objets ne se raccordent pas d'une feuille à
l'autre)
- Différences d'attributs (les mêmes objets se raccordent mais sont décrits
différement)
- Regroupements différents (par exemple une carte dessine des polygones regroupant 1 et 2,
la voisine 2 et 3)
- Choix différents de ce qu'il faut dessiner ou ignorer (souvent très net pour les
formations "superficielles", éboulis ou dépôts de rivière, dont la
représentation varie selon le choix des auteurs; mais des fois aussi on voit des
"écoles" différentes, ou simplement des gens plus sensibles à tel ou tel aspect.
Voire des cartographes moins compétents pour un type de roches ou un autre...).
Dans l'idéal, le travail d'harmonisation devrait permettre de construire une carte
unifiée sur tout le territoire, avec des géométries mises en cohérence, des attributs
identiques, et dans la mesure du possible des choix de représentation équivalents. Il
serait aussi souhaitable que chaque objet soit affecté d'attributs pertinents
permettant des regroupements aux échelles plus petites (généralisées); par exemple que les
couches du Kimmeridgien aient aussi un attribut "série = Malm", "système =
Jurassique", "ère = Mésozoïque".
Il y a plus de 1000 feuilles sur le territoire Français; la couche géologie comporte plus
d'un million de polygones. On comprend que le travail est considérable. Certaine
parties sont pûrement techniques (mettre en cohérence les attributs d'objets
identiques mais décrits de façons différentes); d'autres nécessitent des études
supplémentaires (tout ce qui touche aux choix de dessin ou aux interprétations).
Le BRGM a entrepris ce travail depuis une vingtaine d'années, d'abord en interne
(construction de cartes harmonisées départementales - lisez les rapports publics, celui
sur le département de la Haute Loire est assez complet par exemple :
http://infoterre.brgm.fr/rapports/RP-56860-FR.pdf ), abec un superbe travail
d'inventaire et, dans certains cas, de "bidouillage" des contours
géologiques pour les relier de feuille en feuille.
Puis, depuis ca. 2013 par le biais du projet "référentiel géologique de la
France" : le RGF a pour but de faire précisément ce travail, avec un volet
"technique" traité en interne et un volet "scientifique" mené via des
thèses universitaires, qui permettent de compléter l'information. Le RGF fonctionne
par "chantiers" avec une cohérence géologique. Un "démonstrateur"
portant sur les Vosges et le Fossé Rhénan a permis de valider le concept (ca.2010-2012).
Le premier chantier a porté sur les Pyrénées (2013-2018). Les chantiers en cours (depuis
2017) portent sur les Alpes et le Bassin de Paris.
Le BRGM communique assez peu les produits du RGF. (il communique surtout *à propos* des
produits du RGF) Il en existe des vidéos et parfois des accès WMS, plus ou moins bridés,
mais les fichiers source ne sont pas publiquement accessibles. Le chantier
"Pyrénées" a donné lieu à un prototype de carte au 1/50 000
"cohérente", accessible par WMS à l'heure ou j'écris (Mars 2022) (voyez
rgf.brgm.fr).
En revanche (comme dit dans ce fil) le BRGM a libéré les résultats de l'harmonisation
"technique", découpée par départements. On dispose donc d'une couverture
shapefile complète de la France (métropolitaine + Corse, les DOM/TOM sont traités par
ailleurs), sans trous. Les polygones équivalents sont regroupés de part et d'autre des
limites de feuilles (mais pas de départements). Ce n'est que quand les interprétations
sont vraiment incompatibles de part et d'autre d'une limite de feuille qu'il
persiste des limites de polygones Nord-Sud ou Est-Ouest.... et c'est en fait très
rare.
C'est déjà un travail colossal. Il reste cependant énormément de choses à faire :
l'harmonisation entre départements pour commencer, la mise en cohérence des légendes
(la même roche décrite de façons différentes dans deux polygones adjacents, hérités de
deux cartes), les attributs/interprétation (âge...), les incompatibilités de dessin
(formations superficielles). Voyez en Lozère la limite entre les feuilles de Langogne et
de St Chély d'Apcher pour une belle illustration...
Selon les départements, l'harmonisation est plus ou moins poussée. En Haute-Loire,
l'exemple que je cite, ils sont allé assez loin, jusqu'à redessiner des polygones
de formations superficielles qui étaient absents d'une des feuilles. En Lozère il est
manifeste que le travail a été moins fouillé.
2) Les fichiers de la carte géologique harmonisée
=================================================
Le BRGM a fourni deux générations de carte harmonisée, on les appelera ici 2015 et 2019.
En réalité il y a plusieurs couches et je fais référence ici surtout à la couche
"principale", celle des formations géologiques,
GEO050K_HARM_D##_S_FGEOL_2154.shp ou D## est le numéro du département. Il y a aussi des
couches pour les structures (L_STRUCT), les points d'intérêt divers (P_DIVERS), etc.
Les deux sont archivés chez C. Quest, à
http://data.cquest.org/brgm/bd_charm_50/2015/ et
.../2019/ respectivement, et des bonnes âmes ont pris le temps de mettre la totalité de la
version 2019 dans un geopackage unique :
https://www.data.gouv.fr/fr/datasets/couches-geologiques-harmonisees-assemb…
Pour autant que je puisse en juger les versions 2015 et 2019 ont les mêmes géométrie, mais
des attributs différents. La version 2019 a une couverture complète, mais il manque des
départements en 2015.
Disons-le tout de suite... autant je suis plus qu'admiratif devant le travail
géométrique de mise en cohérence, l'ampleur du boulot et la qualité du résultat final
(la plupart du temps si on ne sait pas où chercher on ne trouve pas les limites de
feuilles), autant je trouve que les choix d'attributs sont techniquement douteux et
reflètent une forme de réticence à vraiment libérer la donnée. Essentiellement, on a des
attributs (redondants) qui permettent de reproduire visuellement un document similaire aux
cartes imprimées (d'ailleurs le BRGM écrit sur les pages de téléchargement qu'il
se dégage de toute responsabilité au cas où on n'utilise pas leur symbologie !), mais
pas de faire des traitements sérieux. Et plus le temps passe, pire c'est:
Dans la version 2019
- On a un champ "notation" (cf. plus haut). Dans ce champ, les caractères grecs
ne sont pas stockés avec leur numéro de glyphe unicode (par exemple beta = U+03B2) mais en
utilisant des caractères arbitraires (par exemple pour beta, U+00E2, qui devrait
correspondre à un a circonflexe). Pour afficher correctement ces notations il faut
utiliser la police "BRGM_NOT" dans laquelle le code U+00E2 est représenté par un
caractère qui a la forme d'un béta. On ne peut donc pas représenter les étiquettes
avec une autre police (ni les lire correctement dans un autre logiciel d'ailleurs).
NB: En plus, la police BRGM_NOT comporte *aussi* les glyphes des lettres grecques avec le
bon unicode. On a donc un beta avec U+00E2, ce qui correspond normalement à a circonflexe,
ET un beta (légèrement différent visuellement) avec U+03B2, le vrai code du beta. BRGM_NOT
semble avoir été écrit en "écrasant" une police sans-serif, sans prendre la
peine de nettoyer les caractères "en trop"...
Le tableau d'équivalence (excel) est joint ici.
- Les objets ont tous des champs C_FOND, M_FOND, J_FOND, N_FOND, qui pris ensemble
permettent bien sûr de colorer correctement les polygones (ils ont aussi des champs C_SYMB
etc pour colorer les symboles éventuels). On peut donc facilement faire une carte avec les
bonnes couleurs (mais quelle redondance ! Une jointure avec une table légende serait plus
propre).
- Dans la version 2015, les objets ont de très nombreux attributs tels que AGE, NATURE,
EPAISSEUR etc. Ce sont les attributs utiles, ceux qui permettent de vraiment faire des
cartes thématiques utilisables, des traitements, etc. Toujours dans la version 2015, ces
attributs sont répétés pour chaque polygone (si on 100 pgones de la même roche, on a donc
100 fois la même quarantaine d'attributs). Là aussi, une jointure serait plus
astucieuse...
- ... mais la version 2019 ne donne plus accès à ces informations ! On n'a plus que
les notations, les couleurs, un "code " et un "code légende" (deux
attributs différents, des produits du processus de numérisation, cf. plus bas), et une
description sommaire.
Par ailleurs, la version 2019 donne une couverture complète. Dans la version 2015 il
manque des départements :
- 24, 33, 47, 88 (ils n'ont été harmonisés que plus tard)
- 03, 04, 13, 63, 79, 84, 86 (la version 2015 ne comporte que les variantes "style
2019" avec attributs minimalistes).
Les couches "style 2015" avec les attributs complets sont appelées
GEO050K_HARM_D##_S_FGEOL_CGH_2154.shp. Elles ont les attributs suivants :
[1] "MI_PRINX" "CODE" "CODE_LEG"
"NOTATION" "DESCR" "C_FOND" "M_FOND"
"J_FOND"
[9] "N_FOND" "NOM_SYMB" "C_SYMB"
"M_SYMB" "J_SYMB" "N_SYMB" "ROT_SYMB"
"TYPE_GEOL"
[17] "AP_LOCALE" "TYPE_AP" "GEOL_NAT"
"ISOPIQUE" "LITHOTEC" "EMERGE" "AGE_DEB"
"ERA_DEB"
[25] "SYS_DEB" "AGE1_DEB" "AGE2_DEB"
"AGE3_DEB" "AGE4_DEB" "AGE_FIN" "ERA_FIN"
"SYS_FIN"
[33] "AGE1_FIN" "AGE2_FIN" "AGE3_FIN"
"AGE4_FIN" "AGE_MIN" "AGE_MAX"
"AGE_ABSOLU" "TOLER_AGE"
[41] "TECH_DAT" "CAT_DAT" "AGE_COM"
"LITHOLOGIE" "DURETE" "EPAISSEUR" "ENVIRONMT"
"C_GEODYN"
[49] "GEOCHIMIE" "LITHO_COM"
Les couches "style 2019" avec attributs minimalistes sont
GEO050K_HARM_D##_S_FGEOL_2154.shp :
[1] "MI_PRINX" "CARTE" "CODE" "CODE_LEG"
"NOTATION" "DESCR" "C_FOND" "M_FOND"
"J_FOND" "N_FOND"
[11] "NOM_SYMB" "C_SYMB" "M_SYMB" "J_SYMB"
"N_SYMB" "ROT_SYMB"
On a donc le choix entre (1) une carte avec des bons attributs (les fichiers CGH, version
2015), mais pas tout à fait complète et (2) une carte avec des attributs partiels (version
2019), couvrant le territoire entier.
C'est d'autant plus vexant qu'il est manifeste qu'il existe quelque part
en arrière-plan une "look up table" qui permet de faire la jointure entre un
CODE et ses attributs... mais le BRGM ne l'a pas fournie, livrant à la place une
donnée (délibérément ?) dégradée.
.. ça veut donc dire que j'ai reconstruit, à grand peine et en moins bien, une donnée
existante mais pas fournie. Grrr.
3) Cette contribution
=====================
Dans l'idéal, il faudrait que la maison mère nous fournisse aussi la look-up table
complète pour qu'on puisse travailler proprement. En attendant, j'ai essayé de la
reconstruire à partir de la version 2015, sachant donc que
- on n'a pas tous les départements
- je n'ai pas de certitude absolue sur le fait que les NOTATION de 2015 soient bien
ceux de 2019. D'après les quelques sondages que j'ai fait on peut raisonnablement
l'espérer.
Pour autant que je puisse en juger, MI_PRINX est un identifiant unique, qui n'a pas
bougé entre les deux versions. CODE et CODE_LEG, NOTATION et DESCR me semblent identiques
dans les deux versions pour un polygone donné.
CODE_LEG correspond à l'ordre dans lequel la légende (pour un département donné)
devrait être imprimée (le plus jeune en haut, etc.). CODE correspond à l'ordre dans
lequel les formations ont été numérisées (toujours pour un département donné), feuille par
feuille et de haut en bas. Les numéros bas (1, 2...) sont presque toujours les alluvions
récentes ou les formations anthropiques et ont tendance à avoir la même place (tout en
haut) dans chaque carte, leur CODE et CODE_LEG sont souvent identiques et se retrouvent
d'un département à l'autre. Au delà de ça il n'y a aucune logique à priori.
Selon l'ordre de numérisation des cartes, une formation qui apparaît
"tardivement" dans un département (par exemple sur la 3e feuille numérisée, donc
peut etre avec un CODE de l'ordre de 100) devrait s'insérer entre des formations
plus jeunes (un CODE_LEG par exemple de 30). Il n'y a bien sûr aucune raison que les
CODE ou les CODE_LEG soient cohérents d'un département
à l'autre. En revanche, une combinaison (CODE, Dept) devrait être unique, de même
qu'une combinaison (CODE_LEG, Dept).
Par exemple, le CODE 123 peut correspondre à
# A tibble: 46 x 5
CODE CODE_LEG NOTATION Dept DESCR
<int> <int> <fct> <chr> <fct>
1 123 123 p-IVR 01 "Formations sableuses plio-quaternaires (alluvions
et/ou remaniement de sables pl~
2 123 39 e3cB(1) 02 "Sables et grès de Bracheux: poudingues et galets de
Montceau-les Leups et Versig~
3 123 115 n1-3 05 "Calcaires lités à silex et marnes. Néocomien non
subdivisé"
4 123 126 n4 06 "Barrémien : calcaires argileux"
5 123 123 e1-4 07 "Marnes rouges sableuses, sables, conglomérats -
Paléocène-Eocène inférieur"
6 123 100 d7a 08 "Formation de Famenne : schistes et siltites
(Famennien inférieur)"
7 123 74 e5c(1) 09 "Lutétien supérieur : Molasses de Carcassonne,
calcaires et marnes"
8 123 108 e7c1 11 "Eocène, Priabonien. Calcaire de
Villeneuve-la-Comtal"
9 123 104 m5â-â8ò 12 "Basalte et ankaramite à nodule de péridotite,
Volcanisme de l'Aubrac et sédiment~
10 123 94 r1R 14 "Schistes, grès, conglomérats et pélites
(\"Autunien rouge\")"
# ... with 36 more rows
Le CODE_LEG 123 regroupe
# A tibble: 49 x 5
CODE CODE_LEG NOTATION Dept DESCR
<int> <int> <fct> <chr> <fct>
1 123 123 p-IVR 01 "Formations sableuses plio-quaternaires (alluvions
et/ou remaniement de sables pl~
2 133 123 n1b-2a 05 "Marno-calcaires gris ocreux. Berriasien (sup) -
Valanginien basal"
3 120 123 n5b-c1 06 "Gargasien-Cénomanien : marnes bleues
gréso-glauconieuses"
4 123 123 e1-4 07 "Marnes rouges sableuses, sables, conglomérats -
Paléocène-Eocène inférieur"
5 151 123 d2a(2) 08 "Schistes et quartzites de Nouzon (Siégénien
inférieur)"
6 206 123 c4a(2) 09 "Santonien inférieur indifférencié : marnes et
calcaires"
7 170 123 e5b-c 11 "Eocène, Lutétien moyen. Argiles, marnes,
poudingues, grès de Saint-Quentin (Couc~
8 144 123 e7G 12 "Grès, sables à galets siliceux, argiles rouges
(Eocène supérieur)"
9 155 123 k2L 14 "Calcaires de Clécy et de Laize -la-Ville"
10 184 123 4â8 15 "Volcanisme de l'Aubrac - Basanite microlitique
(Miocène supérieur-Tortonien)"
# ... with 39 more rows
Même une paire (CODE,CODE_LEG) ne suffit pas à donner une description unique:
# A tibble: 10 x 5
CODE CODE_LEG NOTATION Dept DESCR
<int> <int> <fct> <chr> <fct>
1 123 123 p-IVR 01 "Formations sableuses plio-quaternaires (alluvions
et/ou remaniement de sables pl~
2 123 123 e1-4 07 "Marnes rouges sableuses, sables, conglomérats -
Paléocène-Eocène inférieur"
3 123 123 UIGû 23 "UIG : Intercalation de quartzite à biotite dans les
gneiss amygdalaires"
4 123 123 n4-5S 26 "Domaine méridional : Calcaires à Rudistes,
calcaires subrécifaux à Rudistes, cal~
5 123 123 d3 35 "Formation de la Foulerie: siltstones et mudstones à
lits lenticulaires calcareux~
6 123 123 t7-l1 39 "Grès miacés et marnes litées, schistes noirs
micacés à nodules calcaires, calcai~
7 123 123 h1-2îë 58 "Microdiorite, dolérite en filon"
8 123 123 Q/h2ió 71 "Greisen du Laudray (Namurien-Westphalien)"
9 123 123 îã 89 "Microgranite en filons"
10 123 123 e3sg NPC "Sables et grès, Thanétien sup résiduel"
NOTATION est un identifiant unique à l'échelle d'un département (donc (NOTATION,
Dept) est unique) et devrait tendre à être unique à l'échelle nationale (c'est du
moins ce qu'affirment les rapports qui décrivent la méthodologie) - en pratique ce
n'est pas le cas, des formations similaires mais pas forcément identiques portent le
même nom.
Il peut s'agir
- De différences sémantiques mineures, par exemple
CODE CODE_LEG NOTATION Dept DESCR
5 200 200 USGoæ 81 Orthogneiss oeillé de Najac, USG
6 98 89 USGoæ 82 Orthogneiss oeillé de Najac, Unité Supérieure des Gneiss
(USG)
(le æ, u00E6, est dessiné dans BRGM_NOT comme un zeta, u03B6)
ici il s'agit manifestement de la même formation géologique, c'est simplement le
vocabulaire utilisé pour la décrire qui diffère.
- De formations analogues (même âge) mais pas identiques :
# A tibble: 4 x 5
CODE CODE_LEG NOTATION Dept DESCR
<int> <int> <fct> <chr> <fct>
1 361 216 d3 09 "Emsien : dolomies, Schistes gris-vert, calcaires
bleus"
2 317 309 d3 29 "Schistes et grauwackes de Reun-ar-C'Hrank:
alternances de schistes et bancs de gr~
3 123 123 d3 35 "Formation de la Foulerie: siltstones et mudstones à
lits lenticulaires calcareux ~
4 170 196 d3 65 "Dévonien inférieur : Schistes argileux noirs à
intercalations calcaires"
Dans 4 départements différents, on trouve de l'Emsien mais il a des faciès différents
(ce sont des roches différentes, pas très étonnant on est à deux coins de la France; le d3
de l'Ariège et celui des Hautes-Pyrénées se ressemblent en revanche pas mal: au
vocabulaire près les deux descriptions parlent sans doute de la même roche).
On voit donc que l'identifiant unique le plus raisonnable est le couple (NOTATION,
Dept), qui désigne sans ambiguité (et de façon "user friendly") une formation
donnée. Avantage supplémentaire: pour les départements sans attributs (ceux qui sont dans
la version 2019 mais pas la 2015), on peut espérer que des formations de NOTATION
identique dans le département voisin, si elles existent, seront suffisament similaires
pour avoir une approximation acceptable.
En revanche, pour utiliser cette approche il faut ajouter le code département aux couches
de la carte géologique (qui ne les comporte pas, ni dans la version 2015 ni dans la 2019).
La requete st_intersects corresponsante est laissée au lecteur à titre d'exercice :-)
(*)
En prenant en compte ces limites, j'ai donc construit une table LEGENDE_COMPLETE qui
comporte
1) pour chaque paire (NOTATION,Dept), tous les attributs présents dans la version 2015.
Vous pouvez l'utiliser pour faire une jointure sur ces deux champs (en regénérant le
champ ddépartement) avec la version 2019 (ce qui devrait être équivalent à utiliser la
version 2015, du reste... mais dans un seul fichier, et avec une chance de compléter les
départements manquants).
2) Un champ NOTATION_UTF dans lesquels les glyphes utilisables seulement avec la police
BRGM_NOT ont été remplacés par leurs équivalents (ou équivalents proches, dans certains
cas) en UTF. Je sais, en principe il aurait fallu faire deux tables et une jointure de
plus, il y a de la duplication...
Le résultat est ici, pour usage libre de qui en a besoin. Notez que la table est encodée
en utf-8 (Par défaut, si vous ouvrez le ficher en double-cliquant, Excel ne reconnaît pas
l'utf-8 tout seul, il faut utiliser l'assistant importation [données |à partir du
texte] qui permet de régler manuellement l'encodage).
https://www.dropbox.com/s/gfz4k65u2g6jmwm/LEGENDE_COMPLETE.csv?dl=0
(*)
-----------------
Code :
library(tidyvserse)
library(sf)
geo50_gpkg <-
"Path/to/file/BRGM/Geol50/Geol50_Harm/GEO050K_HARM_PMIRG_D000-ED194/GEOLOGIE_FRANCE_GEO50K_HARM_ALL.gpkg"
geo50_2019 <- read_sf(geo50_gpkg, "GEO050K_HARM_001_S_FGEOL_2154")
dept_shp <-
"Path/to/file/IGN/BDCARTO_4-0_SHP_LAMB93_FR-ED211/ADMINISTRATIF/DEPARTEMENT.shp"
dept_map <- read_sf(dept_shp)
geo50_2019_with_dep <- st_join(geo50_2019, dept_map, join = st_intersects)
Franchement, elle est pas belle la vie ? ;-)
-----------------
----------------------------------------
Ce message est accompagné de fichiers, pour les télécharger, suivre le lien ci-dessous.
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=351663#p351663
Pour y répondre : donnees(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net