Resumen
En ArcGIS Pro, las expresiones de Python o Arcade se pueden utilizar para crear un nuevo campo sin las cadenas de texto innecesarias de un campo. Esto es común en los registros de direcciones en los que el número de calle no es necesario para el análisis. La eliminación del texto inicial de una cadena se puede utilizar para la administración de datos o la optimización de los resultados de búsqueda.
En este artículo se proporciona un ejemplo e instrucciones utilizando expresiones de Python y Arcade para eliminar texto inicial de una cadena de caracteres en ArcGIS Pro.
La siguiente imagen muestra el campo ADRESS con registros de cadena de caracteres de texto.
Procedimiento
- En el panel Contenido, haga clic con el botón derecho en la clase de entidad y haga clic en Tabla de atributos para abrir la tabla de atributos de la clase de entidad.
- Haga clic en Calcular para abrir la herramienta Calcular campo.
Note:
Refer to ArcGIS Pro: Calculate Field (Data Management) for more information on the parameters in the Calculate Field tool.
- En el cuadro de diálogo Calcular campo, configure los siguientes parámetros:
- Para Python 3:
- En Tabla de entrada, seleccione la clase de entidad.
- En Nombre de campo (existente o nuevo), seleccione el campo que desea editar o cree uno nuevo. En este ejemplo, se crea 'PYTHONSPLITADDRESS'.
- En Tipo de expresión, seleccione Python 3.
- Especifique el siguiente script en el primer bloque de texto. 'maxSplitParameter' es el número de elementos divididos. Por ejemplo, si se establece 'maxSplitParameter' en 1, se devuelve una lista con dos elementos. 'indexNumber' se refiere a un elemento de un objeto iterable por su posición dentro del objeto iterable. Por ejemplo, si se establece 'indexNumber' en 1, se devuelve el segundo elemento.
!<fieldName>!.strip().split(" ",<maxSplitParameter>)[<indexNumber>]
El siguiente bloque de código es un ejemplo de la expresión.
!ADDRESS!.strip().split(" ",1)[1]
- Haga clic en Verificar para ejecutar una prueba de la expresión. Si la expresión es válida, haga clic en Aceptar.
- Para expresiones de Arcade:
- En Tabla de entrada, seleccione la clase de entidad.
- En Nombre de campo (existente o nuevo), seleccione el campo que desea editar o cree uno nuevo. En este ejemplo, se crea 'ARCADESPLITADDRESS'.
- En Tipo de expresión, seleccione Arcade.
- Especifique la siguiente expresión de Arcade en la sección Expresión:
- Defina la variable para buscar una secuencia de caracteres dentro de un valor de texto. En este ejemplo, 'varName1' se denomina fstSpace.
var <varName1> = find(' ',$feature.<fieldName>,<startPosition>)
- Defina la variable para contar el número de caracteres de un valor de texto. En este ejemplo, 'varName2' se denomina strCount.
var <varName2> = Count($feature.<fieldName>)
- Defina la variable para calcular la diferencia entre 'varName1' y 'varName2'. En este ejemplo, 'varName3' se denomina strDiff.
var <varName3> = <varName2> - <varName1>
- Especifique la siguiente instrucción para devolver el número especificado de caracteres desde el final de un valor de texto.
return right($feature.<fieldName, <varName3>)
El siguiente bloque de código es un ejemplo de la expresión completa.
var fstSpace = Find(' ', $feature.ADDRESS, 0)
var strCount = Count($feature.ADDRESS)
var strDiff = strCount - fstSpace
return Right($feature.ADDRESS, strDiff)
- Haga clic en Verificar para ejecutar una prueba de la expresión. Si la expresión es válida, haga clic en Aceptar.
La siguiente imagen muestra los campos 'PYTHONSPLITADDRESS' y 'ARCADESPLITADDRESS' agregados a la tabla de atributos 'Schools_all' con el texto inicial eliminado del campo 'ADDRESS' utilizando expresiones de Python y Arcade.