Page Title

Der Wiki wird derzeit überarbeitet: neue URL, neues Design, neue Inhalte!

Benutzer-Werkzeuge

Webseiten-Werkzeuge


mikeurban:anleitungen:ergebnisse_mousezusammenfassung_lageplan

MOUSE-Zusammenfassung im Lageplan

Letzte Änderung mit MIKE URBAN Version 2009 SP2.

Einleitung

Bei jedem MOUSE-Simulationslauf wird eine Zusammenfassung der Simulationsergebnisse in Form einer HTML-Datei gespeichert. Diese Zusammenfassung kann mit einigen Handgriffen auch herangezogen werden, um im Lageplan Ergebnisse wie den maximalen Überstau oder den Auslastungsgrad darzustellen.

Die Darstellung anhand der HTML-Zusammenfassung ist zwar umständlicher, als die Darstellung anhand der statistischen Ergebnisse direkt aus der MIKE URBAN-Datenbank, dafür ist sie besonders bei großen Kanalnetzen weitaus schneller.

Vorgehen Schritt für Schritt

HTML-Zusammenfassung in mehrere Textdateien kopieren

Lesen Sie im Beitrag zur MOUSE-Ergebniszusammenfassung, wie Sie das Aufteilen auf mehrere Textdateien am besten mit Hilfe von Firefox erledigen!

(1) Stellen Sie sicher, dass die MOUSE-Ergebniszusammenfassung alle für Sie interessanten Ergebnisse enthält, indem Sie vor dem Starten der Simulation die entsprechenden Optionen im Editor Simulation, Register „Zusammenfassung“ anhaken. Damit das akkumulierte Überstauvolumen ausgewiesen wird, müssen Sie in der dhiapp.ini den Parameterer WRITESURFACEFLOODRESULTS auf 1 setzen.

(2) Öffnen Sie die MOUSE-Ergebniszusammenfassung mit Firefox. Die Zusammenfassung besteht aus mehreren Tabellen.

(3) Klicken Sie in die Tabelle „Knoten - Wasserspiegel“ (Nodes - Water Level). Kopieren Sie die Tabelle mit Hilfe der Firefox TableTools2 1) als tabseparierten Text in die Zwischenablage.

(4) Öffnen Sie in einem Texteditor eine neue Datei und fügen Sie den Inhalt der Zwischenablage ein. Es handelt sich um einen durch Tabulatoren getrennten Text.

(5) Löschen Sie die beiden Kopfzeilen. Speichern Sie die Textdatei als ResNodesWater.txt.

(6) Wiederholen Sie die Schritte 3 bis 5 mit der Tabelle „Haltungen - Zusammenfassung“ (Links - Result summary) und speichern Sie in die Textdatei ResLinksResult.txt.

(7) Wiederholen Sie die Schritte 3 bis 5 mit der Tabelle „Haltungen - Eingangsdaten“ (Links - Data) und speichern Sie in die Textdatei ResLinksData.txt.

ArcMap vorbereiten

(8) Damit ArcMap die Eigenschaften der Attribute möglichst reibungslos erkennt, kopieren Sie diese schema.ini ins gleiche Verzeichnis, wie die im vorigen Schritt erstellten Textdateien.

(9) Erstellen Sie in ArcMap eine neue Karte und fügen Sie aus Ihrer MIKE URBAN Datenbank die Knoten (msm_Node) und Haltungen (msm_Link) hinzu.

(10) Fügen Sie der Karte ebenso die drei Textdateien hinzu. Öffnen Sie die Tabellen und kontrollieren Sie, ob die Werte richtig angezeigt werden. Bei Problemen konsultieren Sie den Beitrag schema.ini, insbesondere Dezimaltrennzeichen.

Texttabellen joinen und Werte berechnen

Die nächsten Schritte umfassen eine Reihe von Joins und Feldberechnungen. Die Schritte wurden der Einfachheit halber in Befehlszeilen zusammengefasst, die Sie im Block abarbeiten können.

Die folgenden Befehlszeilen funktionieren ab MIKE URBAN 2009/ArcGIS 9.3, nicht aber in älteren Versionen. Dies hat offenbar mit Änderungen in der Funktionsweise der Befehlszeilen zu tun.
workspace <VOLLSTÄNDIGEN PFAD ZU DEN ERGEBNISTABELLEN EINTRAGEN>
AddField msm_Node static_Uestau DOUBLE
AddField msm_Link static_Einstau DOUBLE
AddField msm_Link static_Uestau DOUBLE
CopyRows ResLinksResult.txt ResLinksResult.dbf
CopyRows ResLinksData.txt ResLinksData.dbf
CopyRows ResNodesWater.txt ResNodesWater.dbf
AddJoin msm_Node MUID ResNodesWater.dbf KnotID KEEP_ALL
AddJoin msm_Link MUID ResLinksResult.dbf HaltID KEEP_ALL
AddJoin msm_Link MUID ResLinksData.dbf HaltID KEEP_ALL
SelectLayerByAttribute msm_Node CLEAR_SELECTION
CalculateField msm_Node msm_Node.static_Uestau '-[ResNodesWater.Abstand]' VB
SelectLayerByAttribute msm_Link CLEAR_SELECTION
CalculateField msm_Link msm_Link.static_Einstau '[ResLinksData.Dimension] * ( [ResLinksResult.Hmax_D] - 1)' VB
AddJoin msm_Link ResLinksData.VonKnot ResNodesWater KnotID KEEP_ALL
CalculateField msm_Link msm_Link.static_Uestau '-[ResNodesWater.Abstand]' VB
RemoveJoin msm_Link ResNodesWater
AddJoin msm_Link ResLinksData.NachKnot ResNodesWater KnotID KEEP_ALL
SelectLayerByAttribute msm_Link NEW_SELECTION "-ResNodesWater.Abstand > msm_Link.static_Uestau"
CalculateField msm_Link msm_Link.static_Uestau '-[ResNodesWater.Abstand]' VB
RemoveJoin msm_Link ResNodesWater
SelectLayerByAttribute msm_Link CLEAR_SELECTION

(10) Blenden Sie in ArcMap das Befehlszeilenfenster ein (Menü Fenster > Befehlszeile)

(11) Kopieren Sie die obigen Befehle, ergänzen Sie in der ersten Zeile hinter dem workspace den vollständigen Pfad zum Verzeichnis, in dem die Texttabellen gespeichert sind, also z.B.

workspace E:\Projekte\MeinProjekt\

(12) Fügen Sie den adaptierten Text ins Befehlszeilenfenster ein.

(13) Sie starten die Befehle, indem Sie den Mauscursor ans Ende des Textblocks setzen und <Enter> drücken. Der ganze Textblock wird markiert, und im unteren Teil des Befehlszeilenfensters können Sie verfolgen, wie die einzelnen Schritte abgearbeitet werden. Dass ArcMap fertig ist, erkennen Sie daran, dass der obere Teil des Befehlszeilenfensters geleert wird.

Darstellung der Ergebnisse

(14) Über die Layersteuerung können Sie nun die unten angeführten Ergebnisse visualisieren. Die Einheiten sind zur Orientierung für das Einheitensystem „SI-m3_per_second“ angeführt.

Layer Attribut Erklärung
msm_Node HmaxKnot maximaler Wasserspiegel im Knoten [müA]
msm_Node static_Uestau maximaler Überstau über Gelände [m]
msm_Node UestauVol akkumuliertes Überstauvolumen [m3]
msm_Link Qvoll Vollfüllleistung [m3/s]
msm_Link HmaxHalt maximaler Wasserspiegel in der Haltung [müA]
msm_Link Qmax maximaler Durchfluss [m3/s]
msm_Link Hmax_D maximaler Füllungsgrad [ ]
msm_Link Qmax_Qvoll maximaler Auslastungsgrad [ ]
msm_Link static_Einstau Einstauhöhe [m]
msm_Link static_Uestau Überstauhöhe [m]

Was die Haltungen betrifft, berechnet MOUSE zumindest zwei Wasserspiegel an den Haltungsenden, bei langen Haltungen eventuell auch Zwischenpunkte. Durchflusspunkt gibt es zumindest einen, bei langen Haltungen eventuell auch mehr. In der binären Ergebnisdatei *.prf sind all diese Berechnungspunkte entlang einer Haltung gespeichert, und sie sind z.B. im Längenschnitt auch sichtbar.

Im Gegensatz dazu wird in der HTML-Zusammenfassung in den Tabellen „Haltungen - Zusammenfassung“ und „Haltungen - Eingangsdaten“ immer nur ein Wert pro Haltung abgespeichert. Es ist dies immer der größte Wert aller zu einer Haltung gehörenden Berechnungspunkte.

Anmerkungen

Die Schritt-für-Schritt-Anleitung deckt nicht alle Ergebnistypen ab. Sinngemäß lässt sich die Vorgehensweise auch auf Pumpen, Wehre oder Fließgeschwindigkeiten in Haltungen anwenden.

Falls Sie Fragen oder Vorschläge haben, wenden Sie sich bitte an support@telegdy.at.

Offene Punkte

  • dBase-Dateien werden nicht überschrieben, falls sie bereits vorhanden sind. Das macht Schwierigkeiten, falls ein neuer Simulationslauf dargestellt werden soll. Daher Routine einbauen, die dBase-Dateien löscht.
  • unwichtige Spalten ausblenden
  • Feldnamen mit „res“ statt mit „static“ beginnen. Feldnamen auf 10 Zeichen kürzen, damit sie sich auch für Export nach Shapedatei eignen.
  • ev. Alternativvariante erstellen, die alle Felder in die msm_Node bzw. msm_Link schreibt. Frage der Performance!
  • Klassifizierung der Schächte nach dem Schema der Emscher-Genossenschaft einführen.
  • Gibt es eine Möglichkeit, die HTML-Zusammenfassung automatisch in Textdateien zu zerlegen, z.B. mit Hilfe von XSLT oder Python?

Versionsgeschichte

Datum Bemerkung
14.08.2009 schema.ini korrigiert
12.06.2009 Seite angelegt

Anhang: Erklärung der Befehlszeilen

Sie müssen ArcMap für den Rest der Session mitteilen, in welchem Verzeichnis die Texttabellen liegen:

workspace E:\Projekte\MeinProjekt\

Speziell für die Darstellung des Überstaus wird der msm_Node das Feld „static_Uestau hinzugefügt. Ebenso werden der msm_Link für die Darstellung des Einstaus und des Überstaus die Felder „static_Einstau“ und „static_Uestau“ hinzugefügt. Das Präfix static soll daran erinnern, dass diese Felder nicht automatisch aktualisiert werden, sondern dass es an Ihnen liegt, neue Ergebnisse einzutragen.

Falls die Felder bereits vorhanden sind, erscheint eine Fehlermeldung „Failed to execute“, was den weiteren Programmablauf aber nicht beeinträchtigt.

AddField msm_Node static_Uestau DOUBLE
AddField msm_Link static_Einstau DOUBLE
AddField msm_Link static_Uestau DOUBLE

Weil das Joinen von Texttabellen über die Befehlszeile in ArcMap 9.3 irrtümlich nicht funktioniert, müssen dBase-Tabellen gleichen Inhalts erzeugt werden:

CopyRows ResLinksResult.txt ResLinksResult.dbf
CopyRows ResLinksData.txt ResLinksData.dbf
CopyRows ResNodesWater.txt ResNodesWater.dbf

Joint die Knotenergebnisse an die Knoten, und die Haltungsergebnisse an die Haltungen:

AddJoin msm_Node MUID ResNodesWater.dbf KnotID KEEP_ALL
AddJoin msm_Link MUID ResLinksResult.dbf HaltID KEEP_ALL
AddJoin msm_Link MUID ResLinksData.dbf HaltID KEEP_ALL

Löscht eine eventuell vorhandene Auswahl und berechnet den Überstau der Knoten im Feld „static_Uestau“ nach der Formel -[Abstand]:

SelectLayerByAttribute msm_Node CLEAR_SELECTION
CalculateField msm_Node msm_Node.static_Uestau '-[ResNodesWater.Abstand]' VB

Löscht eine eventuell vorhandene Auswahl und berechnet den Einstau der Haltungen im Feld „static_Einstau“ nach der Formel [Dimension] * ( [Hmax_D] - 1):

SelectLayerByAttribute msm_Link CLEAR_SELECTION
CalculateField msm_Link msm_Link.static_Einstau '[ResLinksData.Dimension] * ( [ResLinksResult.Hmax_D] - 1)' VB

Joint die Tabelle mit den Knotenergebnissen über das Feld „VonKnot“, schreibt den Überstau des Knotens in das Feld „static_Uestau“ der Haltungen, und entfernt den Join wieder:

AddJoin msm_Link ResLinksData.VonKnot ResNodesWater KnotID KEEP_ALL
CalculateField msm_Link msm_Link.static_Uestau '-[ResNodesWater.Abstand]' VB
RemoveJoin msm_Link ResNodesWater

Weil nicht sicher ist, dass der Knoten am oberen Haltungsende den höheren Überstau verzeichnet, müssen die Knotenergebnisse nun über das Feld „NachKnot“ gejoint werden. Überall, wo der Überstau am unteren Haltungsende größer ist, wird das Feld „static_Uestau“ aktualisiert:

AddJoin msm_Link ResLinksData.NachKnot ResNodesWater KnotID KEEP_ALL
SelectLayerByAttribute msm_Link NEW_SELECTION "-ResNodesWater.Abstand > msm_Link.static_Uestau"
CalculateField msm_Link msm_Link.static_Uestau '-[ResNodesWater.Abstand]' VB

Der Join wird entfernt und die Auswahl aufgehoben:

RemoveJoin msm_Link ResNodesWater
SelectLayerByAttribute msm_Link CLEAR_SELECTION
1)
installation über die Firefox Add-ons
mikeurban/anleitungen/ergebnisse_mousezusammenfassung_lageplan.txt · Zuletzt geändert: 2016/05/19 16:35 von thomas