Artikel mit Schlagwort Daten

05.3 Hydrologische Daten

5.3.1 Pegeldaten

Die Verwaltung hydrologischer Eingangszeitreihen und ihre Zuordnung auf die zu modellierenden Raumelemente erfolgt in der Programmkomponente HYD_DATA.

Sie bietet derzeit folgende Funktionalitäten:

  • Verwaltung gemessener Wasserstände und Abflüsse und
  • räumliche Verknüpfung dieser Zeitreihen mit Gewässerabschnitten.

Die Verwaltung der Daten erfolgt analog zu den meteorologischen Eingangsgrößen in Tabellen. Im Gegensatz zu den meteorologischen Daten, die notwendig für die Modellierung sind, ist die Einbeziehung obiger, hydrologischer Größen nur dann erforderlich, wenn während der Modellrechnung, z.B. für eine Eichung, ein Vergleich mit gemessenen Abflusswerten erfolgen soll.

Über die Steuerdatei HYD_DATA.STE (s. Abbildung 5.3-1) werden dem Programm die Namen der Dateien mitgeteilt, die die Strukturdefinitionen der Datendateien beinhalten. Unterschieden wird zwischen

  • einer Stammdatentabelle (Strukturdefinition über HYD_STAT_DESCRIBE) und
  • einer Datentabelle (STRUKTURDEFINITION über HYD_DAT_DESCRIBE).

Über den Eintrag FEHLWERTBELEGUNG kann angegeben werden, wie Fehlwerte in den Zeitreihen definiert worden sind. Default-Wert ist der Wert –9999.

 

###### Hydrologie ###########################################################
HYD_STAT_DESCRIBE        hyd_stat
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
HYD_DAT_DESCRIBE         hyd_data
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
FEHLWERTBELEGUNG         FEHLWERT   /* Kennzeichnung nichtgemessener Daten */
                                    /* z.B. Geraeteausfall */
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Abbildung 5.3-1: Steuerdatei HYD_DATA.STE

 

Abbildung 5.3-2 zeigt die Datei HYD_STAT.SDF zur Definition der Stammdatentabelle, die über das Schlüsselwort HYD_STAT eingeleitet wird. Hier wird die Struktur der DBASE-Tabelle PEGEL.DBF beschrieben, die als Attribute eine verbale Bezeichnung für die Lage des Pegels, eine Datendateibezeichnung, den Datentyp, die zeitliche Auflösung und die Lagekoordinaten definiert.

Die Zuordnung der hydrologischen Daten kann über die Angabe

  1. der Gewässerstrecke <FGW-ID>,
  2. des Teileinzugsgebietes <TG-ID> oder
  3. der Lagekoordinaten der Station erfolgen.

Sind mehrere dieser Attribute angegeben, werden bevorzugt die IDs verwendet, wobei die Wahl zwischen den IDs wiederum durch die gewählte Raumauflösung bei der Abflusskonzentrationsmodellierung bestimmt wird.

Ist keine ID vorgegeben, wird unter Nutzung der Lagekoordinaten der jeweils nächste Gewässerabschnitt (aus den Knotenkoordinaten) bzw. das nächste Teileinzugsgebiet (nach den Koordinaten des Flächenschwerpunktes) für die Zuordnung verwendet.

Diese Zuordnung ist in beiden Fällen mit Unsicherheiten behaftet. So muss die Selektion des zugeordneten Gewässerabschnittes über den oberen Knoten erfolgen, weil nur so überhaupt eine Eindeutigkeit gesichert ist (bei den in ArcEGMO zugelassenen Baumstrukturen des Gewässernetzes können mehrere Gewässer denselben unteren Knoten besitzen).

Pegelabflüsse werden programmintern u.a. zur Schätzung bestimmter Anfangszustände (insbesondere der Grundwasserspeicher) verwendet. Für diese Schätzung ist die Kenntnis der Einzugsgebietsflächen der Pegel erforderlich. Diese Einzugsgebietsflächen werden normalerweise innerhalb des Programms gleich den kumulativen Einzugsgebietsflächen der zugeordneten Gewässerabschnitte bzw. Teileinzugsgebiete gesetzt. Wenn allerdings die Lage der Pegel nicht bei der Gebietsgliederung berücksichtigt wurde, ergeben sich bei dieser Verfahrensweise größere Differenzen zu den wirklichen Pegeleinzugsgebieten. In solchen Fälle können die EINZUGSGEBIETSFLAECHEn der Pegel auch direkt vorgegeben werden (Einheit [m2]).

Über den DATENFAKTOR können Korrekturen/Umrechnungen der Zeitreihen vorgenommen werden. Alle Pegelabflüsse werden mit dem Datenfaktor multipliziert. Ist er nicht angegeben, wird er auf 1. gesetzt. Über die Angabe von -1 kann eine Entnahme der Abflusszeitreihe vorgenommen werden, wenn die ID’s der zugeordneten Gewässerabschnitte ein negatives Vorzeichen erhalten (siehe Kapitel 5.4.1).

HYD_STAT DBASE                   pegel.dbf /* Tabelle der Pegel */
VERBALE_ORTSBEZEICHNUNG          NAME /* Pegelname oder Lagebezeichnung */
GEWASSERSTRECKE                  FGW_ID
TEILEINZUGSGEBIET                TG_ID
DATEI_BEZEICHNUNG                DATEI
DATEN_TYP                        TYP
DATENZEITINTERVALL               DTD
X_WERT                           X_COORD
Y_WERT                           Y_COORD
EINZUGSGEBIETSFLAECHE            AREA [qm]
DATENFAKTOR                      FAKTOR /* Datenfaktor für Korrektur/Umrechnung */

Abbildung 5.3-2: Datei HYD_STAT.SDF – Definition der Stammdatentabelle

 

Abbildung 5.3-3 beinhaltet die Stammdatentabelle. Diese befindet sich, sofern es sich um eine ASCII-Tabelle handelt, im Verzeichnis GISDESCRIBE. Hier ist zu sehen, dass die Reihenfolge der Spalten nicht mit der Definitionsreihenfolge in der Steuerdatei übereinstimmen muss.

FGW-ID DATEI TYP DTD NAME       X-COORD     Y-COORD
40     test  wqt 24 'Pegelname' 4472131.000 5709110.000

Abbildung 5.3-3: Beispiel für eine Stammdatentabelle

 

Die Datei HYD_DATA.SDF beinhaltet die Strukturdefinition für die eigentlichen Datentabellen (s. Abbildung 5.3-4) und wird über das Schlüsselwort HYD_DATEN eingeleitet. Die Datentabellen sind i.d.R. ASCII-Tabellen. Der Dateiname setzt sich aus der DATEI_BEZEICHNUNG und dem DATEN_TYP zusammen. Als Datentyp ist ‘wt’, ‘qt’ oder ‘wqt’ möglich, je nachdem, ob Wasserstände, Abflüsse oder beides in der zugeordneten Datentabelle verwaltet werden. Bezüglich der zeitlichen Auflösung gilt, wiederum analog zu den meteorologischen Daten, dass diese für alle Daten gleich sein muss.

Neben den Datenarten werden wiederum die Attributbezeichnungen für die zeitliche Zuordnung festgelegt. Standardmäßig werden die Datentabellen im Zeitreihen-Verzeichnis gespeichert, und zwar alle Daten einer Station in einer Datendatei.

Es ist aber auch möglich, die Zeitreihendaten in einem projektunabhängigen Verzeichnis zu verwalten, beispielsweise um Redundanzen zu vermeiden. In diesem Fall wird neben dem Datenformat (ASCII- oder DBASE) auch der Pfad zu diesen Datendateien angegeben. Zu beachten ist hierbei, dass der komplette Pfad angegeben wird und dass die Pfadangabe mit einem Slash abgeschlossen wird.

HYD_DATEN                    ASCII H:\Alle_Zeitreihen
Termin                       termin /* durch "." getrennte Datumszeichenkette */
JAHR                         y
MONAT                        m
TAG                          d
STUNDE                       h
MINUTE                       min
GEMESSENER_PEGELABFLUSS      QT [m**3/s]
GEMESSENER_WASSERSTAND       WT [cm]

Abbildung 5.3-4: Datei HYD_DATA.SDF – Definition der Datentabellen

 

Abbildung 5.3-5 zeigt einen Auszug aus der Pegeldatentabelle TEST.WQT, die entsprechend des Datentyps ‘wqt’ Abflusswerte und Wasserstände beinhaltet.

 

d   m y    QT   WT
01 11 1978 0.20 0.5
02 11 1978 0.25 0.51
03 11 1978 0.30 0.52
04 11 1978 0.25 0.51

Abbildung 5.3-5: Beispiel für eine Pegeldatentabelle

 

5.3.2 Externe Zuflüsse zum Gewässer

Am Gebietsrand sind Fremdzuflüsse zu verwenden. Sie berücksichtigen die außerhalb des Modellgebiets gelegene Flächengröße des Einzugsgebiets. Dazu muss die Externe Einzugsgebebietsgröße an den jeweiligen Rand-FGW-Abschnitten, die von dem Fremdzufluss gespeist werden, über das Steuerwort „FGW_extZuflussgebiet“ in der fgw.sdf und einer neuen Spalte mit der Flächengröße am fgw.dbf angegeben werden.

Zuordnung der Einzugsgebietsflächen zum Gewässernetz

Sofern für die Modellebene Q_Mod auf der Basis von Gewässerabschnitten gearbeitet wird, wird vom Programm eine Datei fgw_area.xlx im <Ergebnisverzeichnis>para ausgegeben. Diese beinhaltet für jeden Gewässerabschnitt die folgenden Größen:

 

Tabelle 5-5.3-1: Auszug aus der Datei fgw_area.xlx

e_area Eigeneinzugsgebiet, das sich durch längengewichtete Aufteilung der zugeordneten Teileinzugsgebietsfläche auf sämtliche Gewässerabschnitte in diesem Einzugsgebiet ergibt
k_area kumulatives Einzugsgebiet, das sich aus der Summe des aktuellen Eigeneinzugsgebietes und der Einzugsgebiete aller oberliegenden Gewässerabschnitte ergibt,
g_area Grundwassereinzugsgebiet, das sich durch Auswertung der Kennungen für den Grundwasseranschluss ergibt (nur für detaillierte Grundwassermodellierung interessant)

 

Diese Werte sind vor allem für die Darstellung des Gewässernetzes nützlich, weil so sehr schnell die Hauptgewässer identifiziert werden können.

Sämtliche Flächengrößen wurden bisher aus den Flächen der Einzugsgebiete im Modellierungs-Cover TG abgeleitet.

Wenn wesentliche Randzuflüsse ins Modellgebiet integriert wurden, war es bisher nicht möglich, ohne großen Aufwand die zugeordneten Einzugsgebiete dieser Zuflüsse in obige Flächenberechnung einzubeziehen.

Dies ist jetzt möglich, indem der Gewässerdatenbasis ein zusätzliches Attribut zugewiesen wird, das die dem externen Zufluss zugeordnete Einzugsgebietsfläche [km2] beinhaltet. Der Name dieses Attributs wird dem Programm über den neuen Eintrag FGW_extZuflussgebiet in der Datei …GISDescribefgw.sdf wie folgt mitgeteilt:

 

FGW_extZuflussgebiet   f_area

Abbildung 5.3-6: Auszug aus der Datei …GIS\Describe\fgw.sdf

 

Fremdzuflüsse werden allein über die Pegel-Tabelle organisiert. In der Pegel.dbf wird die ID des Fließgewässerabschnitts mit einem Minuszeichen versehen. Ein Eintrag in der GWP.tab ist nicht erforderlich.

 

Name  DATEI    FGW_ID TG_ID TYP DTD AREA      FAKT
meisd meisdorf -6     6      qt 24  184000000 1

Abbildung 5.3-7: Auszug aus der Datei …GIS\ascii.pat\pegel.dbf

 

Die Abflussreihen der Fremdzuflüsse werden unter …Zeit.dat\Hyd.data<Pegelname>.tab gespeichert.

Über die Angabe eines negativen Datenfaktors (siehe Kapitel 5.4.1) in der Pegeltabelle kann eine Entnahme vorgenommen werden.

 

5.3.3 Pegel – Simulationsergebniszuordnung

Für die Ausgabe der Gütekriterien für jeden Pegel ist es jetzt auch möglich, nicht nur wie bisher den  Abfluss des Gewässerabschnittes „qc“ mit der Pegelzeitreihe zu vergleichen, sondern auch mit dem Abfluss des Oberliegers „qo“ zu vergleichen.

Dazu muss in der hyd_stat.sdf das Steuerwort SIM_ERGEBNISZUORDNUNG angegeben werden. Es wird intern nur auf qo getestet. Wenn ungleich oder diese Spalte nicht gegeben ist, bleibt alles wie bisher.
hyd_stat.sdf

SIM_ERGEBNISZUORDNUNG    Qc_oder_qo      /* getestet wird intern nur auf qo, wenn */
                                         /* ungleich oder diese Spalte nicht */
                                         /* gegeben ist, alles wie bisher */

 

5.3.4 PI2Pegel

Über die Aktivierung des Steuerwortes „PI2Pegel“ in der hyd_data.ste wird die Tabelle „pegel2tg.txt“ erzeugt.

hyd_data.ste

######  Hydrologie    ##########################################################
HYD_STAT_DESCRIBE     hyd_stat
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
HYD_DAT_DESCRIBE      hyd_data
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
*PI2Pegel              1
FEHLWERTBELEGUNG      -999.    /* Kennzeichnung nichtgemessener Daten         */
                               /* z.B. Geraeteausfall                        */
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
################################################################################

 

Diese Tabelle enthält die Zuordnung des Pegeleinzugsgebietes (alle zugehörigen TGs) zur PegelID (z.B. zur Messstellennummer) und deren Flächenanteil am Pegeleinzugsgebiet.

pegel2tg.txt

Pegel       TG_ID       Anteil
563745      376         0.632732
563745      379         0.343717
563745      377         0.006020
563745      375         0.017531
568400      319         0.175335
568400      274         0.198216
568400      306         0.113704
568400      273         0.161592
568400      265         0.175977
568400      259         0.175176

 

Es wird für alle Pegel, an denen Zeitreihen vorliegen, das Pegeleinzugsgebiet ermittelt. Danach stoppt ArcEGMO automatisch. Für eine Simulation muss nach erfolgter Ausgabe der Zuordnungstabelle das Steuerwort PI2Pegel wieder deaktiviert werden.

Wenn in der hyd_stat.sdf keine Pegelkennung angegeben ist, erhalten alle Pegel eine fortlaufende ID. In der hyd_stat.sdf kann über das Steuerwort „Pegelkennung“ eine PegelID/-Kennung (z.B. die Angabe der Messstellennummer) aktiviert werden (Pegelkennung   PEG_MSTNR).

hyd_stat.sdf

######  Hydrologie    ########################################################
…
Pegelkennung             PEG_MSTNR
…
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
################################################################################

 

Über die Ausgabe der Ergebnisse auf Teileinzugsgebiete können die Simulationsergebnisse mit dem Programm table.exe flächengewichtet für Pegeleinzugsgebiete aggregiert werden. Dafür ist die einmalige Erzeugung der Tabelle pegel2tg.txt notwendig. Der Befehl für table.exe lautet „PegelPi“ und die zugehörige Beschreibung ist der Dokumenation Tools zu entnehmen.

 


05.6 Zeitvariante Daten -> relate Zeitfunktionen

Die Kennwerte in Relate-Tabellen werden vom Rahmenprogramm als zeitlich nicht veränderliche Größen verwaltet. Dies ist für eine Reihe von Kennwerten (Gefälle, Exposition, Bodenform) innerhalb der betrachteten Zeithorizonte gerechtfertigt und auch für andere Größen z.B. der Landnutzung für eine Vielzahl von Aufgabenstellungen möglich.

Für spezielle Untersuchungen ist es jedoch notwendig, Kennwerte als zeitlich veränderliche Größen zu behandeln.

Dies ist u.a. dann der Fall, wenn

  1. die Vegetationsentwicklung berücksichtigt werden soll (innerjährlicher Gang und langfristiges Wachstum) oder
  2. die Auswirkungen von Landnutzungsänderungen abzuschätzen sind.
  3. der innerjährliche Gang der Grundwasserflurabstände berücksichtig werden soll.

Modellmäßig beschreibbar sind diese Entwicklungen, indem

  1. für definierte Relationstypen Zeitfunktionen bestimmter Kennwerte vorgegeben werden (z.B. Relationstyp Nutzung: Versiegelungsgrad, Wurzeltiefe, Bedeckungsgrad) oder
  2. für definierte Relationstypen eine zeitliche Abfolge der Relationsklassen vorgegeben werden (z.B. Relationstyp Nutzung: Nutzungsklasse Wald wird zu buschiger Vegetation und später zu Grasland/Steppe).

Allerdings gelten dann die über Zeitfunktionen zu definierenden Szenarien für das gesamte Untersuchungs- bzw. Modellgebiet.

Insbesondere für großräumige Untersuchungen ist es jedoch notwendig, die Zeitfunktionen auch räumlich variabel vorgeben zu können. So setzt die Vegetationsentwicklung im Süden früher als im Norden ein (A) und eine großräumige Umwidmung ganzer Relationsklassen ist für sehr große Gebiete ein eher unwahrscheinliches Szenario.

In Auswertung obiger Überlegungen wurden folgende Anforderungen an die Verwaltung zeitvarianter Daten formuliert:

I. Die Art einer Zeitfunktion soll variabel vorgebbar sein, um verschiedene Arten von innerjährlichen, meist zyklischen und überjährlichen, meist trendbehafteten oder durch Sprungstellen gekennzeichneten Abläufen abbilden zu können.

II. Die Zeitfunktionen sollen an Kennwerte einer über ihre ID referenzierbare Relationsklasse (z.B. Relationstyp Nutzung: Nutzungsklasse Wald) oder unmittelbar an die ID selbst der Relationsklasse gebunden werden können.

III. Zusätzlich zur Bindung einer Zeitfunktion an eine Relations-ID soll optional eine selektive Bindung an zu definierende Raumbezüge (REG, TG, KAS, EFL) über deren IDs möglich sein.

Abbildung 5.6-1 zeigt ein Beispiel für eine Zeitfunktionsdefinition. Hier wird eine Verknüpfung zur Wurzeltiefe der Landnutzung mit der ID 5 in der Landnutzungstabelle (hier Wald) hergestellt. Die Zeitfunktion selbst befindet sich in der Datei wald_y.wt. Die Namenswahl für die Zeitfunktionsdateien ist frei. Allerdings ist es angeraten, über die Namensgebung den Inhalt zu dokumentieren. Empfohlen wird folgende Konvention <Relate_Typ>_<Zeitauflösung (s. Abbildung 5.6-2)>.<Kennwert>. Der Kennwert sollte dem Eintrag für DATZ entsprechen.

Unterstützt wird derzeit die Bindung zeitvariabler Werte auf statische Größen der Landnutzungs-, der Bodenarten- und der Flurabstandstabelle, über die Schlüsselwörter :

  1. NUTZUNG,
  2. BODENART oder
  3. GRUNDWASSERFLURABSTAND.

Innerhalb dieser Tabellen ist die zeitvariable Ersetzung der folgenden, statischen Größen (Zieldatenart DATZ) möglich:

  1. WT – Wurzeltiefe,
  2. Gwab – Grundwasserflurabstand [mm],
  3. Aimp – Versieglungsgrad [Anteil 0 …1],
  4. Intc – Interzeptionskapazitaet [mm]
  5. Bed – Bedeckungsgrad [Anteil 0 …1],
  6. LAI – LAI [mm]
  7. Beregnung – Beregnung [mm/DT[1]]

und zwar immer genau für einen Landnutzungstyp, eine Bodenart oder eine Grundwasserflurabstandsklasse, der über die zugehörige ID definiert ist. Programmintern wird eine Verknüpfung zwischen der ID in der Zeitfunktionsdefinition und dem dieser ID zugehörigen Eintrag in der gewählten Relate-Tabelle hergestellt.

image

Abbildung 5.6-1: Zeitreihendefinition – ein Beispiel


5.6.1 Unterstützte Zeitfunktionen

Unterstützt werden äquidistante und nicht äquidistante Zeitfunktionen. Die nicht äquidistanten Zeitfunktionen beschreiben über Stützstellen vorzugebende Verläufe. Zwischen den Stützstellen wird linear interpoliert oder eine Stufenfunktion aufgebaut. Bei der Stufenfunktion gilt ein Wert solange, bis er durch einen neuen ersetzt wird.

Die Zeitfunktionen für Kennwerte von Relateklassen befinden sich im Verzeichnis /zeit.dat/ascii.rel/.

Abbildung 5.6-3 bis Abbildung 5.6-4 zeigen einige Beispiele für Zeitfunktionen.

Jede Zeitfunktion wird über genau eine Datei vorgegeben. Die zweite Spalte beinhaltet die eigentlichen Attributwerte, wobei der Attributbezeichner identisch mit dem Bezeichner der Zieldatenart (DATZ – s. Abbildung 5.6-2) sein muss, die erste Spalte den zeitlichen Bezug. Wie dieser zu interpretieren ist, wird über die Datei ../zeit.dat/describe /relates.sdf vorgegeben (s. Abbildung 5.6-2).

###### Zeitvariable Kennwerte #############################################
Termin                 termin    /* durch "." getrennte Datumszeichenkette */
TerminHM               terminhm
JAHR                   y
MONAT                  m
TAG                    d
STUNDE                 h
MINUTE                 min
MITTLERE_MONATSWERTE   mm   /* Monatsnummer (1...12) */
MITTELWERT             mit
MITTLERER_JAHRESGANG   TN   /* Tagesnummer innerhalb eines Jahres (1...365)*/
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
###############################################################################

Abbildung 5.6-2: Steuerdatei ../zeit.dat/describe /relates.sdf

 

Abbildung 5.6-3 und Abbildung 5.6-4 zeigen Dateien, mit denen Jahresgänge über Stützstellen vorgegeben werden können. Zwischen den Stützstellen wird linear interpoliert.

Die erste Datei beinhaltet einen mittleren Jahresgang, der sich zyklisch für jedes Jahr innerhalb des Berechnungszeitraumes wiederholt. Der zeitliche Bezug wird über die Tagesnummer TN hergestellt.

image

Abbildung 5.6-3: Zeitvariable Kennwerte – mittlerer Jahresgang

 

Die zweite Datei beinhaltet ein Beispiel zur Vorgabe von Stützstellen zur Beschreibung des Jahresganges für jedes Einzeljahr innerhalb des Simulationszeitraumes. Der zeitliche Bezug ist hier über die komplette Datumsangabe Termin gegeben.

image

Abbildung 5.6-4: Zeitvariable Kennwerte – Jahresgänge über Stützstellen

 

Die Beispiele in den folgenden drei Abbildungen beinhalten Stufenfunktionen.

Abbildung 5.6-5 zeigt die Vorgabe eines Jahresganges über mittlere Monatswerte. Diese gelten jeweils genau für den angegebenen Monat, d.h. es müssen genau 12 Werte für die Monatsnummern 1 bis 12 vorgegeben werden.

 

image

Abbildung 5.6-5: Zeitvariable Kennwerte – mittlere Monatswerte (Jahresgang)

 

In Abbildung 5.6-6 und Abbildung 5.6-7 sind Dateien dargestellt, die Monats- bzw. Jahreswerte beinhalten. Jeder Wert gilt vom 1. Tag des angegebenen Monats bzw. Jahres unverändert bis zum 1. Tag des nächsten Eintrages. Damit können Stufenfunktionen mit einer äquidistanten Zeitdiskretisierungen in ein bis n Monate oder Jahre, aber auch nicht äquidistanten Zeitdiskretisierungen definiert werden.

 

image

Abbildung 5.6-6: Zeitvariable Kennwerte – Monatswerte

 

image

Abbildung 5.6-7: Zeitvariable Kennwerte – Jahreswerte

 


[1] DT als zeitliche Auflösung der Berechnung, nicht der Daten in der Zeitdatentabelle


08.5 Datenhandling auf Modulebene

Die Integration von Verwaltungsmöglichkeiten für alle Datenarten und -strukturen, die im Zusammenhang mit einer hydrologischen Flussgebietsmodellierung denkbar sind, ist weder möglich noch wäre sie aufgrund der damit verbundenen Redundanzen effektiv.

Reicht der vom Rahmenprogramm verwaltete Datenfundus für ein einzubindendes Modul nicht aus, so sind die benötigten Spezialdaten auf Modulebene zu verwalten.

Dafür werden die im Folgenden beschriebenen Routinen bereitgestellt, die neben der Eingabe und Auswertung dieser Daten auch die Verwaltung des benötigten Speicherplatzes unterstützen (allokieren, adressieren und freigeben).

Um die Verarbeitung nicht integrierter Daten innerhalb von Modulen zu gestatten, wurden eine Reihe von Routinen mit dem Ziel geschaffen, auch dem in der Programmierung nicht so versierten Nutzer ein möglichst einfaches Datenhandling zu gestatten.


8.5.1 Zeitinvariante Daten

Eine wesentliche Aufgabe der in Tabelle 8.5‑1 aufgeführten Routinen ist es, neue Datentabellen einzulesen, die analog den im Kapitel 4.5 aufgeführten Relate-Tabellen strukturiert sind, oder auf zusätzliche (vom Rahmenprogramm nicht eingelesene) Attribute in vorhandenen Relate-Tabellen zuzugreifen.

 

Tabelle 8.5‑1: Routinen zur Verwaltung von Relate-Tabellen

Name der Funktion Übergabewerte Bedeutung
double * Alloc_Double (double**,int n,char *cf) allokiert DoubleFeld der Dimension n, bei Fehler wird die Zeichenkette cf als Mitteilung ausgegeben
int * Alloc_Int (int**,int n,char *cf) allokiert IntegerFeld i_array der Dimension n, bei Fehler wird die Zeichenkette cf als Mitteilung ausgegeben
Char * xsprints (char* buffer, char *format, …) analog fprintf, allerdings Ausgabe nicht auf File, sondern auf Zeichenkette buffer
int TB_OpenTable (char *db_typ, char *ws, char *fn, char *id_name, DB_Tab **tab) Öffnet die Tabelle fn (=Dateiname) vom Typ db_typ („ASCII“) im Verzeichnis ws, liest die Schlüsselspalte (über id_name gekennzeichnet ein und liefert die Tabellenstruktur *tab zurück, Rückgabewert = anz_rec (Anzahl der Zeilen)
int TB_OpenRelateTable (**tab, char *modname, char *tabname, char *id_name, char *err Öffnet die RelateTabelle tabname (=Dateiname) im GIS-RELATE-Verzeichnis, liest die Schlüsselspalte (über id_name gekennzeichnet ein und liefert die Tabellenstruktur *tab zurück, Rückgabewert = anz_rec (Anzahl der Zeilen), modname gibt den Modulnamen bzw. den Block an, unter dem die Einträge in der modul.ste stehen, err ist eine Zeichenkette, über die eine Fehlerbeschreibung definiert werden kann
int TB_TableAnzRec (DB_Tab *tab) gibt die Anzahl der Zeilen bzw. der Datenrecords der Tabelle zurück
void TB_BindIAttribut (DB_Tab *tab, char *attributname, int **values) allokiert das Feld values und liest die Werte des Attributs attributname aus der Tabelle tab
int TB_GetIAttribut4Id (DB_Tab *tab, int id, int *values) liefert aus dem Feld values den der ID id zugeordneten Wert zurück
Int TB_ReadAttribut (DB_Tab *tab, char *modname, char *attributname, double **values, char *err) allokiert das Feld values und liest die Werte des Attributs attributname aus der Tabelle tab, modname gibt den Modulnamen bzw. den Block an, unter dem die Einträge in der modul.ste stehen, err ist eine Zeichenkette, über die eine Fehlerbeschreibung definiert werden kann
void TB_BindDAttributdouble TB_GetDAttribut4Id analog TB_BindIAttribut und TB_GetIAttribut4Id für Double
void TB_CloseTable (DB_Tab *tab) schließt die Datei fn
void TB_Close (DB_Tab *tab) schließt die Datei fn und gibt die Struktur tab frei


8.5.2 Zeitvariante Daten

Eine Beschreibung zur Definition und Anwendung von zeitvarianten Daten ist in Kapitel 5.5 zu finden.

 

8.5.2.1 Routinen zur Verwaltung von Zeitreihen

Die Routine ReadZRelTab liest Zeitfunktionen ein, deren Werte je nach Berechnungsfortschritt bzw. dem aktuellen Datum in der Simulation auf die dafür vorgesehenen Variablen gebunden werden.

 

Tabelle 8.5‑2: Routinen zur Verwaltung von Zeitreihen

Name der Funktion Übergabewerte Bedeutung
ZRel_tab * ReadZRelTab () Liest Zeitreihentabellen ein
void GetZRelTab (ZRel_tab *ht) Speichert die Werte der Zeitreihendateien gemäß des Simulationszeitpunktes auf die dafür vorgesehen Speicherplätze
void FreeZRelTab (ZRel_tab *ht) Gibt den in ReadZRelTab allokierten Speicherplatz wieder frei

 

8.5.2.2 Unterstützte Zeitfunktionen

Unterstützt werden äquidistante und nicht äquidistante Zeitfunktionen.

Die nicht äquidistanten Zeitfunktionen beschreiben über Stützstellen vorzugebende Verläufe. Zwischen den Stützstellen wird linear interpoliert oder eine Stufenfunktion aufgebaut. Bei der Stufenfunktion gilt ein Wert solange, bis er durch einen neuen ersetzt wird.

Die Zeitfunktionen für Kennwerte von Relateklassen befinden sich im Verzeichnis ../zeit.dat/ascii.rel/.

 

8.5.2.3 Analytische Zeitfunktionen

Analytische Funktionen werden aufgrund der Vielzahl denkbarer Ansätze nicht direkt unterstützt. Diese sind vom Modulentwickler selbst zu programmieren, wobei jedoch die Parameterverwaltung für solche Funktionen durch die Nutzung der in Kapitel 8.5.1 (attributbezogene Kennwerte) oder Kapitel 8.4 (globale bzw. attributunabhängige Parameter) unterstützt wird.