1 votos

Uso de in_memory en Python elimina los valores en el campo - Arcgis 10.4.1

Tengo un problema al utilizar el in_memory en un script de Python.

Tengo un archivo shapefile test.shp con 3 campos (Alter, Geschlecht, Anzahl) y 2 filas de datos. Cuando utilizo arcpy.CopyFeatures_management para copiar el archivo shapefile en in_memory borra los datos de las filas.

Escribí un pequeño guión de prueba:

import arcpy

arcpy.env.workspace = "C:\\Python\\"

arcpy.CopyFeatures_management("test.shp","in_memory/test")
arcpy.CopyFeatures_management("in_memory/test", "test1.shp")
arcpy.CopyFeatures_management("test.shp","test2.shp")

Puede descargar los shapefiles aquí: https://www.dropbox.com/sh/b47og9rjfevpi7v/AAB_YLz1l_eY3b-lFJPm9kP9a?dl=0

test1.shp está vacío (las filas siguen aquí pero sin datos) y test2.shp es una copia correcta.

¿Puede alguien decirme qué está fallando?

1voto

Xetius Puntos 10445

También lo he confirmado con 10.3.1. Una posible solución es cargarlo en la memoria como un conjunto de características. Entonces la herramienta de copiar características funciona.

Aquí puedes ver que es durante el proceso de copiar test.shp a in_memory donde se pierden los atributos.

results = arcpy.CopyFeatures_management("test.shp","in_memory/test")[0]

with arcpy.da.SearchCursor(results,["*"]) as sc:
     for row in sc:
         print row
#(1, (698585.7347000018, 242057.83449999988), None, None, None)
#(2, (698390.1845999993, 241798.5549999997), None, None, None)

Sin embargo, con un conjunto de características no.

feature_set = arcpy.FeatureSet("test.shp")
with arcpy.da.SearchCursor(feature_set,["*"]) as sc:
     for row in sc:
         print row
#(0, (698585.7347000018, 242057.83449999988), u'0-1', u'w', 1.0)
#(1, (698390.1845999993, 241798.5549999997), u'1-2', u'w', 1.0)
arcpy.CopyFeatures_management(feature_set,"test4.shp")

0voto

Tim Trueman Puntos 111

No tengo acceso a ArcGIS 10.4.1, pero he podido reproducir el problema con 10.3.1.

He importado la clase de característica test.shp en una geodatabase de archivos vacía, he modificado tu script de prueba y lo he ejecutado. Los resultados fueron los esperados (es decir, los atributos se copiaron en la clase de característica in_memory y se copiaron bien).

También he creado mi propio shapefile ficticio dentro de ArcCatalog y lo he ejecutado a través de su script. Los resultados fueron los esperados.

Creo que su problema está relacionado con su entrada "test.shp", hay algo en ella que no está del todo bien.

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