Les données issues du Répertoire National des Associations sont séparées par département, et en deux versions : celle où les assocations ont un numéro RNA (version dite Waldec) et celles où il n'y a pas de numéro (version Import). Cela n'a pas trop d'importance, puisque ces numéros ne sont pas utilisés, si ce n'est qu'il y a deux fichiers à traiter.
Chaque version a un fichier csv
associé. Les champs qui nous
intéressent sont le nom de l'association, sa description (ou objet social
dans les fichiers), son adresse, et deux identifiants qui vont nous
permettent de filtrer les associations qui nous intéressent. Ces
identifiants, appelés objet_social1
et
objet_social2
, sont des codes qui catégorisent les
différents objets sociaux des associations. Par exemple, le code 024000
correspond aux associations de "protection de sites naturels". Dans
l'onglet Ressources communautaires du site du RNA, on trouve le fichier
Nomenclature Complete Objet Social
qui donne l'ensemble des codes et leur signification. Ici, nous avons
choisi un ensemble de codes correspondant aux associations qui nous
intéressent (celles liées au changement climatique). Voir la
page principale pour la liste.
La bibliothèque Javascript
Leaflet permet la réalisation de
cartes interactives dans un site web. Voir leur site pour plus
d'information. Notre but est d'afficher sur cette carte la localisation
des associations. Pour cela, il nous faut leurs coordonnées GPS. Mais les
données RNA ne fournissent que l'adresse. L'outil
Nominatim permet de "géocoder",
c'est-à-dire trouver de telles coordonnées depuis l'adresse. Une instance
est disponible à l'adresse
https://nominatim.openstreetmap.org
et c'est celle-ci que nous utiliserons. Leurs
conditions d'utilisation
limitent le nombre de requêtes à 1 par seconde. Le script Node.js
disponible ici sélectionne les associations
ayant un code d'objet social qui nous intéresse, géocode leur adresse, et
écrit les coordonnées dans un fichier assos.txt
. Étant
données les conditions d'utilisation de Nominatim, ce script met environ
15 minutes à s'exécuter. Si vous voulez l'exécuter vous-même, voici les
commandes sous Linux à réaliser après téléchargement du script, appelé
assos.mjs
. Placez-vous dans un nouveau répertoire contenant
ce script, et exécutez :
mkdir data # Téléchargez les deux fichiers RNA Waldec et Import dans data. # Changez l'encodage pour l'affichage correct des accents sur la carte. Attention à changer les dates dans le nom des fichiers et dans le script si différentes. iconv -f ISO-8859-1 -t UTF-8 -o data/rna_waldec_20231001_dpt_78_UTF_8.csv data/rna_waldec_20231001_dpt_78.csv iconv -f ISO-8859-1 -t UTF-8 -o data/rna_import_20231001_dpt_78_UTF_8.csv data/rna_import_20231001_dpt_78.csv # Installation de la bibliothèque Papa Parse (https://www.papaparse.com/) pour la lecture de fichiers csv : npm install papaparse # Script : node assos.mjs
À la fin, on obtient dans data/assos.txt
un fichier qui
toutes les deux lignes contient les caractéristiques des associations
(nom, description...) et leurs coordonnées GPS. Avec ce fichier, on peut
utiliser Leaflet côté serveur pour réaliser notre carte.
Pour obtenir sur notre carte un contour du département des Yvelines, on
télécharge en format geojson
le contour sur le site
overpass turbo
(cliquez sur Export, et enregistrez sous yvelines.geojson
).
Le script qui permet la réalisation de la carte peut se trouver
ici.