#1 Thu 08 June 2017 12:03
- Pev
- Juste Inscrit !
- Date d'inscription: 29 May 2016
- Messages: 5
[ArcGIS 10.2.2] Geocoder et RuntimeError
Bonjour,
Pour un de nos clients, nous mettons en place un système de Geocodage de masse d'adresse (de 10 à 1 million d'adresses). Nous travaillons sur un ArcGIS Desktop 10.2.2 x32bits.
Pour ce faire, nous utilisons un script Python s'appuyant sur arcpy. Le traitement est le suivant :
- Récupération d'adresse depuis un JSON
- Enregistrement des adresses dans une table d'une nouvelle File Geodatabase
- Utilisation de le la fonction arcpy.GeocodeAddresses_geocoding()
Sachant que l'Address Locator n'est pas dans le même système de projection que les coordonnées attendues en sortie, nous procédons à une affectation du système de projection de sortie (arcpy.env.outputCoordinateSystem) avant d'effectuer le géocodage.
Actuellement, le traitement fonctionne pour un lot de 200 adresses. Néanmoins, de manière variable, le traitement est brutallement stoppé, au dela des 200 adresses, par une erreur de Runtime C++ (de 3 à 6 popups) bloquant ainsi tout le traitement.
Le code est le suivant :
Code:
[...] # Address Locator : RGF_93 # Sortie attendue : WGS84 arcpy.env.outputCoordinateSystem = arcpy.SpatialReference(4326) # Geocodage des adresses arcpy.GeocodeAddresses_geocoding( in_table=gdb_fc_address, address_locator=path_address_locator, in_address_fields="SingleLine ATTR_ADDRESS VISIBLE NONE", out_feature_class=gdb_fc_address_geoc, out_relationship_type="STATIC" ) [...]
Nous avons déjà tenté les solutions suivantes :
- Ne pas reprojeter les coordonnées
- Reprojeter manuellement les données après le geocoder (Project_management)
Mais les résultats sont les mêmes. Nous avons également veillé à ce que toutes les variables soient bien supprimée une fois utilisées.
Auriez-vous une idée de solution pour désengorger le geocoder ?
Ou une solution pour éviter les Runtime C++ Error ?
En vous remerciant très cordialement pour vos réponses,
Pev
Hors ligne
#2 Thu 08 June 2017 21:47
Re: [ArcGIS 10.2.2] Geocoder et RuntimeError
Bonjour,
Vous travaillez avec quel type de géocodeur (créé et utilisé dans une GDB, publié à l'aide d'ArcGIS Server,...) ?
Si vous travaillez avec localisateur publié dans ArcGIS Serveur, il y a ce document : ArcGIS Server in Practice Series: Large Batch Geocoding
Si non, vous pouvez peut-être découper le JSON et faire le géocodage en plusieurs fois.
Il serait même peut-être possible de faire du traitement parallèle : A Beginners Guide to parallel processing with Geoprocessing Analysis Tools
A+
Franck
PS: Travaillez-vous avec le Géotraitement en arrière-plan (64 bits) ?
Ces traitements python 64 bits font des miracles en terme de performance pour moi
Hors ligne
#3 Tue 13 June 2017 10:16
- Pev
- Juste Inscrit !
- Date d'inscription: 29 May 2016
- Messages: 5
Re: [ArcGIS 10.2.2] Geocoder et RuntimeError
Bonjour Franck,
Nous travaillons avec un geocoder qui écrit dans une GDB et s'appuie sur un AdressLocator de fichiers *.loc et *.loc.xml.
Il me semblait que le Geocoder d'ESRI était déjà parrallélisé nativement ?
Nous n'utilisons pas les Géotraitements x64, mais il n'est pas impossible d'y recourir si besoin.
En revanche, avec une machine moins performantes (4GB au lieu de 12GB en dev), nous arrivons à géocoder 7 000 adresses sans difficultés.
@+
Pev
Hors ligne