Español

Cómo: Ordenar y crear un campo de Id. ordenado secuencialmente en una tabla de atributos de ArcGIS Pro

Resumen

Ordenar y crear un campo de Id. ordenado secuencialmente en una tabla de atributos de ArcGIS Pro es una manera eficaz de organizar los datos. Los valores más grandes y más pequeños, o quizás las entidades más y menos significativas de una capa, pasan a ser fácilmente reconocibles.

Procedimiento

En los siguientes pasos se describe cómo ordenar y crear un campo de Id. ordenado secuencialmente en una tabla de atributos de ArcGIS Pro mediante tres opciones diferentes: las funciones Orden ascendente u Orden descendente, la función Calcular campo o un script de Python.

Utilizar las funciones Orden ascendente u Orden descendente
  1. Haga clic con el botón derecho en la entidad deseada para abrir la Tabla de atributos.

    The image of opening attribute table.
     
  2. Haga clic con el botón derecho en el campo deseado de la tabla de atributos.
  3. Seleccione Orden ascendente, Orden descendente u Orden personalizado. Se crea un campo ordenado.

    The image of the Sort functionality.
     
Utilizar la función Calcular campo
Nota:
Esta opción solo genera números secuenciales para los datos sin ordenar basándose en el orden de OBJECTID. Si los datos están ordenados, los números generados no son secuenciales.
  1. Abra la Tabla de atributos de la entidad deseada.
  2. Haga clic con el botón derecho en el campo deseado de la tabla de atributos.
  3. Seleccione Calcular campo para abrir la consola Calcular campo.

    The image of Calculate Field option.
     
  4. En la consola Calcular campo, haga clic en el icono de filtro Auxiliares y seleccione Función.

    The image of the Helpers filter for Function.
     
  5. Haga doble clic en la función Número secuencial. Esto genera las secciones Expresión y Bloque de código para crear los números secuenciales.

    The image of Calculate Field console with the populated Expression and Code Block section.
     
  6. Haga clic en Ejecutar. Los números secuenciales basados en el campo OBJECTID se crean en el campo especificado mediante la función Calcular geometría.
Usar un script de Python con la consola de Python

Los siguientes pasos demuestran cómo crear números secuenciales ordenados mediante la función de ArcPy autoIncrement():

  1. Inicie la consola de Python. Haga clic en la pestaña Análisis y seleccione Python.

    The image of ArcGIS Pro Analysis tab.
     
  2. Importe la biblioteca de ArcPy.
    import arcpy
  3. Defina la entidad deseada, el campo en el que desea basar el orden y el campo en el que desea rellenar los números secuenciales.
    sortFeat  = r'[Geodatabase]\[Feature]'
    sortField = '[Base Field to sort]'
    idField   = '[Field to populate sequential numbers]'
    Nota:
    Para crear los números secuenciales en un nuevo campo, cree un nuevo campo y especifique el nombre del campo nuevo en el segmento idField. Para obtener más información sobre cómo crear un nuevo campo, consulte el siguiente documento de la Ayuda web: ArcGIS Pro: Agregar campo.
  4. Defina un parámetro de contador.
    rec = 0
  5. Inicie la función autoIncrement().
    def autoIncrement():
     global rec
     pStart = 1
     pInterval = 1
     if (rec == 0):
     rec = pStart
     else:
     rec += pInterval
     return rec
  6. Rellene el campo con los números secuenciales y elimine las filas adicionales.
    rows = arcpy.UpdateCursor(sortFeat, "", "", "", sortField + " A")
    
    for row in rows:
        row.setValue(idField, autoIncrement())
        rows.updateRow(row)
    
    del row, rows

La siguiente muestra de código presenta un script completo.

import arcpy

sortFeat  = r'C:\Users\\Northridge.gdb\Stations' 
sortField = 'OBJECTID' 
idField   = 'Station' 
rec=0

def autoIncrement():
 global rec
 pStart = 1 
 pInterval = 1 
 if (rec == 0): 
 rec = pStart 
 else: 
 rec += pInterval 
 return rec

rows = arcpy.UpdateCursor(sortFeat, "", "", "", sortField + " A")

for row in rows:
    row.setValue(idField, autoIncrement())
    rows.updateRow(row)

del row, rows

Información relacionada