Suite

Comment créer des variables point_coord dynamiques pour la sélection de quartier ?


J'aimerais utiliser arcpy.GANeighborhoodSelection_ga dans une boucle où les coordonnées des points proviendraient d'une source différente. Ce que j'ai déjà essayé : Si je définis les coords, ça marche :

pointcoord = "689383.6885 3973775.2178" arcpy.GANeighborhoodSelection_ga(inFile2, "neighbor", pointcoord, "1", "1","20", "20", "0", "One sector") Résultat 'neighbor'

Lorsque j'essaie d'utiliser une variable pour les coordonnées, j'ai l'erreur :

pointcoord = x, y print pointcoord (689383.6885, 3973775.2178) arcpy.GANeighborhoodSelection_ga(inFile2, "neighbor", pointcoord , "1", "1","20", "20", "0", "One sector") Runtime error Traceback (appel le plus récent en dernier): Fichier "", ligne 1, dans  Fichier "c:program files (x86)arcgisdesktop10.2arcpyarcpyga.py", ligne 1075, dans GANeighborhoodSelection raise e RuntimeError: Objet: Erreur lors de l'exécution de l'outil pointcoord = """ + x + "+ y + """ Erreur d'exécution Traceback (appel le plus récent en dernier) : Fichier "", ligne 1, dans  TypeError : impossible de concaténer les objets 'str' et 'float' pointcoord = """ + str(x) +"+ str(y) + """ print pointcoord "689383.6885 3973775.2178" arcpy.GANeighborhoodSelection_ga(inFile2, "neighbor" , pointcoord, "1", "1", "20", "20", "0", "Un secteur") Erreur d'exécution Traceback (appel le plus récent en dernier) : Fichier "", ligne 1, dans  Le fichier "c:program files (x86)arcgisdesktop10.2arcpyarcpyga.py", ligne 1075, dans GANeighborhoodSelection soulève une erreur d'exécution : ERREUR 000622 : échec d'exécution (sélection de quartier). Les paramètres ne sont pas valides. ERREUR 000628 : Impossible de définir l'entrée dans le paramètre point_coord.

En Python,pointcoord = x, ycrée un tuple tandis que l'outil Voisinage appelle une chaîne de deux nombres séparés par un espace. "689383.6885 3973775.2178" qui a fonctionné n'égale pas le tuple (689383.6885, 3973775.2178) ce qui est inacceptable.

Ce dont vous avez besoin pour concaténer les coordonnées et ajouter un espace entre elles, et pour que cela fonctionne, vous devez d'abord les convertir sous forme de chaînes. Vous l'avez presque eu dans le troisième, celui-ci fonctionnera cependant :

pointcoord = str(x) + " " + str(y)