Estoy tratando de llenar una Geodatabase con la rotonda de 60 conjuntos de datos con un nuevo Featureclass para cada conjunto de datos. Para ello, escribí un python-independiente-script que se repite a través de estos conjuntos de datos y crea una nueva Featureclass con el "CreateFeatureclass_management"-Herramienta y hacer algunas cosas con este Featureclass después.
Esto funciona para el primer conjunto de datos, pero cuando mi script llega a este comando para el siguiente conjunto de datos, el procesamiento de mi script es interrumpido. No entiendo de Rastreo, en lugar de un Windows-mensaje de Error aparece, diciendo algo. como "pythonw.exe registró un error y tiene que ser cancelado" (tal vez la redacción es un poco diferente, ya que he traducido del alemán).
Así, este Problema siempre real ocurre para el segundo Featureclass que debe ser generado. Si puedo extraer el primer conjunto de datos con la correcta generado Featureclass de mi Geodatabase y, a iniciar la secuencia de comandos de nuevo, de nuevo el Featureclass será añadido al primer conjunto de datos (el primero, segundo), pero no a la siguiente. Así que no es una cuestión de mis Datos. También tengo la duda de si es algo que en mi scriptcode sí, desde que me escribió una muy simple Testscript después, que es capaz de crear 4 Featureclasses en UN conjunto de datos, pero no es capaz de crear Featureclasses en más de un conjunto de datos.
Yo realmente no veo ninguna razón para que mi script no crear estos Featureclasses. Si la demanda es, definitivamente puedo publicar algunas scriptcode. De todos modos, me temo que tiene algo que ver con mi caché o algo así.
Aquí es el código de mi testsript: ( Que en realidad se rompe en el primer AddField_management en lugar de mi CreateFeatureclass_management, después de que he cambiado un poco)
import arcpy, os
Geodatabase = r"D:\GIS\STK\124_NDS\STK_124_NDS.gdb"
arcpy.env.overwriteOutput = True
def CreateFeatureclasses(workspace):
arcpy.env.workspace = Geodatabase
listDatasets = arcpy.ListDatasets("", "Feature")
for dataset in listDatasets:
datasetPath = workspace + os.sep + dataset
arcpy.env.workspace = datasetPath
print "Dataset: " + dataset
out_name = "BF_Stao_Bodenprofil_P_" + dataset[9:]
Bohrpunkt_fc = arcpy.CreateFeatureclass_management (datasetPath, out_name, "POINT")
fcList = arcpy.ListFeatureClasses()
for fc in fcList:
if fc[:10] == "Bohrpunkte":
Punkteliste = []
zeilen = arcpy.SearchCursor(fc)
for zeile in zeilen:
Bohrkreisgeometrie = zeile.getValue("Shape")
Bohrpunkt = Bohrkreisgeometrie.trueCentroid
Punkteliste.append(Bohrpunkt)
del zeilen
rows = arcpy.InsertCursor(Bohrpunkt_fc)
for Punkt in Punkteliste:
feature = rows.newRow()
feature.shape = Punkt
rows.insertRow(feature)
del rows, Punkteliste
print "Die Punkt-Geometrien fuer die Featureclass 'BF_Stao_Bodenprofil_P' wurden erstellt."
Liegenschaftsnummer = dataset[1:8]
arcpy.AddField_management (Bohrpunkt_fc, "Lgs_Nummer", "TEXT", "", "", 7)
arcpy.AddField_management (Bohrpunkt_fc, "Profil_ID", "TEXT", "", "", 12)
arcpy.AddField_management (Bohrpunkt_fc, "Profil_Nr_alt", "TEXT", "", "", 4)
arcpy.AddField_management (Bohrpunkt_fc, "Profiltyp", "SHORT", 1)
arcpy.AddField_management (Bohrpunkt_fc, "Standortseinheit", "TEXT")
del Bohrpunkt_fc
del listDatasets
CreateFeatureclasses(Geodatabase)
EDITAR
He tenido algunos intentos para resolver mi Problema:
Primero, hice un Lote de secuencia de Comandos de la herramienta fuera de mi secuencia de Comandos independiente. Como antes, la secuencia de comandos se procesa para mi primer conjunto de datos, pero no para el siguiente. Ahora tengo un "grave error de aplicación" y el guión es interrumpido.
Por lo tanto, mi segundo intento fue para descartar la idea de que el procesamiento de mis Datos en todo el conjunto de datos en un bucle a través de ellos/ el uso de un Lote y en lugar de utilizar una simple secuencia de comandos de la herramienta, donde tengo que configurar el espacio de trabajo de forma individual para cada conjunto de datos. Después de usar la secuencia de comandos para el primer conjunto de datos, he abierto de nuevo, establecer el área de trabajo para el segundo, un empezar de nuevo, y -lo que es una sorpresa - se produce el mismo error de nuevo. Tengo que cerrar ArcCatalog antes de que pueda comenzar de nuevo el script....
Este puede indicar, que hay algunos de bloqueo restantes, después de que el guión está terminado? Puedo eliminar cada uno de referencia antes de que finalice la secuencia de comandos y eliminar temporales featureclasses.
Algún consejo? O alguien más experimentado esto antes?