1 votos

El bucle de unión espacial da ExecuteError: ERROR 000210: ¿No se puede crear la salida?

Tengo una serie de polígonos de buffer en los que necesito realizar una unión espacial para obtener recuentos globales dentro de los buffers. Puedo hacer esto copiando y pegando el script de unión espacial una y otra vez y simplemente intercambiando el nombre del archivo de capa/salida del buffer.

Sin embargo, me gustaría averiguar un bucle sencillo que recorra todos los búferes a la vez. Intenté un código pero no soy lo suficientemente versado como para averiguar la solución al error que estoy obteniendo. ¿Algún consejo?

Buffer_5mi = "G:\\Admissions\\GBD\\GBD\\Admissions.gdb\\Buffer_5mi"
Buffer_10mi = "G:\\Admissions\\GBD\\GBD\\Admissions.gdb\\Buffer_10mi"
Targets = [Buffer_5mi, Buffer_10mi]
Freshmen_Admitted = "Freshmen_Admitted"

for Target in Targets:
    output = "G:\\Admissions\\GBD\\GBD\\Admissions.gdb\\admitted%s" % Target
    arcpy.SpatialJoin_analysis(Target, Freshmen_Admitted, output, "JOIN_ONE_TO_ONE", "KEEP_ALL", "", "INTERSECT", "", "")

Este es el error que recibo. Entiendo por qué aparece el error, lo que no sé es la solución.

Runtime error  Traceback (most recent call last):   File "<string>", line 9, in <module>   File "c:\program files (x86)\arcgis\desktop10.3\arcpy\arcpy\analysis.py", line 471, in SpatialJoin     raise e ExecuteError: ERROR 000210: Cannot create output G:\Admissions\GBD\GBD\Admissions.gdb\admittedG:\Admissions\GBD\GBD\Admissions.gdb\Buffer_5mi Failed to execute (SpatialJoin).

2voto

Oddthinking Puntos 233

Actualmente estás pasando una variable que contiene una ruta completa (Target) cuando sólo quieres el nombre del archivo en sí. Preste atención a la línea "output =":

import os, arcpy

Buffer_5mi = "G:\\Admissions\\GBD\\GBD\\Admissions.gdb\\Buffer_5mi"
Buffer_10mi = "G:\\Admissions\\GBD\\GBD\\Admissions.gdb\\Buffer_10mi"
Targets = [Buffer_5mi, Buffer_10mi]
Freshmen_Admitted = "Freshmen_Admitted"

for Target in Targets:
    output = os.path.join("G:\\Admissions\\GBD\\GBD\\Admissions.gdb", 'admitted_{}'.format(os.path.basename(Target)))
    arcpy.SpatialJoin_analysis(Target, Freshmen_Admitted, output, "JOIN_ONE_TO_ONE", "KEEP_ALL", "", "INTERSECT", "", "")

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X