Usando ArcGIS 10.0, ¿es posible reordenar los campos en una geodatabase de archivos y el pedido persiste en la base de datos?
Consideramos exportar a XML y escribir un analizador para cambiar el orden de los campos, y luego volver a crear una nueva base de datos a partir del XML. Esto parece un proceso laborioso.
Otra idea es importar las definiciones de campo existentes en Excel, reordenarlas, exportarlas a CSV y luego escribir un script de Python para crear estos campos en una nueva Geodatabase. ¿Existe un script como este, antes de que lo escribamos desde cero?
Lamentablemente, ArcGIS Diagrammer no parece admitir el reordenamiento de campo.
¿Hay scripts o hacks que podamos usar para simplificar este proceso?
Respuestas:
Como se menciona en los comentarios, puede reordenar los campos con ArcGIS Diagrammer. Publiqué un paso más general paso a paso en esta respuesta: ¿Cómo actualizar la propiedad de longitud de un campo de clase de entidad?
fuente
En respuesta a otra pregunta , dije que es posible usar estadísticas de resumen para hacer el equivalente de PULLITEMS (antiguo habla para reordenar campos). Esa técnica funciona bien solo en Tablas, pero ahora hay otro script disponible que dice que funciona tanto en las clases de entidad como en la tabla.
También recomendaría los campos Respuesta a reordenación de forma permanente utilizando la herramienta Crear tabla de consulta de ArcGIS? que fue inspirado por la respuesta de @klewis a esta.
fuente
La versión gratuita de ET Geowizards lo hará. Básico -> Ordenar formas. Acabo de probarlo en una geodatabase de archivos v10 y funciona. Sin embargo, tiene que crear una nueva clase de entidad.
fuente
Si no tiene Visio para Diagramer, todas las otras respuestas aquí rompen cualquier combinación. Encontré que esto funciona bien en mi caso:
fuente
Debe ejecutar MakeTableQuery desde el conjunto de herramientas Vistas de capas y tablas para reordenar los campos. De la documentación, el orden de los campos en la lista de campos indica el orden en que aparecerán los campos en la capa de salida o en la vista de tabla. Además, si se agrega una columna Forma a la lista de campos, el resultado es una capa; de lo contrario, es una vista de tabla. Esto está disponible con cualquier nivel de licencia.
fuente
Con la herramienta de combinación , puede reordenar fácilmente los campos de forma permanente. Funciona con tablas y clases de entidad. El reordenamiento se puede hacer a través de la secuencia de comandos de Python e incluso con el cuadro de diálogo Herramienta (al eliminar un campo y volver a agregarlo en el cuadro de diálogo). Aunque reordenar a través del diálogo no es un enfoque perfecto.
Se recomienda usar la herramienta Fusionar una vez y luego usar Copiar como fragmento de Python y luego cambiar manualmente el orden de los campos y luego pegar el código de Python en las ventanas de Python.
Aquí hay una secuencia de comandos de Python que usa la herramienta de combinación para reordenar los campos (copiado de aquí )
USO:
fuente
Hay una extensión gratuita de Esri llamada X-Ray que contiene una herramienta hecha para reordenar campos. Nos ha funcionado muy bien y es fácil de usar.
fuente
Hasta ahora, el método más eficiente que he encontrado para cambiar el nombre de los campos, cambiar su orden predeterminado y otras cosas es usar Microsoft Access:
GDB_
, tablas abiertas en modo de diseño de tablaNotas:
Siempre tenga una copia de seguridad actual. Estás jugando directamente con la estructura interna de GDB y podrías eliminar fácilmente tus datos alterando la base de datos hasta el punto en que ArcGIS ya no sepa cómo leerla.
Hay algunas palabras clave reservadas en el lado de ArcGIS que no se pueden usar para los nombres de campo. Access creará o cambiará el nombre de los campos con estas palabras clave, pero cuando las recupere, automáticamente se agregará un guión bajo. Así se
Current
convierteCurrent_
. También tenga en cuenta las palabras clave reservadas de acceso parcialmente superpuestas .El GDB personal tiene un límite de tamaño de archivo de 2GB, por lo que el tamaño total de todas las tablas y clases de entidad dentro del GDB no puede exceder eso.
Puede ser tentador usar siempre GDB personales para proyectos pequeños (<2GB). No lo hagas El rendimiento es abismal y existen diferencias sutiles en la sintaxis SQL de Access que hacen que las expresiones de etiqueta, las consultas de definición, etc., no sean portátiles.
fuente
Hay un Esri Cómo: Cambiar el orden de los nombres de campo en una solución de tabla de atributos .
Requiere editar el XML, pero una vez que obtenga el esquema correcto, está bien.
fuente
Este Python Script es una especie de método de "cinta adhesiva" para hacer esto. Está limitado a 20 campos, pero podría agregarse fácilmente para permitir que se ejecute para todos los campos que tengan sus datos.
El script está diseñado para ejecutarse como una herramienta de script, por lo que deberá configurar los parámetros dentro de ArcCatalog.
Los parámetros deben ser los siguientes:
Código:
Me doy cuenta de que esta no es la forma más bonita o más eficiente de hacer esto, pero en realidad funciona bastante bien y solo tardó aproximadamente media hora en escribir. Lo uso todo el tiempo cuando necesito reordenar campos, y no requiere Diagrammer o Microsoft Access. Por supuesto, el número máximo de campos puede ser un problema, pero nuevamente puede personalizarse dentro del script.
fuente