Import Export - Feldzuweisung

Nutzt man beim Import oder Export den Spezialeditor, stehen eine Reihe von Operationen zur Verfügung, um die Daten zu manipulieren. Jede Zeile im Spezialeditor entspricht einer Feldzuweisung zwischen externen Daten und MIKE Urban.

Grundsätzlicher Aufbau

Eine Feldzuweisung sieht prizipiell immer so aus:

ZIEL = QUELLE

Bei einem Datenimport spielt MIKE Urban die Rolle des Ziels. Die MIKE Urban-Feldnamen stehen daher links vom Gleichheitszeichen, die Feldnamen der externen Daten stehen rechts vom Gleichheitszeichen.

Bei einem Datenexport spielt MIKE Urban die Rolle der Quelle. Die MIKE Urban-Feldnamen stehen daher rechts vom Gleichheitszeichen, die Feldnamen der externen Daten stehen links vom Gleichheitszeichen.

Zahlen werden ohne Anführungszeichen angeschrieben. Will man Kommastellen angeben, muss man einen DezimalPUNKT verwenden. Hier wird dem MIKE Urban-Feld Demand der Wert 1.5 zugewiesen:

Demand = 1.5

Text wird unter einfache Anführungszeichen gesetzt. Hier wird dem MIKE Urban-Feld DataSource der Text Netzdatenbank zugewiesen.:

DataSource = 'Netzdatenbank'

Feldnamen werden ohne Anführungszeichen angeschrieben. Hier wird dem MIKE Urban-Feld Thickness der Inhalt des externen Feldes Wanddicke zugewiesen.

Thickness = Wanddicke

Operatoren

+ Addition
- Subtraktion
* Multiplikation
/ Division

Setzen Sie unbedingt Leerzeichen links und rechts der Operatoren. Im folgenden Beispiel wird der Befestigungsgrad in Prozent aus den absoluten Flächen berechnet:

ImpArea = 100 * ( Dach + Strasse ) / ( Dach + Strasse + Gruen )

Um ein Vorzeichen umzukehren, verwenden Sie nicht „minus…“, sondern „Null minus…“.

Im folgenden Beispiel sind die Entnahmen im externen Datensatz mit negativem Vorzeichen gespeichert, während MIKE Urban ein positives Vorzeichen verwendet. Die dargestellte Feldzuweisung führt den Vorzeichenwechsel durch:

Demand = 0 - Entnahme

Klammern

Setzen Sie auf jeden Fall Klammern, wenn es auf die Reihenfolge der Operatoren ankommt! „Punktrechnung vor Strichrechnung“ wird von MIKE Urban nicht berücksichtigt, und selbst bei gleichrangigen Operatoren kann man Überraschungen erleben.
( Klammer auf
) Klammer zu

Im folgenden Beispiel wird der Quotient aus Dachfläche und Gesamtfläche gebildet und dann mit 100 multipliziert, um auf Prozentwerte zu kommen.

AISteep = ( DACHM2 / FLAECHEM2 ) * 100

Wenn Sie die Klammer weglassen, führt MIKE Urban zuerst die Multiplikation aus und dann die Division, was zu völlig falschen Ergebnissen führt.

Funktionen

Quadratwurzel

Width = sqrt(Area * 10000)

berechnet die mittlere SWMM-Einzugsgebietsbreite als Wurzel der Fläche [ha], wobei die Fläche zuerst in m2 umgerechnet wird.

Textbereinigung

MUID = RemoveSpaces(KnotenID)

konvertiert Wert in Text und entfernt alle Leerzeichen und Tabulatoren. Nützlich, wenn im Externen Datensatz am Anfang oder Ende der KnotenID Leerzeichen importiert werden würden.

Textverkettung

MUID = VonKnoten + '-' + NachKnoten

Bedingungen

Jede Feldzuweisung lässt sich durch 'WHERE ' mit Bedingungen verknüpfen.

Erlaubt sind die Vergleichsoperatoren

= gleich
<> ungleich
< kleiner
> größer
<= kleiner oder gleich
>= größer oder gleich

Innerhalb einer Felszuweisung kann man Bedingungen mittels AND und OR kombinieren.

Die folgende Sequenz verwendet das Feld 'Layer', um einen Rohrdurchmesser zuzuweisen, was sehr praktisch ist, wenn man Daten aus AutoCAD-Zeichungen importiert.

Diameter = 30 WHERE Layer = '_WL_Bestand_DN_30'
Diameter = 40 WHERE Layer = '_WL_Bestand_DN_40'
Diameter = 50 WHERE Layer = '_WL_Bestand_DN_50'
Diameter = 60 WHERE Layer = '_WL_Bestand_DN_60'
Diameter = 75 WHERE Layer = '_WL_Bestand_DN_75'
Diameter = 80 WHERE Layer = '_WL_Bestand_DN_80'
Diameter = 100 WHERE Layer = '_WL_Bestand_DN_100'
Diameter = 125 WHERE Layer = '_WL_Bestand_DN_125'
Diameter = 150 WHERE Layer = '_WL_Bestand_DN_150'
Diameter = 200 WHERE Layer = '_WL_Bestand_DN_200'

Bedingungen durch UND verknüpfen:

DataTypeName = 'Water Level' WHERE (TypeNo = 100) AND (BcTypeNo = 1)

Will man mehrere Bedingungen durch ein ODER verknüpfen, schreibt man sie am besten in mehrere Zeilen:

#   Schmutzwasser
NetTypeNo = 1 WHERE Kanalart = 'KS'
NetTypeNo = 1 WHERE Kanalart = 'DS'
#   Regenwasser
NetTypeNo = 2 WHERE Kanalart = 'KR'
NetTypeNo = 2 WHERE Kanalart = 'DR'
#   Mischwasser
NetTypeNo = 3 WHERE Kanalart = 'KM'
NetTypeNo = 3 WHERE Kanalart = 'DM'

Auf leere Felder prüfen:

#  leeres Feld
... WHERE Feld = NULL
#
#  nicht leeres Feld
... WHERE Feld <> NULL

Tabellen verknüpfen

Mittels LookUp kann man Werte aus einer anderen Tabelle einlesen.

LookUP("SuchTabelle","SuchSpalte",Eingangswert,"RückgabeSpalte")

Ein Beispiel findet sich im folgenden Kapitel „Datensätze löschen“.

Datensätze löschen

Die folgenden Zeilen stehen am Ende einer Importroutine für Wasserbedarfsdaten. Mit einem LookUp wird geprüft, ob der Bedarf sich auf einen Knoten bezieht, der im Netz vorhanden ist. Wenn der Knoten nicht vorhanden ist, wird der Datensatz gelöscht, statt importiert.

Var_ExistingJunction = NULL
Var_ExistingJunction = LookUP("mw_Junction","MUID",JunctionID,"MUID")
DeleteRecord WHERE Var_ExistingJunction = NULL

Das WHERE nach dem DeleteRecord ist zwingend notwendig. Wenn Sie keine Bedingung benötigen, schreiben Sie

DeleteRecord WHERE 1=1

Meldungen abestzen

Mit dem Befehl Log() können Sie Meldungen in die Datei „all-utf8.log“ schreiben, die Sie im folgenden Verzeichnis finden:1)

„C:\Dokumente und Einstellungen\IhrBenutzername\Lokale Einstellungen\Anwendungsdaten\DHI\2009\MIKE URBAN\all-utf8.log“

Die Klammer muss ohne Abstand auf das Log() folgen, mit Log () provozieren Sie eine Fehlermeldung!

Der folgende Befehl schreibt die aus Geländehöhe und Schachttiefe berechneten Schachtsohlen in die Log-Datei:

Invertlevel = Gelaende - Tiefe
Log(Gelaende - Tiefe)

Sie können sich mit Log() nur auf die externen Daten beziehen. Daher führt der folgende Befehl nicht zum gewünschten Ergebnis:

Invertlevel = Gelaende - Tiefe
Log(Invertlevel)

Falls eine globale Variable definiert wurde, könnten Sie aber folgendermaßen vorgehen:

Var1 = Gelaende - Tiefe
Log(Var1)
1) In Versionen vor 2009 befand sich diese Datei in „C:\Programme\Gemeinsame Dateien\DHI\“.
import_feldzuweisung.txt · Zuletzt geändert: 2010/02/25 20:33 von bonus
Nach oben
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0