SQL-Beispiel: Kritische Rohre

Dieses Beispiel zeigt, wie Sie Informationen aus dem Netz in Kombination mit Daten aus GIS-Layern zur Identifizierung kritischer Rohre im Netz verwenden können. Mit einer Reihe von SQL-Anweisungen wird eine Auswahl verfeinert, bis die Rohre identifiziert wurden, die alle Kriterien erfüllen. Anschließend werden mithilfe von SQL Werte für die ausgewählten Rohre festgelegt.

Abbildung 1 unten zeigt die GIS- und Netzdaten:

In diesem Beispiel wird nach großen beschädigten Rohren in schwierigem Gelände gesucht. Insbesondere sollen solche Rohre in der Nähe eines Krankenhauses ausgewählt werden, da ein Rohrfehler in diesem Fall ein großes Problem darstellen könnte.

Abbildung 1 oben zeigt den relevanten Bereich.

Die verschiedenen relevanten Straßen und Gebäude werden nachfolgend beschrieben.

Schritt Schrittbeschreibung Abfrage Beispielbild

A

Das erste SQL-Objekt wählt anhand der folgenden Kriterien eine Anzahl von Rohren aus:

  • Der Wert im Feld Rohrbreite ist größer oder gleich 300. In diesem Fall ist die Einheit Millimeter.
  • Das Rohrmaterial ist CO (Beton).
  • Das Rohr liegt maximal zwei Meter von einem Objekt in einem als Typ B-Straße definierten GIS-Layer entfernt. In diesem Beispiel ist eine B-Straße eine Nebenstraße, die in Abbildung 1 durch dunkelrote Linien dargestellt wird.
    • gislayer ist der im Feld GIS-Layer angegebene Layer.
    • STRUCTURE ist das Feld in gislayer. Dies könnte auch unter Feld definiert werden.
    • Im Feld Suchtyp ist angegeben, dass Rohre innerhalb einer bestimmten Entfernung gesucht werden sollen. Mit anderen Optionen können Sie nach Objekten suchen, die das GIS-Objekt kreuzen, enthalten oder darin enthalten sind.
  • Das Rohr weist im Feld Benutzernummer 7 einen Wert >=2 auf, wobei dieser Wert für die Zustandsbewertung des Rohrs steht, das aus einem Objektverwaltungssystem importiert wurde. In diesem Fall wird für die Zustandsbewertung eine Skala von 1 bis 5 verwendet, wobei eine größere Zahl für einen schlechteren Rohrzustand steht. Ein gebrochenes Rohr hätte die Bewertung 5. Es werden also Rohre mit bekannten Problemen ausgewählt.

Nachdem ein SQL-Objekt auf das Netz angewendet wurde, werden alle Netzobjekte ausgewählt, die die Kriterien in den SQL-Anweisungen erfüllen.

SQL query context:
  • Objekttyp: Rohr
  • [Raumbezogener] Suchtyp: Entfernung
  • [Raumbezogener] Layertyp: GIS-Layer
  • [Raumbezogener] Layer: [SHP] Infrastruktur
  • [Raumbezogene] Entfernung: 2.0


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

B

Das zweite SQL-Objekt verfeinert die vom ersten SQL-Objekt getroffene Auswahl. Beachten Sie, dass die Option Filter auf aktuelle Auswahl anwenden aktiviert ist. Dadurch werden die Netzobjekte, auf die die SQL-Anweisung angewendet wird, auf die bereits ausgewählten Objekte beschränkt. Dies ist eine leistungsstarke Funktion.

  • Diese Abfrage testet die ausgewählten Objekte anhand von Daten in einem anderen GIS-Layer. Dieser Layer stellt die Bodentypen dar, die in Abbildung 1 als Bereiche mit unterschiedlichen Grautönen dargestellt sind.
  • Das Feld WRAPCLASS enthält die Bodentypinformationen. WRAP steht für Winter Rain Acceptance Potential, ein Maß für die Aufnahmefähigkeit des Bodens für Niederschlag im Winter.
  • In diesem Fall wird nach schwierigen Bodentypen gesucht, z. B. felsigen oder potenziell vernässten Böden, bei denen spezielle Ausrüstung erforderlich sein kann, um das Rohr zu erreichen.
SQL query context:
  • Objekttyp: Rohr
  • [Raumbezogener] Suchtyp: Entfernung
  • [Raumbezogener] Layertyp: GIS-Layer
  • [Raumbezogener] Layer: [SHP] Infrastruktur
  • Filter auf aktuelle Auswahl anwenden = TRUE


gislayer.WRAPCLASS = 1 OR gislayer.WRAPCLASS = 3 

C

Das dritte SQL-Objekt testet die ausgewählten Rohre, um festzustellen, ob sich eines davon in der Nähe eines Krankenhauses befindet. Da ein Rohrbruch in der Nähe eines Krankenhauses, der den Zugang blockieren oder den Bereich mit Abwasser verschmutzen würde, wahrscheinlich ein großes Problem darstellen würde, ist die Reparatur beschädigter Rohre in solchen Fällen besonders kritisch.

  • Alle in einem bestimmten Abstand von einem Krankenhausgebäude liegenden Rohre werden ausgewählt.
  • Hier werden außerdem im Objekt ein Datenfeld und eine Kennzeichnung festgelegt, damit es in Zukunft leicht identifiziert werden kann. Das Feld Kritikalität ist auf 5 festgelegt (der höchste Wert). Außerdem ist die Kennzeichnung Kritikalität gesetzt. Dabei kann es sich um einen Code für die Methode zum Festlegen des Felds oder auch um die Initialen der Person handeln, die den SQL-Befehl ausgeführt hat.
  • In Abbildung 1 sind die Krankenhausgebäude hellgrün dargestellt. Nur ein Rohr erfüllt alle in den SQL-Anweisungen festgelegten Bedingungen. Dieses Rohr wird rot hervorgehoben.
SQL query context:
  • Objekttyp: Rohr
  • [Raumbezogener] Suchtyp: Entfernung
  • [Raumbezogener] Layertyp: GIS-Layer
  • [Raumbezogener] Layer: [SHP] Infrastruktur
  • [Raumbezogene] Entfernung: 30.0


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

D

SQL-Abfragen können gruppiert und automatisch ausgeführt werden, um den Prozess noch effizienter zu gestalten.

Hier wurden die drei oben beschriebenen Abfragen zusammen in eine Gruppe Gespeicherte Abfrage aufgenommen. Wenn Sie diese Gruppe in ein Netz ziehen, werden alle darin enthaltenen Abfragen in alphabetischer Reihenfolge ausgeführt.

Wenn Sie also bei der Benennung der einzelnen Abfragen entsprechend sorgfältig vorgehen, können Sie leistungsstarke mehrschrittige Abfragen erstellen.