Suite

Entrées pour la construction d'un localisateur d'adresses composite à partir des localisateurs d'adresses créés dans la boucle for de l'outil de script Python ?

Entrées pour la construction d'un localisateur d'adresses composite à partir des localisateurs d'adresses créés dans la boucle for de l'outil de script Python ?


Je construis un outil de script qui crée jusqu'à 3 localisateurs d'adresses, puis utilise les localisateurs d'adresses de sortie comme entrées du localisateur d'adresses composite de sortie final. L'outil s'est parfaitement exécuté avant d'ajouter le code pour créer le localisateur d'adresses de composition. Comme l'outil crée les localisateurs d'adresses d'entrée dans une boucle for, je ne peux pas coder en dur leurs noms comme premier argument pour le localisateur composite de création. Au lieu de cela, j'ai fait une liste qui est remplie en tant que boucles d'outils pour créer les localisateurs d'adresses d'entrée :

alNames =[] pour ref dans refData : baseName = os.path.basename(ref) outName = os.path.join(outPath,baseName) # c'est l'argument final pour l'outil de localisation de création d'adresses… tout le code pour faire le localisateur d'adresses… alNames.append(outName) arcpy.CreateCompositeAddressLocator_geocoding("alNames[0],alNames[1],alNames[2]","Street 'Street or Intersection' true true true 100 Texte 0 0 ,First,#,alNames [0],Street,0,0,alNames[1],Street,0,0,alNames[2],Street,0,0;ZIP 'ZIP Code' vrai vrai faux 10 Texte 0 0 ,First,#,alNames [0],ZIP,0,0,alNames[1],ZIP,0,0,alNames[2],ZIP,0,0",outCompAdd)

J'obtiens l'erreur suivante lorsque j'exécute l'outil :

Traceback (appel le plus récent en dernier) : Fichier "N:PythonCompleted scriptsCreate_Address_Locators.py", ligne 34, dans  arcpy.CreateCompositeAddressLocator_geocoding("alNames[0],alNames[1],alNames[2]","Street 'Street or Intersection' true true true 100 Texte 0 0 ,First,#,alNames[0],Street,0,0 ,alNames[1],Street,0,0,alNames[2],Street,0,0;ZIP 'ZIP Code' vrai vrai faux 10 Texte 0 0 ,First,#,alNames[0],ZIP,0,0 ,alNames[1],ZIP,0,0,alNames[2],ZIP,0,0",outCompAdd) Fichier "c:program files (x86)arcgisdesktop10.2arcpyarcpygeocoding.py ", ligne 138, dans CreateCompositeAddressLocator lever e ExecuteError : ERREUR 000582 : Une erreur s'est produite lors de l'exécution.

Lorsque j'exécute l'outil sans les guillemets autour des éléments de alNames[], je reçois un message d'erreur indiquant que l'outil ne prend que 4 arguments et que j'en ai fourni 5.


  1. Vérifiez les éléments dualNoms. Que contiennent-ils ? Ils doivent indiquer les chemins d'accès aux localisateurs d'adresses dans un dossier ou une géodatabase.

  2. Lors de la fourniture"alNames[0],alNames[1],alNames[2]", séparez-les par le point-virgule;au lieu de virgule,.

Consultez la page d'aide de l'outil ici, recherchez un exemple de code. là tu vois"Atlanta_locator Atlanta;US_Streets_locator US_Streets". Un autre excellent moyen de vérifier la syntaxe consiste à exécuter un outil dans ArcMap, puis à cliquer avec le bouton droit sur le résultat dans la fenêtre Résultats et à choisir Copier en tant qu'extrait Python.


Votre premier paramètre est le littéral de chaîne"alNames[0],alNames[1],alNames[2]"qui fait échouer l'outil. En supposant que cet outil se comporte comme les autres outils Arcpy, vous pouvez joindre vos valeurs dans une liste délimitée par des points-virgules comme suit :

locatorPaths = ";".join(alNames) arcpy.CreateCompositeAddressLocator_geocoding(locatorPaths,… )

Voir la vidéo: Initiation au terminal linux. Leçon 4 - Permissions sur les fichiers et répertoires