datagouv / decoupage-administratif

Données concernant le découpage administratif français, au format JSON
MIT License
55 stars 8 forks source link

Ajout des surfaces #44

Open aloxe opened 10 months ago

aloxe commented 10 months ago

Bonjour, pourquoi ne pas ajouter les surfaces des communes puisqu'elles sont disponibles ? https://geo.api.gouv.fr/communes?fields=code,nom,surface,departement,zone

aloxe commented 1 week ago

@ThomasG77 Je ne sais pas comment est produit le fichier decoupage-administratif/sources/donnees_communes.csv mais les surfaces pourraient y être ajoutées non ?

ThomasG77 commented 1 week ago

Actuellement, elles sont calculées dynamiquement lors d'une phase qui dépend d'une autre source au niveau de l'API Découpage Administratif.

On a un package qui s'appelle @etalab/decoupage-administratif qui est issu des données INSEE (donc sans aucune surface ni géométrie) A côté, on a un 2nd dépôt qui lui ne permet de se préoccuper que des géométries et dont les sources sont le produit Admin Express de l'IGN et OpenStreetMap pour les COM (Collectivités d'Outre-Mer) https://github.com/datagouv/contours-administratifs. Il faut comprendre que les données INSEE et IGN sont mises à jour avec plusieurs mois d'intervalle. Les données INSEE sortent avant les données IGN. Il ne m'est donc pas possible pendant une période de calculer des surfaces. Nous ne souhaitons pas avoir les surfaces ici car sinon, nous créons des problèmes pour la maintenance (je ne veux pas attendre que les données IGN sortent pour publier celles de l'INSEE, je me créerais une dépendance dont je ne veux pas). Vous pouvez facilement obtenir les données avec les surfaces depuis ce bout de code depuis l'API

curl -s 'https://geo.api.gouv.fr/communes?fields=nom,code,codeParent,siren,surftour,ma,codeEpci,epci,codeDepartement,departement,codeRegion,region,population,anciensCodes,deleguees,associees,zone' | jq -c -r '[.[] | {"nom": .nom, "code": .code, "siren": .siren, "codeEpci": .codeEpci, "codeDepartement": .codeDepartement, "codeRegion": .codeRegion, "population": .population, "zone": .zone, "nomEpci": .epci.nom, "nomDepartement": .departement.nom, "nomRegion": .region.nom}] | (map(keys) | add | unique) as $cols | map(. as $row | $cols | map($row[.])) as $rows | $cols, $rows[] | @csv'

Inutile de faire l'appel régulièrement à l'URL de notre exemple: la mise à jour n'a lieu qu'une fois par an.

Le résultat de notre script précédent est disponible via communes-2024-with-area.csv