5 votos

Manera eficiente utilizar un CSV para definir una clase de función

Me facilitó una Hoja de cálculo de Excel que tenía las definiciones de los campos de una clase de entidad. Hubo varias hojas de cálculo en el archivo, cada uno que contiene las definiciones de campo para diferentes clases de entidad. Después de un poco de limpieza, me he convertido cada hoja de cálculo a un CSV con las siguientes columnas:

Field_Name
Field_Type
Field_Length
Field_Alias

Cada uno de los archivos CSV había entre 300 y 400 filas, lo que significa que hay que muchos campos (sé que es un montón de campos, pero no es mi esquema de diseño).

Junté un poco de código para procesar los archivos CSV y crear campos para las clases de entidad. Nota, las clases de entidad que ya existe en una geodatabase y los archivos CSV tiene el mismo nombre que la función de las clases.

El siguiente código funciona, pero tarda más de 20 minutos para crear 3 clases de entidad con 300-400 los campos de cada uno.

count = 0
for csv_file in CSVList:
    print csv_file
    print count
    with open(csv_file, 'rb') as csvfile:
        reader = csv.reader(csvfile, delimiter = ',')
        for line in reader:
            field_name = line[0]
            field_type = line[1]
            field_length = line[2]
            field_alias = line[3]
            arcpy.AddField_management(FCList[count],field_name, field_type, "","",field_length,field_alias)
    count+=1

Es allí una manera más eficiente de crear una clase de entidad a partir de un archivo CSV con las definiciones de campo? O, es arcpy.AddField_management tan bueno como se pone para este tipo de cosas?

1voto

ericchiasson Puntos 847

Desde la geodatabase ya existen, que podría haber usado X-Ray para ArcCatalog agregar-en la que fue Desarrollador por Esri, en conjunto con Vertex3. Permite, entre otras cosas, para exportar el esquema de la hoja de cálculo, realizar cambios en la hoja de cálculo de importación y de nuevo en un geodatabse.

X-Ray para ArcCatalog está disponible para la 9.2 y 9.3 en ArcScript, y 10.x en ArcGIS Online.

0voto

Spyros Puntos 56

Puede convertir su clase característica en una capa con la Capa característica de hacer antes de agregar los campos. He hecho la prueba con una mesa y 20 campos para agregar: en mi computadora tarda normalmente 2 min 04 seg para crear la tabla y agregue los campos. Tarda solamente segundos 31 con la capa característica que agregó. Todavía tardaría unos 5 minutos para ti, pero es fácil de implementar...

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