IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IGN API Géoportail Discussion :

Utilisation de l'API IGN pour géolocaliser via python


Sujet :

IGN API Géoportail

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juillet 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1
    Par défaut Utilisation de l'API IGN pour géolocaliser via python
    Bonjour,

    Dans le cadre d'un projet professionnel, je travaille actuellement sur un script python me permettant de solliciter l'api IGNFrance afin de géolocaliser un important volume d'adresses.
    L'objectif étant de pouvoir intégrer ce process de géolocalisation dans un traitement automatisé et récurent de notre fichiers d'entreprises.
    Mes premiers essais, m'ont permis de constater que mon programme est fortement impacté par le timeout du serveur de l'IGN qui est par défaut d'1 seconde.

    Dans le but de me soustraire de ce temps d'attente excessivement long du fait d'un grand volume d'adresses à géolocaliser, j'ai donc diminué le timeout à 0.4 second. Cette modification a révélé que la géolocalisation était plus rapide. Cependant, les adresses non géolocalisées étaient plus nombreuses à cause d'une plus grande sollicitation du serveur.

    Au niveau des résultats, une requête de géolocalisation d'un fichier de 21 000 adresses a retourné un fichier résultat au bout de 3h12 de traitement !
    En sortie, j'ai pu récupérer 19 000 adresses géolocalisées, 2 000 n'ont donc pas été traitées par le serveur (avec le message "service timeout").
    Le serveur IGNFrance semble donc avoir "sauté" certains enregistrements pour ne pas saturer.

    Connaissez-vous un moyen, un paramètre (...) qui me permettrait de réduire drastiquement le temps imparti au traitement de mes données ?

    le code que j'utilise s'organise de la manière suivante :

    #!/usr/bin/env python
    # coding: utf8


    import csv
    import time
    import progressbar

    bar = progressbar.ProgressBar(widgets=[ #(Début) paramétres de la barre de progerssion
    ' [', progressbar.Timer(), '] ', #temps écoulé entre le début et la fin du programme
    progressbar.Bar(),
    ' (', progressbar.ETA(), ') ',])
    for i in bar(range(20)):
    time.sleep(0.1) # (Fin)

    from geopy.geocoders import IGNFrance
    geocoder = IGNFrance(api_key='xxxxxxxxxxxxxxxxx', username='xxxxx', password='xxxxxx', timeout=0.4)
    inputFile = open('xxxxxxxxxxxx')10.txt', 'rb') #chemin de votre fichier à géocoder
    outputFile = open('xxxxxxxxxxxxxxx', 'w') #chemin de votre fichier de résultats

    try:
    outputData = csv.writer(outputFile, delimiter=';', lineterminator='\n') #spécifier le délimiteur de votre fichier de sortie
    outputData.writerow(('siret','adresse','lat', 'lng', 'departement', 'qualite', 'pecision')) #spécifier le nom de vos colonnes pour le fichier de résultats
    inputData = csv.reader(inputFile, delimiter=';') #spécifier le délimiteur de votre fichier à géocoder
    for ligne in inputData:

    siret = ligne[xxx]
    adresse = ligne[xxx]

    try:
    location = geocoder.geocode(adresse,exactly_one=True)
    outputData.writerow((siret,adresse, location.latitude, location.longitude, location.raw ['xxxxxxx'],location.raw ['xxxx'], location.raw ['xxxxxxx']))
    except Exception as inst:
    print(inst)

    finally:
    inputFile.close()
    outputFile.close()

  2. #2
    Membre chevronné

    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2017
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2017
    Messages : 282
    Billets dans le blog
    2
    Par défaut
    BOnjour,
    Le service OpenLS mis en place n'est pas prévu pour réaliser un géocodage en batch.
    Pour ce faire, vous pouvez recourir au service MesAdresses ou vous rapprocher de votre chargé de relations extérieures à l'IGN pour trouver d'autres alternatives.

Discussions similaires

  1. Clé API IGN pour DynMap
    Par eniotna5l dans le forum IGN API Géoportail
    Réponses: 39
    Dernier message: 02/12/2015, 11h02
  2. Réponses: 24
    Dernier message: 20/05/2014, 09h54
  3. [Débutant] Utilisation de l'API Windows pour personnaliser des contrôles
    Par noftal dans le forum VB.NET
    Réponses: 10
    Dernier message: 12/11/2013, 23h21
  4. Utilisation de l'api criteria pour des join
    Par hugo123 dans le forum JPA
    Réponses: 0
    Dernier message: 04/02/2011, 11h46
  5. [DOM] Utilisation de l'API DOM pour créer du HTML sous IE
    Par pedouille dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/01/2006, 14h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo