Geocodage en masse a partir d'un fichier csv

Bonjour,
j’ai tenté d’utiliser l’url suivante pour lancer un geocodage en masse.

https://api-adresse.data.gouv.fr/search/csv/ data@/D:/app_src/remediation_ban0.csv

J’ai en retour l’erreur suivante : missing file (je précise que je suis sous environnement Windows).

Merci pour vos réponses.

Les exemples données utilisent httpie… et il manque le « http » d’appel à httpie…

http https://api-adresse.data.gouv.fr/search/csv/ data@/D:/app_src/remediation_ban0.csv

Il faut aussi indiquer les colonnes contenant l’adresse…

l’objectif pour moi est de faire l’appel depuis un job Talend. Avez-vous des retours d’expérience sur ce point précis ?

Talend doit pouvoir faire les requêtes unitaires, ce qui sera sûrement plus simple (mais moins rapide).

Je n’ai par contre jamais utilisé Talend… donc difficile de vous répondre.

J’ai trouvé un article qui décrit l’utilisation d’API Rest depuis Talend donc assez proche sur le principe de ce qu’il y a à faire: https://medium.com/@stevenbeeckman/consuming-rest-apis-with-talend-open-studio-6-2-1-147d0de15c35

Bonjour,

j’ai personnellement créé un job Talend qui me permet de géocoder des adresses avec l’API data.gouv.fr
Si c’est pour un traitement important et récurrent il peut être plus judicieux de monter la base adresses sur un serveur de l’entreprise pour gagner en temps de réponse.
Pour rappel :

  • 10 requêtes par seconde et par IP pour le géocodage simple ;
  • 1 requête simultanée par IP pour le géocodage de masse.

Quels sont vos problèmes ou questions pour la création du job ?

Cordialement

Bonjour, merci pour vos réponses.
Concernant l’utilisation de l’api unitaire, je n’ai pas de soucis sous Talend, ça fonctionne bien.
j’aurais aimé pouvoir utiliser l’api qui geocode en masse, mais ça ne semble pas possible.
Petite question supplémentaire :
Quand vous dites il serait judicieux de monter la base adresse sur un serveur de l’entreprise, qu’est-il possible de faire ? je n’ai pas compris que nous pouvions récupérer la base et le code des API. est-ce possible ?
Merci

Merci, j’ai effectivement réussi a créer un job qui utilise l’API unitaire, ça fonctionne plutôt bien si l’on se satisfait des limites imposées en terme de nombre d’appels par seconde.

Le code source de l’api est disponible à cette adresse :

Pour la base adresse c’est ici : https://adresse.data.gouv.fr/data/

1 J'aime

Le repo indiqué est celui du site web, pas de l’API…

L’API est servie par « addok », le code est sur https://github.com/addok/addok

La doc dispo sur http://addok.readthedocs.io/fr/latest/

et nous avons fait une docker pour simplifier le déploiement (avec les données pré indexées):

1 J'aime

Merci pour toutes ces infos.

Exact, merci pour ces précisions et corrections.
Et excellent le docker avec le données pré-indexées.

Je travail sur la mise en place de ce type de solution.
Nous pouvons échanger à ce sujet si vous le désirez. J’ai réussi à faire l’appel en masse et à récupérer le fichier de retour. Sans passer par l’installation complète sur un serveur privé.

Cordialement,

Et bien moi le problème c’est la création du job! N’étant pas informaticien, certains concepts m’échappent complètement. Et même si je fais habituellement des choses avec Talend, là je ne vois pas du tout par où commencer…
Toute aide sera bienvenue.
Merci par avance

Pb de géocodage de masse
Bonsoir,
J’ai bien essayé mais je n’y arrive pas.
ça fait 3 semaines que je tourne en rond au point de me dire que je vais en permanence geocoder via l’appli sur https://adresse.data.gouv.fr/csv

1)Y-a-t-il un moyen plus simple que curl que je n’arrive pas à utiliser.

  1. De plus, lorsque je suis sur https://umap.openstreetmap.fr/fr/map/good-immofr_337890
    j’arrive à update des données depuis mon ordi mais le même fichier mis sur le ftp ça marche pas.

Pourriez-vous m’aider ?

Un copier coller de la ligne de commande curl pourrait aider…

  • soit sa syntaxe est incorrecte
  • soit le fichier CSV est trop volumineux
  • soit son format est incorrecte (UTF8 ?)

Bref… il faut un peu plus d’info pour aider !

Pour umap, je ne pense pas que les données distantes puissent être récupérées par FTP. C’est HTTP only si ma mémoire est bonne.

Bonsoir,
Merci de votre retour. j’ai résolu le pb de données distantes

Pour faire une réponse constructive concernant Umap données dynamiques pour les novices comme moi
sur une nouvelle carte ou nouveau calque
Faire importer donnees puis faire un copier coller de votre lien vers le fichier que vous avez préalable geocoder sur https://adresse.data.gouv.fr/csv#preview et mis sur votre ftp
cliquer sur importer puis enregistrer
Ensuite cliquer sur le bouton calques et le crayon pour modifier ce calque
Aller à données distantes re coller votre lien dans url
cliquer sur dynamique ON
Et normalement comme par magie la carte chargera vos changement sur votre fichier

Bon je cherche maintenant comment faire fonctionner directement une fonction curl dans un fichier php ça me semble plus simple le curl dans un php sur mon serveur que de faire une console sur mon ordi
Je tente quelque chose comme ça

j’ai pris l’exemple dans https://adresse.data.gouv.fr/api mais ça ne fonctionne, j’ai tous les fichiers dans le meme repertoire

<?php $ch = curl_init("curl -X POST -F data=@path/to/test_agencesTL.csv https://api-adresse.data.gouv.fr/search/csv/ "); $fp = fopen("test_agencesTL_geocode.csv", "w"); curl_setopt($ch, CURLOPT_FILE, $fp); curl_setopt($ch, CURLOPT_HEADER, 0); curl_exec($ch); curl_close($ch); fclose($fp); ?>

Merci

soit l’image suivante
image

C’est du curl depuis PHP et je ne pense pas que la syntaxe soit celle-là.

J’ai pas touché à PHP depuis longtemps, et jamais utilisé curl depuis PHP, mais il me semble que le curl_init devrait plutôt ressemble à:

$ch = curl_init("https://api-adresse.data.gouv.fr/search/csv")

Il manque peut être un curl_setopts pour faire un POST et pas un GET (CURLOPT_POST), ainsi que les noms des colonnes contenant les adresses…

Bref, l’utilisation de curl depuis PHP n’est viciblement pas aussi simple qu’une utilisation en ligne de commande.