Alors que je poursuis mes réflexions sur la spécification de la liste des prénoms des nouveaux-nés, je n’ai pas trouvé à mon grand désarroi, de référentiel simple contenant les communes françaises avec leur nom officiel et leur code INSEE. Vous allez immédiatement me répondre d’aller voir le COG, dont ça devrait être le rôle : quoi de plus officiel que le Code Officiel Géographique produit par l’INSEE, qui permet justement d’y trouver le fameux code INSEE ? Qui plus est, le COG est un jeu du Service public de la donnée, donc un jeu considéré, à juste titre, comme un des jeux les plus importants de l’État.
Le COG cependant, pose problème :
- il faut reconstituer le code commune “entier” (de type 01001) à partir du code département (01) et du code commune court (001)
- le nom de la commune est séparée en deux lorsqu’il y a un article (Le),Mans (deux champs) au lieu de "Le Mans"
J’ajoute, mais c’est presque secondaire, que le jeu est en ISO-8859-1, zipé, avec l’extension .txt et dans un format ésotérique : le standard CSV pour de la donnée de référence, c’est pas un minimum ?
Du coup ça complique beaucoup de devoir dire à des acteurs : vous prenez tel fichier du COG, vous agrégez les champs DEP et COM pour obtenir le code INSEE et vous reconstituez le nom de votre commune ou vos communes en agrégeant deux champs.
Je crois qu’on pourrait avoir un fichier tout de même considérablement plus efficace avec un peu de redondance en ajoutant le code INSEE complet et le nom en clair de type “Le Mans”. Il suffirait alors de dire aux acteurs : pour remplir ce champ, reportez vous au champ XXX du COG correspondant à votre commune.
Du coup je me suis produit mon propre petit fichier en 6 lignes de commandes (voir ci-dessous). Passé cette phase je me suis posé une question existentielle : et si je faisait profiter tout le monde de mon petit fichier ? et plus globalement, est-ce que ça aurait du sens de lancer une initiative pour publier des versions retravaillées de données fondamentales, dans un objectif de qualité et de simplicité d’usage ? Il pourrait s’agir d’un collectif informel qui créerait un groupe sur data.gouv.fr et proposerait 5 à 10 jeux de données essentielles de qualité respectant quelques principes simples tournés vers les usages.
Ça vous paraît inutile/délirant/farfelu/intéressant/indispensable ? À quelle données pensez-vous ?
#update : j’ai oublié de préciser que j’ai remonté ces problèmes du COG et demandé à Etalab s’ils peuvent faire évoluer le format, ce serait bien évidemment la meilleure solution.
Produire un fichier “nom de commune officiel + code INSEE” en 6 lignes de commandes (il faut installer csvkit (mais vous l’avez tous ; devrait fonctionner sous Linux et Mac, je ne garanti rien sur windows)
wget https://www.insee.fr/fr/statistiques/fichier/2666684/comsimp2017-txt.zip ; unzip comsimp2017-txt.zip
csvclean -t -e CP1252 comsimp2017.txt # conversion en CSV standard, UTF-8
csvcut -c DEP,COM,ARTMIN,NCCENR comsimp2017_out.csv > c3.csv # sélection des colonnes suffisantes pour obtenir le code commune et le nom de commune
perl -n -a -F, -e 'print "$F[0]$F[1],$F[2],$F[3]"' c3.csv > c4.csv # Fusion des colonnes DEP et COM pour obtenir le code INSEE complet
perl -p -e "s/ARTMIN,NCCENR/ARTMIN_NCCENR/; s/,\(/,/g; s/\),/ /g; s/\' /\'/g; s/,,/,/g" c4.csv > COG_communes_INSEE.csv
rm comsimp2017_out.csv c3.csv c4.csv