Ejemplo de SQL: tuberías críticas

En este ejemplo se muestra cómo se puede utilizar la información de la red, combinada con los datos de capas GIS, para identificar tuberías críticas en la red. Una serie de instrucciones SQL refina una selección hasta que se han identificado las tuberías que cumplen todos los criterios. A continuación, utilizamos SQL para establecer valores en las tuberías seleccionadas.

En la Figura 1 se muestran los datos de GIS y de red:

En este ejemplo, estamos buscando grandes tuberías dañadas en terreno difícil. En concreto, vamos a seleccionar cualquiera de estas tuberías cerca de un hospital, ya que un fallo en una tubería de este tipo podría ser un problema importante.

La Figura 1 muestra el área de interés.

Las diversas carreteras y construcciones de interés se describen en las fases siguientes.

Paso Descripción del paso Consulta Imagen de ejemplo

A

El primer objeto SQL selecciona una serie de tuberías en función de los siguientes criterios:

  • el campo anchura de tubería es mayor o igual que 300. En este caso, las unidades son milímetros.
  • el material de tubería es CO (hormigón).
  • la tubería se encuentra a menos de dos metros de un objeto en una capa GIS definida como tipo "Carretera B". En este ejemplo, una Carretera B es una carretera secundaria, que se muestra en la Figura 1 como líneas rojas oscuras.
    • gislayer es la capa especificada en el cuadro Capa GIS.
    • STRUCTURE es el campo en gislayer. Esto también podría haberse definido en Campo.
    • El campo Tipo de búsqueda especifica que estamos buscando tuberías a una distancia específica. Otras opciones permiten buscar objetos que se cruzan, contienen o están contenidos por el objeto GIS.
  • la tubería tiene un valor en el campo usuario número 7 que es >= 2, donde este valor representa la puntuación de condición de la tubería que se ha importado desde un sistema de Administración de activos. En este caso, la puntuación de condición utiliza una escala de 1 a 5, con un número mayor que representa un peor estado de la tubería. Una tubería que haya colapsado tendría una puntuación de 5. Por lo tanto, seleccionamos tuberías con problemas conocidos.

Después de aplicar un objeto SQL a la red, se seleccionan todos los objetos de red que cumplan los criterios de las instrucciones SQL.

SQL query context:
  • Tipo de objeto: tubería
  • [Espacial] Tipo de búsqueda: distancia
  • [Espacial] Tipo de capa: capa GIS
  • [Espacial] Capa: [SHP] infraestructura
  • [Espacial] Distancia: 2,0


width >= 300 AND material = "CO" AND gislayer.STRUCTURE = "B Road" AND user_number_7 >= 2

B

El segundo objeto SQL refina la selección realizada por el primer objeto SQL. Tenga en cuenta que la opción Aplicar filtro a selección actual está activada. De este modo se limitan los objetos de red a los que se aplica el SQL a los que ya están seleccionados. Esta es una característica potente.

  • Esta consulta comprueba los objetos seleccionados con datos de una capa GIS diferente. Esta capa representa los tipos de suelo, como se muestra en la Figura 1 como áreas con diferentes tonos de gris.
  • El campo WRAPCLASS contiene la información de tipo de suelo. WRAP significa Potencial de aceptación de lluvia en invierno.
  • En este caso, estamos buscando tipos de suelo difíciles, como suelos rocosos o potencialmente anegados, donde puede ser necesario un equipo especial para excavar hasta la tubería.
SQL query context:
  • Tipo de objeto: tubería
  • [Espacial] Tipo de búsqueda: distancia
  • [Espacial] Tipo de capa: capa GIS
  • [Espacial] Capa: [SHP] infraestructura
  • Aplicar filtro a selección actual = TRUE


gislayer.WRAPCLASS = 1 OR gislayer.WRAPCLASS = 3 

C

El tercer objeto SQL prueba las tuberías seleccionadas para ver si alguna de ellas está cerca de un hospital. Un colapso de tuberías cerca de un hospital que bloqueó el acceso o liberó aguas residuales en el área probablemente sería un problema importante, y por lo tanto, reparar tuberías dañadas en este tipo de situación será más crítico que en cualquier otro lugar.

  • Seleccionamos cualquier tubería que se encuentre a una cierta distancia de un hospital.
  • Aquí vamos un paso más allá y definimos un campo de datos y una etiqueta en el objeto para identificarlo fácilmente en el futuro. El campo Criticalidad se establece en 5 (que representa el valor más alto). También hemos establecido la etiqueta del campo Criticalidad. Puede ser un código para el método utilizado para definir el campo, o incluso las iniciales de la persona que ha ejecutado el SQL.
  • en la Figura 1, los hospitales aparecen en verde pálido. Una sola tubería cumple todas las condiciones que hemos establecido en nuestra serie de instrucciones SQL. Esa tubería aparece resaltada en rojo.
SQL query context:
  • Tipo de objeto: tubería
  • [Espacial] Tipo de búsqueda: distancia
  • [Espacial] Tipo de capa: capa GIS
  • [Espacial] Capa: [SHP] infraestructura
  • [Espacial] Distancia: 30,0


SET 
  criticality = 5,
  criticality_flag = "AA"
 WHERE gislayer.STRUCTURE = "Hospital"

D

Las consultas SQL se pueden agrupar y ejecutar automáticamente para que el proceso sea aún más eficaz.

Aquí, las tres consultas descritas anteriormente se han colocado en el mismo grupo de consultas almacenado. Si arrastra este grupo a una red, todas las consultas que contiene se ejecutarán en orden alfabético.

Por lo tanto, con un poco de cuidado al asignar un nombre a las consultas individuales, puede crear consultas potentes y de varios pasos.