Resumen
Agrega un nuevo campo a una tabla o a la tabla de una clase de entidad o capa de entidades, así como a rásteres con tablas de atributos.
Uso
En los shapefiles y las tablas dBase, si el tipo de campo define un carácter, se insertan espacios en blanco para cada registro. Si el tipo de campo define un elemento numérico, se insertan ceros para cada registro.
El parámetro Longitud del campo solo se aplica a campos de tipo de texto. Si no se especifica la longitud, la longitud predeterminada será 255.
Para las geodatabases, si el tipo de campo define un carácter o un número, se inserta <null> en cada registro si se activa el parámetro predeterminado Permitir campos nulos (se define como field_is_nullable="NULLABLE" en Python).
No se pueden agregar campos no anulables a una tabla o clase de entidad de geodatabase no vacía.
Los shapefiles no son compatibles con alias para campos, de manera que no puede agregar un alias de campo a un shapefile.
El parámetro Dominio del campo puede utilizar un dominio existente de una clase de entidad en una geodatabase. Se debe proporcionar el nombre de un dominio existente. Cuando proporcione valores o nombres de dominio no válidos no se generará un error en la herramienta, pero el valor o el nombre no válidos se ignorarán y no se establecerá ningún dominio para el campo.
La precisión y la escala de un campo describen el tamaño y la precisión máximos de los datos que se pueden almacenar en el campo. La precisión describe la cantidad de dígitos que se pueden almacenar en el campo y la escala describe la cantidad de espacios decimales para campos flotantes y dobles. Por ejemplo, si el valor del campo es 54,234, la escala es = 3 y la precisión = 5.
Utilice las siguientes pautas para elegir el tipo de campo correcto para una precisión y escala dadas:
- Cuando crea un campo flotante, doble o entero y especifica "0" para precisión y escala, la herramienta intentará crear un tipo de campo binario si la base de datos subyacente lo admite. Las geodatabases de archivos y personales solo admiten campos de tipo binario, y se ignora la precisión y la escala.
- Al crear campos flotantes y dobles, y especificar una precisión y una escala, utilice un campo doble si la precisión es mayor que 6; de lo contrario, utilice uno flotante. Si crea un campo doble y especifica una precisión de 6 o menos, se creará un campo flotante. Si crea un campo flotante y especifica una precisión superior a 6, se creará un campo doble.
- Si especifica una escala de 0 y una precisión de 10 o menos, se crea un campo de entero. Cuando crea un campo de entero, especifica una precisión de 10 o menos; de lo contrario, su campo se creará como doble.
Cuando crea un campo nuevo en una tabla o clase de entidad de geodatabase, puede especificar el tipo de campo, pero no la precisión y la escala. Incluso si el cuadro de diálogo permite agregar un valor de precisión o escala, el valor se ignorará durante la ejecución.
Los campos obligatorios son permanentes y no se pueden eliminar. Para permitir la eliminación más adelante, establezca el campo en no obligatorio (predeterminado).
Un campo de tipo ráster permite incluir una imagen ráster como atributo. Se almacena en la geodatabase o junto con ella. Esto es útil cuando una imagen es la mejor manera de describir una entidad. La precisión, la escala y la longitud no se pueden configurar para los campos de tipo ráster.
Sintaxis
arcpy.management.AddField(in_table, field_name, field_type, {field_precision}, {field_scale}, {field_length}, {field_alias}, {field_is_nullable}, {field_is_required}, {field_domain})
Parámetro | Explicación | Tipo de datos |
in_table | La tabla de entrada a la que se agregará el campo especificado. El campo se agregará a la tabla de entrada existente y no creará una tabla de salida nueva. Los campos se pueden agregar a clases de entidad en geodatabases, shapefiles, tablas independientes, rásteres con tablas de atributos y capas. | Table View; Raster Layer; Raster Catalog Layer; Mosaic Layer |
field_name | El nombre del campo que se agregará a la tabla de entrada. | String |
field_type | Especifica el tipo de campo del nuevo campo.
Aunque los valores de la propiedad type del objeto Field no sean una coincidencia exacta con las palabras clave utilizadas por el parámetro field_type de la herramienta Agregar campo, todos los valores type del objeto Field pueden usarse como entrada para este parámetro. Los diferentes tipos de campos se asignan de la siguiente manera: Integer a LONG, String a TEXT y SmallInteger a SHORT. | String |
field_precision (Opcional) | Número de dígitos que se pueden almacenar en el campo. Se cuentan todos los dígitos, con independencia del lado de la coma en que se encuentren. Si la tabla de entrada es una geodatabase de archivos o personal, se ignorará el valor de precisión del campo. | Long |
field_scale (Opcional) | Número de posiciones decimales almacenadas en un campo. Este parámetro solo se utiliza en los campos de datos de tipo flotante y doble. Si la tabla de entrada es una geodatabase de archivos o personal, se ignorará el valor de escala del campo. | Long |
field_length (Opcional) | La longitud del campo que se está agregando. Esto establece el número máximo de caracteres permitidos para cada registro del campo. Este parámetro solo se aplica a campos de tipo de texto. | Long |
field_alias (Opcional) | El nombre alternativo dado al nombre de campo. Este nombre se utiliza para describir los nombres de campo crípticos. Este parámetro solo se aplica a geodatabases. | String |
field_is_nullable (Opcional) | Especifica si el campo puede contener valores nulos. Los valores nulos son diferentes de los campos cero o vacíos y solo son compatibles con los campos de una geodatabase.
| Boolean |
field_is_required (Opcional) | Especifica si el campo que se está creando es un campo obligatorio para la tabla. Los campos obligatorios solo son compatibles con las geodatabases.
| Boolean |
field_domain (Opcional) | Limita los valores permitidos en cualquier atributo específico de una tabla, clase de entidad o subtipo en una geodatabase. Debe especificar el nombre de un dominio existente para que se aplique al campo. | String |
Salida derivada
Nombre | Explicación | Tipo de datos |
out_table | La tabla de entrada actualizada. | Table |
Muestra de código
Ejemplo de AddField 1 (ventana de Python)
La siguiente secuencia de comandos de la ventana de Python demuestra cómo utilizar la función AddField de modo inmediato.
import arcpy
arcpy.env.workspace = "C:/data/airport.gdb"
arcpy.AddField_management("schools", "ref_ID", "LONG", 9, "", "", "refcode",
"NULLABLE", "REQUIRED")
Ejemplo 2 de AddField (script independiente)
La siguiente secuencia de comandos independiente muestra cómo utilizar la función AddField.
# Name: AddField_Example2.py
# Description: Add a pair of new fields to a table
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data/airport.gdb"
# Set local variables
inFeatures = "schools"
fieldName1 = "ref_ID"
fieldPrecision = 9
fieldAlias = "refcode"
fieldName2 = "status"
fieldLength = 10
# Execute AddField twice for two new fields
arcpy.AddField_management(inFeatures, fieldName1, "LONG", fieldPrecision,
field_alias=fieldAlias, field_is_nullable="NULLABLE")
arcpy.AddField_management(inFeatures, fieldName2, "TEXT",
field_length=fieldLength)
Entornos
Información de licenciamiento
- Basic: Sí
- Standard: Sí
- Advanced: Sí