Actualizar campos por lotes (Administración de datos)

Resumen

Transforma campos de una tabla o clase de entidad en función del esquema definido en la tabla de definición y crea una nueva tabla o clase de entidad.

Con esta herramienta podrá hacer lo siguiente:

  • Agregar nuevos campos.
  • Actualizar campos existentes.
  • Reordenar campos.
  • Cambiar tipos de campo.
  • Cambiar propiedades de archivo.
  • Asignar o actualizar alias de campo.
  • Calcular valores de campo en función de campos existentes mediante Python.
  • Quitar campos.

Uso

  • La tabla de entrada puede ser una clase o tabla de entidades. Esta herramienta genera una nueva clase o tabla de entidades con el esquema actualizado.

  • Los cambios de esquema para la tabla de salida se definen mediante el parámetro Tabla de definición del esquema de salida.

    A continuación se muestra un ejemplo de tabla de definiciones:

    Ejemplo de tabla de definiciones

    Si el valor del parámetro Tabla de definición del esquema de salida incluye los siguientes nombres de campo, como en el ejemplo anterior, los valores de los parámetros correspondientes se rellenarán automáticamente:

    • Target field
    • Source field
    • Type
    • Decimals/Length
    • Alias
    • Script

  • La herramienta calcula nuevos campos utilizando campos existentes proporcionando un campo de script en la tabla de definiciones.

    Un valor de ejemplo en el campo Script de la tabla de definiciones es !TOTPOP!/!AREA!, que calcula el campo Population Density. Los nombres de campo se deben especificar entre signos de exclamación.

  • La herramienta puede crear campos adicionales que dependen de los cálculos de otros campos. Por ejemplo, el campo Bev_Index se calcula utilizando el campo Bev_Per_Capita, que también se calcula al ejecutar la herramienta.

  • Utilice el parámetro Archivo de secuencia de comandos para realizar varios cálculos Python de línea. Para utilizar un archivo de secuencia de comandos, cree un archivo con funciones Python y haga referencia a las funciones en la tabla de definiciones.

    A continuación se muestra un ejemplo de un código de secuencia de comandos para un campo de destino denominado Bev_Per_Capita:

    • Campo denominado Script en valor del parámetro Tabla de definición del esquema de salida con el valor Bev_Per_Capita(!Bev_Total!, !TOTPOP!)
    • Valor del parámetro Archivo de secuencia de comandos con la siguiente función:
      
      def Bev_Per_Capita(Bev_Total, TOTPOP):
          return Bev_Total / TOTPOP

    A continuación se muestra un ejemplo de la tabla de atributos antes y después de ejecutar la herramienta:

    Ejemplo de la herramienta Actualizar campos por lotes

Parámetros

EtiquetaExplicaciónTipo de datos
Tabla de entrada

Tabla de entrada o clase de entidad.‎

Table View
Tabla de Salida

Tabla de salida o clase de entidad que contiene los campos actualizados.

Table
Tabla de definición del esquema de salida

Tabla que contiene las definiciones de campo y los cálculos que se utilizarán para crear la salida.

Table View
Archivo de secuencia de comandos
(Opcional)

Archivo Python que almacena varias funciones Python de línea para realizar cálculos para los campos del parámetro Tabla de salida.

File
Nombre de campo de salida
(Opcional)

Nombre de campo de la tabla de definiciones que contiene los nombres de campo de destino para la tabla de salida.

Field
Nombre de campo de origen
(Opcional)

Nombre de campo de la tabla de definiciones que contiene los nombres de campo de origen de la tabla de entrada.

Field
Tipo de campo de salida
(Opcional)

Campo del valor del parámetro Tabla de definición del esquema de salida que define los tipos de datos para la tabla de salida. Se espera que el campo sea de tipo texto.

Campo de la field_definition_table que define los tipos de dato para la tabla de salida. Se espera que el campo sea de tipo texto.

Se admiten los siguientes valores:

  • BigInteger: entero de 64 bits
  • Blob: objeto binario grande
  • Date: fecha
  • DateOnly: solo fecha
  • Double: número de punto flotante de doble precisión
  • GlobalID: Id. global
  • GUID: identificador único global
  • Integer (o Long): entero de 32 bits
  • Raster: ráster
  • Float (o Single): número de punto flotante de precisión simple
  • Short (o SmallInteger): entero de 16 bits
  • Text (o String): cadena de caracteres
  • TimeOnly: solo hora
  • TimestampOffset: desfase de marca de tiempo
Field
Decimales o longitud del campo de salida
(Opcional)

Nombre del campo de la tabla de definiciones que establece el número de decimales o la longitud de los campos de salida.

Field
Alias del campo de salida
(Opcional)

Nombre de campo de la tabla de definiciones que define los nombres de alias para los campos de la tabla de salida.

Field
Secuencia de comandos de campo de salida
(Opcional)

Nombre de campo de la tabla de definiciones que define los cálcuos para los campos de salida.

Field

arcpy.management.BatchUpdateFields(in_table, out_table, field_definition_table, {script_file}, {output_field_name}, {source_field_name}, {output_field_type}, {output_field_decimals_or_length}, {output_field_alias}, {output_field_script})
NombreExplicaciónTipo de datos
in_table

Tabla de entrada o clase de entidad.‎

Table View
out_table

Tabla de salida o clase de entidad que contiene los campos actualizados.

Table
field_definition_table

Tabla que contiene las definiciones de campo y los cálculos que se utilizarán para crear la salida.

Table View
script_file
(Opcional)

Archivo Python que almacena varias funciones Python para realizar cálculos para los campos del parámetro out_table.

File
output_field_name
(Opcional)

Nombre de campo de la tabla de definiciones que contiene los nombres de campo de destino para la tabla de salida.

Field
source_field_name
(Opcional)

Nombre de campo de la tabla de definiciones que contiene los nombres de campo de origen de la tabla de entrada.

Field
output_field_type
(Opcional)

Campo del valor del parámetro Tabla de definición del esquema de salida que define los tipos de datos para la tabla de salida. Se espera que el campo sea de tipo texto.

Campo de la field_definition_table que define los tipos de dato para la tabla de salida. Se espera que el campo sea de tipo texto.

Se admiten los siguientes valores:

  • BigInteger: entero de 64 bits
  • Blob: objeto binario grande
  • Date: fecha
  • DateOnly: solo fecha
  • Double: número de punto flotante de doble precisión
  • GlobalID: Id. global
  • GUID: identificador único global
  • Integer (o Long): entero de 32 bits
  • Raster: ráster
  • Float (o Single): número de punto flotante de precisión simple
  • Short (o SmallInteger): entero de 16 bits
  • Text (o String): cadena de caracteres
  • TimeOnly: solo hora
  • TimestampOffset: desfase de marca de tiempo
Field
output_field_decimals_or_length
(Opcional)

Nombre del campo de la tabla de definiciones que establece el número de decimales o la longitud de los campos de salida.

Field
output_field_alias
(Opcional)

Nombre de campo de la tabla de definiciones que define los nombres de alias para los campos de la tabla de salida.

Field
output_field_script
(Opcional)

Nombre de campo de la tabla de definiciones que define los cálcuos para los campos de salida.

Field

Muestra de código

Ejemplo de BatchUpdateFields (secuencia de comandos independiente)

La secuencia de comandos de la ventana Python siguiente muestra cómo utilizar la función BatchUpdateFields en una secuencia de comandos independiente.

import arcpy
arcpy.management.BatchUpdateFields(
    "zip_codes", "MyProject.gdb\zip_codes_BatchUpdateFields",
    "DATA_TRANSFORMATION.csv", r"C:\BatchUpdate\script.py", "TARGET",
    "SOURCE", "DATATYPE", "DECIMALS", "ALIAS", "SCRIPT")

Temas relacionados