Guía de Expresiones SQL y Arcade en ArcGIS para productos Cartográficos

Author

Rodrigo Aros

Contacto:

1 Introducción

El objetivo de este documento es proveer una guía rápida y aplicada para uso de expresiones SQL y Arcade1 orientadas a visualización y producción Cartográfica. Principalmente abordando en tarea comunes para manejo de querys, etiquetas y simbología orientado a recursos hídricos.

2 Uso De Expresiones SQL en ArcGIS Pro

Las expresiones SQL (Structured Query Language, o Lenguaje de Consulta Estructurado), son instrucciones que se utilizan para seleccionar, filtrar o consultar datos dentro de una base de datos. En el contexto de ArcGIS, estas expresiones permiten trabajar con los atributos de una capa para mostrar solo los elementos que cumplen con ciertos criterios.

2.1 Generador Interactivo de Consultas SQL

En ArcGIS es posible trabajar expresiones SQL mediante ventana o generador de consultas. Los beneficios de trabajar en este modo incluyen los siguientes:

  • Puede construir consultas SQL válidas independientemente del origen de datos.
  • Puede crear consultas comunes sin necesidad de conocimientos previos de SQL.
  • Los operadores condicionales se filtran en función del tipo de campo elegido.
  • Es fácil aplicar la agrupación para mejorar el orden de sus operaciones.

Figura 1: Generador de Consultas Interactiva

1️⃣ Botones para agrupar cláusulas de grupo o desagrupar claúsulas. Se puede hacer clic en la marca de Comprobación de que la expresión SQL es válida de verificación verde para verificar la sintaxis.

2️⃣ Un botón de alternancia SQL cambia el generador al modo SQL.

3️⃣ Menús desplegables preformateados para crear cada consulta de forma interactiva eligiendo campos, operadores y valores.

4️⃣ Agregue Agregar nueva cláusula y cree cláusulas adicionales, y elimínelas Cláusula de eliminación individualmente si ya no son necesarias.

2.2 Construir Consultas escribiendo sintaxis SQL

Si tiene conocimiento en la escritura de sintaxis SQL, es posible que prefiera crear y administrar consultas bajo este modo. Haga clic en el botón de alternancia SQL para cambiar a este modo. Entre las ventajas de trabajar en modo SQL se incluyen las siguientes:

  • Puede escribir consultas sin restricciones.
  • Puede utilizar la función de autocompletar. A medida que escribe, aparece un mensaje que muestra solo las palabras clave y los operadores compatibles con la fuente de datos.
  • Elementos codificados por colores para ayudarle a verificar o modificar visualmente su consulta.

Figura 2: Generador de sintaxis SQL

1️⃣ Un botón de alternancia SQL cambia al modo interactivo.

2️⃣ El editor de código colorea las palabras clave y las cadenas para ayudarle a encontrar texto en su consulta SQL. Se asume la cláusula WHERE.

3️⃣ Se puede hacer clic en la marca Comprobación de que la expresión SQL es válida para verificar la sintaxis.

2.3 Definition Query (Consulta de Definición)

Una Definition Query (o consulta de definición), es una herramienta en ArcGIS Pro, que permite mostrar en el mapa solo una parte específica de los datos de una capa; sin eliminar ni modificar la información original. Se basa en una expresión SQL sencilla que selecciona entidades según ciertos criterios. Para aplicar una Consulta de Definición, basta con dar clic derecho sobre la Capa>Properties>Definition Query. Por ejemplo para el caso de nuestra capa “Postas Escuelas Araucania_3”, si quisieramos trabajar solo con los registros correspondientes a escuelas. Se debería aplicar la siguiente query:

Figura 3: Definition Query

TIPO ESTABLECIMIENTO = 'Escuela'

2.4 Operadores Lógicos

Existe distintos tipos de consultas, por ejemplo, podemos realizar una consulta básica, pero también podemos utilizar consultas compuestas como:

Figura 4: Consulta Compuesta

TIPO_ESTABLECIMIENTO = 'Escuela' And NOMBRE_COMUNA = 'Temuco'

Esta expresion compuesta se compone de 2 claúsulas conectadas por un operador lógico (and), cuyo resultado selecciona todos los establecimientos tipo ‘Escuela’ pertenecientes a la comuna de Temuco. A continuación tabla de operadores lógicos:

Tabla 1: Operadores Lógicos en SQL (ArcGIS Pro)
Operador Descripción Ejemplo
AND Devuelve resultados cuando ambas condiciones son verdaderas TIPO= ‘Escuela’ And COMUNA = ‘Temuco’
OR Devuelve resultados cuando una o ambas condiciones son verdaderas COMUNA = ‘Temuco’ or COMUNA = ‘Curarrehue’
NOT Invierte el resultado lógico de una condición NOT COMUNA = ‘Freire’

2.5 Operadores de Comparación

Los operadores de comparación son elementos básicos del lenguaje SQL que permiten comparar valores dentro de una consulta. En ArcGIS Pro, se usan principalmente al aplicar filtros con Definition Queries o al seleccionar entidades por atributos. Estos operadores ayudan a construir condiciones como “mayor que”, “igual a”, o “diferente de”, para así mostrar solo los elementos del mapa que cumplen con ciertos criterios. Por ejemplo, si queremos mostrar solo lineas de de la capa ‘TEM_Planif’ superiores a 50 km:

Figura 5: Consulta usando operador ‘Mayor que’

Largo_Km > 18*

A continuación un resumen de los principales operadores de comparación:

Tabla 2: Operadores de Comparación en SQL (ArcGIS Pro)
Operador Descripción Ejemplo
= Igual a Periodo = ‘Pleistoceno’
<> Distinto de Nombre <> ‘Depósitos coluviales’
> Mayor que Largo_Km > 18
< Menor que Altura < 10
>= Mayor o igual que Nivel >= 3
<= Menor o igual que Profundidad <= 100
BETWEEN … AND Dentro de un rango de valores Caudal BETWEEN 500 AND 1500
LIKE Coincidencia con patrón de texto Nombre LIKE ‘Depósitos%’2
IS NULL Campo sin valor (nulo) Fecha IS NULL
IS NOT NULL Campo con algún valor (no nulo) Fecha IS NOT NULL

2.6 Operador IN

Además de los operadores lógicos y de comparación, ArcGIS Pro permite usar otros operadores SQL que amplían la capacidad de las consultas y filtros aplicados a las capas Facilitando la construcción de expresiones más precisas y eficientes. Uno de los más utilizados es el operador IN, que permite verificar si un valor se encuentra dentro de una lista:

CODIGO_PROYECTO IN ('1-C-P-TEM-SERGIOVALECH', '2-C-E-TEM-COLLIMALLIN', '3-C-E-TEM-CONOCOCHICO','4-C-E-TEM-RALUNCOLLAN')

Esta consulta mostrará solo las entidades cuyo tipo coincida con uno de los valores de la lista, sin tener que escribir múltiples condiciones con OR.

Tabla 3: Otros Operadores SQL útiles en ArcGIS Pro
Operador Descripción Ejemplo
IN Evalúa si un valor se encuentra dentro de una lista de opciones Unidad IN (‘Hc’, ‘Hrm’, ‘Hf’,‘Plgf3’)

Figura 6: Operador IN

3 Expresiones Arcade en ArcGIS Pro

Arcade es un lenguaje de expresión creado por Esri, que permite realizar cálculos y operaciones dinámicas directamente dentro de ArcGIS Pro, sin necesidad de modificar la base de datos. Se utiliza para crear contenido personalizado en mapas, como etiquetas, simbología, pop-ups y más, adaptando la visualización a las necesidades del proyecto. A diferencia de SQL, que filtra datos, Arcade se usa principalmente para calcular, transformar o mostrar información de forma visual y dinámica3. Por ejemplo, puedes combinar campos de texto, mostrar solo ciertos valores dependiendo de una condición, o aplicar símbolos diferentes según un rango de valores. Un caso típico es el etiquetado personalizado.

3.1 Manejo de Etiquetas

Para crear una expresión a partir de un valor de un campo, se usa una variable especial: ‘$feature’. Con esta instrucción ya puede acceder a la capa y lo que se escribe a continuación es algún nombre de campo de la tabla de atributos de la capa. Para acceder a esta configuración de expresión, debo pinchar mi capa en Tabla de Contenidos>Capa>Labeling>Expression>Label Class. Nótese que en la ventana Label Class - Nombre de Capa, esta ventana generalmente se mostrará al costado derecho, en esta ventana podrá seleccionar los campos desde Fields, podrá elegir Functions e incluso validar la construcción de su Expression con ✅.

Figura 7: Etiquetado con Arcade

// Expresión crea etiqueta a partir del campo 'Unidad_map'
$feature.Unidad_map 

3.2 Concatenar Texto

Es posible concatenar texto para un Label; a partir de la ventana Label Class, usando el signo ‘+’. Como se muestra en el siguiente ejemplo, en donde se configura etiqueta a partir de la abreviación de la unidad geológica, concatenada con el período geológico, es decir, concatena a partir de 2 campos.

Figura 8: Concatenar Texto4

// Expresión permite concatenar texto
$feature.Unidad_map + '-' + $feature.Periodo

3.3 Reordenar Texto

Para el caso en que se necesite reordenar etiqueta, otorgando salto de linea. Es posible usar la función reemplazar: Replace($feature.Unidad_map + ‘-’ + $feature.Periodo, ‘-’, TextFormatting.NewLine). Permitiendo dar una mejor distribución del texto en la etiqueta. Para el ejemplo se reemplaza el guión medio por salto de línea, pero tambien es posible reemplazar un espacio en blanco u otro caracter que requiera.

Figura 9: Reordenar o Distribución de Texto

// Expresión permite reemplazar caracter por salto de linea
Replace($feature.Unidad_map + '-' + $feature.Periodo, '-', TextFormating.NewLine)

3.4 Ocultar Valores Específicos

Para ocultar valores específicos en una etiqueta, se recomienda usar la estructura de control if, else. Esto permitirá condicionar la etiqueta para casos específicos que se necesite.

Figura 10: If - Else

// Expresión oculta valor especíico
var nombreRegion = $feature.Region;
  if (nombreRegion == "Región de La Araucanía"){
  return "";
} else {
    return nombreRegion;
}

4 Ajustes en Simbología

Es posible aplicar una expresion Arcade para obtener una simbología personalizada. Para esto se utilizará capa denominada ‘SSR_DGA_Araucanía’. Y se generará simbología de acuerdo al campo cantidad de arranques ‘CANT_ARRANQUES’, se requiere clasificar como “SSR Grande”, “SSR Medio” y “SSR Pequeño”.

Figura 11: Simbología Personalizada

//Expresion permite personalizar simbología
var arr = $feature.NUM_ARRANQUES

if (arr > 500) {
    return "SSR Grande";
} else if (arr >= 250) {
    return "SSR Medio";
} else {
    return "SSR Pequeño";
}

5 Referencias

  1. https://pro.arcgis.com/en/pro-app/3.4/help/mapping/navigation/write-a-query-in-the-query-builder.htm
  2. https://pro.arcgis.com/en/pro-app/3.4/help/mapping/navigation/sql-reference-for-elements-used-in-query-expressions.htm
  3. https://pro.arcgis.com/en/pro-app/3.4/help/mapping/layer-properties/definition-query.htm
  4. https://doc.arcgis.com/en/velocity/analyze/best-practices-for-arcade-expressions.htm
  5. https://developers.arcgis.com/arcade/function-reference/
  6. https://www.esri.co/es-pa/productos/arcgis-arcade/inicio

Footnotes

  1. En general las expresiones de SQL y Arcade se pueden utilizar en todo el ecosistema de Esri. Esto incluye ArcGIS Pro, ArcGIS Online, ArcGIS Dashboards, Survey 123, Web App Builder, etc.↩︎

  2. El símbolo de porcentaje (%) significa que se acepta cualquier elemento en su lugar: un carácter, cien caracteres o ningún carácter. Alternativamente, para buscar con un comodín que represente un carácter, utilice un guión bajo (_)↩︎

  3. Para explorar las distintas funciones de Arcade, ver guia de referencia de Esri Guia de Referencia Arcade↩︎

  4. Es importante considerar tener activo el botón Label de la pestaña Labeling, para que se muestra la etiqueta nombrada, para este ejemplo, como ‘etiquetaGeo’↩︎