16 votos

A granel cambiar el nombre de campo en la geodatabase de archivos

Tengo una geodatabase de archivos con varios cientos de clases de entidad.

Algunas clases de entidad de tener un campo que recibió el nombre adecuado, y se puso de nombre "SCHEMA_FEATURECLASS_ENTITY" en lugar de la ENTIDAD. En consecuencia, su destino final (Oracle) se queja acerca de la muy larga de nombres de campo.

Me gustaría cambiar el nombre de los campos que tienen su propio nombre corto. Encontré este artículo sobre el cambio de alias , pero (por lo que yo entiendo) cambiar el nombre de un campo es un complemento de la copia-operación de eliminación en vez de sólo la creación de una propiedad.

Alguien tiene una rápida y sucia método para hacer un bulk rename? He ArcCatalog 9.3.1 pero NO de Visual Studio (entorno de cliente...).

11voto

Jon Galloway Puntos 28243

Puede utilizar una secuencia de comandos de Python para hacer el trabajo pesado para ya:

Compruebe esto hacia fuera y adaptarlo a tus necesidades. Huelga decir que esto no está probado, y no la use en la producción de datos SIN HACER PRIMERO UNA COPIA de seguridad.

import arcgisscripting

gp = arcgisscripting.create(9.3)

gp.Workspace = "path_to_your_geodatabase"

# you can use absolute path to this function
gp.AddToolbox("management")

featureClasses = gp.ListFeatureClasses("*","ALL")

for featureClass in featureClasses:
    fields = featureClass.ListFields("*","ALL")

    for field in fields:

        # do not duplicate oid and geometry fields
        if field.Type == "OID" or field.Type == "Geometry":
            continue

        # lets refactor our field name
        # this transforms A_B_C into C
        fieldNames = field.Name.split("_")
        del(fieldNames[0:1])

        # add a new field using the same properties as the original
        # field
        gp.AddField(featureClass,fieldNames[0],field.Type)

        # calculate the values of the new field
        # set it to be equal to the old field
        gp.CalculateField(featureClass,fieldNames[0],field)

        # delete the old fields
        gp.DeleteField(featureClass,field)

No he probado, así que prueba y dime si funciona. Si necesita cambiar el nombre del campo de una manera diferente, sólo alteran la refactorizar parte.

5voto

user2013 Puntos 2301

No creo que nadie ha mencionado aún, pero de una manera muy sencilla de cambiar el nombre de los campos es el uso de la Tabla/Capa de entidades en la Gestión de Datos del cuadro de herramientas.

Make Feature Layer Dialog Box El uso de esta herramienta, usted puede especificar un nuevo nombre para sus campos y, a continuación, utilizar la Copia de las Filas de la herramienta para crear la nueva tabla con los correspondientes nombres de campo.

Nota: sé que esto funciona en ArcGIS10, pero no puedo confirmar la misma funcionalidad en 9.x

4voto

Neall Puntos 261

ET_GeoWizards le permite hacer a granel cambia el nombre en featureclass campos en fGDBs. También puede cambiar el tipo de datos y de forma masiva elimina así.

Sin embargo, usted tiene que hacerlo en una clase de entidad en un momento.

No sería demasiado difícil de reunir algunos de VBA/Python quizás para lograr esto. Todo depende de si el tiempo para desarrollar el código mayor que el tiempo de forma manual de hacerlo con un enfoque como el uso de ET-GW

3voto

Greg Puntos 1756

Otro método, requiere de Arcinfo y un montón de espacio en el disco: Exportar el personal o geodatabase de archivos de XML normalizado (inc. de datos), abrir el .xml en un decente editor de texto que puede soportar archivos de gran tamaño, buscar y reemplazar SCHEMA_FEATURECLASS_ENTITY con ENTITY, guardar. Importar el xml editado documento de espacio de trabajo en una geodatabase vacía. Voila.

3voto

UnkwnTech Puntos 21942

A partir de ArcGIS 10.2.1 para Escritorio, puede utilizar Modificar los Campos (Gestión de Datos) con un nivel Avanzado de licencia para:

para cambiar el nombre de los campos o cambiar el nombre de alias de campo de cualquier tabla de geodatabase o clase de entidad

La misma herramienta se puso a disposición Básica y nivel medio de licencias en ArcGIS 10.2.2 para Escritorio.

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