Exemple SQL – Canalisations critiques

Cet exemple illustre l’utilisation combinée des informations du réseau et des données des couches SIG pour identifier les canalisations critiques du réseau. Une série d’instructions SQL permet d’affiner la sélection jusqu’à ce que nous ayons identifié les canalisations qui répondent à tous les critères. Nous utilisons ensuite SQL pour définir les valeurs dans les canalisations sélectionnées.

La figure 1 ci-dessous affiche les données SIG et du réseau :

Cet exemple porte sur la recherche de grosses canalisations endommagées sur un terrain difficile. Plus précisément, nous allons sélectionner les canalisations situées à proximité d’un hôpital, car une défaillance de telles canalisations peut s’avérer particulièrement problématique.

La figure 1 ci-dessus illustre la zone d’intérêt.

Les routes et bâtiments d’intérêt sont décrits dans les étapes ci-dessous.

Pas Description de l’étape Requête Exemple d’image

A

Le premier objet SQL sélectionne un certain nombre de canalisations en fonction des critères suivants :

  • Le champ de largeur de la canalisation est supérieur ou égal à 300. Ici, les unités utilisées sont les millimètres.
  • Le matériau de la canalisation est CO (béton).
  • La canalisation se trouve à moins de deux mètres d’un objet dans une couche SIG définie comme type « B Road ». Dans cet exemple, « B Road » correspond à une route secondaire, représentée dans la figure 1 par des lignes rouge foncé.
    • gislayer correspond à la couche spécifiée dans la zone Couche SIG.
    • STRUCTURE est le champ dans gislayer. Il aurait également pu être défini dans Champ.
    • Le champ Type de recherche indique que nous recherchons des canalisations situées à une distance spécifique. D’autres options vous permettent de rechercher des objets qui croisent l’objet SIG, le contiennent ou sont contenus par celui-ci.
  • La canalisation a une valeur dans le champ user_number_7 qui est >= 2. Cette valeur représente le score d’état de la canalisation qui a été importé à partir d’un système de gestion des équipements. Ici, le score d’état utilise une échelle de 1 à 5, un nombre plus élevé représentant une canalisation en moins bon état. Une canalisation qui s’est effondrée aura score de 5. Nous sélectionnons des canalisations présentant des problèmes connus.

Après l’application d’un objet SQL au réseau, tous les objets réseau répondant aux critères des instructions SQL sont sélectionnés.

SQL query context :
  • Type d’objet : Canalisation
  • Type de recherche [Spatial] : Distance
  • Type de couche [Spatial] : Couche SIG
  • Couche [Spatial] : Infrastructure [SHP]
  • Distance [Spatial] : 2.0


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

B

Le deuxième objet SQL affine la sélection effectuée par le premier objet SQL. Notez que la case Appliquer le filtre à la sélection courante est cochée. Elle limite les objets réseau auxquels l’instruction SQL est appliquée aux objets déjà sélectionnés. Il s’agit d’une fonction particulièrement utile.

  • Cette requête teste les objets sélectionnés par rapport aux données d’une autre couche SIG. Cette couche représente les types de sol, illustrés dans la figure 1 sous forme de zones avec différentes nuances de gris.
  • Le champ WRAPCLASS contient les informations relatives au type de sol. WRAP signifie Winter Rain Acceptance Potential.
  • Ici, nous recherchons des types de sols difficiles, tels que des sols rocheux ou potentiellement gorgés d’eau, où un équipement spécifique peut s’avérer nécessaire pour accéder à la canalisation.
SQL query context :
  • Type d’objet : Canalisation
  • Type de recherche [Spatial] : Distance
  • Type de couche [Spatial] : Couche SIG
  • Couche [Spatial] : Infrastructure [SHP]
  • Appliquer le filtre à la sélection courante = TRUE


gislayer.WRAPCLASS = 1 OR gislayer.WRAPCLASS = 3 

C

Le troisième objet SQL teste les canalisations que nous avons sélectionnées pour voir si l’une d’entre elles se trouve à proximité d’un hôpital. Un effondrement de canalisation près d’un hôpital susceptible d’en bloquer l’accès ou de rejeter les eaux usées dans la zone constitue un problème majeur. Dans ce type de situation, la réparation des canalisations endommagées se révèle plus critique qu’ailleurs.

  • Nous sélectionnons les canalisations situées à une certaine distance d’un bâtiment hospitalier.
  • Nous allons un peu plus loin et définissons un champ de données et un indicateur dans l’objet afin de faciliter son identification ultérieure. Le champ Criticité est défini sur 5 (valeur la plus élevée). Nous avons également défini l’indicateur du champ Criticité. Il peut s’agir d’un code correspondant à la méthode utilisée pour définir le champ, ou même des initiales de la personne qui a exécuté la requête SQL.
  • Dans la figure 1, les bâtiments hospitaliers sont affichés en vert clair. Seule une canalisation répond à toutes les conditions définies dans notre série d’instructions SQL. Cette canalisation apparaît en rouge.
SQL query context :
  • Type d’objet : Canalisation
  • Type de recherche [Spatial] : Distance
  • Type de couche [Spatial] : Couche SIG
  • Couche [Spatial] : Infrastructure [SHP]
  • Distance [Spatial] : 30.0


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

D

Les requêtes SQL peuvent être regroupées et exécutées automatiquement pour renforcer l’efficacité du processus.

Ici, les trois requêtes décrites ci-dessus ont été placées dans le même groupe de requêtes stockées. Si vous faites glisser ce groupe vers un réseau, toutes les requêtes qu’il contient seront exécutées par ordre alphabétique.

Ainsi, en prenant soin de bien nommer les requêtes individuelles, vous pouvez créer des requêtes en plusieurs étapes particulièrement utiles.