FRIEDRICH-SCHILLER-UNIVERSITÄT JENA Chemisch-Geowissenschaftliche Fakultät Institut für Geographie Verwaltung von Zeitreihen in datenbank-basierten Informationssystemen am Beispiel von RBIS (River Basin Information System) Diplomarbeit eingereicht von Franziska Zander geb. am 14. August 1982 in Karl-Marx-Stadt jetzt Chemnitz Gutachter: Prof. Dr. Wolfgang-Albert Flügel Dr. Sven Kralisch November 2007 Danksagung Ich möchte mich an dieser Stelle bei allen Personen herzlichen bedanken, die mich während meiner Diplomarbeit unterstützt haben. Insbesondere danke ich Dr. Sven Kralisch, der mein Interesse für das Datenbankumfeld sowie die Anwendungsentwicklung weckte und förderte, diese Diplomarbeit fachlich betreute und mir stets beratend zur Seite stand. Bedanken möchte ich mich ebenfalls bei Prof. Dr. Wolfgang-Albert Flügel, an dessen Lehrstuhl ich diese Arbeit verfassen durfte und allen Mitarbeitern des Lehrstuhls für Geoinformatik, Geohydrologie und Modellierung für ihre Unterstützung. Mein Dank gilt auch den Mitarbeitern des Lehrstuhls für Datenbanken und Informationssysteme in Jena für die abwechslungsreiche Ausbildung in meinem Nebenfach Informatik. Bei Thomas Erb, Christian Fischer, Torsten Sauer und meinem lieben Freund Thomas Meyer möchte ich mich für die vielen Denkanstöße und das Korrekturlesen bedanken. Ebenfalls möchte ich meinen Eltern danken, die mir das Studium und damit auch diese Diplomarbeit erst ermöglicht haben. Inhaltsverzeichnis Verzeichnisse Abkürzungsverzeichnis Abbildungsverzeichnis III III IV 1 Einführung und Problemstellung 1 2 Grundlagen 4 2.1 Einordnung von RBIS 2.1.1 IWRM – Integrated Water Resources Management 2.1.2 AIDIS – Adaptive Integrated Data Information System 2.1.3 RBIS – River Basin Information System 2.2 Datenhaltung und -verwaltung 2.2.1 Informationssystem 2.2.2 Datenhaltung und Anwendung 2.2.3 Einsatz von Open-Source 2.3 Meta- und Zeitreiheninformationssysteme 2.3.1 Metadaten für räumliche Informationen 2.3.1.1 Metadatenstandards 2.3.1.2 Metadateneditoren 2.3.1.3 Metainformationssysteme für Geodaten 2.3.2 Verwaltung von raum-zeitlichen Informationen 2.3.2.1 Standards für Zeitreihen und Sensoren 2.3.2.2 Zeitreiheninformationssysteme 2.4 Zeitreihen und Datenlücken 2.4.1 Zeitreihenarten 2.4.2 Ursachen für Datenlücken in Zeitreihen 2.4.3 Umgang mit Datenlücken 2.4.4 Interpolationsverfahren 2.4.4.1 Zeitliche Interpolationsverfahren 2.4.4.2 Räumliche Interpolationsverfahren 3 Metadaten- und Zeitreihenverwaltung in RBIS 3.1 Datenbankschema 3.2 Grundlegende interne Funktionsweise 3.2.1 XML-Dokumente 3.2.2 Sicherheit 3.2.3 Datenintegrität 3.3 Funktionsumfang aus der Sicht der Anwender 3.4 Aktueller Datenbestand im RBIS-IMTIS 3.5 Anforderungen für zukünftige Erweiterungen 4 Verwaltung und Interpolation von Zeitreihen in RBIS 4.1 Problemstellung und Ausgangssituation 4 4 5 6 7 7 8 10 12 13 13 15 16 18 18 21 22 23 24 25 26 26 28 32 33 35 35 37 38 39 40 41 42 42 I 4.2 Metadaten über Zeitreihen 4.2.1 Anpassung des Datenmodells für die Verwaltung 4.2.2 Erweiterung des Import-Formulares 4.2.3 Überarbeitung der Upload-Funktion 4.2.3.1 Transaktionen 4.2.3.2 Qualitätsprüfung 4.2.3.3 Datenlückenanalyse 4.3 Bereitstellung verschiedener Datenanalysemöglichkeiten 4.3.1 Allgemeine Funktionsweise und Voraussetzungen 4.3.2 Anwendung durch RBIS-Nutzer 4.4 Implementierung und Anwendung verschiedener Interpolationsverfahren 4.4.1 Datenmodell und Datenhaltung 4.4.1.1 Datenmodell für die Metadaten 4.4.1.2 Speicherung der berechneten Werte 4.4.2 Interpolationsvorgang und technische Umsetzung 4.4.2.1 Berechnungsansatz 4.4.2.2 Umsetzung und Ablauf von Interpolationen 4.4.2.3 Implementierte Interpolationsverfahren 4.4.2.4 Prüfen und Korrigieren der interpolierten Messwerte 4.4.3 Anwendung durch RBIS-Nutzer 4.4.3.1 Verwendung interner Verfahren 4.4.3.2 Verwendung externer Verfahren 4.5 Export und Darstellung von Zeitreihendaten 4.5.1 Export 4.5.2 Darstellung 4.6 Einbindung der entwickelten Funktionen in RBIS 4.7 Aufgetretene Probleme 43 44 46 46 47 49 49 51 52 55 58 58 59 60 61 62 63 65 70 71 71 73 74 74 76 78 78 5 Zusammenfassung und Ausblick 80 Anhang A: Datenmodelle 82 DS_Station – konzeptionelles Modell TS_TimeSeries – konzeptionelles Modell 82 83 Anhang B: XML-Schema von RBIS (rbis.xsd) 84 Anhang C: Auszüge aus dem Quellcode 87 create_query_linear_interpolation() interpolation_set() Literatur 87 88 92 II Verzeichnisse Abkürzungsverzeichnis ACID Atomicity, Consistency, Isolation, Durability AIDIS Adaptive Integrated Data Information System CeGi Center for Geoinformation GmbH CEN Comite Europeen de Normalisation CSDGM CSW Content Standard for Digital Geospatial Metadata Catalog-Service-Web DBMS Datenbank-Management-System DBS Datenbanksystem DCMI Dublin Core Metadata Initiative FGDC Federal Geographic Data Committee FOSS GDI-DE Freie und Open-Source-Software Geodateninfrastruktur - Deutschland GeoMIS.Bund Metainformationssystem für Geodaten des Bundes GIS Geoinformationssystem GWP Global Water Partnership IDW Inverse Distanzwichtung ILMS IMTIS Integriertes Landschafts-Managementsystem Integrated Metadata (and) Time series Information System ISO International Standards Organization Integrated IWRM Integrated Water Resources Management JAMS Jena Adaptable Modelling System NOKIS Nord-Ostsee-Küsten-Informations-System O&M OGC Observation and Measurement Open Geospatial Consortium OWS OGC Web Service PortalU Umweltportal Deutschland RBIS River Basin Information System RDBMS relationale Datenbank-Management-System SensorML SWE Sensor Model Language Sensor Web Enablement TRIS Tisza River Information System UDK Umweltdatenkatalog III Abbildungsverzeichnis Abbildung 1: Aufbau von RBIS mit den Anwendungen Metadaten- und Zeitreihenverwaltung und Kartenserver sowie den Datenbanken .........................................6 Abbildung 2: ISO 19115 Profil für bestimmte Nutzergruppen oder Länder „community profile“ (Quelle: ISO 19115:2003).......................................................................................14 Abbildung 3: Grundelemente Observation und Event in O&M (Cox 2006:13)..................20 Abbildung 4: Kontinuierliche Zeitreihe mit Lücke..............................................................23 Abbildung 5: Intervall-Zeitreihe mit Lücken.......................................................................23 Abbildung 6: Momentan-Zeitreihe mit Lücke.....................................................................24 Abbildung 7: RBIS-IMTIS: Übersichtsansicht (Metadaten für Zeitreihen)........................32 Abbildung 8: Übersicht zur zentralen Rolle der Metadaten-ID (konzeptionelles Modell)..33 Abbildung 9: Bedeutung von XML-Dokumenten im RBIS-IMTIS....................................35 Abbildung 10: Übersicht XML-Schema von RBIS-IMTIS ................................................36 Abbildung 11: RBIS-IMTIS: Oberfläche zur Rechteverwaltung.........................................37 Abbildung 12: Erfassung aller Schreibenden Zugriffe in Logs...........................................39 Abbildung 13: tägliche Temperaturwerte (Minimalwert (value1), Durchschnittswert (value2) und Maximalwert (value3)) ..................................................................................41 Abbildung 14: Tabelle „ts_timeser“ (physisches Datenmodell)..........................................49 Abbildung 15: Datenzuverlässigkeitsmodul (physisches Datenmodell)..............................50 Abbildung 16: Import-Formular für Zeitreihendaten...........................................................51 Abbildung 17: Transaktionen innerhalb eines Import (Upload)-Vorgangs.........................53 Abbildung 18: Lücken der Niederschlagszeitreihe Eich......................................................55 Abbildung 19: Beispiel SQL-Abfrage für das in Abbildung 22 dargestellte Suchergebnis 64 Abbildung 20: Benutzerschnittstelle mit Informationen über den Niederschlag an der Station Frauensee und umliegende Stationen.......................................................................66 Abbildung 21: Darstellung der Lücken für zuvor ausgewählte Stationen...........................68 Abbildung 22: Abfrageergebnis für das Lückenintervall vom 1.2.1993 bis 31.3.1993 der Zeitreihe „Niederschlag Frauensee“.....................................................................................69 Abbildung 23: Konzeptionelles Datenmodell: Interpolation und Interpolationsvorgang...71 Abbildung 24: Beispiel für Tabelle (calc_504) mit berechneten Werten ...........................74 Abbildung 25: Temporäre Tabelle (temp_113312812) mit dem Zeitstempel (timestamp), den Mittelwerten der Werte (avg_val) und der Höhe (avg_elevat) und die Höhen (elevat_) und Werte (value_) der Quellstationen................................................................................92 Abbildung 26: Übersicht der Grenzwerte für Messgrößen und Einheiten...........................94 Abbildung 27: Auswahl einer Zusammenstellung von Interpolationsverfahren..................95 Abbildung 28: Interpolationsregeln für IDW (5-3)..............................................................95 Abbildung 29: Informationen zu einem Interpolationsprozess............................................96 Abbildung 30: Importieren von extern gefüllten Datenlücken............................................97 Abbildung 31: Dateianfang einer exportierten Datei ..........................................................98 Abbildung 32: Übersichtsansicht für die Daten vom Metadatensatz „Niederschlag Frauensee“..........................................................................................................................101 Abbildung 33: konzeptionelles Modell für DS_Station.....................................................106 Abbildung 34: konzeptionelles Modell für TS_TimeSeries...............................................107 Abbildung 35: XML-Schema von RBIS............................................................................110 Abbildung 36: Quellcode der Funktion: create_query_linear_interpolation()...................111 Abbildung 37: Quellcode der Funktion: interpolation_set()..............................................115 IV 1 Einführung und Problemstellung 1 Einführung und Problemstellung In den letzten Jahrzehnten haben Naturkatastrophen, Ressourcenmangel und das gestiegene Umweltbewusstsein des Menschen dazu geführt, dass die Erhebung von umweltbezogenen Daten verstärkt in das öffentliche und wirtschaftliche Interesse gerückt ist. So werden zum Beispiel möglichst viele und genaue Messwerte für die Erstellung zuverlässiger Hochwasservorhersage- oder Klimaprognosemodelle benötigt um sowohl die Folgen für den natürlichen Haushalt als auch für die Wirtschaft besser abschätzen zu können. In Bezug auf die lebenswichtige Ressource Wasser können auf der Grundlage von Daten aus verschiedenen Disziplinen, wie Fernerkundung, GIS-Analysen, Modellierungen und sozioökonomischen Bewertungen sowie dem Fachwissen aus der Forschung, u. a. Konzepte für ein Integriertes Wasserressourcen-Management (IWRM) (GWP 2000) entwickelt und umgesetzt werden. Diese sollen den Umgang mit Wasser zu einem möglichst großen sozialen und ökonomischen Nutzen fördern. Das IWRM erfordert eine ganzheitliche Herangehensweise bei der Betrachtung des Wasserkreislaufes und seinen Wechselwirkungen mit anderen Ressourcen des Ökosystems. Um all diese Zusammenhänge, Prozesse und Interaktionen erfassen und beschreiben zu können sowie darauf aufbauend grundlegende Informationen für Entscheidungsträger in Bezug auf ein IWRM zu schaffen, müssen Daten nicht nur aus vielen verschiedenen Disziplinen gesammelt, sondern auch integriert ausgewertet werden. Erfolgte die Erhebung von Daten vor ein paar Jahrzehnten noch manuell, zeichnen heute meist Datalogger über längere Zeiträume hinweg kontinuierlich erheblich größere Mengen an Daten auf. Um dieser Datenflut gerecht zu werden, ist es notwendig, geeignete Systeme und Anwendungen zu entwickeln, die diese verwalten können. Hierbei geht es nicht nur um ein strukturiertes Abspeichern, sondern viel mehr um die Erhöhung der Wiederauffindbarkeit und Nutzbarkeit dieser Daten. Zu diesem Zweck müssen zu den Datensätzen Informationen erfasst werden, welche sie beschreiben. Diese Daten über Daten (Metadaten) gewannen in den letzten Jahren immer mehr an Bedeutung und sind heute auch im Bereich der Geowissenschaften ein fester Bestandteil der Aufgabe zur Beschreibung großer Datenmengen. Um eine einheitliche Erfassung von Metadaten voranzutreiben und somit den Austausch und eine effiziente Nutzung der Datenbestände zu ermöglichen, wurden und werden Standards entwickelt. Im Bezug auf geografische Informationen existiert der ISO-Standard 19115. Die Entwicklung eines Standards für die Verwaltung von Sensoren und Zeitreihen ist in Vorbereitung, jedoch noch nicht abgeschlossen. Nicht nur die Verwaltung von großen Datenmengen und Metadaten, sondern auch der Austausch und die Präsentation von Ergebnissen sind Anforderungen, die sich aus Forschungsprojekten im Bereich des Integrierten Wasserressourcen-Managements ergeben. Um diesem gerecht zu werden, können Informationssysteme zum Einsatz kommen. 1 1 Einführung und Problemstellung Ein Informationssystem für die Verwaltung von Geodaten und (derzeitig vorrangig) meteorologischer und hydrologischer Zeitreihen wurde am Lehrstuhl für Geoinformatik, Geohydrologie und Modellierung des Instituts für Geographie der Universität Jena entwickelt. Das River Basin Information System (RBIS) ist eine Web-Anwendung, die die Möglichkeit bietet, Geodaten und Zeitreihen bzw. deren Metadaten über das Internet zu verwalten, zu visualisieren und abzurufen. Im Datenbankmodell der Metadaten ist der ISO 19115 Standard vollständig umgesetzt. Es enthält außerdem Ergänzungen für die Verwaltung von Messstationen und Zeitreihen. Die Datenhaltung erfolgt hierbei im Datenbank-Management-System PostgreSQL in mehreren Datenbanken. Im Rahmen dieser Diplomarbeit wurde die Web-Anwendung im Bereich der Verwaltung, Analyse und Abfrage von Zeitreihen erweitert und verbessert. Dazu gehören neben Anpassungen des Datenbankschemas auch die Identifikation von in Zeitreihen vorhanden Datenlücken des Datenbestandes. Außerdem sollte dem Anwender die Möglichkeit geschaffen werden diese mit einem Interpolationsverfahren eigener Wahl zu schließen. Die berechneten Werte sollten temporär oder permanent in der Datenbank für den Export vorgehalten werden. Folgende Ausgangssituation lieferte die Motivation für diese Aufgabenstellung. Daten für die Verwendung in hydrologischen Modellen müssen stets lückenlos vorliegen. Dies ist jedoch in der Praxis oft nicht der Fall. Die eingesetzte Software zur Simulation der hydrologischen Modelle kann – muss aber nicht – die notwendigen Funktionalitäten bereitstellen um Datenlücken zu schließen. Aus diesem Grund müssen Lücken häufig von Hand geschlossen werden. Dabei wird die Herkunft der berechneten Werte gar nicht oder nur unzureichend dokumentiert. Das kann dazu führen, dass die Daten unter falschen Voraussetzungen in Berechnungen einbezogen werden. Das Ergebnis des Prozesses des Schließens der Lücken ist abhängig vom jeweiligen Bearbeiter. Dieser Missstand sollte beseitigt werden. Gleichzeitig sollte der Prozess zum Schließen von Lücken standardisiert und durch die Dokumentation der angewendeten Verfahren die Transparenz dieses Prozesses erhöht werden. Dies führt dazu, dass die Datenqualität besser bewertet werden kann. Um nicht nur eine lückenlose Zeitreihe, sondern auch eine lückenlose Dokumentation über Veränderungen der Daten zu erhalten, zählte nicht nur die Umsetzung von Interpolationsverfahren zur Aufgabenstellung, sondern insbesondere auch die Entwicklung eines Dokumentationsverfahrens, das es ermöglicht, alle Veränderungen am Datenbestand zu erfassen. Im theoretischen Teil der Aufgabenstellung sollten Grundlagen von RBIS, existierende Standards zur Verwaltung von Metadaten und Zeitreihen sowie die existierenden Interpolationsverfahren und deren Verwendung untersucht und beschrieben werden. Die Basis für eine Erweiterung bildet das RBIS selbst. Die Aufgabenstellung sah vor, an die bestehenden Funktionalitäten anzuknüpfen und eine geeignete Lösung für die Implementierung und Umsetzung der Anforderungen zu finden. Zu diesem Zweck sollte 2 1 Einführung und Problemstellung für den praktischen Teil der Aufgabe zunächst geklärt werden, welche zusätzlichen Metadaten benötigt werden, um überhaupt in der Lage zu sein Informationen über Datenlücken abzuspeichern. Ebenso mussten Informationen den Metadaten hinzugefügt werden, die für die Suche nach Zeitreihendaten erforderlich sind. Darauf aufbauend konnten Funktionen entwickelt werden, die Datenlücken identifizieren und zusätzliche Metadaten automatisch erfassen. Als Teilaufgabe ergab sich daraus, dass der gesamte Importvorgang grundlegend überarbeitet werden musste. Mit diesen zusätzlich erfassten Informationen konnten verschiedene Möglichkeiten zur Datenanalyse unter verschiedenen Gesichtspunkten geschaffen werden. Im Vordergrund stand dabei die Darstellung der räumlichen Verteilung und Verfügbarkeit von Zeitreihen. Zum Schließen der Lücken, wie in der Aufgabenstellung gefordert, waren verschiedene Interpolationsverfahren zu implementieren. Als weitere Teilaufgabe konnte identifiziert werden, dass eine einfache und flexible Lösungen für den Zugriff auf die Zeitreihendaten aus der Anwendung heraus, für die Speicherung der Metadaten zu den verwendeten Interpolationsverfahren und der Dokumentation dieser Verfahren gefunden werden musste. Da vorher ein Zugriff auf Zeitreihen mit geschlossenen Lücken nicht vorgesehen war, mussten abschließend die Verfahren zum Export der Daten überarbeitet und angepasst werden. 3 2 Grundlagen 2 Grundlagen In diesem Kapitel wird ein Überblick über die Grundlagen im Bezug auf das RBIS sowie den entwickelten Erweiterungen und Anpassungen gegeben. Hierbei wird zunächst auf die fachlichen Konzepte und Ideen, auf denen RBIS beruht eingegangen. Anschließend folgen die technischen Grundlagen in Bezug auf Datenhaltung und -verwaltung. Anhand von RBIS werden die Vorteile einer zentralen Datenhaltung, sowie Vor- und Nachteile einer Umsetzung als Web-Anwendung diskutiert. Auch der Einsatz von Open-Source-Software wird behandelt. Abschnitt 2.3 beschäftigt sich allgemein mit Informationssystemen, die den Fokus auf die Verwaltung von Metadaten und Zeitreihen unter der Berücksichtigung von Standards richten, sowie mit konkreten Beispielen aus dem geowissenschaftlichen Umfeld Deutschlands. Der folgende Abschnitt umfasst die Gründe für und den Umgang mit Datenlücken in umweltbezogenen Zeitreihen, sowie eine Auswahl verschiedener Interpolationsverfahren, die zum Schließen von Datenlücken verwendet werden können. 2.1 Einordnung von RBIS Im Rahmen der am Lehrstuhl laufenden Forschungen für ein Integriertes Wasserressourcen-Management (Integrated Water Resources Management, IWRM) wurde das so genannte Adaptive Integrated Data Information System (AIDIS) für die Informationsverwaltung entwickelt. AIDIS bildet mit seinem Datenbankmodell den konzeptionellen Rahmen für das River Basin Information System (RBIS). RBIS selbst ist eine konkrete Umsetzung von AIDIS und besteht aus einer Web-Anwendung sowie einigen Datenbanken. Was unter IWRM, AIDIS und RBIS genau zu verstehen ist, soll im Folgenden erläutert werden. 2.1.1 IWRM – Integrated Water Resources Management IWRM wurde im Jahr 2000 vom Global Water Partnership (GWP), einem internationalen Netzwerk, welches Ministerien, UN-Behörden, Entwicklungsbanken, Forschungsinstitutionen, NGOs und private Institutionen umfasst,wie folgt definiert: IWRM ist ein Prozess zur ganzheitlichen Entwicklung und Bewirtschaftung von Wasser-, Land- und damit zusammenhängenden Ressourcen, mit dem Ziel einer Maximierung des sozialen und ökonomischen Nutzens unter fairen Bedingungen und ohne die Nachhaltigkeit vitaler Ökosysteme zu gefährden (GWP 2000). 4 2 Grundlagen Die Grundprinzipien von IWRM folgen im Grundsatz den vier Dublin-Prinzipien. Diese wurden 1992 in Dublin auf einer internationalen Umweltkonferenz unter Beteiligung von mehr als 100 Staaten verabschiedet und sollen zur Verbesserung der weltweiten Wasserversorgung beitragen: 1. Süßwasser ist eine begrenzte und gefährdete Ressource, die unentbehrlich für das Leben, die Entwicklung und die Umwelt ist. 2. Wassererschließung und -management sollten auf einem partizipativen Ansatz basieren, der Nutzer, Planer und politische Entscheidungsträger aller Ebenen einbezieht. 3. Frauen spielen eine zentrale Rolle bei der Versorgung mit Wasser, seinem Management und Schutz. 4. Wasser hat einen wirtschaftlichen Wert in allen seinen Nutzungsmöglichkeiten und sollte als wirtschaftliches Gut angesehen werden. (GWP 2000) Die Konzepte von IWRM gelten mit den Dublin-Prinzipien (1992) und der Agenda 21 (1992) als wasserpoltischer Konsens auf internationaler Ebene und verankern ein Leitbild zur nachhaltigen Entwicklung und dem Umgang mit der Resource Wasser. Die Agenda 21 selbst ist ein entwicklungs- und umweltpolitisches Aktionsprogramm für das 21. Jahrhundert, das 1992 in Rio de Janeiro auf der „Konferenz für Umwelt und Entwicklung“ der Vereinten Nationen von 179 Staaten beschlossen wurde (AGRAR 2007). 2.1.2 AIDIS – Adaptive Integrated Data Information System AIDIS (FLÜGEL 2006) wurde den Anforderungen eines IWRM folgend zur Entscheidungsunterstützung am Lehrstuhl für Geoinformatik, Geohydrologie und Modellierung der Universität Jena entwickelt. Grundlage bilden ein gutes Datenmanagement und Strategien zur gemeinsamen Informationsnutzung. Dies beinhaltet neben anderen Informationen die Sammlung und Verwaltung von Zeitreihen in Bezug auf Wassermenge und -qualität, sozioökonomische Daten sowie digitale Karten, welche die räumliche Verteilung dieser Informationen zeigen. Das objekt-relationale Datenmodell von AIDIS, in dem der Metadatenstandard für geografische Informationen, ISO 19115 (ISO 19115:2003), vollständig umgesetzt wurde, lässt sich durch seine modulare Struktur leicht an die Anforderungen regionaler, sowie internationaler Forschungsprogramme anpassen. Eine der ersten erfolgreichen Umsetzungen einer internetbasierten Projektdatenbank erfolgte im Rahmen des von der Europäischen Union finanzierten Tisza River Projektes durch das Tisza River Information System (TRIS)(FLÜGEL ET AL. 2005). In einer weiterentwickelten Version kommt es nun als River Basin Information System (RBIS) in verschiedenen Forschungsprojekten zum Einsatz. 5 2 Grundlagen 2.1.3 RBIS – River Basin Information System Das River Basin Information System (RBIS) wurde in den letzten Jahren am Lehrstuhl entwickelt und geht aus den Entwicklungen für das TRIS hervor. Es wird zur Verwaltung aller Informationen bzw. Daten über ein bestimmtes Flusseinzugsgebiet eingesetzt, angefangen von Dokumenten über Zeitreihen bis hin zu GIS-Daten. Es setzt sich aus den zwei eigenständigen Komponenten Metadaten- und Zeitreihenverwaltung, die in Kapitel 3 näher beschrieben wird, und dem Kartenserver zusammen. Beide können auch unabhängig voneinander zum Einsatz kommen. Aus technischer Sicht werden die Informationen in drei Datenbanken gespeichert. In einer Datenbank werden die Metadaten, in einer weiteren die Zeitreihendaten und in einer dritten die GIS-Daten verwaltet (Abbildung 1). Abbildung 1: Aufbau von RBIS mit den Anwendungen Metadaten- und Zeitreihenverwaltung und Kartenserver sowie den Datenbanken RBIS kommt in verschiedenen Forschungsprojekten zum Einsatz, wobei die Oberfläche, die Datenbanken und die Anwendungen der jeweiligen Aufgabenstellung durch den modularen Aufbau des Datenmodells leicht angepasst werden können. Beispiele hierfür sind die Installationen für das Einzugsgebiet des Brahmaputra (BrahmaRBIS) und der Donau (DanubeRBIS) im EU-Forschungsprojekt Brahmatwinn. In diesem Forschungsprojekt geht es um eine Erweiterung des Wissens für den harmonischen Umgang mit den Wasserressourcen großer alpiner Flusssysteme, deren Quelleinzugsgebiete vom Klimawandel beeinflusst sind. Umzusetzen ist dies über einen multilateralen Wissenstransfer, Erfahrungsaustausch, sowie die Entwicklung und Anpassung bestehender Flussgebietsmanagementwerkzeuge zwischen europäischen und asiatischen Partnern (FSU 2007b). Ein weiteres Beispiel ist die Verwaltung der Daten aus dem Einzugsbereich der Saale (SaaleRBIS), in welchem die Daten für das vom BMBF geförderte Forschungsprojekt für ein Integriertes Landschafts-Managementsystem für Wasserwirtschaft, Kommunal- und Regionalplanung (ILMS) verwaltet werden sollen (FSU 2007a). 6 2 Grundlagen 2.2 Datenhaltung und -verwaltung Die Verwaltung der verschiedenen Daten eines IWRM Systems kann innerhalb eines Informationssystems wie dem RBIS erfolgen. Hier werden Metadaten, Zeitreihendaten und GIS-Daten verwaltet und den Projektpartnern und Entscheidungsträgern bereitgestellt. Anhand der Umsetzung von RBIS und den gesammelten Erfahrungen soll auf konzeptionelle Grundlagen der Datenhaltung und -verwaltung eingegangen werden. Dabei wird zunächst der Begriff Informationssystem definiert bevor die Vor- und Nachteile einer zentralen Datenhaltung diskutiert und Web- und Desktop-Anwendungen gegenüber gestellt werden. Abschließend wird der Einsatzes von Open-Source allgemein und in Bezug auf RBIS aufgegriffen und thematisiert. 2.2.1 Informationssystem Informationssysteme (IS) allgemein bestehen aus: „Menschen und Maschinen, die Informationen erzeugen und/oder benutzen und die durch Kommunikationsbeziehungen miteinander verbunden sind“ (HANSEN & NEUMANN 2001:132). Aus Sicht der Informatik ist ein Informationssystem „ein (rechnergestütztes) System zur Beschaffung, Verarbeitung, Übertragung, Speicherung und/oder Bereitstellung von Informationen“ (SCHWARZE 2000:46), das aus „Hardware, Software, Daten und den Anwendungen besteht“ (BILL 1999:4). Es gibt viele Ausprägungen von Informationssystemen. Eine Art der Untergliederung kann nach dem Typ der bereitgestellten Informationen erfolgen. Dabei wird zwischen betrieblichen, analytischen, raumbezogenen oder personenbezogenen Informationssystemen unterschieden. Weitere Einordnungen sind z. B. nach der Art der Anwendung (Auskunftssystem, Buchungssystem,...) oder nach ihrer fachlichen Ausrichtung möglich. Ein Beispiel eines Fachinformationssystems ist ein GeoInformationssystem mit dem „raumbezogene Daten digital erfasst und redigiert, gespeichert und reorganisiert werden, modelliert und analysiert sowie alphanumerisch und graphisch präsentiert werden“ (BILL 1999:4) können. Für die Realisierung eines Informationssystems spielen Internet- und Datenbanktechnologien eine zentrale Rolle. In der Regel werden alle Operationen, welche die Daten betreffen, von einem Datenbanksystem (DBS) übernommen. Ein DBS setzt sich aus einem Datenbank-Management-System (DBMS) und einer Datenbank zusammen. Unter einem DBMS wird hierbei „die Gesamtheit der Software-Module, die die Verwaltung einer 7 2 Grundlagen Datenbank übernehmen“ (HEUER & SAAKE 2000:8) verstanden. Der Unterschied zwischen einem DBS und einem Informationssystem besteht darin, dass in einem Informationssystem meist unterschiedliche Datenbestände in einen größeren thematischen Zusammenhang gebracht und die Metadaten (Daten über Daten) hier intensiv für die Recherche in den Datenbeständen genutzt werden. Weiterhin werden anwendungsnahe Auswertungsmethoden und Visualisierungsmöglichkeiten dem Nutzer zur Verfügung gestellt (STREIT 1998). Viele Informationssysteme werden durch den Einsatz von Internettechnologien für einen breiten Nutzerkreis zugänglich gemacht. Ein Beispiel aus dem täglichen Leben sind die Fahrgastinformationssysteme für Fahrgäste des öffentlichen Personennah- und -fernverkehrs, die über das Internet oder andere Medien benutzt werden können. Sie umfassen u. a. Liniennetzpläne, Fahrplanbücher und -karten, Verspätungs-, Anschluss- und Tarifinformationen. RBIS kann als ein raumbezogenes Informationssystem bezeichnet werden. In Bezug auf die Verwaltung von Zeitreihen und räumlichen Daten besitzt es sowohl Eigenschaften eines Meta- als auch eines Zeitreiheninformationssystems (siehe Abschnitt 2.3). 2.2.2 Datenhaltung und Anwendung Grundlage für den Betrieb eines Informationssystems ist der Datenbestand selbst, der immer so abgespeichert sein muss, dass über klar definierte Schnittstellen darauf zugegriffen werden kann. Dies ist zum Beispiel bei der Datenhaltung über ein DBMS in einer Datenbank der Fall, wobei sich hier die Daten selbst auch auf (räumlich) verteilten Systemen befinden können. Unabhängig von der Art der Daten oder Verwendung in einem Informationssystem sind mit einer zentralen Datenhaltung - im Vergleich zur dezentralen Speicherung der Daten ohne eine gemeinsame übergeordnete Verwaltung - eine Reihe von Vorteilen verbunden. So kann durch zentral durchgeführte und im Bedarfsfall auch zentral eingespielte Backups eine hohe Datensicherheit erreicht werden. Darüber hinaus erfolgt die Speicherung der Daten in einem einheitlichen Format und eine aufwendige Konvertierung zwischen verschiedenen Datenformaten entfällt. Die Plausibilität der Daten kann über Formulare mit Validierungsfunktionen bereits bei der Eingabe überprüft werden. Beim Zugriff über das Intranet oder Internet können sensible Daten vor unberechtigtem Zugriff über Firewalls, Zugriffskontrollen, Verschlüsselung usw. geschützt werden (KLOSSEK 2004). In Bezug auf das RBIS bedeutet eine zentrale Datenhaltung die Speicherung der Daten in einer Datenbank und nicht nur lokal auf dem Rechner der zuständigen Mitarbeiter innerhalb eines Forschungsprojektes. Die Vorteile kommen besonders dann zum tragen, wenn die Projektpartner räumlich sehr weit voneinander entfernt sind und auf Informationen zugreifen müssen. Alle Projektpartner können sich schnell einen Überblick über vorhandene Daten verschaffen und diese gegebenenfalls herunterladen. Somit entfällt das Versenden der Daten per E-Mail oder CD. Auch ein 8 2 Grundlagen Fortbestand der Informationen über die Projektlaufzeit hinaus oder die Nutzung in Folgeprojekten wird durch eine zentrale Datenhaltung begünstigt. Um die gesammelten Datenmengen den Nutzern zur Verfügung zu stellen, müssen Anwendungen entwickelt werden. Diese können grundsätzlichen als Web- oder DesktopAnwendung konzipiert sein. Unter Web-Anwendungen fallen all jene Computerprogramme, bei der die Interaktion mit dem Benutzer ausschließlich über einen Webbrowser erfolgt. Der Computer des Benutzers (Client) ist dabei über ein Netzwerk mit einem Server verbunden. Ein solches Netzwerk kann das Internet oder ein Intranet sein. DesktopAnwendungen sind hingegen Programme die lokal auf einem Rechner installiert sind und über eine eigene Benutzerschnittstelle verfügen. Das RBIS ist eine Web-Anwendung. Die Verwendung einer Web-Anwendung hat zahlreiche Vorteile. Zu diesen zählt, dass lediglich ein Webbrowser benötigt wird und keine weitere Installation von Software wie bei Desktop-Anwendungen, benötigt wird. Damit wird ein hoher Grad an Plattformunabhängigkeit erreicht. Auch die Hardwareanforderungen an die einzelnen Arbeitsplätze werden gering gehalten, da aufwendige Berechnungen vom Webserver ausgeführt werden. Ein weiterer entscheidender Vorteil ist, dass bei Änderungen der Anwendungslogik die Änderungen nur an einer Stelle ausgeführt werden müssen, sich dadurch der Wartungsaufwand minimiert und dementsprechend damit verbundene Kosten verringert werden können. Weiterhin kann dadurch sichergestellt werden, dass alle Anwender zu einem bestimmten Zeitpunkt immer mit der gleichen Programmversion arbeiten (KLOSSEK 2004). Dies ist bei Anwendungen wie dem RBIS, die in der Praxis eingesetzt und permanent weiterentwickelt werden, sehr vorteilhaft. Hier kann bei auftretenden Problemen und Fehlern sofort wirksam reagiert werden. Für die Arbeit mit Zeitreihen kommt ein weiterer bedeutender Aspekt hinzu. Werden Daten zentral über einen Webserver in eine Datenbank eingefügt, gilt stets ein Datum bzw. eine Uhrzeit als Bezugspunkt und nicht die lokale Zeit des Benutzers, der die Daten in das System einpflegt. Insbesondere falsch eingestellte Rechneruhren könnten hier bei der Umrechnung in UNIX-Zeit und wieder zurück in ein lesbares Datumsformat zu Problemen führen. Neben der Ortsunabhängigkeit der Benutzer zählen auch die preiswerte Pflege und Entwicklung und die zentrale Datenhaltung und -verwaltung zu den Vorteilen. Web-Anwendungen besitzen gegenüber Desktop-Anwendungen mit einer lokalen Datenhaltung auch Nachteile. Zu diesen zählt an erster Stelle die benötigte TCP/IP Verbindung zwischen Client und Server. Somit wird bei einer Web-Anwendungen über das Internet immer eine Internetanbindung mit ausreichend großer Bandbreite vorausgesetzt, die die Anforderungen der Anwendung erfüllt. Dieses Kriterium stellt in entwickelten Industrienationen kein großes Problem dar. In den vielen Ländern Afrikas oder Asiens hingegen ist ein schneller Internetzugang keine Selbstverständlichkeit und selbst bei einer bestehenden guten Internetanbindung werden unter Umständen die Anforderungen der Web-Anwendung durch begrenzte Kapazitäten der interkontinentalen 9 2 Grundlagen Verbindungen nicht erfüllt. Dies stellt derzeit den effizienten und uneingeschränkten Einsatz von RBIS im Forschungsprojekt Brahmatwinn in Frage. Innerhalb der europäischen Partner ist der Einsatz unproblematisch. Jedoch ist des Einfügen und Auslesen größerer Datenmengen ab einer Dateigröße von 10 Mega Byte durch die asiatischen Partner teilweise durch eine zu geringe Bandbreite nicht möglich. Generell können sich durch eine TCP/IP Verbindung auch Sicherheitsprobleme ergeben, da es eine Vielzahl verschiedener Angriffsmöglichkeiten im Zusammenhang mit Web-Anwendungen gibt. Dies gilt jedoch auch für Desktop-Anwendungen. Ein weiterer Nachteil gegenüber von Desktop-Anwendungen ist die Tatsache, dass alle Browser den Quellcode unterschiedlich interpretieren und sich somit geringe Abweichungen in der Darstellung und dem zur Verfügung stehenden Funktionsumfang ergeben können. Allgemein gehören zu den Nachteilen noch der erhöhte Sicherheitsbedarf des Webservers, der bei der Verwaltung vieler sensitiver Daten entsteht, die proportional steigende benötigte Rechenleistung pro Nutzer sowie eine ansteigende Netzlast, die sich allerdings im Fall von RBIS durch die insgesamt geringe Benutzeranzahl kaum bemerkbar machen wird. Das Beispiel RBIS zeigt, dass hier die Vorteile einer Web-Anwendung überwiegen. Nachteile, wie etwa eine unzureichende Internetanbindung, werden in Zukunft eine untergeordnete Rolle spielen. 2.2.3 Einsatz von Open-Source Im RBIS wird ausschließlich Freie und Open-Source-Software (FOSS) eingesetzt. Für den generellen Einsatz von Open-Source-Lösungen sind verschiedene Gründe ausschlaggebend. Dazu gehören die im Vergleich zu kommerziellen Produkten geringeren Lizenzund Anschaffungskosten. Dieser Aspekt gewinnt vor allem in öffentlichen Einrichtungen an Bedeutung, da hier die Finanzmittel in vielen Fällen gekürzt werden. Nach einer Studie der EU (GHOSH 2006) sparen Unternehmen rund ein Drittel ihrer Investitionen mit der Verwendung von Open-Source Produkten bei der Entwicklung eigener Software. Dadurch werden andere Entwicklungen und Innovationen möglich oder die Profitabilität wird gesteigert. Durch die Unabhängigkeit der eingesetzten Software von einzelnen Herstellern wird die Investitionssicherheit in Projekten und in der zukünftigen Betriebsphase erhöht. Bei der Auswahl der eingesetzten Software wird auf umgesetzte Standards sowie die Erweiterbar- und Austauschbarkeit von Komponenten geachtet. Wie eine Studie (STOLL 2006) zeigt, findet etwa 40% der Entwicklung von Open-Source-Software durch bezahlte, professionelle Entwickler in kommerziell tätigen Unternehmen statt. Somit ist davon auszugehen, dass die Qualität von FOSS der Qualität kommerzieller Software nicht unterlegen sein muss. Im Gegenteil entsteht durch die Öffnung des Quellcodes für Anwender und Experten ein höherer Anspruch an die Umsetzung und ein stärkeres Kontrollpotential, welches in der Regel der Qualität des Produktes förderlich ist. Zudem konnte in der Studie eine deutlich höhere Akzeptanz des Open-Source-Gedankens bei den betroffenen 10 2 Grundlagen Entwicklern und in Folge dessen eine deutlich höhere Motivation bei der Arbeit an OpenSource-Projekten festgestellt werden, als bei der Arbeit an klassischer closed-Source Software. Im Umfeld der Datenbank-Management-Systeme gibt es fünf größere Open-Source -Datenbankensysteme. Zu diesen zählen MySQL, PostgreSQL, Firebird, Ingres und MaxDB (HORSTMANN 2006). Für die Anwendung in RBIS wird die Unterstützung von geographischen bzw. raumbezogenen Datentypen für die Speicherung der GIS-Daten benötigt, die zurzeit von den drei Produkten MySQL, PostgreSQL und Ingres zur Verfügung gestellt werden. Ingres von der Ingres Corporation ist die älteste der fünf genannten Open-SourceDatenbanksystemen. MySQL der schwedischen Firma MySQL AB wurde im Jahre 1995 veröffentlicht. Bekannte Nutzer sind Yahoo, SourceForge, NASA, Lycos, Wikipedia (Wikimedia) und T- Systems. Mit der Version 5.0 gibt es viele Neuerungen. Es stehen elf verschiedene Tabellentypen (Datenbanktreiber) zur Verfügung, mit denen unterschiedliche Funktionen verknüpft sind. Die beiden wichtigsten Typen sind MyISAM und InnoDB (HORSTMANN 2006). PostgreSQL ist ein objektrelationales Datenbanksystem. Anwendung findet es zum Beispiel bei BASF und Fujitsu (HORSTMANN 2006). Die aktuelle Version ist PostgreSQL 8.2. Die Verarbeitung von geografischen Objekten wird durch die Erweiterung PostGIS realisiert. Sie versetzt damit PostgreSQL in die Lage als Datenserver für ein Geoinformationssystem (GIS) zu dienen (RAMSEY 2007). Die drei DBMS MySQL, PostgreSQL und Ingres unterscheiden sich in ihren Grundfunktionalitäten nur geringfügig. Vor allem die Unterschiede zwischen MySQL und PostgreSQL sind gering. Galt MySQL als schneller aber mit einem geringeren Funktionsumfang und PostgreSQL als langsamer jedoch mit einem größeren Funktionsumfang, so haben beide ihren Rückstand zum einen durch neue Funktionen mit MySQL 5.0 und zum anderen durch wesentlichen Performace-Gewinne bei PostgreSQL aufgeholt (HORSTMANN 2006). Im RBIS kommt PostgreSQL mit PostGIS als DBMS zum Einsatz. Die Wahl wurde anhand der verfügbaren Funktionen für die Verarbeitung von räumlichen Objekten der verschiedenen Open-Source-Datenbanksystem getroffen. Hier war der zur Verfügung stehende Umfang bei PostgreSQL / PostGIS im Vergleich zu MySQL höher. Inzwischen wurde MySQL um eine eigene GIS-Lösung erweitert. Daher können heute beide Lösungen als gleichwertig betrachtet werden. Dieser Entwicklung wurde in der Art vorausschauend Rechnung getragen, als bei der Umsetzung darauf geachtet wurde, so weit wie möglich auf die Verwendung proprietärer Funktionen des DBMS zu verzichten und das Datenmodell unabhängig vom eingesetzten DBMS zu modellieren. Insgesamt wurde RBIS für das Betriebssystem Linux, dem Apache-Webserver, dem DBMS PostgreSQL und PHP (LAPP stack) realisiert, wobei ausschließlich Open-Source-Produkte eingesetzt werden. 11 2 Grundlagen 2.3 Meta- und Zeitreiheninformationssysteme Ganz allgemein werden Geoinformationen (raumbezogene Informationen), die durch Geodaten repräsentiert werden, dazu verwendet, um Menschen bei Entscheidungsprozessen zu unterstützen. Da nicht jedes Unternehmen seine eigenen Geodaten produzieren kann und dies auch eine Verschwendung von Ressourcen darstellen würde, werden Informationen, welche die Daten selbst beschreiben (Metainformationen) benötigt. Sie ermöglichen die Verwendung außerhalb des Entstehungskontextes und dienen zum einen dazu die Geodaten so zu beschreiben, dass sie sachgemäß eingesetzt werden können. Zum anderen ermöglichen sie, dass Datensuchende diese finden, ohne von ihrer Existenz zu wissen. Der Zugriff auf die in einem Geodatenkatalog enthaltenen Geodaten erfolgt über verschiedene Dienste. Dies gilt ebenfalls für raum-zeitliche Informationen (gemessene oder simulierte Werte). Ein komplexes Netzwerk in dem der Austausch von Geodaten zwischen GeodatenProduzenten, Dienstleistern sowie Geodatennutzern unterstützt wird, wird als Geodateninfrastruktur bezeichnet. Dabei erfolgt der Datenaustausch meist über das Internet. Die Erfassung, Speicherung und Präsentation von Metainformationen ist die Aufgabe eines Metainformationssystems. Für die Suche und den Austausch von Metadaten aus verschiedenen Quellen ist es notwendig, bestimmte Normen und Standards einzuführen. Die Normierung und Standardisierung für Geoinformationen erfolgt durch die International Standards Organization (ISO) (Normen) und das Open Geospatial Consortium (OGC) (Standards) (MÜLLER ET AL. 2005:126f). Für Metadaten raumbezogener Informationen gibt es bereits einige Metadatenstandards. Für zeitliche Informationen im geowissenschaftlichen Umfeld, die immer einen räumlichen Bezug aufweisen, gibt es noch keine Standards. Aufgrund dieses räumlichen Bezugs von Zeitreihendaten und ihren Metadaten können diese nicht ganz unabhängig von den bestehenden Metadatenstandards für Geoinformationen betrachtet werden. Die Metadaten raum-zeitlicher Informationen werden daher zum Teil in Erweiterungen zu bestehenden Metadatenstandards in Metainformationssystemen verwaltet. Informationssysteme, die sich auf die Speicherung, Analyse und Bereitstellung von Zeitreihendaten konzentrieren, können als Zeitreiheninformationssysteme bezeichnet werden. Diese besitzen häufig eine GIS-Erweiterung, um der räumlichen Verortung der Daten Rechnung zu tragen. Im Folgenden sollen die bestehen Metadatenstandards, verschiedene Metadateneditoren, die für die Erstellung der Metadaten verwendet werden können, und einige Beispiele für Metainformationssysteme, die in Deutschland im Einsatz sind, vorgestellt werden. Der Abschnitt über die Standards für raum-zeitliche Informationen gibt einen kleinen Einblick in aktuelle Standardisierungsvorhaben des OGC und Parallelen oder mögliche Schnittpunkte mit dem Datenmodell von RBIS. Es gibt auch einen Überblick über ausgewählte Zeitreiheninformationssysteme, vorrangig aus dem deutschsprachigen Raum, mit einer hydrologischen Ausrichtung. 12 2 Grundlagen 2.3.1 Metadaten für räumliche Informationen Metadaten für räumliche bzw. geografische Informationen spielen eine wichtige Rolle bei der Veröffentlichung, der Weitergabe und dem Vertrieb von Geodaten. Sie sollten möglichst immer die Fragen nach dem Was (Titel und Beschreibung), Wann (Datum der Erstellung und Änderung), Wer (Ersteller und Vertreiber der Daten), Wo (räumliche Ausdehnung und Ort) und dem Wie (Verfügbarkeit der Daten) beantworten können. Als internationaler Standard für die Beschreibung von geografischen Informationen gilt der ISO-Standard ISO 19115. Neben diesem weltweit gültigen Standard existieren auch noch weitere Metadatenstandards. Für die Verarbeitung und Speicherung von Metadaten gibt es mehrere verschiedene Metadateneditoren, die unterschiedliche Standards unterstützten. Eine Auswahl wird im Folgenden benannt. Die Suche nach, aber auch die Verwaltung von Geodaten kann über so genannte Metainformationssysteme für geografische Informationen erfolgen. Exemplarisch werden hier fünf dieser Informationssysteme, die ein Teil der Geodateninfrastruktur in Deutschland sind, vorgestellt. 2.3.1.1 Metadatenstandards Für Geodaten gibt es mehrere Dokumentationsstandards. Der wichtigste Standard für Metadaten im Geoinformationswesen ist ISO 19115. Neben diesem gibt es auf verschiedenen Ebenen eine Vielzahl weiterer Metadatenstandards. Dazu gehört zum einen der Dublin Core Standard, der allgemein zur Beschreibung von Dokumenten und anderen Objekten im Internet dient. Zum anderen wird der in den USA vom Federal Geographic Data Committee (FGDC) entwickelte Content Standard for Digital Geospatial Metadata (CSDGM) dazu gezählt. Ein Beispiel für einen fachlichen Standard in Deutschland ist der Umweltdatenkatalog (UDK), der Metadaten zum Nachweis umweltrelevanter Datenbestände in den öffentlichen Verwaltungen enthält. Die Anzahl der zu dokumentierenden Attribute reicht von 15 bis weit über 300 (MÜLLER ET. AL 2005:130). FGDC-CSDGM Der Content Standard for Digital Geospatial Metadata (CSDGM) oder kurz auch FGDCStandard wurde erstmals 1994 vom 1990 gegründeten Federal Geographic Data Comitee (FGDC) veröffentlicht. Er ist seit 1998 verbindlicher Standard für die Dokumentation raumbezogener Daten für Behörden in den USA. Der FGDC-Standard besteht, ähnlich ISO 19115, aus verschiedenen Metadaten-Kategorien, die untereinander in Verbindung stehen und alle von der Oberkategorie Metadata ausgehen. Für die meisten ISO-Elemente gibt es eine Entsprechung im CSDGM (FDGC 1998, FDGC 2007a). 13 2 Grundlagen Dublin-Core Standard Der Dublin-Core Standard wurde von der Dublin Core Metadata Initiative (DCMI) 1995 ursprünglich für das Bibliothekswesen entwickelt. Er wurde unter der Bezeichnung ISO 15836:2003 Information and documentation - The Dublin Core metadata element set 2003 als internationale Norm veröffentlicht. Diese Norm bietet einfache Elemente zur Beschreibung von Ressourcen im Internet. Dublin-Core Metadaten können z. B. im Header von HTML-Dateien als Meta-Element angeben werden. Sie sind alle optional und können beliebig oft und in beliebiger Reihenfolge verwendet werden (HILLMAN 2005). Dublin-Core wird zum Beispiel als Minimalsatz an Metadaten in der OGC Catalogue Services Specification 2.0 verwendet, die eine offene Standardschnittstelle zum Auffinden, Durchsuchen und Aufrufen von beliebig, verteilt vorliegenden Georessourcen beschreibt (CON TERRA 2004). ISO 19115 ISO 19115 Geographic information – Metadata ist eine internationale Metadaten-Norm, welche die Struktur für die Beschreibung von Geodaten vorgibt. Die Arbeiten unter diesem Namen (früher ISO 15046) begannen 1996 und endeten 2003, als das Dokument durch die ISO zum internationalen Standard wurde. Eine der Grundlagen bildete zum Beispiel der FDGC-Metadatenstandard von 1994. Aus diesem Grund sind diese auch recht ähnlich, jedoch nicht gleich, da sie sich auseinander entwickelten. Weiterhin flossen unter anderem die Ergebnisse des technischen Komitees 287 des Comite Europeen de Normalisation (CEN) ein. Dieses entwickelte in den Jahren 1997 und 1998 eine europäische MetadatenNorm (ENV 12657:1998 - Geographic Information - Data description – Metadata). Die Arbeiten wurden eingestellt, und die ISO-Norm wurde unter dem Namen EN ISO 19115:2005 als CEN-Norm übernommen (CEN 2007, ISO/TC 211 2007, FDGC 2007b). Abbildung 2: ISO 19115 Profil für bestimmte Nutzergruppen oder Länder „community profile“ (Quelle: ISO 19115:2003) 14 2 Grundlagen ISO 19115:2003 beinhaltet 409 Metadatenelemente, die in Metadatenentitäten gruppiert sind. Diese wiederum sind nach ihrem Zweck zu 15 Hauptmetadatenpaketen zugeordnet. Ausgangspunkt bildet dabei die Klasse Metadata entity set information. Es gibt 22 so genannte core metadata elements (components), welche einen Minimalsatz an Elementen bilden, den nach ISO 19115:2003 jede Umsetzung beinhalten sollte (Abbildung 2). Sie sollen sicherstellen, dass die Fragen über das Was, Wo, Wann und Wer eines Datensatzes immer beantwortet werden können. Die restlichen Metadatenelemente können optional umgesetzt werden. Durch die Vorgabe von Codelisten wird die Anzahl der Felder, die mit freiem Text belegt werden können, reduziert, was eine einheitliche Interpretation zwischen verschiedenen Metadateninformationssystemen ermöglicht. Weiterhin ist es erlaubt eigene Erweiterungen einzubinden oder zu erstellen (siehe extended metadata in Abbildung 2). Damit wird eine wesentliche Voraussetzung für die Integration bzw. nachträgliche Anpassung an die ISO-Norm geschaffen (ISO 19115:2003). 2.3.1.2 Metadateneditoren Mit der zunehmenden Bedeutung von Metadaten für die Bereitstellung von Geodaten im Internet und bei der Vernetzung von Informationssystemen wurden neben Standards auch eine Reihe von Metadateneditoren entwickelt. Zum gegenwärtigen Zeitpunkt unterstützen fast alle aktuellen Anwendungen ISO 19115. Zu den Desktop-Anwendungen zählt der kommerzielle ArcCatalog und die ArcView Metadata Extension von der Firma ESRI, die den FGDC-Standard und ISO 19115 abdecken. Ein weiteres kommerzielles Produkt ist Infopath von Microsoft. Zu den kommerziellen Web- und Desktop-Anwendungen, die ISO 19115 unterstützen, zählen z. B. Authentic (Bestandteil von XMLSpy), PubliStar, Geometa-Editor (Teil der Geo-Metadata Network Suite), sdi.suite terraCatalog und GeoKey. Die Produkte CatMDE, disy Preludio und GeoNetwork sind hingegen als Freeware verfügbar (GISPUNKT 2007, BEHRENDS ET AL. 2006). Ein Problem liegt in der Breite der potenziellen Anwendungsmöglichkeiten der Programme. Oft ist diese Software nur für einen bestimmten Anwendungszweck geeignet. Daher ist die Integration in die Prozesse eines Unternehmens bzw. eines Forschgungsprojektes oft mit einem höheren Anpassungsaufwand verbunden, als für die Einarbeitung, Schulung und Programmierung aufgebracht werden müsste. Der Trend geht dahin, dass Editoren an spezielle Dienstleistungen oder Komponenten größerer Softwarelösungen gebunden sind. Auch die Kopplung an Onlinedienste und Webangebote scheint nach BEHRENDS ET AL. (2006:45f) aufgrund der Komplexität der Sachverhalte eine praktikable Lösung zu sein. 15 2 Grundlagen 2.3.1.3 Metainformationssysteme für Geodaten Metainformationssysteme für Geodaten dienen der Erfassung, Verwaltung und Recherche von Geodaten, Geodiensten und Geoanwendungen. Sie sind als Suchmaschine nach KAZAKOS (2006) ein wichtiger Bestandteil einer Geodateninfrastruktur und bilden die Grundlage zur Mehrfachnutzung von Geodaten in den öffentlichen Verwaltungen sowie die Basis für die Vermarktung von Geodaten. Allgemein können Kosten gespart werden, wenn die Daten in Folgeprojekten wiederverwendet und nicht neu erhoben werden müssen. Auch kann die Qualität von schlecht dokumentierten Daten z. B. bei einem Mitarbeiterwechsel möglicherweise nicht mehr beurteilt werden. In besonders schwerwiegenden Fällen können Kosten entstehen, weil Entscheidungen auf der Grundlage von fehlerhaften Daten getroffen werden. Das Ziel beim Einsatz eines Metainformationssystems für Geodaten ist daher, Auskunft über Art, Verfügbarkeit und Qualität der Geodaten zu geben. In Deutschland wird die Schaffung einer Geodateninfrastruktur (GDI-DE) seit 2003 verstärkt vorangetrieben und gefördert. Beispiele aus Deutschland sind das nationale GeoMIS.Bund (BKG 2007), das PortalU (KRUSE 2007), der CeGi GEOcatalog (CEGI 2007), das NOKIS (KAZAKOS 2006) und der Umweltdatenkatalog (UDK) (KRUSE 2007). GeoMIS.Bund GeoMIS.Bund ist das Metainformationssystem für Geodaten des Bundes. Es ist im GeoPortal.Bund als Geodatensuchmaschine integriert und beruht auf dem ISO-Standard ISO 19115. Es war der erste Schritt zur Schaffung der nationalen Geodateninfrastruktur GDI-DE. GeoMIS.Bund ermöglicht die Suche in verteilten Geokatalogen. Ziel ist es, alle Fachinformationssysteme der Bundesbehörden daran anzuschließen, sowie die Länder und die Privatwirtschaft einzubeziehen. GeoMIS ist als Dienst für Behörden, Wirtschaft und die breite Öffentlichkeit verfügbar (BKG 2007). Aus technischer Sicht kommuniziert das GeoMIS über einen oder mehrere Web Catalog Services (CSW) mit den angeschlossenen Metadatenbanken. Es gibt zwei Varianten, zu welchem Zeitpunkt die Abfrage zwischen GeoMIS und CSW erfolgt. Das GeoMIS des Bundes erfragt alle angeschlossenen Kataloge zum Zeitpunkt der Kundenanfrage und erhält damit immer die aktuellsten Metadaten. Das zukünftige GeoMIS der GDI Berlin/Brandenburg wird im Vorfeld die Metadaten aller angeschlossenen Stellen in das eigene relationale Datenbankmanagementsystem (RDBMS) integrieren. Dies führt zu einer höheren Verfügbarkeit, birgt aber auch die Gefahr von Mehrfacheinträgen durch Rekursionen von verketten Katalogdiensten (WIKIPEDIA 2007). PortalU Das PortalU (Umweltportal Deutschland) ist ein gemeinsames Internetportal des Bundes und der Länder. Es bietet über einen zentralen Zugang Zugriff auf die Internetseiten, Datenkataloge und Datenbankeinträge von öffentlichen Institutionen und Organisationen 16 2 Grundlagen des Bundes und der Länder. Es können gezielt aktuelle Umweltnachrichten und -messwerte, detaillierte Informationen zu verschiedenen Umweltthemen, Hinweise auf Veranstaltungen und neue Publikationen, sowie Informationen über historische Umweltereignisse abgerufen werden. Über PortalU kann auch auf die Daten des UDK zugegriffen werden. Die Koordinierungsstelle PortalU ist beim Niedersächsischen Umweltministerium in Hannover angesiedelt (KRUSE 2007). CeGi GEOcatalog Der CeGi GEOcatalog ist ein webbasiertes Metadateninformationssystem, das auf internationalen Standards des OGC und ISO (19115, 19119) basiert. Hierbei handelt es sich um ein Gemeinschaftsprodukt der Center for Geoinformation GmbH (CeGi) und der ConTerra GmbH. Mit seiner Hilfe kann über verteilte registrierte Kataloge und getrennt nach Geodaten oder Geodiensten gesucht werden (CEGI 2007). NOKIS Das Nord-Ostsee-Küsten-Informations-System (NOKIS) ist ein Informationssystem für die Nord- und Ostseeküste, über das Geodaten aber auch Zeitreihen und Forschungsprojekte zu deutschen Küstengebieten recherchiert werden können. Es ist eine der größten Metadatenquellen von GeoMIS.Bund. NOKIS unterstützt nicht nur den ISO 19115 Standard, sondern auch standardkonforme Erweiterungen wie küstenspezifische Elemente (z. B. Informationen über Gezeiten). Aufbauend auf den Technologien von disy Preludio, bildet NOKIS inzwischen einen wichtigen Baustein für die Metadaten-Infrastruktur der meisten Institutionen an der deutschen Küste. Über die OGC Catalog-Service-WebSchnittstelle (CSW) wird ein verteilter Zugriff realisiert. Ebenso können Daten auch mit dem Umweltdatenkatalog (UDK) ausgetauscht werden (KAZAKOS 2006). UDK Das Grundkonzept sowie die Anwendungssoftware des Umweltdatenkataloges (UDK) wurden im Zeitraum von 1991 bis 1995 im Niedersächsischen Umweltministerium entwickelt. Die weitere Entwicklung und Einführung der Software beruhte auf der am 1.1.1996 in Kraft getretenen Verwaltungsvereinbarung UDK (seit 1.1.2003: Verwaltungsvereinbarung UDK/GEIN). Der UDK enthält Metainformationen über die in den Umweltverwaltungen der Bundesländer und des Bundes vorhandenen umweltrelevanten Datenbestände und dient der Beschreibung von Umweltdaten bzw. der Auffindung umweltrelevanter Datenquellen im Internet. In Deutschland setzen heute das Umweltbundesamt und das Bundesamt für Naturschutz sowie alle Bundesländer mit Ausnahme von Berlin den UDK als Metainformationssystem ein (KRUSE 2007). 17 2 Grundlagen 2.3.2 Verwaltung von raum-zeitlichen Informationen Für die Verwaltung von raum-zeitlichen Informationen, wie beispielsweise Abflusszeitreihen eines Pegels oder Temperaturzeitreihen einer Klimastation, gibt es noch keine Standards, wie sie etwa für räumliche Daten zur Verfügung stehen. Welchen Stand der Standardisierungsprozess hat und welche Parallelen zu dem Datenmodell von RBIS gezogen werden können, wird nachfolgend behandelt. Im Anschluss werden verschiedene Zeitreiheninformationssysteme, die als eine weitere Art von Informationssystemen angesehen werden können, vorgestellt. Sie verfolgen im Vergleich zu den Metainformationssystemen ein anderes Ziel, da sie sich mehr auf die Daten selbst und ihrer Verarbeitung und weniger auf ihre Metadaten konzentrieren, wenngleich auch hier Metadaten, wie etwa die Position der Messstelle, unerlässlich sind. 2.3.2.1 Standards für Zeitreihen und Sensoren Konzentrierte sich die Entwicklung von Anwendungen und Standards zunächst auf räumliche Informationen, so rückten in den letzten Jahren Anwendungen und Informationssysteme, die Daten mit einem raum-zeitlichen Bezug verwalten, in den Vordergrund. Auch die Entwicklung von Standards wurde von verschiedenen Stellen vorangetrieben. So wurde infolge der Ereignisse des 11. September 2001 in New York die OGC Web Service (OWS)-Initiative gegründet, die u. a. zum Ziel hat, Standards für die Verwaltung von verschiedenen Sensoren und deren Daten über das Internet zu entwickeln, um im Katastrophenfall besser agieren zu können. Das Open Geospatial Consortium (OGC), früher Open GIS Consortium, wurde 1994 gegründet und ist ein internationales, nicht gewinnorientiertes und freiwilliges Industriekonsortium mit derzeit 349 Mitgliedern aus Industrie, Behörden, öffentlicher Verwaltung und Universitäten. Ziel dieses Konsortiums ist es, Grundlagen für einheitliche und interoperable Zugriffsmethoden auf raumbezogene Informationen zu entwickeln (OGC 2007c). Im Rahmen der OGC Web Service Testbeds (OWS) 1 und 1.2 des OGC wurde u. a. die Sensor Web Enablement Initiative (SWE) für die interoperable Steuerung und Abfrage von Sensoren gegründet (OGC 2007a). Im Rahmen der SWE-Initiative wurden OGC Spezifikationen für eine Reihe von Diensten und dazugehöriger Beschreibungssprachen erarbeitet, die neben der Abfrage durch Sensoren erfasster raum- und zeitrelevanter Messdaten auch die interoperable webbasierte Steuerung von Messvorrichtungen vorsehen. Mit der Sensor Model Language (SensorML) werden alle Arten von Sensoren unterstützt, die sich ruhend oder in Bewegung befinden können, angefangen bei Pegelmessstationen über Webcams bis hin zu satellitengestützten Sensoren. Mit der Verwaltung von Messwerten befasst sich Observation and Measurement (O&M) (WYTZISK & SIMONIS 2005:235ff). 18 2 Grundlagen Eine Übersicht der verschiedenen Teilprojekte von SWE und deren Status innerhalb des OGC ist in Tabelle 1 zusammengetragen. Einige dieser Dokumente besitzen schon den Status eines offiziellen OGC Standards, andere befinden sich auf dem Weg dahin und sind daher noch möglichen Änderungen unterlegen. Tabelle 1: Übersicht der Teilprojekte des OGC Sensor Web Enablement (SWE) Name Inhalt Status (OGC) Sensor Observation Service (SOS) Bereitstellung von Messergebnissen (standardisierte, webbasierte Schnittstelle für Zugriff auf Sensoren und Sensordatenarchive) 13.02.2006 (Draft OpenGIS® Implementation Specification) Observations & Measurements (O&M) Modellierung und Codierung von Messergebnissen (Modell zur Abbildung räumlich und zeitlich varianter Größen; XML basiertes encoding) 21.09.2006 (Draft OpenGIS® Best Pratices Document) Sensor Model Language Beschreibung der Sensoren 17.07.2007 (SensorML) (Beschreibungssprache zur eindeutigen Referenzierung (OpenGIS® und Definition von Sensoren) Implementation Specification ) Transducer Markup Language (TML) Charakterisierung der Sensoren (Modellierung und Codierung für Datenströme von Sensoren; Beschreibung von System und Daten encoding) 02.07.2007 (OpenGIS® Implementation Specification ) Sensor Alert Service (SAS) Alarmmeldungen der Sensoren (Anzeigen, Abonnieren und Veröffentlichen von Warnungen) 13.05.2006 (Candidate OpenGIS® Implementation Specification Sensor Planning Service Planung von Messexperimenten (SPS) (standardisierte Schnittstelle zur Informationsbeschaffung für Mess- und Simulationsaufgaben) 01.12.2005 (Request for Comments OpenGIS® Best Pratices Document) Web Notification Service (WNS) 18.11.2006 (Draft OpenGIS® Best Pratices Document) Benutzerbenachrichtigung (Schnittstelle zur Kapselung von Funktionen für Benachrichtigung von Nutzern und Diensten) (Quellen: OGC 2007b, WYTZISK & SIMONIS 2005:235ff, Stand: 27.07.2007) Im Teilprojekt O&M wird ein konzeptionelles Modell, sowie auch eine Kodierung für Beobachtungen und Messungen entwickelt. Die Grundelemente sind in Abbildung 3 dargestellt. In der aktuellen Version steht die Observation, als ein spezielles Event mit einem Wert, der ein Phänomen beschreibt, im Mittelpunkt. Ein Event wird durch eine Zeit oder ein Zeitintervall und optional durch eine semantische Beschreibung des Wertes definiert. Jedem Event können Qualitätsmerkmale zugeordnet werden. Für jede Observation ist eine Organisation oder Person (CI_ResponsiblePerson – ISO 19115) zuständig. Jeder Observation muss zugeordnet sein, was für ein Phenomenon (z. B. Abfluss) beobachtet wurde. Über die Zuordnung von Procedure wird beschrieben, wie der 19 2 Grundlagen Wert zustande gekommen ist. Alle Observations können ein bestimmtes Ziel oder Objekt der Beobachtung haben (feature of interest). Hierzu zählen Flüsse, Straßen, Personen, Fahrzeuge, Gebäude, Berge, Aquifere genauso wie einzelne Proben, Stationen, Geländemessungen oder Bildausschnitte. Die räumliche Referenzierung geschieht entweder über die Beschreibung des Vorgangs (procedure), oder über das Ziel oder Objekt der Beobachtung (feature of interest). Die Beschreibungen der einzelnen Sensoren, mit denen die Werte erfasst werden, gehören nicht zu O&M und werden von anderen Teilprojekten in SWE abgedeckt (COX 2006). Abbildung 3: Grundelemente Observation und Event in O&M (COX 2006:13) Das aktuell frei verfügbare Entwurf mit dem Stand vom 21.09.2006 enthält eine offizielle Position des OGC, wurde jedoch noch nicht endgültig als OGC Standard anerkannt und unterliegt daher noch Veränderungen. Aus diesem Grund wurden bei der Erweiterung des Datenmodells des RBIS für die Verwaltung von Zeitreihen und Stationen diese Entwürfe nicht verwendet (ZANDER 2006). Eine Anpassung des Datenmodells von RBIS könnte sich als problematisch erweisen, da der OGC Standard mehr von einzelnen Messwerten (COX 2006) als von ganzen Zeitreihen ausgeht, wenngleich auch hier die Möglichkeit besteht mehrere Messwerte zusammenzufassen. Im aktuelle RBIS-Datenmodell wird immer von ganzen Zeitreihen beliebiger Länge ausgegangen. Die Metadaten der Zeitreihen im RBIS verweisen ebenfalls auf Responsible Parties aus ISO 19115. Auch die Angaben von Beginn und Ende einer Zeitreihe sieht O&M vor. Genaue Aussagen über die Verwaltung der Datenqualität gibt es in O&M noch nicht. COX (2006) schlägt in diesem Zusammenhang eine Verknüpfung mit bestehenden Data Quality Elementen in ISO Standards vor. Im RBIS wird hierfür eine eigene Erweiterung verwendet. 20 2 Grundlagen 2.3.2.2 Zeitreiheninformationssysteme Die Verwaltung von Zeitreihen, u. a. für die hydrologische Modellierung, kann unter Verwendung so genannter Zeitreiheninformationssysteme erfolgen. Diese können als eine mögliche Spezialisierung eines Fachinformationssystems gesehen werden. Die Zeitreihenverwaltung, sowohl von gemessenen, als auch simulierten Messwerten in einem Informationssystem, stellt im weitesten Sinne das Gegenstück zu einem geographischen Informationssystem mit seinen flächenbezogenen Daten dar. Ein klassisches Beispiel sind Pegelinformationssysteme, über die auf aktuelle oder vergangene Messwerte zugegriffen werden kann. Ein Beispiel hierfür ist das gewässerkundliche Informationssystem der Wasser- und Schifffahrtsverwaltung des Bundes (Pegelonline), das interessierten Bürgern Zugriff auf den tagesaktuellen Wasserstand ausgewählter Binnenpegel der Wasserstraßen des Bundes gewährt. Mitarbeitern und autorisierten Personen steht ein noch größeres Informationsangebot zur Verfügung (WSV 2007). In den hydrologisch geprägten Ingenieurswissenschaften spielt die Verwaltung von Zeitreihen eine große Rolle. Im deutschsprachigen Raum gibt es mehrere Unternehmen, die Zeitreiheninformationssysteme mit hydrologischer Ausrichtung selbst oder innerhalb von Forschungsprojekten entwickelt haben. Darunter zählt die Ingenieurgesellschaft aqua_plan, die unter dem Namen AquaZIS ihre bisherigen Produkte AquaRell, AquaCoup und AquaLog (wasserwirtschaftliche Informationssysteme im Sachgebiet Niederschlag, Pegelwesen und Grundwasser ) vereint (AQUAPLAN 2007). Eine andere Ingenieurgesellschaft (SYDRO) entwickelte die Anwendung WELLE zur Erfassung, Verwaltung, Visualisierung und Analyse von Zeitreihen (SYDRO 2007). Die Gesellschaft für Logistik & Gewässermanagement (Gelog mbH) vertreibt das Programmsystem HydroZIS, welches für die Erfassung, Speicherung, Verwaltung, Prüfung, Pflege, Visualisierung und Auswertung hydrologischer Zeitreihen ausgelegt ist (GELOG 2006). Beim Bundesamt für Wasserbau ist WISKI (ein Produkt der Firma Kisters) im Einsatz. WISKI ist ein umfangreiches wasserwirtschaftliches Informationssystem mit zahlreichen Komponenten und Modulen für spezielle wasserwirtschaftliche Anwendungsgebiete (KISTERS AG 2007). Über WISKI werden auch die Daten für Pegelonline bereitgestellt. Über NOKIS wiederum können die Metadaten der Pegel von Pegelonline abgefragt werden. Alle genannten Zeitreiheninformationssysteme sind mit einem GIS verknüpft und ermöglichen auch eine räumliche Darstellung und Auswahl der Messstationen. Dies verdeutlicht noch einmal die enge Verzahnung zwischen den verschiedenen Ausprägungen von Fachinformationssystemen im geowissenschaftlichen Umfeld. RBIS selbst ist zum Teil ein Metainformationssystem mit einem geringeren Funktionsumfang (es werden keine Dienste angeboten) gegenüber den oben beschriebenen Produkten. Zusätzlich erfüllt es die Aufgaben eines Zeitreiheninformationssystems. An dieser Stellte sollte lediglich aufgezeigt werden, welche zwei generell voneinander unterscheidbaren Informationssysteme mit ähnlichen Aufgabenstellungen wie RBIS vor dem Hintergrund möglicher Standards existieren. 21 2 Grundlagen 2.4 Zeitreihen und Datenlücken Umweltbezogene Zeitreihen weisen recht häufig aus verschiedenen Gründen Lücken auf. Diese müssen aufgefüllt werden, wenn auf diesen Zeitreihen statistische Analysen durchgeführt werden oder sie zum Beispiel in hydrologischen Modellen als Ausgangsdaten verwendet werden sollen. In der Literatur gibt es viele Arbeiten, die sich mit den verschiedenen Methoden zum Füllen fehlender Messwerte in umweltbezogenen Zeitreihen befassen. Die Klasse von Verfahren und Problemen aus der numerischen Mathematik, bei der zu gegebenen diskreten Daten eine kontinuierliche Funktion gefunden werden soll, wird als Interpolation bezeichnet. Viele Methoden, die bei der Übertragung von Punktdaten in die Fläche (Regionalisierung) angewendet werden, können auch zum Schließen einzelner Datenlücken verwendet werden. Ferner gibt es noch andere Einsatzmöglichkeiten dieser Verfahren, wie die Prüfung der Daten auf ihre Plausibilität. Ein Beispiel wird von YOU ET AL. (2004) beschrieben. Hierbei werden die Ergebnisse zweier räumlicher Interpolationsverfahren miteinander verglichen, um mögliche Fehler in maximalen und minimalen Temperaturwerten zu finden. Im Folgenden wird zunächst definiert, was Zeitreihen sind und wie sie sich untergliedern lassen, bevor auf die Ursachen von Datenlücken eingegangen wird und allgemeine Verfahrensweisen zum Auffüllen von Lücken beschrieben werden. Diese sind nicht nur auf umweltbezogene Daten anwendbar, sondern auch auf Zeitreihendaten allgemein. Anschließend wird auf die einzelnen Interpolationsverfahren eingegangen, die zum Schließen von Datenlücken verwendet werden können. An dieser Stelle soll nur eine Auswahl mit möglichen Anwendungsbereichen und Varianten sowie Beispielen oder Empfehlungen von Autoren für die Anwendung betrachtet werden. Der Schwerpunkt liegt hierbei auf den Interpolationsverfahren, die in der RBIS-Erweiterung realisiert wurden. Eine allgemeine Definition von Zeitreihen gibt HERZOG (2005): „Zeitreihen sind ganz allgemein Sammlungen von Messwerten, die zu bestimmten Zeitpunkten aufgenommen wurden.“ Eine Zeitreihe setzt immer voraus, dass die Daten nicht kontinuierlich, sondern in diskreten bzw. endlichen Abständen vorliegen. Zeitreihen können, wie zum Beispiel bei der kontinuierlichen Aufzeichnung von Pegelständen, durch Abtastung der Messreihe zu bestimmten Zeitpunkten erzeugt werden. In Zeitreihen können die Zeitpunkte äquidistant, d. h. mit festem Zeitabstand, oder in unregelmäßigen zeitlichen Abständen vorliegen, wenn zum Beispiel nur die Veränderung eines Messwertes registriert wird. Zeitreihen gibt es in vielen Bereichen, wie etwa in der Form von Börsenkursen in der Finanzmathematik, der Arbeitslosenquote in der Ökonomie oder von Abflussdaten in der Hydrologie. Die Disziplin, die sich mit der mathematisch-statistischen Analyse und der Vorhersage von Zeitreihen beschäftigt, ist die Zeitreihenanalyse (HERZOG 2005). 22 2 Grundlagen 2.4.1 Zeitreihenarten Generell lassen sich drei Zeitreihenarten unterscheiden, nämlich kontinuierliche, Intervallund Momentan-Zeitreihen, die sich auch in der Definition von Datenlücken unterscheiden. Kontinuierliche Zeitreihen Hydrologische Parameter werden häufig mit Schreibstreifen oder Dataloggern kontinuierlich aufgezeichnet. Auch wenn Datalogger dabei meistens in einem festen Zeitintervall oder bei einer festen Änderung des Messwertes aufzeichnen, werden diese Daten kontinuierlich interpretiert. Der Graph besitzt jedoch keine geschlossene Darstellung, da die Anzahl der Stützstellen begrenzt ist. Hier wird meist zwischen zwei Stützstellen linear interpoliert. Ein Beispiel sind Messungen an einem Abflusspegel. Liegt zu einem bestimmten Zeitpunkt kein Wert vor, so ist dies eine Lücke (Abbildung 4). (AQUAPLAN 2002:15ff). Abbildung 4: Kontinuierliche Zeitreihe mit Lücke Intervall-Zeitreihen Bei einer Intervall-Zeitreihe liegen die Werte für ein bestimmtes Zeitintervall vor. Diese Zeitintervalle können, müssen aber nicht, äquidistant sein. Ein Beispiel für eine äquidistante Intervall-Zeitreihe sind Niederschlagstagessummen, die jeweils einen Zeitraum von 24 Stunden repräsentieren. Nicht äquidistante Intervall-Zeitreihen entstehen, wenn zum Beispiel nur wochentags die Daten eines Niederschlagsmessers abgelesen werden. Am Montag enthält dieser dann die Niederschlagsmenge seit der letzten Ablesung am Freitag. Lücken in einer äquidistanten Intervall-Zeitreihe können ein oder mehrere Intervalle umfassen (Abbildung 5)(AQUAPLAN 2002:15ff). Abbildung 5: Intervall-Zeitreihe mit Lücken 23 2 Grundlagen Momentan-Zeitreihen Momentan-Zeitreihen sind nur für eine diskrete Zeitpunkt definiert. Zwischen diesen Zeitpunkten ist nichts bekannt. Eine Interpolation zwischen diesen Werten ist nicht sinnvoll, weil hier keine aussagekräftigen Daten ermittelt werden können. Ein Beispiel für eine solche Reihe sind alle lokalen Maxima einer Niederschlagszeitreihe. Als MomentanZeitreihen können auch Zeitreihen betrachtet werden, die Aufgrund ihres großen Zeitintervalls die zugrunde liegende Dynamik nicht widerspiegeln, wie etwa die Messung der Temperatur aller 3 Monate. Ein weiteres Beispiel sind 14tägig gemessene Gewässergüteparameter. Lücken in Momentan-Zeitreihen sind nur Zeitpunkte, die einen undefinierten Wert liefern (Abbildung 6)(AQUAPLAN 2002:15ff). Abbildung 6: Momentan-Zeitreihe mit Lücke 2.4.2 Ursachen für Datenlücken in Zeitreihen Die Gründe für fehlerhafte oder fehlende Messwerte sind breit gefächert und reichen von routinemäßigen Wartungen über systematische Messfehler bis hin zu ungeplanten Totalausfällen. Generell können eine temporäre Schließung, Umsetzung, ein Neubau oder Zerstörung von Teilen oder der gesamten Station Datenlücken in den Zeitreihen verursachen. Auch einfache bauliche Veränderungen können die Zuverlässigkeit der Messwerte beeinträchtigen. Eine weitere Quelle für Datenlücken ist in den Sensoren selbst zu suchen. Sind die Messinstrumente einer hohen Beanspruchung durch Starkniederschläge, Hochwasser, Frost (Eisbildung), Trockenheit und Hitze ausgesetzt, liefern diese keine oder fehlerhafte Werte. Auch Alterung, Verschmutzung, Schwankungen in der Stromversorgung oder in dem Verhalten elektronischer Geräte können für den Ausfall von Messstationen verantwortlich sein. Eine ungenaue Kalibrierung der Messgeräte kann ebenfalls zu Fehlern innerhalb der Zeitreihe führen. Das Fehlen von Messwerten kann auch durch das Über- oder Unterschreitung der Messgrenzen des Messinstrumentes erklärt werden, wie zum Beispiel bei einer automatische Pegelmessstation, die bei Hochwasser per Hand abgelesen werden muss. Neben all den technischen Gründen kommen auch andere Ursache für unzuverlässige Daten in Frage. Hierzu gehört der Wechsel des Beobachters, eine Zeitänderung der Beobachtung oder bei einer Klimastation das Baumwachstum in unmittelbarer Umgebung, die Veränderung des 24 2 Grundlagen Wasserangebotes oder der Vegetation in unmittelbarer Nähe der Messstation (vgl. ALLEN ET AL. 1998). Auch die Tatsache, dass die Daten noch nicht digitalisiert verfügbar sind, kann ein Grund für Datenlücken sein. Die Folge von systematischen Messfehlern sind Inhomogenitäten in den Zeitreihen, die durch verschiedene Homogenitäts- und Plausibilitätstests erkannt und durch spezielle Verfahren ausgebessert oder als Fehlwert markiert werden können. Auch politische oder gesellschaftliche Ereignisse können zu größeren Lücken innerhalb von Zeitreihen führen. Ein Beispiel hierfür sind fehlende Messungen aus Deutschland während der beiden Weltkriege. 2.4.3 Umgang mit Datenlücken Treten in Zeitreihen Lücken oder Fehlwerte auf, gibt es verschiedene Möglichkeiten, damit umzugehen. Es kann zunächst versucht werden die fehlenden Werte durch manuelle Recherche in alternativen Quellen als den Originaldaten, wie etwa Jahrbücher oder anderen Arbeiten zu finden. Auch kann es bei Klimastationen vorkommen, dass an ein und derselben Station die Daten in unterschiedlichen Zeitabständen oder Messgeräten vorliegen und durch Überlagerung dieser eine Lücke geschlossen werden kann (RAPP 2001:1). So lagen zum Beispiel 2002 noch an 90% der Pegel in Baden-Württemberg Wasserstandsganglinien sowohl von einem analogen als auch einem digitalen Aufzeichnungsgerät vor (LUBW 2002). Häufig wird ein bestimmter Grenzprozentsatz an fehlenden Werten festgelegt, bevor Verfahren zur Berechnung der Wertelücken angewendet werden (HINTERDING 2003:59). Alle Zeitreihen bei denen der Prozentsatz der fehlenden Werte über diesem liegt, werden aus dem Datenbestand entfernt. Von FAMILI ET AL. 1997 wird ein solcher Richtwert, ab dem eine Zeitreihe entfernt werden sollte, mit 20% angeben. Das Entfernen ganzer Zeitreihen aus einem Datenbestand zählt zu den ältesten Methoden. Dabei muss jedoch zum einen bedacht werden, dass Informationen, die durch keine anderen Zeitreihe abgedeckt werden, verloren gehen und zum anderen, dass bei der Entnahme zu vieler Datensätze aus einem Datenbestand eine weitergehende Datenanalyse nicht mehr möglich ist (WRIGHT 1998:2f). Für das Schließen von Datenlücken gibt es eine Vielzahl von verschiedenen Verfahren, die entweder auf der Grundlage der jeweiligen Zeitreihe oder auf anderen Datensätzen im Datenbestand basieren. Die meisten Standardverfahren zum Auffüllen von Fehlwerten werden in verbreiteten Softwarepaketen angeboten (HINTERDING 2003:59). Speziell auf Geostatistik ausgerichtete Programme sind zum Beispiel GSTAT (PEBESMA 2006), GSLIB (DEUTSCH & JOURNEL 1998), Geo-EAS (ENGLUND & SPARKS 1991) und SAGA GIS (OLAYA 2004). Viele Zeitreiheninformationssysteme oder hydrologische Modelle, wie WaSiMETH (JASPER & SCHULLA 2007) oder PREVAH (WINMET)(ZAPPA & VIVIROLI 2005), stellen ebenfalls Interpolationsverfahren zur Verfügung. 25 2 Grundlagen 2.4.4 Interpolationsverfahren Für das Auffüllen von fehlenden Werten zwischen bekannten Datenpunkten existieren Methoden auf der Grundlage der jeweiligen Zeitreihe (zeitliche Interpolation) sowie unter Benutzung benachbarter Referenzstationen (räumliche Interpolation). Bei der zeitlichen Interpolation wird nur die Zeitreihe betrachtet, in der die Datenlücke auftritt. Die Interpolation erfolgt unter Verwendung der vorhandenen Messwerte mit Verfahren wie der linearen Interpolation. Bei der räumlichen Interpolation gehen die Messwerte umliegender Stationen in die Berechnung ein. Dabei werden die räumliche Mittelwertbildung, lineare oder multiple Regressionsbeziehungen oder entfernungs- und richtungsabhängige Interpolation zur Berechnung der Werte verwendet (RAPP 2001:1f). Neben der Unterteilung in zeitliche und räumliche Interpolationsverfahren kann auch zwischen lokalen und globalen Verfahren unterschieden werden. Bei lokalen Methoden wird nur eine Teilmenge aller vorhanden Datensätze, die in einem bestimmten Suchgebiet oder in der Nachbarschaft liegen, zur Berechnung verwendet. Die globalen Methoden benutzen hingegen alle Datensätze, die zur Verfügung stehen (KLINKENBERG 1997). Eine weitere Möglichkeit ist die Einteilung in deterministische und stochastische Interpolationsverfahren. Zu den deterministischen Verfahren gehören u. a. NächsterNachbar-Verfahren, Inverse Distanzwichtung und die Spline Interpolation. Sie basieren auf exakt vorherbestimmbaren räumlichen Zusammenhängen. In stochastische Verfahren hingegen gehen Zufallselemente in die Berechnung mit ein. Die Interpolation wird als eine von vielen möglichen Realisationen einer Verteilungsfunktion gesehen, welche die beobachteten Messwerte erzeugt. Zu den bekanntesten stochastischen Verfahren gehört das geostatistische Verfahren Kriging (LORUP & FISLER 2006, KLINKENBERG 1997). 2.4.4.1 Zeitliche Interpolationsverfahren Zu den zeitlichen Interpolationsverfahren, die nur die Zeitreihe mit der Datenlücke betrachten, gehören lineare Interpolation, Splines und weitere Verfahren. Zeitliche Interpolationsverfahren sollten nur auf Zeitreihen ausgeführt werden, die kontinuierlich sind (z. B.: Temperatur, Abfluss) und nicht einzelne unabhängige Ereignisse beschreiben, wie das zum Beispiel beim Niederschlag der Fall ist. Sie besitzen den Vorteil, dass keine Informationen über umliegende Stationen benötigt werden und eignen sich vor allem für kleine Datenlücken. Werden die Lücken jedoch zu groß können keine zuverlässigen Daten ermittelt werden, weil die Dynamik nicht mehr richtig erfasst werden kann. 26 2 Grundlagen Lineare Interpolation Die lineare Interpolation geht auf Isaac Newton zurück und ist ein sehr einfaches Verfahren, bei dem zwei gegebene Datenpunkte linear verbunden werden. Beim Füllen von Lücken innerhalb einer Zeitreihe werden hierfür der Anfangs- und Endpunkt einer Lücke verwendet und diese durch eine Gerade verbunden. Die fehlenden Messwerte liegen direkt auf dieser Geraden. Kleine Datenlücken (etwa in Abflusszeitreihen in Zeiten einer geringen Abflussdynamik) können problemlos mit diesem Verfahren gefüllt werden (LUBW 2002:16). Die lineare Interpolation eignet sich aber auch zum Schließen kleiner Lücken bei Klimaelementen wie Temperatur oder Luftfeuchte. Splines Splines sind Funktionen n-ten Grades, die stückweise aus Polynomen mit dem maximalen Grad n zusammengesetzt sind. Je nachdem, was für n gewählt wird, ist der Spline linear, quadratisch, kubisch usw.. Splines werden häufig zur Interpolation und Approximation verwendet, da sie durch die stückweise Interpolation flexibler als Polynome sind. Das Verfahren liefert sehr schnell Werte, da immer nur wenige Datenpunkte in eine Berechnung eingehen. Splines werden nicht nur zur zeitlichen, sondern auch zur räumlichen Interpolation zur Erstellung von Oberflächen mit einer minimaler Krümmung eingesetzt (BURROUGH & MCDONNELL 1998). Zeitliche Spline-Interpolationen hingegen werden z. B. zum Schließen von Lücken in Wasserstandsdaten verwendet (LUBW 2002:16). Weitere Verfahren Weitere Möglichkeiten, eine Datenlücke mit den gegeben Informationen der Zeitreihe zu füllen, sind das Einsetzen des Mittelwertes des Gesamt- oder eines Teilintervalls, des Ordinatenwertes einer Trendgeraden durch die Zeitreihe zum Zeitpunkt der Datenlücke oder die Rekonstruktion per Hand (RAPP 2001:2). Auch die Verwendung des zuletzt gemessenen Wertes für die Lücke ist möglich. Eine andere Variante zum Bereinigen größerer meteorologischer Datenausfälle besteht in dem so genannten „Einpassen in die Datenlücke“. Hierfür wird aus der Spenderzeitreihe (kann auch dieselbe wie die Empfänger-Datenreihe sein) die erforderliche Datenfolge herauskopiert und durch vertikales Verschieben und horizontales Drehen so in die Empfänger-Datenreihe eingepasst, dass die Berührungspunkte jeweils stufenlos ineinander übergehen (LUBW 2002:19). 27 2 Grundlagen 2.4.4.2 Räumliche Interpolationsverfahren Räumliche Interpolationsverfahren bieten die Möglichkeit, auf Basis von punktuell gemessenen Daten Aussagen über ihre flächenhafte Verteilung zu treffen. Es kann an jedem beliebigen Punkt ein Wert geschätzt werden, dementsprechend können damit auch Lücken in Zeitreihen unter Verwendung der vorhandenen umliegenden Werte geschlossen werden. Das am häufigsten eingesetzte Verfahren zum Schließen von Datenlücken in umweltbezogenen Zeitreihen ist die inverse Distanzwichtung. Weiterhin gibt es noch das Nächste-Nachbar-Verfahren sowie die lineare Regression, mit der auch Lücken gefüllt werden können. Ein weiteres, sehr bekanntest Verfahren ist zum Beispiel das globale Interpolationsverfahren Kriging, dass es in vielen Varianten gibt. Da Kriging nicht als Interpolationsverfahren im RBIS umgesetzt wurde, soll es hier auch nicht näher beschrieben werden Nächste-Nachbarn-Verfahren Das Nächste-Nachbarn-Verfahren ist ein sehr weit verbreitetes und sehr einfaches Verfahren. Dabei wird im Datenbestand der Datensatz gesucht, welcher bei der jeweils verwendeten Metrik den Quelldaten am ähnlichsten bzw. bei dem der Abstand am geringsten ist. Lücken werden dann mit der Übernahme der Attributwerte des benachbarten Datensatzes geschlossen. Das Verfahren kann durch die Verwendung des Mittelwertes der nächsten Nachbarn als Schätzung verbessert werden (lokale Mittelwertbildung) (HINTERDING 2003:59). Das Verfahren ist dann problematisch, wenn keine ähnlichen Datensätze im Datenbestand vorhanden sind oder eine hohe topografische Variabilität vorliegt, da die aufgefüllten Lücken eine andere Charakteristik als die des Quelldatensatzes aufweist (WRIGHT 1998:2f). Als Maß für die Ähnlichkeit bzw. zur Bestimmung der Entfernung gibt es verschiedene Parameter. Die Verwendung der euklidischen Distanz zur nächsten Station ist eine Möglichkeit und wird oft in GIS-Anwendungen für das Auffüllen fehlender Werte verwendet. Ferner kann auch der Korrelationskoeffizient verwendet werden. Nach KNIESS & SCHERZER (2003) sollte bei der Übernahme von Daten benachbarten Klimastationen eine optimale Korrelation zwischen Quell- und Zielstation vorliegen. Als optimal wird dabei ein Korrelationskoeffizient von 0,9 und höher angesehen. Zahlreiche Hinweise für die direkte Übernahme von Globalstrahlungsdaten von benachbarten Stationen werden bei ALLEN ET AL. (1998) gegeben. Fehlende Wasserstandsdaten können mit Daten einer Vergleichsmessstelle gefüllt werden, wenn der Pegel am selben Gewässer, im gleichen Einzugsgebiet oder in unmittelbarer Nähe liegt und er ähnliche Gebiets- und Niederschlagscharakteristika besitzt. Weisen die Daten der Vergleichsmessstelle einen zeitlichen Versatz oder eine konstante Differenz auf, so müssen die Daten noch entsprechend angepasst werden (LUBW 2002:18). 28 2 Grundlagen IDW – Inverse Distanzwichtung Die Inverse Distanzwichtung (IDW) ist ein nichtstatistisches Verfahren, das zur einfachen Interpolation von räumlich abhängigen und georeferenzierten Daten genutzt wird. Dabei wird davon ausgegangen, dass die Ähnlichkeit zu einem unbekannten Messwert mit der Entfernung von diesem abnimmt. Dieser Zusammenhang wird durch die Verwendung des inversen Abstandes (1/d) zwischen Schätzpunkt und Messort als Gewicht (wi) für jeden Messwert zum Ausdruck gebracht (1). n wi = 1 d p (1) xw = ∑ (x ⋅ w ) i i =1 i n ∑w i =1 i (2) Somit nimmt mit größer werdender Entfernung der Einfluss des Messwertes auf den Schätzwert ab. Diese Gewichtsabnahme kann durch einen festgelegten Exponenten (p) gesteuert werden. Je höher der Exponent ist, desto mehr wird der Schätzwert dem Wert des nächstgelegenen Messortes ähnlich. Im Regelfall wird ein Exponent von 2 verwendet. Die Summe aller normalisierten Gewichte beträgt 1. Der Schätzwert berechnet sich aus der Summe aller beitragenden gewichteten Messwerte (2) (SCHULLA 1997:19f, LORUP & FISLER 2006). Die Interpolation mit der inversen Distanzwichtung hat den Vorteil, dass sie in ihrer Berechnung sehr schnell ist, die unterschiedliche Distanz in die Schätzung einbezieht und der Einfluss der Distanzgewichtung durch den Exponenten gesteuert werden kann. Zu den Nachteilen zählt vor allem, dass keine richtungsabhängige Gewichtung möglich ist und somit räumlich gerichtete Zusammenhänge wie etwa Höhenpunkte entlang eines Bergrückens nicht in die Berechnung einfließen (LORUP & FISLER 2006). Voraussetzung für eine erfolgreiche Anwendung ist immer ein ausreichend dichtes Messnetz. Existieren nur sehr wenige Stationen in unmittelbarer Nähe, so wird der Fehler größer, wie dies auch YOU ET AL. (2004) am Beispiel mit IDW interpolierter minimaler und maximaler Temperaturwerte zeigten. Die IDW wird häufig für die Interpolation von stündlichen Niederschlagsmengen verwendet, jedoch können auch fehlende Messwerte von anderen Messgrößen wie der Sonnenscheindauer hiermit aufgefüllt werden (SCHULLA 1997:19). Für die Niederschlagsinterpolation schlägt SCHULLA (1997:20) einen Exponenten zwischen 2 und 3 vor. Sollen Tageswerte oder gar Wochen-, Monats- oder Jahreswerte interpoliert werden, empfiehlt er den die Einbeziehung der Höhe, da diese hier stärker zum Tragen kommt. Die Interpolation von Windgeschwindigkeiten kann mit Verfahren, die auf der Basis von IDW beruhen und die Höhe mit einbeziehen, erfolgen. So vergleicht GERLACH (2001) 29 2 Grundlagen Verfahren wie das Höhendifferenzen-Verfahren nach Palomino & Martin, welches die Höhendifferenzen als Gewichte verwendet, mit dem geostatistischen Verfahren Kriging, wobei sie mit den IDW-basierten Verfahren bessere Ergebnisse erzielt. AHRENS (2005) ersetzt hier bei der Interpolation von täglichen Niederschlägen in Österreich die geographische Distanz durch eine statistische Distanz und erzielt damit bessere Ergebnisse als mit der geographischen Distanz. Die Verwendung der statistischen Distanz ist nach AHRENS (2005) demnach vor allem in der Nähe von und in bergigen Regionen besser geeignet als die geographische Distanz. Lineare Regression Die lineare Regression ist ein mathematisches Verfahren, mit dem eine Gerade so durch eine Punktwolke gelegt wird, so dass die mittlere quadratische Abweichung der Punkte von der Geraden minimiert wird. In Bezug auf die Daten von zwei Messstellen wird eine Regressionsbeziehung zwischen den vorhandenen Werten erstellt. Diese wird dann verwendet, um Fehlwerte der einen Station anhand der Werte der anderen zu füllen, wobei von einem linearem Zusammenhang ausgegangen wird. Bei der Anwendung einer linearen Regression mit Werten einer benachbarten Messstation entscheidet häufig das Bestimmtheitsmaß r² (Anteil der erklärten Varianz eines Zusammenhangs) einer Regressionsbeziehung über die Eignung einer Messstelle. Der Wertebereich von r² liegt zwischen 0 und 1, wobei 1 für einen exakten linearen Zusammenhang steht. Ausgehend von einer einfachen linearen Regression entwickelte Scherzer (2002) (in KNIESS, A. & J. SCHERZER 2003:56) einen zweistufigen Regressionsansatz, der auf der Erfahrung beruht, dass oft Ausfälle an Ziel- und Quellstationen simultan auftreten. Hier wird zunächst eine Regression mit der besten Zeitreihe durchgeführt. Alle verbleibenden Lücken werden mit Hilfe der nächst besten Zeitreihe aufgefüllt. Regressionsbeziehungen können nicht nur zwischen den einzelnen Werten von Stationen ermittelt werden, sondern auch in empirischen Regressionsmodellen für die Regionalisierung unter der Verwendung von Hilfsvariablen wie der Höhe, geografischen Breite und Länge, Küstennähe oder Exposition und Neigung (SCHÖNAU 2003). Die Höhe der Stationen spielt besonders in gebirgigen Einzugsgebieten eine große Rolle, da es einige Klimaelemente (Lufttemperatur, Dampfdruck, Windgeschwindigkeit) mit einer ausgeprägten Höhenabhängigkeit gibt. Um die Höhe mit einzubeziehen, gibt es einen sehr einfachen Ansatz, der von einem linearen Zusammenhang zwischen der topographischen Höhe und dem Messwert ausgeht. Hier wird zunächst die Regressionsfunktion zwischen den klimatologischen Parametern und der Topographie für einzelne Regionen berechnet. Die Werte des klimatologischen Parameters an den einzelnen Messstationen werden mit Hilfe der räumlich variablen Regressionsfunktion auf ein gemeinsames Bezugsniveau, i. A. den Meeresspiegel, reduziert. Dieser Werten werden dann zum Beispiel mit IDW 30 2 Grundlagen interpoliert und anschließend wieder mit der Regressionsfunktion auf die Werte der tatsächlichen Höhe umgerechnet (MÜLLER-WESTERMEIER 2003). SCHULLA (1997:17) beschreibt eine höhenabhängige Regression mit wechselnden Höhengradienten. Damit können Inversionsschichten, die durch bestimmte Höhenlagen abgegrenzt werden, abgebildet werden. In der Kombination mit IDW konnten die Ergebnisse noch verbessert werden. Auch die Berechnung von Abflussdaten ist unter Berücksichtigung der Laufzeitunterschiede mit einer linearen Regression möglich (LUBW 2002:18). Weitere Verfahren Neben den bereits beschriebenen Verfahren gibt es weitere, die bei der Interpolation in umweltbezogenen Zeitreihen oder allgemein zur Regionalisierung verwendet werden. Zu diesen zählen die geostatistischen Verfahren, welche im Gegensatz zu IDW, richtungsabhängige Informationen verwenden. Räumliche Korrelationen werden somit nicht mehr ignoriert. Die wichtigsten Verfahren sind die Kriging-Methoden (lineare Schätzverfahren), die nach dem südafrikanischen Ingenieur D. G. Krige benannt wurden (LORUP & FISLER 2006:22). Sie wurden Mitte dieses Jahrhunderts von G. Matheron in Frankreich zur Anwendung im Bereich Bergbau entwickelt. Zur gleichen Zeit entwickelte L.S. Gandin in der Sowjetunion das selbe Verfahren und wandte es auf den Bereich der Meteorologie an (STREIT 1998). Weiterhin können auch neuronale Netze (z. B. Backpropagation Neural Network, General Regression Neural Network) zum Lückenersatz verwendet werden (SCHERZER 2007). Einen sehr guten allgemeinen Überblick über das Prinzip der geographischen Informationsverarbeitung und über mathematische Regionalisierungsverfahren geben BURROUGH & MCDONNELL (1998). Eine Zusammenstellung verwendeter Verfahren und Ergebnisse nach den einzelnen Klimaelementen aufgeteilt und bezogen auf die Anwendung in der Regionalisierung ist bei SCHÖNAU (2003) zu finden. 31 3 Metadaten- und Zeitreihenverwaltung in RBIS 3 Metadaten- und Zeitreihenverwaltung in RBIS Die Anwendungskomponente für die Verwaltung der Metadaten und der Zeitreihen im RBIS (Abbildung 7) bildet den Ausgangspunkt und die Grundlage für die in Kapitel 4 beschriebenen Arbeiten. Im Folgenden wird diese Komponente mit RBIS-IMTIS abgekürzt, wobei IMTIS für Integrated Metadata (and) Time series Information System steht. Mit Hilfe von RBIS-IMTIS lassen sich Metadaten von Kartendaten, Zeitreihen, Simulationsreihen, Messstationen und Dokumenten, die sich jeweils auf ein hydrologisches Einzugsgebiet oder ein Forschungsprojekt beziehen sowie die Zeitreihendaten und Dokumente selbst, verwalten. Diese Daten können räumlich verortet werden und ermöglichen so eine raumbezogene Auswertung. Die Verwaltung der Kartendaten erfolgt in einem separaten Anwendungsbestandteil von RBIS unter Verwendung des UMN (University of Minnesota) MapServers. Die Anwendungslogik des Kartenservers ist daher vom Rest der Anwendung entkoppelt. Die Verknüpfung zwischen den beiden Komponenten erfolgt allein durch die Verlinkung von einzelnen Inhalten. An dieser Stelle wird nur auf RBIS-IMTIS eingegangen, da der Kartenserver nicht direkt bei der Verwaltung der Zeitreihen beteiligt ist. Über ihn können lediglich die Stationen und deren Lage im Einzugsgebiet dargestellt werden. Die folgenden Abschnitte befassen sich mit dem zugrunde liegenden Datenbankschema, der allgemeinen Funktionsweise von RBIS-IMTIS, den Funktionalitäten, die dem Anwender und Anwendungsadministrator zur Verfügung stehen, sowie den generellen Entwicklungsleitlinien, welche die Vorgaben für Erweiterungen und Veränderungen am Datenmodell oder der Anwendung bilden. Abbildung 7: RBIS-IMTIS: Übersichtsansicht (Metadaten für Zeitreihen) 32 3 Metadaten- und Zeitreihenverwaltung in RBIS 3.1 Datenbankschema Das Datenbankschema für die Datenbank von RBIS-IMTIS beinhaltet eine vollständige Umsetzung des ISO 19115 Standards und verschiedene allgemeine Erweiterungen. Eine global eindeutige Metadaten-ID verbindet die ISO 19115 Elemente mit ihren jeweiligen Erweiterungen (Abbildung 8). Allen Metadatensätzen ist eine solche ID zugeordnet. Dazu gehören die Metadaten der Dokumente (Documents), Kartendaten (Map_Data), Zeitreihen (TS_TimeSeries), Stationen (DS_Station) und Flüsse (RS_RiverSystem). Abbildung 8: Übersicht zur zentralen Rolle der Metadaten-ID (konzeptionelles Modell) 33 3 Metadaten- und Zeitreihenverwaltung in RBIS Weitere können als projektspezifische Erweiterungen jederzeit hinzugefügt werden. Über die Metadaten-ID ist später in der Anwendung die Zuordnung von Dateien (Files) beliebigen Typs zu den einzelnen Metadatensätzen möglich. Wie bereits bei der Beschreibung des ISO 19115 (Abschnitt 2.3.1.1) aufgeführt, gibt es eine Vielzahl an vordefinierten Codelisten. Darüber hinaus gibt es zwei weitere sehr umfassende Codelisten. Units of Measure (UOM) beinhaltet eine umfangreiche Sammlung verschiedener Messeinheiten und ihren Eigenschaften. Die Codeliste der Feature Parameter (FP) enthält eine ausführliche Zusammenstellung verschiedener Parameter aus 20 Oberkategorien, die sich wiederum in Unterkategorien aufteilen. Beispiele sind u. a. verschiedene Messstationstypen, Wasserqualitätsparameter oder Länder. Für die Verwaltung der Zeitreihen kommen vor allem die Module TS_TimeSeries, DS_Station und RS_RiverSystem zum Einsatz. Das Modul RS_RiverSystem realisiert die Darstellung von einzelnen Flüssen oder Teilen von Flüssen mit ihren Eigenschaften und Beziehungen untereinander. In DS_Station (Anhang A Abbildung 33) werden die Messstationen beschrieben und die Zeitreihen mit diesen verknüpft. Einer Station können beliebig viele Zeitreihen zugeordnet werden. Zu einer Station können Informationen wie der Name, die Lage, Zuordnung zu einem Flusssystem, Betriebsbeginn und -ende und verantwortliche Person oder Organisation hinterlegt werden. Jeder Station können ein oder mehrere Stationstypen zugeordnet werden. Das können zum Beispiel Niederschlags-, Klima- oder Abflusspegelstationen sein. Weiterhin ist es an dieser Stelle möglich, Eigenschaften, die nur einen bestimmten Stationstyp betreffen, anzugeben. Ein Beispiel hierfür ist der Durchmesser und die Tiefe von Bohrlöchern zur Messung des Grundwasserpegels. In TS_TimeSeries (Anhang A Abbildung 34) werden die Metadaten der Zeitreihen verwaltet. Dazu zählen auch Informationen über die Art der Werte und Einheiten der einzelnen Attribute. Im Rahmen dieser Arbeit wurden hier einige Ergänzungen vorgenommen, die in Abschnitt 4.2.1 beschrieben werden. Im aktuellen konzeptionellen Modell ist die vollkommen unabhängige Tabellenstruktur der Systemdateien der Anwendung nicht enthalten. In ihr findet die gesamte Nutzer- und Rechteverwaltung, die Verwaltung der eigenen Codelisten und der Protokolle statt. Systemtabellen sind durch die Vorsilbe app_ in der Datenbank eindeutig identifizierbar. 34 3 Metadaten- und Zeitreihenverwaltung in RBIS 3.2 Grundlegende interne Funktionsweise Das RBIS-IMTIS ist eine Web-Anwendung, das in der Skriptsprache PHP programmiert ist. Ein Großteil der Anwendungslogik basiert im wesentlichen auf der Interaktion zwischen XML-Dokumenten und PHP-Skripten. Darüber hinaus gibt es Funktionen, die dem Schutz der Daten und der Datenintegrität dienen. 3.2.1 XML-Dokumente Die Web-Anwendung ist sehr flexibel, da über die XML-Dokumente Anpassungen sehr einfach und schnell vorgenommen werden können. Fast alle Anwendungsbereiche greifen auf XML-Dokumente zurück, die den Hauptkern der Anwendung bilden. Diese XMLDokumente werden für die Definition und Beschreibung der einzelnen inhaltlichen Sichten auf die Daten, wie zum Beispiel die Metadaten zu einer Station, verwendet. Sie entsprechen ihrer Funktion nach einem View in der Datenbank auf die Daten. Der Grund für die Verwendung von diesen Views auf der Seite der Anwendung und nicht auf der Seite der Datenbank liegt darin, dass Datenbankviews, sobald Inhalte aus mehr als eine Tabelle betroffen sind, nicht mehr über diesen View geändert oder neu eingefügt werden können. In den bestehenden Anwendungsfällen gibt es jedoch nur sehr wenige Sichten, die tatsächlich nur eine Tabelle benutzen. Vielmehr ist es so, dass im Extremfall ein Umfang von bis zu 60 Tabellen pro Sicht erreicht wird. Die allgemeine Funktionsweise ist in Abbildung 9 dargestellt. Abbildung 9: Bedeutung von XML-Dokumenten im RBIS-IMTIS 35 3 Metadaten- und Zeitreihenverwaltung in RBIS Die Informationen in einem XML-Dokument werden auf der einen Seite zur dynamischen Erzeugung der SELECT (ab1), INSERT, DELETE und UPDATE (b7) SQL-Anweisungen verwendet. Andererseits dienen sie in der Anwendung zur dynamischen Generierung der Anordnung der Inhalte (ab4). Weiterhin werden sie für die Wahl verschiedener Eingabefeldtypen für die Formulare (b4) für das Neuanlegen und Ändern von Inhalten verwendet. Die zugrunde liegenden Mechanismen sind durch die verwendeten Elemente und Attribute in dem XML-Dokument leicht steuerbar, eröffnen eine große Breite an Kombinationsmöglichkeiten und lassen auch Spielraum für Anpassungen, die teilweise sehr komplex sein können. Bei der dynamischen Generierung von INSERT- und DELETE-Anweisungen wird intern zusätzlich die richtige Reihenfolge für eine erfolgreiche Ausführung anhand verschiedener Indikatoren aus dem XML-Dokument ermittelt. Über die XML-Dokumente kann auf das komplette Datenbankschema zugegriffen werden. Geänderte oder neue XMLDateien können gegen ein aktuelles XML Schema (Abbildung 35) validiert werden. Die einzelnen Elemente ohne ihre jeweiligen Attribute sind in Abbildung 10 dargestellt. Abbildung 10: Übersicht XML-Schema von RBIS-IMTIS Verschiedene Sichten können über die Angabe von PHP-Code als Wert spezieller Elemente untereinander verlinkt sein und ermöglichen somit eine anwenderfreundliche Navigation zwischen verschiedenen Inhalten. Das Element table bzw. das Unterelement besitzt eine Vielzahl von Attributen wie beispielsweise name, title, type, group, order oder size, die für die Darstellung der Daten von Bedeutung sind. Über die Attribute (from_table, from_key, to_table, to_table_alias, to_key) des Elements join werden die JoinBedingungen für die bei table aufgelisteten Tabellen definiert. Generell werden diese bei der Zusammenstellung einer SQL-Anweisung immer als LEFT JOIN umgesetzt. Die Verwendung eines expliziten Joins kann bei größeren Joins entscheidend die Ausführungszeit verkürzen, da dem Optimierer der Datenbank eine Reihenfolge für die Joins vorgegeben wird (POSTGRESQL 2007). 36 3 Metadaten- und Zeitreihenverwaltung in RBIS Für Anwendungsfälle, die nicht nach diesem einheitlichen Schema abgebildet werden können, existieren im Vergleich zu den sehr flexiblen XML-Dokumenten Webseiten mit mehr oder minder statischem Aufbau und Inhalt. Darunter fallen u. a. die Seiten für die Benutzerauthentifikation, das Importieren von Zeitreihen oder die Ansicht der Zeitreihendaten. 3.2.2 Sicherheit Das RBIS-IMTIS ist über das Internet erreichbar und gegen Zugriffe von nicht autorisierten Personen durch die Abfrage von Zugriffskontrolle bzw. Benutzerauthentifikation geschützt. Innerhalb der Anwendung gibt es ein detailliertes und anpassungsfähiges Rechtesystem bezogen auf die Ebene von einzelnen Sichten und Aktionen (Lesen, Schreiben/Ändern, Löschen). So können beispielsweise Nutzergruppen mit nur lesendem Zugriff angelegt werden oder Gruppen mit vollen oder eingeschränkten Schreibrechten. In Abbildung 11 sind die Rechte für die Ansicht der Zeitreihendaten dargestellt. Benutzer, die der Gruppe „Group 3“ zugeordnet sind, dürfen hier weder Zeitreihendaten herunterladen („Export“), importieren („Import“) noch löschen („Delete“). Angehörige der Gruppen „Group 4/5“ besitzen uneingeschränkte Rechte und die Benutzer aus Gruppe „Group 6“ dürfen lediglich Daten herunterladen, diese jedoch nicht ändern (importieren oder löschen). Abbildung 11: RBIS-IMTIS: Oberfläche zur Rechteverwaltung Eine zusätzliche Sicherheitsebene ermöglicht es Rechte bezogen auf einzelne Datensätze mit einer Metadaten-ID zu vergeben. Ist dieses zusätzliche Rechtesystem aktiviert, können alle Metadatensätze und Zeitreihen nur noch von ihrem Eigentümer (Nutzer der den Metadatensatz angelegt hat) oder von allen Nutzern verändert bzw. exportiert werden, sofern diese aus der übergeordneten Sicherheitsebene dieses Recht generell besitzen. Dieses mehrschichtigen Verfahren ermöglicht eine feingranulare Rechteverwaltung, wie sie für ein Informationssystem mit einer großen Anzahl von Benutzern und sensiblen Daten zwingend erforderlich ist. 37 3 Metadaten- und Zeitreihenverwaltung in RBIS 3.2.3 Datenintegrität Für die Datenintegrität im RBIS-IMTIS sorgen mehrere Mechanismen. Die Formate der Eingabewerte werden hinsichtlich ihres korrekten Typs (Datum, Float, Integer, Email und Länge) geprüft und falls nötig in ein anderes Format umgewandelt, wie das bei Zeitangaben oder Passwörtern notwendig ist. Alle schreibenden Befehle an die Datenbank werden innerhalb von Datenbanktransaktionen ausgeführt. Generell werden alle Veränderungen am Datenbestand sowie aufgetretene Fehler in verschiedenen Protokollen (Abbildung 12), die von Anwendungsadministratoren eingesehen und analysiert werden können, erfasst. Hier lässt sich auch der Änderungsverlauf eines Datensatzes nachvollziehen. Falls notwendig ist somit die Wiederherstellung eines älteren Zustandes des Metadatensatzes per Hand möglich. Bei den Protokollen wird entsprechend der Art des Datenbankzugriffs zwischen dem INSERT, UPDATE und DELETE – Protokollen unterschieden. Sie halten jeweils den Benutzernamen, den Zeitpunkt und die IP-Adresse des Zugriffes fest. Bei einem INSERT werden die neuen Inhalte sowie die Werte der neu erzeugten Primärschlüssel abgespeichert. Im Falle von UPDATE und DELETE wird der Zustand des Datensatzes vor der Änderung gespeichert. Schlagen diese Aktionen aus irgendeinem Grund fehl, wird ein entsprechender Eintrag zusammen mit der letzten an die Datenbank versandten SQL-Anweisung, der Anzahl der betroffenen Datensätze und, falls vorhanden, die ermittelte Fehlermeldung in das ERROR-Protokoll geschrieben. Die Vermeidung von Verletzungen der referenziellen Integrität in der Datenbank wird vom DBMS PostgreSQL sichergestellt. Abbildung 12: Erfassung aller Schreibenden Zugriffe in Logs 38 3 Metadaten- und Zeitreihenverwaltung in RBIS 3.3 Funktionsumfang aus der Sicht der Anwender Die Web-Anwendung bietet dem Benutzer eine Vielzahl von Funktionen an. Alle im RBIS-IMTIS erfassten Informationen können innerhalb der vom Anwendungsadministrator definierten Sichten dargestellt werden. Für jede dieser Sichten gibt es jeweils eine Übersichtsansicht, bei der die Anzahl der dargestellten Datensätze pro Seite frei wählbar ist. Von dieser ausgehend, können Detailinformationen zu jedem Datensatz eingesehen werden. Viele Detailansichten enthalten Links zu anderen Inhalten wie zum Beispiel den Zeitreihen- oder Kartendaten. Die Suchfunktion auf der Ebene der einzelnen Sichten hilft dem Anwender, gesuchte Informationen schnell zu finden. Bei der Suche kann zwischen einer Freitextsuche oder einer Suche über Auswahlfelder, die nur tatsächlich verwendete Attributwerte anbietet, gewählt werden. Die Erfassung der Informationen erfolgt ebenfalls über Sichten. Um eine einfache und eindeutige Eingabe der Daten zu unterstützen, sind die Eingabefelder entsprechend des erwarteten Typs angepasst und die Pflichtfelder farblich hervorgehoben. Zu den möglichen Varianten zählen einfache Textfelder, Textboxen für die Eingabe von längeren Beschreibungen, Datumsfelder mit einem interaktiven Kalender, anpassungsfähige Auswahllisten sowie Radiobuttons für die Auswahl von Formularfeldern. Für die Eingabe von Daten steht dem Nutzer eine Hilfefunktion zu jedem Eingabefeld zur Verfügung, deren Text vom Anwendungsadministrator frei editiert werden kann. Eine Vorbelegung der Formularfelder durch Defaultwerte ist ebenfalls durch eine entsprechende Angabe im XML-Dokument möglich. Wird das Formular abgeschickt, werden alle Datentypen und Pflichtfelder überprüft. Der Nutzer wird beim Auftreten eines Fehlers solange zum Korrigieren seiner Eingaben aufgefordert bis seine Eingaben korrekt sind. Einem angelegten Metadatensatz können anschließend beliebig viele Dateien zugeordnet werden. Zu jedem Metadatensatz für Zeitreihen können Zeitreihendaten importiert werden, die anschließend grafisch dargestellt und komplett oder in Teilen exportiert werden können. Die Originaldaten können hierbei in verschiedenen Datumsformaten vorliegen. Andere Metadatensätze (Geodaten, Stationen) können hingegen mit einem Layer, einem Geometrieobjekt oder einer Karte auf der Seite des Kartenservers über einen Link verknüpft werden. Für ein automatisches Anlegen und Verknüpfen aller Stationen anhand der gegebenen Koordinaten in einem Layer als ein Geometrieobjekt gibt es ebenfalls eine Funktion, die vom Anwendungsadministrator ausgeführt werden kann. 39 3 Metadaten- und Zeitreihenverwaltung in RBIS 3.4 Aktueller Datenbestand im RBIS-IMTIS Im RBIS-IMTIS werden verschiedene Zeitreihen verwaltet, die sich derzeit in die Teilbereiche Geografie, Meteorologie, Hydrologie und Wasserwirtschaft untergliedern lassen. Zu den geografischen Daten gehören Angaben über die räumliche Verteilung der Messstationen durch ihre Koordinaten und Höhenangabe. Zur Meteorologie zählen Zeitreihendaten zum Niederschlag, der Lufttemperatur, dem Luftdruck, der Luftfeuchtigkeit, der Windstärke, der Strahlung und der Sonnenscheindauer. Im Bereich der Hydrologie gibt es Abflussdaten, Grundwasserstände und Schneedaten. Zu den wasserwirtschaftlichen Zeitreihen gehören vor allem eine Vielzahl von Gewässergüteparametern. Bei der Speicherung der Werte in der Datenbank wird das Datum in UNIX-Zeit umgewandelt, wobei es auch möglich ist mehrere Werte zu ein und demselbem Datum anzugeben. Die UNIX-Zeit wurde für das Betriebssystem UNIX entwickelt und gibt die vergangene Zeit in Sekunden seit dem 1.1.1970 00:00 nach koordinierter Weltzeit (UTC ) an (IEEE & OPEN GROUP 2004). Abbildung 13 zeigt ein Beispiel aus der Zeitreihendatenbank für eine Temperaturzeitreihe. Die Beschreibung der einzelnen Attribute erfolgt in den Metadaten der Zeitreihe. Abbildung 13: tägliche Temperaturwerte (Minimalwert (value1), Durchschnittswert (value2) und Maximalwert (value3)) Des weiteren werden Datensätze über Personen und Organisationen sowie Metadaten zu Stationen (SaaleRBIS: ~1200), Zeitreihen (SaaleRBIS: ~1900), Flüssen (SaaleRBIS: ~84), Geodaten und Dokumenten verwaltet. Für die Weiterentwicklung der Anwendung kann auf den Datenbestand des Lehrstuhls für Geoinformatik, Geohydrologie und Modellierung der Universität Jena zurückgegriffen werden. In erster Linie wird hier mit den zur Verfügung stehenden Daten aus dem Einzugsgebiet der Saale (SaaleRBIS) gearbeitet. Die Praxistauglichkeit wird bei den aktiv genutzten Installationen BrahmaRBIS und DanubeRBIS aus dem BrahmatwinnForschungsprojekt getestet. 40 3 Metadaten- und Zeitreihenverwaltung in RBIS 3.5 Anforderungen für zukünftige Erweiterungen Für die Umsetzung zukünftiger Erweiterungen gibt es verschiedene Anforderungen bei der Anwendungsentwicklung sowie bei der Datenbankmodellierung. Das RBIS soll anpassungsfähig bleiben, damit neue Anforderungen einfach realisiert werden können Weiterhin zählt eine weitgehende DBMS- und plattformunabhängige Entwicklung der Anwendung, aber auch der Einsatz von Open Source Software sowie ein flexibler, transparenter und modularer Aufbau der Anwendungsstruktur zu den Anforderungen. Ebenso muss die Benutzung einfach und übersichtlich für einen typischen Endanwender von RBIS sein. Komplexere Konfigurationsmöglichkeiten sollten nur für einen ausgewählten Benutzerkreis zugänglich sein. Alle Informationen, die automatisch generiert werden können, sollten von der Anwendung auch automatisch erzeugt werden, um den Endanwender zu entlasten und um Fehlern bei der Eingabe vorzubeugen. Für das Datenbankschema gelten alle allgemeinen Anforderungen an eine gute Datenmodellierung, wie etwa eine stets inhaltlich aussagekräftige Benennung der Spalten und Tabellen. Ergänzend dazu sind neue Tabellen, die einem klar abgrenzbaren Modul oder Teilmodul angehören, durch führende Buchstaben zu kennzeichnen. Spalten, die den Primärschlüssel enthalten, setzen sich stets aus dem Tabellennamen und der Endung „_id“ zusammen. Werden diese als Fremdschlüssel in anderen Tabellen verwendet, sollte möglichst dort der gleiche Name verwendet werden. Generell sind Tabellen mit einem zusammengesetzten Primärschlüssel zu vermeiden. Primär- und Fremdschlüsseldefinitionen sind anzulegen. Alle Änderungen an der Datenbank müssen im konzeptionellen Datenmodell nachgeführt werden. 41 4 Verwaltung und Interpolation von Zeitreihen in RBIS 4 Verwaltung und Interpolation von Zeitreihen in RBIS Im Rahmen der Diplomarbeit wurden die Komponenten für die Verwaltung der Zeitreihen weiterentwickelt und angepasst. Dabei wurde der gesamte Lebenszyklus von Zeitreihendaten mit ihren Metadaten innerhalb von RBIS, beginnend mit dem Einpflegen der Daten über die Interpolation bis hin zum Export, vollständig überarbeitet und ergänzt. Das Modul für die Interpolation von Zeitreihendaten ist komplett neu entstanden und kann optional hinzugefügt werden. Nach der Beschreibung der Ausgangssituation und der sich daraus ergebenden konkreten Problemstellung wird die Umsetzung vorgestellt, die sich in vier einzelne Arbeitspakete zerlegen lässt. Die einzelnen Arbeitspakete wurden in der angegebenen Reihenfolge bearbeitet und lauten wie folgt: ● Ergänzen der Metadaten um wichtige beschreibende Informationen ● Bereitstellung verschiedener Datenanalysemöglichkeiten ● Implementierung und Anwendung verschiedener Interpolationsverfahren ● Zugriff auf den Datenbestand (Export) Jedes Arbeitspaket wird im Folgenden sowohl hinsichtlich seiner Umsetzung als auch seiner Funktionsweise dargestellt. 4.1 Problemstellung und Ausgangssituation Der Import von Daten über RBIS erfolgte bisher ohne Kontrollmechanismen und nur wenigen Datenprüfungen, so dass dementsprechend auch keine ausreichend hohe Qualität der importierten Daten gewährleistet werden konnte. Es gab kaum Möglichkeiten für den Anwender, den Grund für einen fehlgeschlagenen Importvorgang zu erfahren. An dieser Stelle bestand die Aufgabe darin, den Importvorgang um eine angemessene Fehlererkennung und Fehlerausgabe zu ergänzen. Zusammen mit entsprechenden Kontrollmechanismen soll sichergestellt werden, dass die Daten für eine spätere Analyse oder Interpolation verwendet werden können. Bisher wurden im RBIS keinerlei Informationen über Lücken erfasst oder diese entsprechend aufgefüllt. Die Zeitreihendaten konnten demzufolge nur genauso heruntergeladen werden, wie sie in das System eingespeist wurden. Sollten diese Daten jedoch in einer Anwendung, wie etwa dem Framework Jena Adaptable Modelling System (JAMS) für die Entwicklung und Anwendung von Umweltmodellen, verwendet werden, so dürfen diese keine Lücken enthalten (FSU 2007a). Der Grund dafür ist, dass diese Anwendungen nicht immer Funktionen zur Verfügung stellen, die diese Lücken schließen können. Für einen Modelllauf werden jedoch stets vollständige Datensätze benötigt. Ein weiteres Ziel der Arbeit war es demzufolge, eine Erweiterung für RBIS-IMTIS zu entwickeln, die vorhandene Datenlücken erkennt und schließt. Für das Erkennen und Schließen von 42 4 Verwaltung und Interpolation von Zeitreihen in RBIS Datenlücken ergaben sich folgende Problemstellungen, die im Verlauf der Umsetzung der Aufgabe beachtet werden mussten: ● die Länge der gesamten Zeitreihe ist unbekannt bzw. immer verschieden ● die Lücken selbst und ihre Länge und Anzahl sind unbekannt ● es sind keine Angaben über verwendete Fehlkennungen vorhanden ● es gibt keine Angaben über den verwendeten Zeitschritt bzw. dessen Konsistenz über den gesamten dargestellten Zeitraum einer Zeitreihe ● es existiert keine gesicherten Aussagen über die Qualität der Daten ● die geografische Distanz zwischen zwei Zeitreihen und die Korrelation zwischen diesen ist nicht bekannt ● es gibt nicht nur ein Interpolationsverfahren für einen Parameter, sondern immer eine Reihe von Verfahren, die je nach Einzugsgebiet, Größe der Lücke und anderen Einflussfaktoren besser oder schlechter geeignet sind ● die Vielfalt der Kombinationsmöglichkeiten zwischen dem vorliegenden Zeitschritt, Parameter und Einheit schließt eine unüberwachte und vollautomatische Interpolation der Werte aus. 4.2 Metadaten über Zeitreihen Für die Suche von Zeitreihen ohne auf die Daten der Zeitreihe direkt zuzugreifen ist es erforderlich, Informationen wie Beginn und Ende, Zeitintervall, verwendete Fehlkennungen und Informationen über Datenlücken der Zeitreihe bei den Metadaten abzuspeichern. Bisher wurde als beschreibende Information der Zeitreihen nur das Zeitintervall einer Zeitreihe erfasst. Es konnte bei den Metadaten vor bzw. nach dem Importieren der Daten manuell eingetragen werden, so dass diese Informationen eher selten angegeben wurden. Dies erfolgte zudem ohne eine Überprüfung, ob die Angaben auf die Daten tatsächlich zutreffen. Für das Abspeichern der zusätzlich benötigten Metadaten war es unvermeidlich, das bestehende Datenmodell sowie den vorhanden Datenbestand aller aktiver Installationen von RBIS-IMTIS den Änderungen entsprechend anzupassen. Die Anpassungen im Datenmodell sollen es ermöglichen, einfache Anfragen ohne Zugriff auf die Daten selbst zu beantworten. Darüber hinaus können mit diesen Informationen einfache Konsistenzprüfungen durchgeführt werden. Für die Realisierung der neuen Funktionen, die möglichst automatisch Metadaten-Informationen prüfen, erzeugen und einfügen, sowie die Datenkonsistenz zu jeder Zeit gewährleisten, war eine umfassende Überarbeitung der vorhandenen Funktionalität notwendig. Diese wird im Folgenden nach den notwendigen Datenmodellanpassungen beschrieben. 43 4 Verwaltung und Interpolation von Zeitreihen in RBIS 4.2.1 Anpassung des Datenmodells für die Verwaltung Zu den Stamminformationen einer Zeitreihe (Ausschnitt des physischen Datenmodells siehe Abbildung 14) wurden Attribute für die verwendete Fehlkennungen und das verwendete Zeitintervall hinzugefügt. Die Fehlkennung (ts_timeser.missing_value) wurde als character varying mit einer Länge von 20 eingefügt. Derzeit sind nur Zahlen als Fehlkennung angedacht. Hier soll jedoch die Möglichkeit offen gehalten werden, später auch nicht numerische Zeichen zu akzeptieren. Bei den Attributen für den Beginn (ts_timeser.startdatetime) und das Ende (ts_timeser.enddatetime) einer Zeitreihe wurde der Datentyp von integer (32 Bit) in bigint (64 Bit) umgeändert. Der Grund hierfür ist, dass die Speicherung eines Datums im RBIS bevorzugt in UNIX-Zeit erfolgt. Wird nun die UNIXZeit vor 1901 und nach 2038 berechnet, so ergibt sich ein Integer-Wert, der mehr als 32 Bit beansprucht (IEEE & OPEN GROUP 2004). Abbildung 14: Tabelle „ts_timeser“ (physisches Datenmodell) Für die Speicherung der Informationen über die Datenlücken wurden die bestehenden Entwürfe entsprechend den neuen Anforderungen verändert. In Abbildung 15 ist die physische Umsetzung des Moduls für die Datenzuverlässigkeit dargestellt. Jede Zeitreihe erhielt eine DataReliability-ID (dr_datarelia.dr_datarelia_id), zu der eine allgemeine Beschreibung über die Qualität der Daten (dr_datarelia.descr), ein Status der Daten (dr_datarelia.sc_scstatuscd_id), und ein Boolean-Wert für den Erfolg bzw. Misserfolg einer Datenlückenanalyse (dr_datarelia.gapanalysis) zugeordnet werden können. Jedes Datenlückenintervall, das immer durch ein Anfangs- und Enddatum (dr_datagps.startgap bzw. dr_datagaps. Endgap) sowie seiner Länge (dr_datagaps.length) und der als ID verwendeten Spaltennummer (dr_datatgaps. colnumber) charakterisiert wird, erhält eine eigene ID (dr_datagaps.dr_datagpaps_id). Sie wird über diese und der DataReliability-ID mit einer Spaltennummer (als ID) bzw. einer Messgröße innerhalb einer Zeitreihe verknüpft. Das Datenmodell sieht weiterhin vor, zusätzlich Informationen über den Grund jeder einzelnen Datenlücke und gegebenenfalls der zum Füllen verwendeten Methode aufzunehmen. Diese Teile des Datenmodells wurden jedoch im Folgenden nicht verwendet, da die Abspeicherung der verwendeten Interpolationsmethode innerhalb des Interpolationsmoduls erfolgt (siehe Abschnitt 4.4.1.1). 44 4 Verwaltung und Interpolation von Zeitreihen in RBIS Abbildung 15: Datenzuverlässigkeitsmodul (physisches Datenmodell) 45 4 Verwaltung und Interpolation von Zeitreihen in RBIS 4.2.2 Erweiterung des Import-Formulares Um Informationen über die Datenlücken einer Zeitreihe automatisch zu generieren, war es erforderlich, die Import-Funktionen entsprechend anzupassen. Zusätzlich zu den bisherigen Angaben, nämlich dem Quellverzeichnis der Textdatei mit den Messwerten und dem Datumsformat, wird der Nutzer nun aufgefordert, schon zu Beginn den Zeitschritt (z. B. „täglich“) anzugeben. Weiterhin gibt es die Möglichkeit, Werte über die verwendete Fehlkennung anzugeben, die zuvor für fehlende oder fehlerhafte Messwerte eingesetzt wurde (z. B. „ -9999“)(Abbildung 16). Abbildung 16: Import-Formular für Zeitreihendaten 4.2.3 Überarbeitung der Upload-Funktion Die vorhandenen Funktionen, die beim Importieren einer Zeitreihe benutzt werden, umfassten lediglich Grundfunktionen wie das Hochladen der Datei, das Speichern der Metadaten-Information, das Auslesen und Umwandeln des Datums und der Messwerte und das Einfügen der Daten in die Datenbank. Dabei wurden keinerlei Fehler abgefangen, die Originaldaten hinsichtlich ihrer Qualität nicht geprüft und zu keinem Zeitpunkt wurde die Konsistenz der Daten in der Datenbank gewährleistet. Um dies zu beheben und um zusätzliche Metadaten automatisch zu erzeugen, wurde die Verwendung von Datenbanktransaktionen, eine Qualitätsprüfung sowie eine Datenlückenanalyse eingeführt und in den gesamten Import-Vorgang integriert. Im folgenden Abschnitt wird zunächst auf die allgemeinen Eigenschaften und Bedeutungen von Transaktionen eingegangen und anschließend die Anwendung in der Import-Funktion betrachtet. Nach den Ausführungen zur Qualitätssicherung werden die Datenlückenanalyse und die damit verbunden Änderungen am Datenmodell genauer betrachtet. 46 4 Verwaltung und Interpolation von Zeitreihen in RBIS 4.2.3.1 Transaktionen Fast alle DBMS unterstützen die Ausführung von Transaktionen zur Integritätssicherung und der Realisierung eines Mehrbenutzerbetriebes. Eine Transaktion ist eine Folge von Datenbankoperationen, die als Einheit (atomar) angesehen wird. Relationenübergreifende Integritätsbedingungen müssen vor und nach dem Ende einer Transaktion gewährleistet sein, jedoch dürfen Einzel-Operation innerhalb einer Transaktion diese verletzen. Transaktionen müssen immer die ACID-Eigenschaften (Atomarität (atomicity), Konsistenz (consistency), Isoliertheit (isolation) und Dauerhaftigkeit (durability)) erfüllen. Atomarität bedeutet, dass eine Transaktion entweder ganz oder gar nicht ausgeführt wird und keine Zwischenzustände in der Datenbank hinterlässt. Eine Transaktion wird mit einem COMMIT (abschließen) erfolgreich beendet und mit einem abort (abbrechen) bzw. ROLLBACK (zurücksetzen) zurückgesetzt. Die Konsistenz wird durch die Betrachtung einer Transaktion als Einheit mit der Voraussetzung, dass am Ende alle Integritätsbedingungen erfüllt sein müssen, hergestellt. Unter Isoliertheit wird verstanden, dass einzelne Transaktionen im simulierten Einzelnutzerbetrieb ablaufen. Parallel ablaufende Transaktionen sind isoliert und können sich nicht gegenseitig beeinflussen. Je nach verwendeten Isolation-Level wird der Grad der Isoliertheit festgelegt. Die Dauerhaftigkeit garantiert nach einem Fehlerfall, dass die Daten in der Datenbank nach Beendigung der Transaktion enthalten sind, auch wenn diese vor einem Systemversagen noch nicht in die Datenbank geschrieben worden sind (HEUER & SAAKE 2000:497ff, SAAKE ET. AL 2005:497ff). Der Einsatz von Transaktionen ist während des gesamten Import-Prozesses vorteilhaft, da hier Qualitätsprüfungen in der Anwendung und viele Datenbankoperationen auf der Metadaten- und auf der Zeitreihendatenbank ausgeführt werden, die einen Fehler erzeugen können. Vor allem alle schreibenden Zugriffe auf die Datenbanken sollten innerhalb einer Transaktion ausgeführt werden, um im Fehlerfall alle Änderungen sauber und einfach rückgängig machen zu können. Hierzu wird eine Transaktion auf der Metadatendatenbank und parallel dazu eine auf der Zeitreihendatenbank gestartet (siehe Abbildung 17). Schlägt einer dieser beiden fehl, wird auch die jeweils andere von der Anwendung durch ein „ROLLBACK“ beendet. Transaktionen werden nach einem nicht erfolgreichen Einfügen eines Datensatzes automatisch von der Datenbank zurückgesetzt. Sie können jedoch auch nach identifizierten Fehlern bei der Qualitätsprüfung oder Datenlückanalyse von der Anwendung zurückgesetzt werden. Die Anwendung stellt sicher, dass dann auch die andere Transaktion beendet wird. Erst wenn der Import-Prozess erfolgreich abgeschlossen wurde, werden die beiden Transaktionen mit einem „COMMIT“ beendet. Aufgrund der ACID-Eigenschaft von Transaktionen ist die Konsistenz der Daten in der Datenbank 47 4 Verwaltung und Interpolation von Zeitreihen in RBIS gewährleistet Bei dem verwendeten Isolation-Level („read committed“) werden Änderungen erst nach erfolgreicher Beendigung der Transaktionen für andere Nutzer sichtbar (SAAKE ET. AL 2005:600f). Besonders vorteilhaft ist dies bei größeren Datenmengen, bei denen das Importieren der Daten bis zu 20 Minuten daueren kann und auch am Ende noch Fehler auftreten können. Während dieser Zeit können alle anderen Nutzer weder die Änderungen sehen noch den entsprechenden Metadatendatensatz editieren. Sie können jedoch lesend auf den Ausgangszustand zugreifen. Abbildung 17: Transaktionen innerhalb eines Import (Upload)-Vorgangs Für eine Nachverfolgung der Änderungen wird zu Beginn eines Import-Prozesses ein entsprechender Eintrag in das Update-Protokoll geschrieben. Tritt ein Fehler auf, werden nicht nur die Transaktionen beendet, sondern es wird zusätzlich dieser Fehler in das ErrorProtokoll mit der entsprechenden Fehlermeldung geschrieben. Der Anwender erhält eine kurze Fehlerbeschreibung und wird zum Import-Formular umgeleitet. War der Vorgang erfolgreich, erscheint die Eingabemaske zum Editieren der Metadaten der importierten Zeitreihe. An dieser Stelle erfolgt ebenfalls durch den RBIS-Benutzer die Zuordnung der Messgrößen und Einheiten zu den Spalten in der importierten Textdatei. 48 4 Verwaltung und Interpolation von Zeitreihen in RBIS 4.2.3.2 Qualitätsprüfung Während des Importierens werden die Daten hinsichtlich verschiedener Qualitätsanforderungen an die Originaldaten geprüft. Dazu gehört die Überprüfung des vom Nutzer angegebenen Datenformates des Datums. Das Datum muss in der Textdatei immer in der ersten Spalte stehen und der durch den Benutzer angegebenen Reihenfolge von Tag, Monat und Jahr entsprechen. Mit der Prüfung wird einerseits das angegebene Format überprüft und anderseits sichergestellt, dass das Format nicht innerhalb einer Datei wechselt. Darüber hinaus muss für eine erfolgreiche Datenlückenanalyse das Datum aufsteigend sortiert sein, da zu diesem Zeitpunkt der Anwendung immer nur das aktuelle und vorherige Datum berücksichtigt wird. Neben dem Datum werden auch die Werte in Bezug auf ihren Datentyp überprüft. Erlaubt sind ausschließlich numerische Zeichen, da in der Datenbank der Datentyp numeric für die Speicherung der Werte verwendet wird. Kommastellen können mit Punkt oder Komma abgetrennt sein. Vor dem Einfügen der Daten in die Datenbank, werden alle Kommas in Punkte umgewandelt, da sie sonst ebenfalls nicht mit dem verwendeten Datentyp kompatibel sind. Wird eines der genannten Kriterien nicht erfüllt, wird der gesamte Import-Vorgang abgebrochen und dem Nutzer eine Fehlermeldung mit einer kurzen Fehlerbeschreibung angezeigt. 4.2.3.3 Datenlückenanalyse Die Identifizierung von Datenlücken erfolgt während des Auslesens und Schreibens der Daten. Hierbei werden generell zwei verschiedene Arten von Lücken erkannt: ● Lücken, die durch einen Zeitsprung entstanden sind (Datumslücke) (z. B. bei täglichen Werten, ein Sprung vom 01.01.2000 auf den 20.01.2000, wobei die Zeitspanne vom 2. bis 19. undefiniert ist) ● Lücken, die durch eine Fehlkennung oder einem fehlenden Wert entstanden sind (z. B. wenn für einen definierten Zeitpunkt der Wert undefiniert ist, wobei sowohl die Fehlkennung als auch ein fehlender Wert als „undefiniert“ interpretiert werden) Dabei können sich mehrere Kombinationsmöglichkeiten von Datums- und Wertelücken ergeben. Grenzen diese unmittelbar aneinander, werden sie zusammengefasst und als eine einzige zusammenhängende Lücke bzw. ein Lückenintervall behandelt. In der aktuellen Version wird eine Prüfung auf Lücken nur dann durchgeführt, wenn der Zeitschritt äquidistant ist und sich in Sekunden ausdrücken lässt, d. h. Werte auf der Basis von Sekunden und Minuten bis hin zu einer bestimmten Anzahl von Tagen. Monatliche, jährliche oder unregelmäßige Zeitintervalle können aufgrund der unterschiedlichen Anzahl von Tagen bzw. Sekunden nicht berücksichtigt werden. 49 4 Verwaltung und Interpolation von Zeitreihen in RBIS Das Ergebnis der Lückenprüfung und die Fehlkennung werden abschließend den Metadaten hinzugefügt (Abbildung 18). Die Speicherung erfolgt hierbei pro Spalte und Zeitreihe unter Angabe von Beginn (erster Zeitpunkt in einem Lückenintervall) und Ende (letzter Zeitpunkt in einem Lückenintervall), sowie der Länge des Lückenintervalls in der Einheit des verwendeten Zeitschrittes. Für eine Suche nach Zeitreihen, die für ein bestimmtes Zeitintervall zur Verfügung stehen, ist es erforderlich, jeweils den Beginn und das Ende einer Zeitreihe als Metadaten abzuspeichern. Die Gründe hierfür liegen einerseits in der Aufteilung der Metadaten und der Zeitreihendaten in je einer Datenbank, da hier eine Abfrage auf die Datenbanken innerhalb einer Abfrage in dem verwendeten PostgreSQL nicht möglich ist und dadurch immer zwei Abfragen nötig wären. Damit würde sich der Aufwand und die Fehleranfälligkeit erhöhen. Andererseits verkürzt sich die Dauer der Abfrage wesentlich, da der erste und letzte Tag, an dem Werte gemessen wurden, nicht erst selektiert werden muss. Ein weiterer Vorteil liegt in der Verfügbarkeit der Informationen. Für den Fall, dass die Datenbank mit den Zeitreihen nicht erreichbar sein sollte, ist eine Suche in den Metadaten dennoch möglich. Die Informationen über Beginn und Ende einer Zeitreihe werden, nachdem die Daten komplett in die Datenbank geschrieben wurden, über entsprechende Datenbankabfragen ermittelt und in die dafür vorgesehenen Metadatenfelder eingefügt. Hierbei wird nicht das erste und letzte vorhandene Datum, sondern das erste und letzte mit einem realen Wert in der ersten Spalte verwendet. Damit werden Datenlücken am Anfang oder am Ende einer Zeitreihe ignoriert, die keinerlei Informationsgehalt besitzen. Vor allem im Datenbestand des Einzugsgebietes der Saale gibt es eine große Anzahl von Zeitreihen, die sowohl zu Beginn als auch am Ende Datenlücken über mehrere Jahre hinweg aufweisen. Ein Beispiel ist eine Zeitreihe über den Wasserstand in Weida, welche am 1.11.1922 beginnt, jedoch erst ab dem 1.11.1970 Messwerte beinhaltet. Abbildung 18: Lücken der Niederschlagszeitreihe Eich 50 4 Verwaltung und Interpolation von Zeitreihen in RBIS 4.3 Bereitstellung verschiedener Datenanalysemöglichkeiten Der Datenbestand kann hinsichtlich verschiedener Aspekte analysiert werden. Im Vordergrund steht hier der räumliche, inhaltliche und zeitliche Bezug zu anderen Messreihen, der sich allein aus den Messwerten und Metadaten ableiten lässt und nicht die statistische Analyse der Messwerte innerhalb einer Messreihe oder einer räumlichen Analyse unter Verwendung von zusätzlichen Geodaten. Es sollen Fragestellungen, wie 'Wie weit ist die nächste Station, an der täglich Niederschlag gemessen wird, entfernt?' oder 'An wie vielen Stationen im Umkreis von 20 km liegen Messwerte einer Messgröße in einem bestimmten Zeitraum vor und welche dieser Zeitreihen hat die größte Ähnlichkeit mit der Ausgangszeitreihe?' beantworten werden können. Weiterhin werden dem fachkundigen Anwender zur Beurteilung des vorliegenden Datenbestandes Entscheidungshilfen in der Form von Diagrammen und Tabellen zur Verfügung gestellt. Bei der Umsetzung wurde versucht, nicht eigens für jede Fragestellung eine SQL-Abfrage an die Datenbank zu formulieren, sondern mit möglichst wenigen konkret formulierten Abfragen auszukommen und diese dynamisch den jeweiligen Anforderungen anzupassen. Im Ergebnis wurde ein zentrales SQL-Abfragegerüst entwickelt, das sowohl den Analysemöglichkeiten, als auch den benötigten Information mehrerer Interpolationsverfahren gerecht wird. Zur grafischen Aufbereitung und Abfrage für den Endanwender wurde eine eigene Benutzerschnittstelle erstellt (siehe Abbildung 20), die u. a. auch die Darstellung der Lücken in einem Diagram beinhaltet (siehe Abbildung 21). 51 4 Verwaltung und Interpolation von Zeitreihen in RBIS 4.3.1 Allgemeine Funktionsweise und Voraussetzungen Alle Funktionalitäten beruhen auf einem zentralen SQL-Abfragegerüst. Dieses besteht aus mehreren Komponenten, die entweder zwingend oder optional eingesetzt werden. Der Rückgabewert enthält immer Informationen über die selektierten Stationen und Zeitreihen. Dazu gehören verschiedene IDs und Angaben, wie der Name oder die Höhe der Stationen. Weiterhin wird immer die Distanz zwischen den einzelnen selektierten Stationen berechnet und ausgegeben. Es können nur Zeitreihen betrachtet werden, die einer Station zugeordnet sind, bei der Koordinaten und das entsprechende Koordinatensystem vorliegen. Die Angabe des Koordinatensystems wird für die Berechnung der Distanzen benötigt. Alle Zeitreihen, die diese Kriterien nicht erfüllen, können demzufolge in die Abfrage nicht einbezogen werden. Bei der Suche nach passenden Datensätzen, die beim Füllen der Lücken herangezogen werden können, muss darüber hinaus der verwendete Zeitschritt und die Einheit übereinstimmen. Um Fehler und Probleme mit nicht erkannten Fehlkennungen zu vermeiden, zählt auch eine erfolgreiche Datenlückenanalyse für diese Zeitreihen zu den Voraussetzungen (Dr_DataReliability.gapanalysis= true). Die Distanzen werden berechnet um diejenigen Stationen zu finden, die in der Umgebung der Ausgangszeitreihe liegen. Die Werte dieser Stationen werden häufig für eine Interpolation herangezogen, da meist davon ausgegangen wird, dass diese der Ausgangszeitreihe umso ähnlicher sind, je näher diese sich an der Ausgangszeitreihe befinden. Die Berechnung der Distanzen erfolgt unter der Verwendung von PostGIS-Funktionen, die der Metadatendatenbank zunächst hinzugefügt wurden. PostGIS ist eine Erweiterung für PostgreSQL um geografische Datentypen und Funktionen. Der Einsatz von PostGIS ermöglicht zum einen die Verwendung von Koordinaten, die in unterschiedlichen räumlichen Bezugssystemen vorliegen und zum anderen liefert es eine genauere Berechnung der Distanz, da die jeweilige Projektion in die Berechnung mit einfließt. Das räumliche Bezugssystem wird in PostGIS über eine SRID (spatial referencing identifier) festgelegt. PostGIS ist durch die Verwendung der PROJ4 Bibliothek in der Lage, Geometrieobjekte in jedes beliebige Bezugssystem zu projizieren (RAMSEY 2007). Im RBIS wird das räumliche Bezugssystem bzw. die SRID über die Auswahl der UTM Zone-Grid ID den Koordinaten zugeordnet. Bei der Berechnung der Distanz zwischen zwei Stationen werden die Koordinaten zunächst in Text und dann mit der Funktion GeometryFromText() in Geometrieobjekte umgewandelt. Anschließend werden die entstanden Geometrieobjekte in ein einheitliches Bezugssystem gebracht (transform()). Erst jetzt kann die Distanz berechnet werden, da für die PostGIS-Funktion distance() Geometrieobjekte im gleichen räumlichen Bezugssystem verwendet werden müssen (RAMSEY 2007). 52 4 Verwaltung und Interpolation von Zeitreihen in RBIS Werden nun zum Beispiel die fünf nächst gelegenen Zeitreihen bzw. Stationen gesucht, die in einem bestimmten Zeitraum tägliche Niederschlagswerte gemessen in mm besitzen, könnte die im Folgenden beschriebene SQL-Abfrage an die Datenbank gesendet werden. Diese Abfrage entspricht ebenfalls einer SQL-Anweisung, wie sie im Rahmen des Interpolationsverfahrens IDW mit 5 Stationen durchgeführt wird. Das in Abbildung 19 dargestellt Beispiel beinhaltet die Abfrage über die Existenz von Daten innerhalb einer Lücke der Zielstation, ausgehend von dieser Zielstation (Zeile 37) und der gesuchten Messgröße (Zeile 38). Es werden alle Zeitreihen ausgeschlossen, die entweder im gesuchten Zeitraum ebenfalls Lücken aufweisen (Zeile 40-45), oder deren Werte generell nicht im gesuchten Zeitraum liegen (Zeile 46). Weitere Bedingungen sind, dass alle Koordinaten und SRIDs gegeben sein müssen (Zeile 31-36). Auch die Einheiten (Zeile 47) und Zeitschritte (Zeile 48) müssen übereinstimmen. Das Ergebnis ist nach der Distanz aufsteigend sortiert (Zeile 49) und beinhaltet Informationen von 5 Datensätzen (Zeile 50). Es wird unter anderem die Distanz (Zeile 3) und r² (Zeile 15) auf 2 Kommastellen gerundet zurückgegeben. Das Ergebnis dieser SQL-Abfrage beinhaltet die 5 Zeitreihen bzw. Stationen die zum einen in der gesuchten Zeit ebenfalls Niederschlagsdaten besitzen bzw. keine Lücken aufweisen und zum anderen sich am nächsten an der Ausgangsstation befinden. Sie sind dabei nach ihrer Entfernung zur Ausgangsstation sortiert. In Abbildung 22 ist das für den RBISBenutzer aufbereitete Ergebnis dargestellt. Alle einzelnen Bestandteile dieser Abfrage werden dynamisch den jeweiligen Anforderungen entsprechend zusammengestellt. Spielen zum Beispiel die Lücken keine Rolle, so entfallen die Anweisungen der Zeilen 40 – 46. Ist auch der verwendete Zeitschritt ohne Bedeutung entfällt der Inhalt der Zeile 48 ebenfalls. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 SELECT a.statname, b.statname, distance(transform(GeometryFromText('POINT(' || cast(a.latutm as varchar(10)) || ' ' || cast(a.longutm as varchar(10)) || ')',a.srid ), 32632), transform(GeometryFromText('POINT(' || cast(b.latutm as varchar(10)) || ' ' || cast(b.longutm as varchar(10)) || ')',b.srid ), 32632)), ts.startdatetime, ts.enddatetime, citation.restitle, b.md_metadata_id, ts.md_metadata_id, a.md_metadata_id, ts.ts_timeser_id, fp_featpar.featpar, b.elevat, ts.missing_value, ts_desc.colnumber, round((select rsquared FROM int_correlation where int_correlation.fp_featpar_id = '12022017' and (int_correlation.ts_timeser_id1 = 1297 and int_correlation.ts_timeser_id2 = ts.ts_timeser_id ) or (int_correlation.ts_timeser_id2 = 1297 and int_correlation.ts_timeser_id1 = ts.ts_timeser_id )),2) 53 4 Verwaltung und Interpolation von Zeitreihen in RBIS 16 FROM 17 ts_timeser ts_a LEFT JOIN 18 stat_ts stats_a ON ts_a.ts_timeser_id = stats_a.ts_timeser_id LEFT JOIN 19 dsstation a ON stats_a.dsstation_id = a.dsstation_id 20 CROSS JOIN 21 dsstation b LEFT JOIN 22 stat_ts ON stat_ts.dsstation_id = b.dsstation_id LEFT JOIN 23 ts_timeser ts ON stat_ts.ts_timeser_id = ts.ts_timeser_id LEFT JOIN 24 ts_description ts_desc ON ts.ts_timeser_id = ts_desc.ts_timeser_id LEFT JOIN 25 fp_featpar ON ts_desc.fp_featpar_id = fp_featpar.fp_featpar_id LEFT JOIN 26 metadata ON ts.md_metadata_id = metadata.md_metadata_id LEFT JOIN 27 dataidinfo ON metadata.md_metadata_id = dataidinfo.md_metadata_id LEFT JOIN 28 ident ON dataidinfo.md_ident_id = ident.md_ident_id LEFT JOIN 29 citation ON ident.ci_citation_id = citation.ci_citation_id 30 WHERE 31 a.latutm is not null 32 and a.longutm is not null 33 and a.srid is not null 34 and b.latutm is not null 35 and b.longutm is not null 36 and b.srid is not null 37 and ts_a.ts_timeser_id = 1297 38 and ts_desc.fp_featpar_id = '12022017' 39 and ts.ts_timeser_id != 1297 40 and ts.ts_timeser_id not in 41 (SELECT ts_timeser.ts_timeser_id FROM ts_timeser LEFT JOIN 42 dr_datarelia ON ts_timeser.dr_datarelia_id = dr_datarelia.dr_datarelia_id LEFT JOIN 43 datagapanalyses ON datagapanalyses.dr_datarelia_id =dr_datarelia.dr_datarelia_id LEFT JOIN 44 dr_datagaps ON datagapanalyses. dr_datagaps_id = dr_datagaps.dr_datagaps_id LEFT JOIN 45 ts_description ON ts_timeser.ts_timeser_id = ts_description.ts_timeser_id WHERE ts_description.colnumber = dr_datagaps.colnumber and ts_description.fp_featpar_id = '12022017' and dr_datagaps.startgap between 728524800 and 733536000 or dr_datagaps.endgap between 728524800 and 733536000 or (dr_datarelia.gapanalysis = false or dr_datarelia.gapanalysis is null) ) 46 and ts.startdatetime <= 728524800 and ts.enddatetime >= 733536000 47 and ts_desc.uom_units_id = (SELECT ts_description.uom_units_id FROM ts_description WHERE ts_description.ts_timeser_id = 1297 and ts_description.fp_featpar_id = '12022017') 48 and ts.uom_units_id = ts_a.uom_units_id 49 order by distance 50 LIMIT 5 Abbildung 19: Beispiel SQL-Abfrage für das in Abbildung 22 dargestellte Suchergebnis 54 4 Verwaltung und Interpolation von Zeitreihen in RBIS 4.3.2 Anwendung durch RBIS-Nutzer Über einen Link gelangt der Anwender zu der Webseite, auf der verschiedene Abfragemöglichkeiten angeboten werden. Diese beziehen sich immer auf eine ausgewählte Messgröße einer Zeitreihe. In dem in Abbildung 20 dargestellten Beispiel ist dies der Niederschlag von der Zeitreihe Niederschlag Frauensee, der an der Station Frauensee aufgezeichnet wurde. Abbildung 20: Benutzerschnittstelle mit Informationen über den Niederschlag an der Station Frauensee und umliegende Stationen Das in Abbildung 20 dargestellte Abfrageergebnis zeigt die 5 nächst gelegenen Stationen, sortiert nach ihrem Abstand zur Ausgangszeitreihe bzw. Station, an denen zu einem beliebigen Zeitpunkt ebenfalls Niederschlag gemessen wurde. Bei Eingabe einer maximalen Distanz werden nur noch Stationen betrachtet, die sich innerhalb dieses Umkreises um die Ausgangsstation befinden. Bei der Eingabe der Zahl Null wird die 55 4 Verwaltung und Interpolation von Zeitreihen in RBIS Distanz, so wie in dem Beispiel in Abbildung 20, nicht in die Suche einbezogen. Durch die Eingabe eines Startdatums und/oder eines Enddatums wird bei der Abfrage entsprechend das Start- und/oder Enddatum der Zeitreihen einbezogen. An dieser Stelle wird der Vorteil der Verwendung des ersten tatsächlich vorhandenen Wertes bei den Metadaten einer Zeitreihe deutlich, da hier von vornherein Zeitreihenbestandteile ausgeblendet werden können, die keinen verwendbaren Informationsgehalt besitzen. Vorhandene Lücken innerhalb der Zeitreihen werden bei dieser Suchanfrage nicht beachtet. Mit der Angabe einer minimalen oder maximalen Höhenangabe kann ebenfalls die Auswahl der Stationen gesteuert werden. Eine weitere Möglichkeit der Manipulation des Suchergebnisses besteht mit der Angabe eines minimalen Bestimmtheitsmaßes r², das den Zusammenhang der Werte zweier Zeitreihen beschreibt. Die Sortierung und Einschränkung nach dem Bestimmtheitsmaß funktioniert jedoch nur dann korrekt, wenn zuvor r² für alle in Frage kommenden Zeitreihen ermittelt wurde. Aus diesem Grund sollte immer vor der Verwendung dieser Funktion eine Aktualisierung der Werte durchgeführt werden (update calculation of r²). Diese Funktion berechnet r² für alle Zeitreihenpaarungen mit der Ausgangszeitreihe, die seit der letzten Durchführung hinzugekommen sind. Im dargestellten Beispiel lässt sich erkennen, dass die Zeitreihendaten von Frauensee und Springen offensichtlich identisch sind und auch der Gesamtzeitraum (1.1.1969 - 30.6.1993) übereinstimmt. Dies ist ein Anzeichen für einen Fehler beim Importieren der Zeitreihendaten. Auch die Ansicht der Lückenverteilung als Diagramm (Abbildung 21) unterstützt diese Vermutung, da hier deutlich zu erkennen ist, dass auch die vorhanden Lücken übereinstimmen. Abbildung 21: Darstellung der Lücken für zuvor ausgewählte Stationen 56 4 Verwaltung und Interpolation von Zeitreihen in RBIS Die Darstellung der Lücken in einem Diagramm ist für alle Zeitreihen möglich (show plot), die im Suchergebnis enthalten sind, solange es weniger als 9 sind. Die roten Balken markieren die Zeiträume, in denen keine Daten vorliegen. Die Sichtbarkeit kleiner Datenlücken ist vom Gesamtzeitraum abhängig. Wird eine detailliertere Ansicht benötigt, muss der Zeitraum zuvor eingeschränkt oder die Information müssen direkt bei den Metadaten ermittelt werden. Abbildung 22: Abfrageergebnis für das Lückenintervall vom 1.2.1993 bis 31.3.1993 der Zeitreihe „Niederschlag Frauensee“ Neben der graphischen Darstellung der Lücken gibt es auch die Möglichkeit, sich diese und die Zeitreihen, die in dem entsprechenden Zeitraum verwertbare Daten besitzen, tabellarisch darstellen zu lassen (Abbildung 22). Im Gegensatz zur allgemeinen Suche fließen hier die Informationen über die Datenlückenintervalle zusätzlich zu den einmal festgelegten Randbedingungen mit ein. Außerdem muss der Zeitschritt und die Einheit mit der Ausgangszeitreihe übereinstimmen. Die Zeitreihen, die nun angezeigt werden, besitzen in dem gesuchten Zeitraum keine Datenlücken und können ohne weitere zusätzliche Prüfung in Interpolationsverfahren verwendet werden. Die SQL-Abfrage an die Datenbank, die dazu ausgeführt wird, hat den gleichen Aufbau wie in dem Beispiel im vorherigen Abschnitt dargestellt. 57 4 Verwaltung und Interpolation von Zeitreihen in RBIS 4.4 Implementierung und Anwendung verschiedener Interpolationsverfahren Nach einer erfolgreichen Datenlückenanalyse gilt es nun die identifizierten Lücken mit einem Interpolationsverfahren zu schließen. Im Vordergrund steht an dieser Stelle weniger die Umsetzung möglichst vieler verschiedener Interpolationsverfahren, sondern vielmehr die Schaffung einer Struktur, die es erlaubt, diese zu verwalten, möglichst automatisch anzuwenden und einen abgeschlossenen Interpolationsvorgang zu dokumentieren. Zur Dokumentation des Vorgangs gehört u. a. der Zeitpunkt, das verwendete Verfahren und alle einbezogenen Zeitreihen, die darüber hinaus für den Nutzer einsehbar sein sollten. Bis zu einem gewissen Grad soll damit die Reproduzierbarkeit der berechneten Werte gewährleistet werden. Generell stellt sich die Frage nach dem Wie und Wann und der Art der Interpolationsverfahren, die ausgewählt werden sollen. In vielen wissenschaftlichen Arbeiten wird der Versuch unternommen, für eine konkrete Fragestellung das geeignetste Verfahren für einen Interpolationsvorgang anhand von Beispieldatensätzen zu finden. Das Ergebnis ist jedoch immer stark von der jeweiligen Stationsdichte, dem betrachteten Zeitschritt, den Eigenschaften des Einzugsgebietes und der Zielstellung abhängig. Aus diesem Grund wurde hier keine feste Zuordnung zwischen Verfahren und Messwert festgelegt. Der fachkundige Nutzer kann ein oder mehrere Verfahren auswählen. Zusätzlich können Regeln festgelegt werden, welche die Anwendung bzw. den Anwendungsbereich der Verfahren steuern. Für die Verwaltung der Daten war es zunächst notwendig, entsprechende Ergänzungen im Datenmodell der Metadaten vorzunehmen. Nicht nur auf der Seite der Metadaten, sondern auch bei den Zeitreihendaten wurde ein Verfahren zur Speicherung und Verwaltung der interpolierten Werte entwickelt. Beide werden im nächsten Unterabschnitt vorgestellt. Im Anschluss wird der vollständige Ablauf eines Interpolationsvorgangs und die Beschreibung der implementierten Interpolationsverfahren sowohl aus der technischen Sicht, als auch aus der Sicht des Anwenders beschrieben. Die Anwendung durch den Nutzer ist Inhalt des darauf folgenden Teilabschnittes. 4.4.1 Datenmodell und Datenhaltung Für die Speicherung der Metadaten musste das Datenmodell der Metadaten erweitert werden. Im Folgenden soll die Erweiterung für die Interpolation anhand des konzeptionellen Datenmodells kurz vorgestellt werden. In den nachfolgenden Abschnitten werden viele der hier kurz angerissenen Funktionalitäten und ihre Anwendung näher beschrieben. Neben den Anpassungen auf der Seite der Metadaten musste auch eine flexible und einfache Form der Datenhaltung für die berechneten Werte in der Zeitreihendatenbank entwickelt werden. Dabei wurde darauf geachtet, dass Originaldaten nicht verändert werden und somit die Datenhaltung der berechneten Werte getrennt von diesen erfolgt. 58 4 Verwaltung und Interpolation von Zeitreihen in RBIS 4.4.1.1 Datenmodell für die Metadaten Im Mittelpunkt steht die Entity Interpolation (Abbildung 23). Es stellt die Verknüpfung zu den anderen Modulen her und ist im übertragenen Sinne der Ausgangspunkt eines jeden Interpolationsvorgangs. Jeder Interpolationsvorgang erhält eine eindeutige ID (int_interpolation_id) und entsprechende Metadaten wie das Datum (date), die ID der interpolierten Zeitreihe und Spalte (ts_timeser_id, colnumber) ebenso wie Informationen über die Vollständigkeit (complete) und die Möglichkeit einer Beschreibung, welche z. B. für die Speicherung von Fehlerinformationen genutzt werden kann. Abbildung 23: Konzeptionelles Datenmodell: Interpolation und Interpolationsvorgang 59 4 Verwaltung und Interpolation von Zeitreihen in RBIS Weiterhin ist mit diesem Entity die verwendete Methodenkombination verknüpft (Interpolation Method Set). Diese beschreibt einen definierten Satz an Regeln (Method Set List), wie die einzelnen Interpolationsverfahren (Interpolation Method) angewendet werden. Die Anwendung und Konfiguration durch den Nutzer wird in Abschnitt 4.4.3 beschrieben. Für eine automatische Auswahl einer Methodenkombination ist die Zuweisung einer Defaultkombination vorgesehen (Default Method Set). Dies wurde jedoch zum gegenwärtigen Zeitpunkt noch nicht umgesetzt. Interpolationsverfahren selbst besitzen neben einer ID, einen Namen und eine Beschreibung. Weiterhin ist vorgesehen, dass eine Aussage darüber getroffen werden kann, ob das beschriebene Verfahren im RBIS implementiert ist oder nicht (implemented). Erfolgte die Interpolation eines Lückenintervalls erfolgreich, so werden dem Entity Filled gap information die entsprechenden Datenlücken, das jeweils verwendete Verfahren sowie der aktuelle Interpolationsvorgang zugeordnet. Das Entity Filled gap information (used TS) stellt eine Verknüpfung zwischen dem Interpolationsvorgang, der Lücke und den jeweils zum Schließen der Lücke verwendeten Zeitreihen her. Die Rückkopplung zwischen einem Interpolationsvorgang mit der jeweiligen Spalte der Zeitreihe erfolgt über die Vorgangsnummer (int_interpolation_id), die dort der entsprechenden Messgröße zugewiesen wird (zu TS_Description). Damit wird eine Suche von einer Zeitreihe ausgehend und auch in Bezug auf ihre Verwendung beim Schließen von Lücken vereinfacht. Die in Abbildung 23 als völlig unabhängig von allen anderen dargestellten Entities Correlation und Limit values sind in Wirklichkeit entsprechend ihrer Attribute ebenfalls abhängig. Auf die Darstellung dieser Beziehungen wurde aus Gründen der Übersichtlichkeit verzichtet. Correlation enthält das Bestimmtheitsmaß r² (rsquared), das sich aus den Werten der gleichen Messgrößen zweier Zeitreihen berechnet und den Zusammenhang dieser beschreibt. Mit Limit values werden die Grenzwerte für die Korrektur unrealistischer Interpolationsergebnisse verwaltet (siehe Abschnitt 4.4.2.4). Im physischen Datenmodell enthalten alle Tabellennamen das Präfix int_, so dass einerseits diese Tabellen eindeutig ihrer Funktion bzw. ihrem Modul zugeordnet werden können. Anderseits stehen bei einer alphabetischen Sortierung diese Tabellen immer zusammen, so dass die Navigation für den Datenbankadministrator erheblich vereinfacht wird. 4.4.1.2 Speicherung der berechneten Werte Die berechneten Werte werden in einer eigenen Tabelle in der Zeitreihendatenbank abgespeichert, so dass die Daten getrennt von den Originaldaten gehalten werden. Diese Tabelle wird angelegt, sobald Daten für identifizierte Lücken vorliegen. Dabei spielt es keine Rolle, welchen Ursprung diese Werte haben (näheres über die verschiedenen Varianten in Abschnitt 4.4.3). Der Name der Tabelle setzt sich aus calc_ und der ID der Zeitreihe zusammen. Die Tabelle selbst besteht immer aus den drei Spalten timestamp 60 4 Verwaltung und Interpolation von Zeitreihen in RBIS (Datum), value1 (Wert) und colnumber (Spaltennummer der dazugehörigen Daten in der Originaldatentabelle) zusammen (Abbildung 24). Diese Aufteilung ermöglicht die Speicherung aller aufgefüllten Werte in einer Tabelle, egal zu welcher Spalte sie in den Originaldaten gehören. Dies soll verhindern, dass zu viele neue Tabellen angelegt werden, wie das etwa bei einer Gewässergütezeitreihe mit 65 Messparametern der Fall sein könnte. Abbildung 24: Beispiel für Tabelle (calc_504) mit berechneten Werten Die Realisierung des Zugriffs auf die Daten über Views wird im Abschnitt 4.5.1 im Zusammenhang mit dem Export der Daten näher erläutert. 4.4.2 Interpolationsvorgang und technische Umsetzung Bei der Realisierung stellten sich eine Reihe von Problemen und Fragen. Zunächst galt es, grundlegende Entscheidungen zu treffen, wie die Wahl der Ansätze für die Berechnungen, auf die in Abschnitt 4.4.2.1 eingegangen wird. Anschließend wurden die in Abschnitt 4.4.2.3 beschriebenen Interpolationsverfahren einzeln umgesetzt und getestet. Bei der darauf folgenden Einbettung in einen Interpolationsvorgang wurden diese weitestgehend standardisiert und alle redundanten Bestandteile in eigene Funktionen ausgelagert. Für die Anwendung der Interpolationsverfahren wurde ein regelbasierters Verfahren implementiert. Hier ist es möglich spezifische Parameter der Interpolationsverfahren anzugeben und diese auch beliebig zu ändern. Weiterhin können verschiedene Verfahren miteinander kombiniert werden. Eine der größten Herausforderungen bei der Zusammenstellung der SQL-Anweisungen stellte der zusammengesetzte Primärschlüssel der einzelnen Spalten einer Zeitreihe dar. Zu einem Problem wird dies vor allem bei der Verwendung in Unterabfragen (Subselects) in SQL-Anweisungen, da diese immer nur einen Wert zurück liefern können. Auch der zusammengesetzte Primärschlüssel stellt selbst eine potentielle Fehlerquelle dar. Beim Zeitschritt wurde immer von täglichen Werten ausgegangen. Dies soll auch zunächst beibehalten und erst später um weitere Zeitschritte ergänzt werden. Der Grund hierfür ist, dass verschiedene Zeitschritte als zusätzliche Fehlerquelle vorerst ausgeschlossen werden sollen. 61 4 Verwaltung und Interpolation von Zeitreihen in RBIS 4.4.2.1 Berechnungsansatz Bei der Umsetzung der Interpolationsverfahren bzw. der Berechnungen standen grundsätzlich verschiedene Möglichkeiten zur Wahl. Die Berechnungen können vollständig auf der Seite der Anwendung durchgeführt werden, d. h. alle benötigten Daten werden ausgelesen und die Berechnungen finden ausschließlich außerhalb der Datenbank statt. Diese Variante verursacht allerdings ein sehr großes Datenvolumen, welches zwischen Anwendung und Datenbank ausgetauscht werden muss. Außerdem müssen hier einige Funktionen, die in einem DBMS zur Verfügung stehen, erst auf der Seite der Anwendung umgesetzt werden. Viele Programme, die Interpolationsverfahren für das Schließen von Lücken in hydrologischen Zeitreihen anbieten, arbeiten auf der Basis von Dateien, wodurch sich diese Problematik erst gar nicht ergibt. Eine weitere Variante besteht darin, in der Datenbank gespeicherte Prozeduren (stored procedures) oder Funktionen (user defined functions) anzulegen um somit fast alle Berechnungsvorgänge direkt vom DBMS ausführen zu lassen. Diese Variante minimiert das Datenvolumen, das zwischen Anwendung und DBMS ausgetauscht werden muss. Andererseits schränkt diese Lösung die Flexibilität stark ein und ist nicht vom DBMS unabhängig. Auch das generelle Problem, dass zur Berechnung fast immer sowohl auf die Metadatendatenbank und auf die Zeitreihendatenbank zugegriffen werden muss und keine integrierten Abfragen an das hier verwendete DBMS PostgreSQL gestellt werden können, kann damit nicht auf einem einfachen Weg gelöst werden. Umfangreiche und möglichst flexible Funktionalitäten komplett in die Datenbank zu verlegen, erscheint somit in der Implementierung recht aufwendig. Einen ähnlichen Ansatz verfolgte auch Leonore ZINK (2000) in ihrer Arbeit über die Einbettung von Interpolationsfunktionen in die Datenbanksprache SQL. Hier wurde eine eigene Spracherweiterung für SQL entwickelt, die es ermöglicht, ausgewählte Interpolationsverfahren direkt mit SQL aufzurufen und Parameter wie z. B. den Zeitschritt für die Durchführung mitzugeben. Über die Weiterentwicklung des Prototypen ist nichts bekannt. Für die Umsetzung für das RBIS wurde die im Folgenden beschriebene Lösung gewählt. Auf der Seite der Anwendung, die in PHP geschrieben ist, werden SQL-Anweisungen die die Berechnungsvorschriften enthalten dynamisch zusammengestellt, so dass alle Berechnungsvorgänge auf der Seite der Datenbank vom DBMS durchgeführt werden. Auf diese Art und Weise können auch Zwischenergebnisse berechnet werden, die dann in die Hauptberechnung integriert werden können. Endergebnisse eines Interpolationsvorgangs werden nicht an die Anwendung zurückgegeben, sondern gleich direkt in der Datenbank abgespeichert. Dadurch wird nur ein sehr geringes Datenvolumen zwischen Anwendung und Datenbank ausgetauscht, welches sich im wesentlichen auf Anfragen selbst, die Metadaten und Zwischenergebnisse beschränkt. Ein entscheidender Vorteil dieser Lösung besteht darin, dass Aggregatfunktionen in SQL wie sum(), avg(), count(), max() oder min() in Kombination mit einer from- und where-Klausel verwendet werden können. Dies ist 62 4 Verwaltung und Interpolation von Zeitreihen in RBIS u. a. dann wichtig, wenn Fehlkennungen verwendet wurden oder Nullwerte auftreten. Beispiele sind die Berechnung des Mittelwerts, der unter der Verwendung von Fehlkennungen (z. B. -9999) einen falschen Wert liefern würde oder die Abfrage der Anzahl der Werte, da mit count(*) alle Nullwerte einbezogen werden, bei allen übrigen Aggregatfunktionen werden jedoch Nullwerte ignoriert (HEUER & SAAKE 2000:369). Werden Join-Bedingungen in die Abfrage mit einbezogen, so ergeben sich hier viele Möglichkeiten, auf eine einfache Art und Weise bestimmte Werte zu berechnen. Wie zum Beispiel den jeweiligen Mittelwerten der Werte von zwei Zeitreihen aller übereinstimmenden Zeitstempel, die nicht Null sind oder der Fehlkennung entsprechen. Neben den Fehlkennungen spielt auch der Nullwert eine besondere Rolle. In skalaren Ausdrücken ist das Ergebnis Null, wenn ein Nullwert in die Berechnung eingeht (HEUER & SAAKE 2000:369). Dieses Verhalten eignet sich besonders gut, um Fehler bei der Zusammenstellung der Berechnungsvorschrift oder im Endergebnis zu erkennen. Eine Umsetzung mit PHP aller oder eines Teils der eben genannten Funktionen in der Anwendung hätte viele ineinander geschachtelter Schleifen bedurft und wäre vermutlich schnell unübersichtlich geworden. Ein weiterer Vorteil gegenüber einer Lösung in PHP ist die geringere Wahrscheinlichkeit von Typinkompabilitäten, da im Vergleich zu PHP keine automatische Typkonvertierung stattfindet. 4.4.2.2 Umsetzung und Ablauf von Interpolationen Für alle Funktionen, die direkt oder indirekt mit einem Interpolationsvorgang verbunden sind, wurde eine neue Klasse (Interpolation) in der Datei Interpolation.class.php angelegt. Dabei wurde darauf geachtet Redundanzen zu vermeiden, die Wartbarkeit, Übersichtlichkeit und Wiederverwendbarkeit das Quellcodes zu erhöhen und die Fehleranfälligkeit zu reduzieren. Es entstanden eine Vielzahl von Funktionen, die für die Erzeugung der Sichten benötigt werden (show_...), Werte berechnen (calc_...), Variablen aus der Datenbank auslesen (get_...), Informationen in die Datenbank schreiben (write_... oder create_...), ändern (update_...) oder löschen (delete_...). Ebenfalls gibt es Funktionen, die SQL-Anweisungen erzeugen (create_query...). Im Mittelpunkt eines Interpolationsvorgangs steht die Funktion interpolation_set() (Quellcode im Anhang C - Abbildung 37), deren Ablauf am Ende dieses Abschnitts dargestellt ist. Sie wird über die Anwendung in dem Moment gestartet, wenn der Nutzer die Interpolation startet (siehe Abschnitt 4.4.3). Zu diesem Zeitpunkt sind lediglich die IDs der Zielzeitreihe, Messgröße und Methodenkombination bekannt bzw. wurden übergeben. Nach der Herstellung der Datenbankverbindung (Schritt 3) wird die verwendete Fehlkennung (Schritt 4) und die Spaltennummer (Schritt 5) abgefragt, in dem sich die Daten der Messgröße befinden. Diese Informationen sind essentiell, da der Zugriff auf die Daten ausschließlich über die Spaltennummer und die Zeitreihen-ID erfolgt. 63 4 Verwaltung und Interpolation von Zeitreihen in RBIS Im nächsten Schritt (Schritt 6) wird der Interpolationsvorgang erzeugt und die entsprechende Vorgangsnummer (ID) abgefragt. Diese wird später für die Zuordnung einzelner Aktionen benötigt. Anschließend wird in der Zeitreihendatenbank, falls noch nicht vorhanden, die Tabelle für die berechneten Werte und der entsprechende View dazu angelegt (Schritt 7). Weiterhin werden die Lückeninformationen (Schritt 8), bestehend aus ID, Länge, Start und Ende sowie die Daten der Methodenkombination (Schritt 9) (Verfahren, Position und Grenzwerte) aus der Metadatendatenbank gelesen. Der folgende Schritt (Schritt 10) umfasst spezielle Vorbereitungen, die vor der Ausführung der nach der gegebenen Methodenkombination potentiell möglichen Verfahren notwendig sind. Diese müssen nur einmal, egal wie oft ein Verfahren zum Einsatz kommt, durchgeführt werden. Handelt es sich um die lineare Interpolation, muss das verwendete Zeitintervall in Sekunden ermittelt werden. Eine lineare Regression benötigt die Berechnung der fehlenden Korrelationskoeffizienten zu den nächsten Stationen mit der gleichen Messgröße, Einheit, Zeitschritt und erfolgreicher Lückenanalyse sowie eine Abfrage von Metadaten und Grundparametern für die Ausgangszeitreihe. Die Verfahren IDW und Nächster-Nachbar erfordern ebenfalls die Grundparameter der Ausgangszeitreihe. Im Anschluss (Schritt 11) erfolgt die Suche nach einem passenden Verfahren für jedes Lückenintervall den gegebenen Regeln folgend. Die Aufstellung der Regeln durch den Nutzer wird in Abschnitt 4.4.3 beschrieben. Die Reihenfolge ihrer Anwendung richtet sich nach der jeweiligen Positionsangabe der Interpolationsverfahren. Bei der Suche nach einem Verfahren wird das Kriterium der maximalen Länge der Lücke als erstes geprüft. Erst wenn dieses Kriterium erfüllt wurde (d. h. die Länge der aktuellen Lücke ist kleiner als der angegebene Grenzwert), werden die anderen Grenzwerte für die Anzahl der Stationen, r² und die Distanz abgefragt. Bei erfolgreichem Verlauf wird ein Interpolationsverfahren aufgerufen. Aspekte zur Umsetzung der einzelnen Interpolationsverfahren werden in Abschnitt 4.4.2.3 behandelt. Lag einer der Vergleichswerte außerhalb der Grenzwerte, so wird mit den Grenzwerten des Verfahrens an der nächsten Position gesucht. Wird auch hier kein passendes Verfahren gefunden, wird nach Möglichkeit eine Fehlermeldung für die Beschreibung des Vorgangs erzeugt. Der Rückgabewert jedes implementierten Interpolationsverfahrens (Beispielquellcode im Anhang C - Abbildung 36) besteht immer aus einer SQL-Anweisung als INSERT mit der Berechnungsvorschrift, sowie die INSERT- Anweisungen für die Metadaten über das verwendete Interpolationsverfahren und die verwendeten Zeitreihen (Schritt 12). Diese SQL-Anweisungen werden für jedes Lückenintervall erzeugt und in einem String aneinander gefügt. Erst nach der Abarbeitung aller Lücken werden diese Anweisungen komplett an die entsprechenden Datenbanken abgeschickt (Schritt 15/16). Das hat den großen Vorteil, dass diese dann jeweils als eine Transaktion von der Datenbank ausgeführt werden. Schlägt auch nur eine dieser SQL-Anweisungen bei einer der beiden Datenbanken (Metadaten/ Zeitreihen) fehl, so werden alle anderen auch nicht ausgeführt. 64 4 Verwaltung und Interpolation von Zeitreihen in RBIS Vor der Ausführung der Berechnungen werden alle alten Ergebnisse gelöscht, die zu den aktuellen Lücken gehören (Schritt 14). Abschließend werden die berechneten Werte korrigiert (näheres dazu in Abschnitt 4.4.2.4.) (Schritt 17) und die Information über den Erfolg oder Misserfolg und die Beschreibung der aufgetretenen Fehler zu den Metadaten des Interpolationsvorgangs hinzugefügt (Schritt 18). Algorithmus eines Interpolationsvorgangs: Zusammenstellung einer Methodenkombination (Eingabe von Benutzer) Auswahl der Methodenkombination (Eingabe von Benutzer) Datenbankverbindung herstellen Abfrage der verwendeten Fehlkennung Abfrage der Spaltennummer der zu schließenden Zeitreihe Schreiben von Informationen über den Interpolationsvorgang (Erzeugung einer Vorgangsnummer) 7. Anlegen von Tabelle und View für die berechneten Werte in der Datenbank 8. Abfrage der Lückeninformationen 9. Einlesen der Parameter der ausgewählten Methodenkombination 10. Vorbereitung: ● lineare Interpolation: Abfrage Zeitintervall in Sekunden ● lineare Regression: Berechnung der fehlenden Korrelationskoeffizienten entsprechend der doppelten gegebenen Anzahl an Stationen mit der gleichen Messung, Einheit, Zeitschritt und erfolgreicher Lückenanalyse und Abfrage von Metadaten und Grundparametern für die Ausgangszeitreihe. ● IDW und nächster Nachbar: Abfrage von Metadaten und Grundparametern für die Ausgangszeitreihe. 11. Durchsuchen der Methodenkombination nach passender Methode für jedes einzelnes Lückenintervall 12. Zusammenstellung und Berechnung einzelner Komponenten für die Berechnung 13. Prüfen ob ein Verfahren erfolgreich ausgewählt werden konnte - bei Misserfolg werden die entsprechenden Informationen zu den Metadaten geschrieben 14. Löschen aller bisherigen Berechnungsergebnisse 15. Ausführen der Abfragen zur Erzeugung des Berechnungsergebnisses 16. Ergänzen des verwendeten Verfahrens zu jedem einzelnen Lückenintervall 17. Überprüfen und Korrigieren der Ergebnisse zur Einhaltung von Minimal- und Maximalwerten 18. Ergänzen von Metainformationen über den Interpolationsvorgang 19. Ausgabe der Informationen über den Interpolationsvorgang 1. 2. 3. 4. 5. 6. 4.4.2.3 Implementierte Interpolationsverfahren Es wurde das Nächste-Nachbar-Verfahren, die lineare Interpolation, die lineare Regression, die Inverse Distanzwichtung und die Inverse Distanzwichtung mit Höhenkorrektur implementiert. Jedes Verfahren wird innerhalb einer Funktionen ausgeführt. Die benötigten Übergabewerte sind im Aufbau sehr ähnlich oder gleich. Als Rückgabewert wird immer ein Array (queries[]) geliefert, dass zum einen die INSERT-Anweisung mit den Berechnungen und zum anderen die INSERT-Anweisungen für die Metadaten sowie die Information über Erfolg (true) oder Misserfolg (false) bei der Zusammenstellung 65 4 Verwaltung und Interpolation von Zeitreihen in RBIS enthält. Werden weitere Verfahren implementiert, muss der Rückgabewert lediglich ebenso aufgebaut sein. Dies könnte auch statt einer INSERT-Anweisung eine Liste von INSERT-Anweisungen mit Werten (ohne Berechnung) beinhalten, die an andere Stelle schon berechnet wurden. Die implementierten Verfahren greifen alle auf die gleiche Funktion zurück, die bei der Bereitstellung verschiedener Datenanalysemöglichkeiten in Abschnitt 4.3 bereits vorgestellt wurde. Je nach gewünschter Information werden die Parameter entsprechend übergeben. Durch die Verwendung der gleichen Funktion im Hintergrund ist das Ergebnis bei gleicher Parameterkombination auf jeden Fall identisch. Die Steuerung der Interpolationsverfahren erfolgt über Regeln, die in einer Methodenkombination angegeben werden. Hierbei können Werte für die Parameter Länge der Datenlücke, maximale und minimale Stationsanzahl, r² und maximaler Distanz angegeben werden. Die maximale Distanz entspricht hierbei genau der gleichen maximalen Distanz wie bei der Suche nach umliegenden Stationen (siehe Abschnitt 4.3). Die maximale und minimale Anzahl der Stationen entspricht der Anzahl der zu suchenden Zeitreihen. Nächster-Nachbar-Verfahren (nearest neighbour) Die Umsetzung des Nächster-Nachbar-Verfahrens basiert auf der Suche nach der geografisch am nächsten gelegenen Station, an der Messwerte für den gesuchten Zeitraum vorhanden sind. Der Radius der räumlichen Suche kann durch die Angabe einer maximalen Distanz beschränkt sein. Weitere Einschränkungskriterien gibt es nicht. Das Verfahren übernimmt die Werte der ermittelten Quellstation, ohne diese zu verändern. Die INSERT-Anweisung lautet: insert into calc_1297 (select ref_86400.timestamp, ts_1649.value1 , 1 from ts_1649 RIGHT OUTER JOIN ref_86400 ON ref_86400.timestamp = ts_1649.timestamp where ref_86400.timestamp between 728524800 and 733536000); Lineare Interpolation (linear interpolation) Bei der linearen Interpolation ist die Suche nach umliegenden Stationen nicht erforderlich. Die Entfernung, maximale und minimale Schwellwerte für Stationen bzw. r² haben keinen Einfluss auf das Verfahren bzw. das Ergebnis. Der wichtigste Parameter ist die maximale Länge der Lücke. Bei der Berechnung werden Vorgänger und Nachfolger in Bezug auf das Lückenintervall ermittelt und daraus die Parameter der Geraden, welche durch diese beiden Wertepaare (Wert und Datum) verläuft. Diese werden dann bei der Berechnung der fehlenden Werte in die Gleichung zur Berechnung der Zielwerte eingesetzt. Bei der Verwendung von UNIXZeit in einer Berechnung ist es immer erforderlich, das Format von bigint in float umzuwandeln. Beispiel einer fertigen SQL-Anweisung: 66 4 Verwaltung und Interpolation von Zeitreihen in RBIS insert into calc_1297 (select ref_86400.timestamp, 253.500000000000000039321600 + -0.000001556513409961685824 * cast(ref_86400.timestamp as float), 1 from ts_1297 RIGHT OUTER JOIN ref_86400 ON ref_86400.timestamp = ts_1297.timestamp where ref_86400.timestamp between 160444800 and 162777600); Inverse Distanzwichtung (IDW) Bei der inversen Distanzwichtung werden die Stationen ermittelt, die am nächsten gelegen sind und über Daten im gesuchten Zeitraum verfügen. Dabei entspricht der maximale Grenzwert der gewünschten Anzahl an Stationen, die in die Berechnung einfließen sollen. Wird diese Anzahl an Stationen nicht gefunden, so werden alle Ergebnisse bis zu der Anzahl des minimalen Grenzwertes akzeptiert. Der maximale Suchradius wird durch die maximale Distanz bestimmt. Für die Umsetzung werden die Distanzen zwischen der Zielstation und den Quellstationen benötigt. Diese gehen als Gewichte für jeden Wert in die Berechnung ein. Das Beispiel zeigt IDW mit fünf Stationen: insert into calc_1297 (select ref_86400.timestamp, ( ts_1649.value1 /4387.19^2 + ts_1549.value1 /6937.98^2 + ts_1269.value1 /8204.52^2 + ts_1308.value1 /10384.56^2 + ts_1631.value1 /11122.68^2 ) /(1.04941583612E-07 ), 1 from ts_1649 RIGHT OUTER JOIN ts_1549 ON ts_1649.timestamp = ts_1549.timestamp RIGHT OUTER JOIN ts_1269 ON ts_1549.timestamp = ts_1269.timestamp RIGHT OUTER JOIN ts_1308 ON ts_1269.timestamp = ts_1308.timestamp RIGHT OUTER JOIN ts_1631 ON ts_1308.timestamp = ts_1631.timestamp RIGHT OUTER JOIN ref_86400 ON ref_86400.timestamp = ts_1631.timestamp where ref_86400.timestamp between 728524800 and 733536000); Inverse Distanzwichtung mit Höhenkorrektur (IDW & elevation correction) Bei der inversen Distanzwichtung mit Höhenkorrektur werden ebenfalls die umliegenden Stationen mit verfügbaren Daten gesucht. Der Maximal- sowie der Minimalwert haben die gleiche Funktion wie bei IDW ohne Höhenkorrektur. Bei der Umsetzung wurde ebenfalls versucht alle Berechnungen auf der Seite der Datenbank zu realisieren. Diese Maßgabe führte zu einer recht aufwendigen Implementierung gegenüber einer möglichen Umsetzung in PHP. Da für die Korrektur der Quellwerte entsprechend ihrer Höhenlage viele Zwischenergebnisse benötigt werden, wird eine temporäre Tabelle angelegt. Diese entspricht einer realen Tabelle, die nach Beendigung des Berechnungsvorgangs gelöscht werden muss. In ihr werden der Zeitstempel, die Werte und die Höhen der Quellstationen sowie der Mittelwert der Werte als auch der Höhen eingefügt. 67 4 Verwaltung und Interpolation von Zeitreihen in RBIS CREATE TABLE temp_113312812 as select ref_86400.timestamp, (ts_1649.value1 + ts_1549.value1 + ts_1269.value1 + ts_1308.value1 + ts_1631.value1 + 0.0) /(5) as avg_val, (236 + 265 + 225 + 210 + 275 + 0.0) /(5) as avg_elevat ,236 as elevat_0 ,265 as elevat_1 ,225 as elevat_2 ,210 as elevat_3 ,275 as elevat_4 , ts_1649.value1 as value_0 , ts_1549.value1 as value_1 , ts_1269.value1 as value_2 , ts_1308.value1 as value_3 , ts_1631.value1 as value_4 from ts_1649 RIGHT OUTER JOIN ts_1549 ON ts_1649.timestamp = ts_1549.timestamp RIGHT OUTER JOIN ts_1269 ON ts_1549.timestamp = ts_1269.timestamp RIGHT OUTER JOIN ts_1308 ON ts_1269.timestamp = ts_1308.timestamp RIGHT OUTER JOIN ts_1631 ON ts_1308.timestamp = ts_1631.timestamp RIGHT OUTER JOIN ref_86400 ON ref_86400.timestamp = ts_1631.timestamp where ref_86400.timestamp between 728524800 and 733536000; Das Ergebnis dieser CREATE-Anweisungen ist in Abbildung 25 dargestellt. Abbildung 25: Temporäre Tabelle (temp_113312812) mit dem Zeitstempel (timestamp), den Mittelwerten der Werte (avg_val) und der Höhe (avg_elevat) und die Höhen (elevat_) und Werte (value_) der Quellstationen Auf dieser Tabelle wird dann abgefragt, an welchen Zeitpunkten r² zwischen den Messwerten und der Höhe den gegebenen Schwellwert überschreitet. Für diese werden dann die Variablen für die Regressionsgleichungen berechnet. Ist der Durchschnittswert Null, so führt die Berechnung zu einem Fehler, da die Division durch Null nicht erlaubt ist. Aus diesem Grund wird der Wert von Null mit der Hilfe einer CASE-Anweisung ausgeschlossen. 68 4 Verwaltung und Interpolation von Zeitreihen in RBIS select timestamp, round(((value_0 - avg_val) * (elevat_0 avg_elevat) + (value_1 - avg_val) * (elevat_1 - avg_elevat) + (value_2 - avg_val) * (elevat_2 - avg_elevat) + (value_3 - avg_val) * (elevat_3 - avg_elevat) + (value_4 - avg_val) * (elevat_4 avg_elevat) + 0)/[...] as b , (CASE WHEN avg_val != 0 then ( [...] ) as a from temp_113312812 where 0.7 <= (CASE WHEN avg_val != 0 then ( (((value_0 - avg_val) * (elevat_0 - avg_elevat) + (value_1 - avg_val) * (elevat_1 avg_elevat) + (value_2 - avg_val) * (elevat_2 - avg_elevat) + (value_3 - avg_val) * (elevat_3 - avg_elevat) + (value_4 - avg_val) * (elevat_4 - avg_elevat) + 0))/sqrt(((value_0 - avg_val) * (value_0 avg_val) +(value_1 - avg_val) * (value_1 - avg_val) +(value_2 avg_val) * (value_2 - avg_val) +(value_3 - avg_val) * (value_3 avg_val) +(value_4 - avg_val) * (value_4 - avg_val) +0) * ((elevat_0 - avg_elevat) * (elevat_0 - avg_elevat) +(elevat_1 - avg_elevat) * (elevat_1 - avg_elevat) +(elevat_2 - avg_elevat) * (elevat_2 avg_elevat) +(elevat_3 - avg_elevat) * (elevat_3 - avg_elevat) +(elevat_4 - avg_elevat) * (elevat_4 - avg_elevat) +0)))^2 end) Die berechneten Variablen für die Regressionsgleichung werden anschließend in die entsprechenden INSERT-Anweisungen für jeden ermittelten Zeitpunkt eingesetzt, so dass der Originalwert auf die Höhe der Zielstation korrigiert wird, bevor er in IDW verwendet wird. Alle restlichen Zeitpunkte werden mit einem einfachen IDW berechnet. insert into calc_1297 (select temp_113312812.timestamp, (((275 - elevat_0 )*0.02382 + value_0 )/4387.19^2 +((275 - elevat_1 )*0.02382 + value_1 ) /6937.98^2 +((275 - elevat_2 )*0.02382 + value_2 )/8204.52^2 +((275 - elevat_3 )*0.02382 + value_3 )/10384.56^2 +((275 - elevat_4 ) *0.02382 + value_4 )/11122.68^2 +0)/(1.04941583612E-07 ), 1 from temp_113312812 where temp_113312812.timestamp = 729993600); Lineare Regression (linear regression) Eine lineare Regression wird mit der Zeitreihe durchgeführt, die der Zielzeitreihe am ähnlichsten ist. Dies wird anhand von r² ermittelt. Mit der maximalen Distanz und maximalen Anzahl an Stationen kann der Umkreis der Suche eingeschränkt werden. Die Angabe von r² gibt einen minimalen Wert an, der erfüllt sein muss. Für die Suche nach r² muss dieser zunächst berechnet werden. Es wird dabei davon ausgegangen, dass alle potentiellen Zeitreihen bzw. Stationen innerhalb der doppelten maximalen Anzahl an umliegenden Stationen liegen. Für diese muss zunächst, falls noch keine Werte vorliegen, r² berechnet werden. Diese Beschränkung soll die Berechnung unnötiger Werte verhindern und die Laufzeit der gesamten Funktion verkürzen. Wurde die maximale Anzahl nicht angegeben, so wird r² für alle Zeitreihenpaare berechnet. Nach der Ermittlung der Quellstation werden die Parameter der Regressionsgleichung berechnet und anschließend die SQL-Anweisung zur Berechnung der Werte eingesetzt. 69 4 Verwaltung und Interpolation von Zeitreihen in RBIS insert into calc_1297 (select ref_86400.timestamp, 0.187165872413 + 0.87686573986499650156173452064395 * ts_1549.value1, 1 from ts_1549 RIGHT OUTER JOIN ref_86400 ON ref_86400.timestamp = ts_1549.timestamp where ref_86400.timestamp between 728524800 and 733536000); 4.4.2.4 Prüfen und Korrigieren der interpolierten Messwerte Die berechneten Werte müssen hinsichtlich ihrer Plausibilität geprüft werden, da einige Interpolationsverfahren auch Werte außerhalb des zulässigen bzw. möglichen Wertebereichs als Ergebnis liefern können. Ein Beispiel hierfür sind Niederschlagswerte zwischen 0 und 0,1 mm oder eine Luftfeuchtigkeit unter 0 % bzw. über 100 %. Die jeweiligen Grenzwerte für jeden erfassten Parameter werden in einer eigenständigen Tabelle verwaltet und können über das Metadatenportal editiert werden (Abbildung 26). Überschreiten die Interpolationswerte den Bereich, so werden sie durch den festgelegten Minimal bzw. Maximalwert ersetzt. Die Korrektur der Werte erfolgt automatisch nach jedem abgeschlossenen Interpolationsvorgang mit einem einfachen Update auf der Tabelle mit den berechneten Werten. Abbildung 26: Übersicht der Grenzwerte für Messgrößen und Einheiten Für die Temperatur wurden keine Parametersätze angelegt, da hier zu große regionale Unterschiede sowie Abhängigkeiten mit der Messhöhe bestehen und somit die Festlegung fester und allgemein gültiger Grenzen nicht möglich ist. 70 4 Verwaltung und Interpolation von Zeitreihen in RBIS 4.4.3 Anwendung durch RBIS-Nutzer Über einen Link in der Übersicht der Zeitreihendaten (genauere Beschreibung in Abschnitt 4.5.2) gelangt der Anwender zu der Interpolationsseite. Hier stehen zwei Möglichkeiten zur Verfügung, um ermittelte Datenlücken zu schließen. Es kann zwischen internen (Internal Interpolation Method Set) und externen (External Interpolation Method) Verfahren unterschieden werden. Zu den internen gehören die im RBIS implementierten Interpolationsverfahren. Als extern werden alle Verfahren bezeichnet, die außerhalb von RBIS angewendet und die ermittelten Lückenwerte anschließend in RBIS importiert wurden. 4.4.3.1 Verwendung interner Verfahren Alle im RBIS implementierten Interpolationsverfahren (siehe vorheriger Abschnitt) können eingesetzt werden. Dies erfolgt jedoch nicht durch die direkte Auswahl des Verfahrens, sondern über eine Zusammenstellung von Verfahren (method set) (Abbildung 27) mit Interpolationsregeln (Abbildung 28). In einer solchen Zusammenstellung werden die Regeln festgelegt, die nahezu beliebig geändert oder neu erstellt werden können. Abbildung 27: Auswahl einer Zusammenstellung von Interpolationsverfahren Abbildung 28: Interpolationsregeln für IDW (5-3) Der Wert in der ersten Spalte (Position/Order) gibt die Reihenfolge an, in der die Verfahren angewendet werden sollen. In der zweiten Spalte (Max gap length) erfolgt die Angabe über die maximale Länge des Lückenintervalls bis zu dem das entsprechende Verfahren angewendet werden soll. Die Festlegung dieses Parameters empfiehlt sich 71 4 Verwaltung und Interpolation von Zeitreihen in RBIS insbesondere bei der linearen Interpolation, da dieses Verfahren nicht über beliebig große Zeiträume angewendet werden sollte. Die folgenden zwei Spalten beinhalten Informationen über die minimale und maximale Anzahl an Stationen (Min / Max stations), die den Suchradius bei bestimmten Verfahren, wie IDW oder einer linearen Regression, beschränken. Der Wert der Spalte Min Rsquared gibt die Untergrenze für ein r² an, falls das Verfahren diesen betrachtet. Beispiele sind IDW mit Höhenkorrektur oder die lineare Regression. Die maximale Distanz in der letzten Spalten (Max distance) gibt an, wie weit die Quellstationen von der Zielstation maximal entfernt sein dürfen. Nach der Auswahl einer Zusammenstellung (Abbildung 27) wird diese mit Execute ausgeführt. Der Button mit der Aufschrift Simulate ist im Moment noch ohne Funktion. An diese Stelle soll es in einer späteren Version möglich sein, einen Interpolationsvorgang zu simulieren um zum Beispiel Änderungen durch gelöschte oder hinzugefügte Zeitreihendaten zu erkennen. Nach Abschluss eines Interpolationsvorgangs besteht die Möglichkeit, die Details zu diesem anzuzeigen. Abbildung 29 zeigt das Ergebnis nach einem erfolgreich abgeschlossenen Vorgang. Konnten nicht alle Lücken gefüllt werden, so besitzt das Attribut Complete den Wert false und in der Zeile darüber die mögliche Ursache. Ein Beispiel dafür ist, dass kein passendes Verfahren gefunden werden konnte. Der Link Show used time series führt zu der Übersicht, bei der für jedes Lückenintervall die verwendeten Zeitreihen aufgelistet werden. Abbildung 29: Informationen zu einem Interpolationsprozess 72 4 Verwaltung und Interpolation von Zeitreihen in RBIS 4.4.3.2 Verwendung externer Verfahren Wurde ein externes Verfahren zum Füllen der Datenlücken verwendetet, so muss dieses ausgewählt oder neu beschrieben werden. Das Importieren der Lückendaten, funktioniert genauso wie das von gesamten Zeitreihen. Hier muss ebenfalls das Zeitformat angegeben werden (Abbildung 30). Dabei kann die Datei Werte von einer oder allen Lücken oder auch Originaldaten enthalten. Die Importfunktion übernimmt dann nur die Werte, die innerhalb eines identifizierten Lückenintervalls liegen und behandelt sie genauso wie interpolierte Werte. Hierbei gilt, dass ein Lückenintervall entweder vollständig gefüllt wird oder gar nicht, da nur zum Teil gefüllt Lücken nicht verwaltet werden können. Sobald auch nur ein Wert fehlt, wird keiner der Werte innerhalb des betreffenden Lückenintervalls übernommen. Beim Import kann zusätzlich zwischen dem Ergänzen von Daten (add) und dem Hinzufügen mit vorherigem Löschen alter Werte (new) gewählt werden. Damit wird die Möglichkeit geschaffen, nachträglich offen gebliebene Lücken aufzufüllen, ohne bisherige Ergebnisse zu verlieren. Die Verwendung externer Daten wird genauso dokumentiert, wie die Verwendung von internen Verfahren. Abbildung 30: Importieren von extern gefüllten Datenlücken 73 4 Verwaltung und Interpolation von Zeitreihen in RBIS 4.5 Export und Darstellung von Zeitreihendaten Abschließend wurden Funktionen zur Darstellung sowie zum Export von Zeitreihendaten überarbeitet und den neuen zur Verfügung stehenden Möglichkeiten angepasst. 4.5.1 Export Es gibt verschiedene Möglichkeiten, die Daten zu Exportieren. Die einfachste Form ist der Export der Originaldatei mit ihrem ursprünglichen Dateinamen, da dieser beim Import der Daten abgespeichert wird. Für den Altdatenbestand des Einzugsgebietes der Saale steht diese Funktion nicht zur Verfügung, da die Daten aus einer bestehenden Datenbank übernommen wurden (ZANDER 2006). Bei allen weiteren Exportarten werden die Daten aus der Datenbank ausgelesen. Der Export erfolgt immer als Tabstop getrennte Textdatei. Der Dateiname setzt sich aus data_, den ersten 20 Zeichen des Datensatznamens und der Zeitreihen ID zusammen. Zu Beginn der Datei werden wichtige Metainformationen hinterlegt, die auch später eine eindeutige Identifizierung und die Reproduzierbarkeit der Daten ermöglichen sollen (Abbildung 31). Abbildung 31: Dateianfang einer exportierten Datei Zu diesen Informationen gehört: ● der Name der Installation von RBIS, aus dem die Daten stammen ● das Exportdatum ● der Nutzer, vom dem dieser Export ausgeführt wurde ● der Name des Datensatzes ● die Zeitreihen- und die Metadaten-ID ● Zuordnung der Messgrößen und Einheit zu den einzelnen Spalten 74 4 Verwaltung und Interpolation von Zeitreihen in RBIS Handelt es sich um Daten, die Lücken aufweisen oder aufgewiesen haben wird zusätzlich angegeben: ● das verwendete Verfahren ● das Interpolationsdatum ● die Angabe über Vollständigkeit. War das angegeben Verfahren bei irgendeiner Lücke nicht erfolgreich (complete: f(alse)) besteht die Möglichkeit, dass sich weiterhin noch Lücken in den Daten befinden. Details müssen in der Anwendung nachgelesen werden. Beim Export der Daten kann grundsätzlich zwischen einem vollständigen (gesamtes Zeitintervall und alle Messgrößen) und einem Teilexport unterschieden werden sowie zwischen originalen und modifizierten Daten. Der Zugriff auf die originalen Datenbestände ist sehr einfach, da hier die Daten nur aus einer Tabelle ausgelesen werden müssen. Der Zugriff auf die modifizierten Daten erfolgt über Views, die automatisch für jede Spalte bei einem Interpolationsvorgang oder dem Hochladen von Daten angelegt werden. Dies ist die Viewdefinition für ts_all_1297_1: SELECT CASE WHEN calc_1297.“timestamp“ IS NULL THEN ts_1297.“timestamp“::bigint ELSE calc_1297.“timestamp“ END AS „timestamp“, CASE WHEN calc_1297.value1 IS NULL THEN ts_1297.value1 ELSE calc_1297.value1 END AS value1 FROM calc_1297 FULL JOIN is ts_1297 ON ts_1297.“timestamp“ = calc_1297.“timestamp“ WHERE calc_1297.colnumber = 1 OR calc_1297.colnumber IS NULL; Diese Views sorgen dafür, dass über sie auf die Daten zugegriffen werden kann, so als ob diese aus einer einzigen Tabelle stammen würden. Bei dem Join zwischen den einzelnen Tabellen haben die Zeitpunkte (timestamp) als auch die Werte aus der ergänzenden Tabelle (hier calc_1297) Vorrang vor den ursprünglichen Daten, da zum einen durch Datumslücken Zeitschritte nicht vorhanden sind und zum anderen Fehlkennungen wie -9999 oder Null durch einen berechneten Wert ersetzt werden. Realisiert wird dies durch zwei CASE-Anweisungen. 75 4 Verwaltung und Interpolation von Zeitreihen in RBIS 4.5.2 Darstellung Die Übersicht über die Daten einer Zeitreihe (Abbildung 32) wird über einen entsprechenden Link von den Metadaten aus aufgerufen. Sie untergliedert sich in die drei Abschnitte Overall statistics and actions, Interval statistics and actions und Edit. Im ersten Bereich (Overall statistics and actions) werden Informationen und Funktionen, bezogen auf den Gesamtzeitraum der Daten angeboten. Hierzu zählt der Zeitreihenname mit einem Link zu den Metadaten, die Anzahl der enthaltenen Datensätze bezogen auf die erfassten Zeitpunkte, Beginn und Ende sowie Links zum Export der gesamten Daten des betreffenden Metadatensatzes aus der Datenbank oder der Originaldatei. Zusätzlich wird hinter der Anzahl der Datensätze der Prozentsatz angezeigt, der sich aus der Summe der möglichen Zeitschritte und der Summe der Zeitschritte der Lücken des Gesamtzeitraums ergibt. Als Berechnungsgrundlage wird hier die tatsächliche Gesamtanzahl an Zeitschritten verwendet, die sich aus der Differenz zwischen dem ersten und dem letzten Datum der Zeitreihe berechnet. Somit bezieht sie sich nicht auf die vorhandene und angezeigte Anzahl an Datensätzen, da diese aufgrund von Datumslücken wesentlich niedriger sein kann. Weiterhin wird dem Nutzer angeboten, die Daten auch ohne Lücken (with filled gaps) herunterzuladen, sofern bei einer der Messgrößen Lücken identifiziert und diese gefüllt wurden. Darüber hinaus müssen alle bekannten Lücken als vollständig aufgefüllt gelten, denn nur dann ist das Exportieren eines lückenlosen vollständigen Datensatzes gewährleistet. In Abbildung 32 sind diese Voraussetzungen erfüllt. Der Exportvorgang selbst wurde bereits in Abschnitt 4.5.1 beschrieben. Im zweiten Bereich kann ein Teilintervall des Gesamtzeitraums ausgewählt werden. Dies erfolgt über die Eingabe eines Start- und Enddatums. Über set interval werden die Einstellungen übernommen und die Anzahl der vorhandenen Datensätze, die sich wiederum auf die Zeitpunkte und nicht auf die einzelnen Werte beziehen, aktualisiert. Der ausgewählte Zeitraum mit den gewünschten Messgrößen, die über Checkboxen ausgewählt werden können, bildet die Grundlage für die grafische Darstellung und für den Export der ausgewählten Daten. Die Links hinter jeder Messgröße und ihrer Einheit werden dynamisch den entsprechenden Gegebenheiten angepasst. Das erste Element beinhaltet Informationen über die Gesamtlänge aller Lückenintervalle und die Anzahl dieser Lückenintervalle. Im in Abbildung 32 dargestellten Beispiel fehlen insgesamt 87 Werte, die sich auf zwei Lückenintervalle aufteilen. Der Link verweist auf die Detailansicht über die Lücken (vgl. Abbildung 18). Die letzte Spalte dieser Ansicht gibt Auskunft über verwendete Interpolationsverfahren oder den Misserfolg einer Interpolation (not filled). Erfolgte noch kein Interpolationsvorgang ist diese Spalte leer. Der Link des folgenden Elementes ([I]) führt zur Auswahl und Ausführung eines Interpolationsverfahrens für die entsprechende Messgröße bzw. dem Hochladen von Werten für die entsprechenden 76 4 Verwaltung und Interpolation von Zeitreihen in RBIS Lücken. Die Farbe des Buchstabens gibt Auskunft darüber, ob bereits ein kompletter Satz an Daten für alle Lücken dieser Messgröße vorliegt (grün) oder nicht (rot). Das dritte Element ([nST]) verweist auf die Übersicht der umliegenden Stationen mit Daten der gleichen Messgröße (siehe Abbildung 20). Das erste Element wird immer bei vorhandenen Lücken angezeigt, das zweite nur, wenn Lücken und das Modul für die Interpolation vorhanden sind. Das letzte wird immer bei einem aktivierten Modul für die Interpolation angezeigt. Abbildung 32: Übersichtsansicht für die Daten vom Metadatensatz „Niederschlag Frauensee“ Die Daten können den Einstellungen über den Zeitraum und der Messgrößen entsprechend so exportiert werden, wie sie in der Datenbank gespeichert sind (Originaldaten). Nach einem Schließen der Lücken, ist auch der Export mit geschlossenen Lücken möglich. Dabei wird zwischen einer vollständig und unvollständig geschlossenen Zeitreihe unterschieden (without gaps (unfilled) und with filled gaps (note: unfilled gaps are possible!)). Eine Zeitreihe gilt als vollständig, wenn alle Lücken erfolgreich geschlossen 77 4 Verwaltung und Interpolation von Zeitreihen in RBIS wurden. Tritt eine Kombination zwischen einer vollständig und einer unvollständig geschlossenen Messgröße auf, so ist es nicht möglich vor dem Exportieren eine Aussage darüber zu treffen, ob in der ausgewählten Kombination zwischen Messgrößen und dem Zeitintervall Lücken auftreten werden oder nicht. Sobald Werte für die Lücken vorhanden sind, werden diese statt der ursprünglichen Werte verwendet. Fehlen sie, so werden an dieser Stelle die Originaldaten (i.d.R. der Wert für die Fehlkennung) eingesetzt (siehe Abschnitt 4.5.1). Die Daten können den Einstellungen entsprechend auch grafisch dargestellt werden (show plot). Die Anzahl der maximal darstellbaren Messgrößen ist dabei auf 10 begrenzt. Aufgefüllte Werte werden farblich hervorgehoben, damit diese von den Originaldaten unterschieden werden können. Fehlkennungen, wie zum Beispiel -9999, werden nicht angezeigt und als Fehlwert (Null) behandelt. Demzufolge wird der Graph an dieser Stelle unterbrochen. Mit hide plot kann das Diagramm wieder aus der Übersicht entfernt werden. Wird auf die Darstellung des Diagramms verzichtet, so verkürzt sich die Ladezeit der Webseite erheblich. Der dritte Bereich umfasst die Funktionen zum Editieren der Daten. Zum einem existiert ein Link zum Importieren (siehe Abbildung 16) und zum anderen zum Löschen der Daten. Beim Löschen werden alle mit diesen Metadaten assoziierten Daten, wie Lückenangaben oder die berechneten r² Werte zu anderen Zeitreihen, sowie die Zeitreihendaten selbst dauerhaft gelöscht. 4.6 Einbindung der entwickelten Funktionen in RBIS Um das Interpolationsmodul in einer RBIS-Installation zu aktivieren, ist es notwendig, dass zum einen die globale Variable $tsstat in der Datei config.php auf true gesetzt wird und zum anderen, dass die PostGIS Funktionen der Metadatenbank hinzugefügt werden. Ist die globale Variable $tsstat auf false gesetzt, erscheinen keine Links, die zu Funktionen führen, die PostGIS verwenden. Das betrifft die Übersicht zur Datenanalyse, die Interpolation selbst und alle Links zu Funktionen, die mit einer Interpolation im Zusammenhang stehen. Alle beschriebenen Funktionen beim Import von Daten werden hingegen immer ausgeführt. 4.7 Aufgetretene Probleme Während der Umsetzung der Erweiterung von RBIS traten einige Probleme auf, die an dieser Stelle Erwähnung finden sollen. Weiterhin werden auch Anregungen und Hinweise für die zukünftige Weiterentwicklung der Anwendung gegeben. Ursache vieler Schwierigkeiten bei der Umsetzung stellten die hier immer als Altdatenbestand des Einzugsgebietes der Saale bezeichneten Daten dar. Hier treten Inkonsistenzen oder gar 78 4 Verwaltung und Interpolation von Zeitreihen in RBIS fehlerhafte Datensätze auf, wie z. B. das Beispiel in Kapitel 4.3.2 eindrucksvoll zeigen konnte. Solange Fehler, wie im beschriebenen Fall einer identischen Zeitreihe an verschiedenen Stationen, im Datenbestand vorhanden sind, müssen alle berechneten Werte kritisch und mit Vorsicht behandelt werden. Insbesondere fehlerhaft eingetragene Koordinaten können die Berechnungsergebnisse verfälschen. Bei vielen Stationen ist zudem die Höhenangabe entweder recht zweifelhaft oder gar nicht vorhanden. Ebenfalls liegt ein großes Fehlerpotential in nicht erkannten Datenlücken durch eine falsche oder fehlende Angabe der verwendeten Fehlkennungen. Dies führte auch zu einigen Komplikationen bei der automatischen Lückenanalyse im Altdatenbestand, da hier verschiedene Werte für die Fehlkennung verwendet wurden, die in den Metadaten nicht erfasst waren. Auch die automatische Lückenanalyse selbst verlief nicht gleich korrekt, so dass Lücken doppelt oder gar nicht identifiziert wurden. Dieser Fehler konnte jedoch nachträglich korrigiert werden. Beim Importieren einer Zeitreihe kann dieser Fehler ausgeschlossen werden. In der Praxis hat sich jedoch auch gezeigt, dass Anwender die Bedeutung der Fehlkennung unterschätzen und sich selten die Mühe machen, einen prüfenden Blick auf das Ergebnis der identifizierten Lücken zu werfen. Auch die Zuordnung der Messgrößen zu den einzelnen Spalten wird teilweise recht nachlässig behandelt, so dass hier Inkonsistenzen entstehen, die nicht nur eine mögliche Interpolation behindern, sondern auch die Suche nach den entsprechenden Datensätzen erschweren. Aus den eben genannten Gründen kann und darf nicht auf eine manuelle Überprüfung der Metadaten verzichtet werden. Daher ist es beim Datenimport von RBIS unbedingt notwendig, darauf zu achten und auch gegebenenfalls zu kontrollieren, dass Metadaten vollständig und korrekt eingetragen werden. Bei der technischen Umsetzung selbst traten neben den bereits erwähnten Problemen noch weitere auf. So können sich bei der Entwicklung einer komplexen SQL-Abfrage schnell Fehler entstehen, die augenscheinlich ein korrektes Ergebnis liefern. Auch wenn ein richtiges Ergebnis erzielt wird, so kann dies in einer nicht akzeptablen Zeit geschehen sein. Hier können kleine Fehler eine große Wirkung zeigen, wie etwa eine vergessene JoinBedingung. In einem Fall führte dies zu einer Gesamtlaufzeit der Abfrage von knapp 70 Sekunden, obwohl diese bei korrekter Angabe nur wenige Sekunden oder gar Millisekunden benötigt. Aus diesem Grund wurde viel Zeit aufgewendet, um die Ausführungszeit der Abfragen zu minimieren. Bei der Programmierung selbst traten gelegentlich Schwierigkeiten mit einzelnen Datentypen oder -werten (z. B. Null) bzw. mit der automatischen Typkonvertierung von PHP auf. Alle genannten Probleme konnten vollständig behoben werden und treten nicht mehr auf. 79 5 Zusammenfassung und Ausblick 5 Zusammenfassung und Ausblick Ausgehend von den Anforderungen, die IWRM an die Datenhaltung, Verwaltung und Präsentation von Informationen stellt, wurde gezeigt, wie Zeitreihendaten im Informationssystem RBIS verwaltet und umweltbezogene Daten so bereitgestellt werden können, dass sie keine Lücken mehr aufweisen und somit direkt in hydrologischen Simulationsmodellen verwendet werden können. Möglich wurde dies durch die Erweiterung der bisher erfassten Metadaten um Informationen über die Datenlücken und Datenzuverlässigkeit innerhalb der Zeitreihen. In der vorliegenden Arbeit wurde zunächst auf den fachlichen Hintergrund von RBIS eingegangen, bevor aus technischer Sicht gezeigt werden konnte, inwieweit eine zentrale Datenhaltung sowie die Entwicklung einer Web-Anwendung in Bezug auf RBIS sinnvoll ist und welche Vorteile, aber auch Nachteile, dies mit sich bringt. In Abschnitt 2.2.1 wurde zudem der Begriff „Informationssystem“ eingeführt und der Einsatz von freier und Open-Source-Software begründet. Besonders im Blickpunkt lagen dabei Datenbank-Management-Systeme, die raumbezogene Datentypen und raumbezogene funktionelle Erweiterungen anbieten. Darunter zählt auch das im RBIS verwendete DBMS PostgreSQL/PostGIS. Mit den Ausführungen zu Meta- und Zeitreiheninformationssystemen in Abschnitt 2.3 wurde gezeigt, welche Standards bereits für die Speicherung und Verwaltung von Metadaten und Zeitreihen existieren. Im Bereich der Metadaten spielte ISO 19115 eine bedeutende Rolle. Die Beispiele für Metainformationssysteme untermauern dies. Mit diesen konnte auch gezeigt werden, welche Bedeutung, Nutzen und Anwendung Metainformationssysteme generell innerhalb der Geodateninfrastruktur in Deutschland aufweisen. Die Betrachtung von Zeitreiheninformationssystemen und der Entwicklung von Standards in diesem Bereich verdeutlicht die enge Verzahnung zwischen diesen beiden Informationssystemen. Hier lohnt es sich, die Entwicklungen im Bereich der Meta- und Zeitreiheninformationssysteme im Auge zu behalten, um die Entwicklung von RBIS in Hinblick auf Standards und neue Techniken abzustimmen. Mit Abschnitt 2.4 wurde eine Einführung in den Lückenersatz umweltbezogener Zeitreihen gegeben, angefangen bei möglichen Ursachen bis hin zu verschiedenen Interpolationsverfahren zum Schließen der Lücken. Im Anschluss wurde ein Überblick über die Verwaltung der Metadaten und Zeitreihen in RBIS gegeben. Dabei wurden sowohl anwendungsinterne, als auch Aspekte aus der Sicht eines Nutzers behandelt. Ausgehend davon wurden die entwickelten Erweiterungen von RBIS ausführlich beschrieben. Dies bezog sich zunächst auf die Überarbeitung der Importfunktion. Beim Import von Daten ist es nun möglich, Lücken zu identifizieren und bedeutende Metainformationen wie Beginn und Ende einer Zeitreihe automatisch zu erzeugen und den Metadaten hinzuzufügen. Der Vorgang selbst erfolgt innerhalb einer Datenbanktransaktion und beinhaltet eine detaillierte Fehlererkennung und -behandlung. Auf Grundlage der erfassten Metainformationen über Datenlücken und der Zeitreihen wurde eine Möglichkeit geschaffen, diese zusammen mit der räumlichen 80 5 Zusammenfassung und Ausblick Verteilung der Stationen, an denen die Zeitreihen erfasst wurden, unter verschiedenen Aspekten integriert auszuwerten. Hierfür steht eine tabellarische und eine grafische Darstellung der Ergebnisse zur Verfügung. Für die Interpolation der identifizierten Datenlücken wurde ein regelbasiertes System eingeführt, welches einen flexiblen und leicht konfigurierbaren Einsatz verschiedener im RBIS implementierter Interpolationsverfahren ermöglicht. Damit wird auch den verschiedenen Einsatzmöglichkeiten der Interpolationsverfahren in Abhängigkeit der jeweiligen Messgröße, der Einheit, dem Zeitschritt und andere Einflussfaktoren ( wie z. B. der Größe des Einzugsgebietes oder der Größe der Datenlücke) Rechnung getragen, da die Zusammenstellung und Anwendung der Regeln durch den fachkundigen Anwender erfolgt. Auch eine Möglichkeit zum Import von Werten extern geschlossener Datenlücken wurde eingerichtet. Der gesamte Vorgang zum Schließen von Datenlücken wird umfangreich dokumentiert. Abschließend wurde der Export und die Darstellung der Zeitreihendaten angepasst. Mit den vorgestellten Erweiterungen konnte RBIS um wesentliche Funktionalitäten ergänzt werden, die sich in laufenden und zukünftigen Forschungsprojekten als äußerst hilfreich erweisen und erweisen werden. Hervorzuheben ist hier insbesondere die Bereitstellung lückenfreier Datenreihen für deren Anwendung in Simulationsmodellen. In RBIS selbst steckt noch großes Potenzial für eine zukünftige Weiterentwicklung. Dies umfasst nicht nur eine Erweiterung des Funktionsumfangs für die Interpolation, sondern auch die Ermittlung statistischer Lageparameter, Durchführung von Plausibilitäts- und Homogenitätstests oder die Bereitstellung von Diensten, um z. B. eine direkte Anbindung an das Modellsystem JAMS zu ermöglichen. 81 Anhang A: Datenmodelle Anhang A: Datenmodelle DS_Station – konzeptionelles Modell Abbildung 33: konzeptionelles Modell für DS_Station 82 Anhang A: Datenmodelle TS_TimeSeries – konzeptionelles Modell Abbildung 34: konzeptionelles Modell für TS_TimeSeries 83 Anhang B: XML-Schema von RBIS (rbis.xsd) Anhang B: XML-Schema von RBIS (rbis.xsd) <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="view"> <xs:complexType> <xs:sequence> <xs:element ref="id"/> <xs:element ref="group" maxOccurs="unbounded"/> <xs:element ref="association" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="table" maxOccurs="unbounded"/> <xs:element ref="join" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="basedir" use="required"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value=".."/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="name" use="required"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="variable"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="title" type="xs:string" use="required"/> <xs:attribute name="template" type="xs:boolean" use="optional"/> </xs:complexType> </xs:element> <xs:element name="table"> <xs:complexType> <xs:sequence> <xs:element ref="mandatory" minOccurs="0"/> </xs:sequence> <xs:attribute name="name" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="mandatory"> <xs:complexType> <xs:sequence> <xs:element ref="attribute" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="join"> <xs:complexType> <xs:attribute name="from_table" type="xs:string" use="required"/> <xs:attribute name="from_key" type="xs:string" use="required"/> <xs:attribute name="to_table" type="xs:string" use="required"/> <xs:attribute name="to_table_alias" type="xs:string"/> <xs:attribute name="to_key" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="id"> <xs:complexType> <xs:attribute name="name" use="required"/> </xs:complexType> </xs:element> 84 Anhang B: XML-Schema von RBIS (rbis.xsd) <xs:element name="group"> <xs:complexType> <xs:attribute name="title" type="xs:string" use="required"/> <xs:attribute name="name" use="required"> <xs:simpleType> <xs:restriction base="gruppe"/> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="attribute"> <xs:complexType> <xs:attribute name="name" type="xs:string" use="required"/> <xs:attribute name="title" type="xs:string" use="required"/> <xs:attribute name="type" use="optional"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value=""/> <xs:enumeration value="date"/> <xs:enumeration value="float"/> <xs:enumeration value="id"/> <xs:enumeration value="integer"/> <xs:enumeration value="text"/> <xs:enumeration value="email"/> <xs:enumeration value="hidden"/> <xs:enumeration value="bool"/> <xs:enumeration value="timestamp"/> <xs:enumeration value="serialized"/> <xs:enumeration value="password"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="size" type="xs:string"/> <xs:attribute name="required"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="mandatory"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="pk" type="xs:string"/> <xs:attribute name="default" type="xs:string"/> <xs:attribute name="dateformat"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="Y-m-d"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="update"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="dropdown"/> <xs:enumeration value="false"/> <xs:enumeration value="insert"/> <xs:enumeration value="true"/> <xs:enumeration value="dropdownrightjoin"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="check"> <xs:simpleType> <xs:restriction base="radio"/> </xs:simpleType> </xs:attribute> 85 Anhang B: XML-Schema von RBIS (rbis.xsd) <xs:attribute name="order" type="xs:integer"/> <xs:attribute name="group"> <xs:simpleType> <xs:restriction base="gruppe"/> </xs:simpleType> </xs:attribute> <xs:attribute name="overview" type="xs:integer"/> <xs:attribute name="sort"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="key"/> <xs:enumeration value="name"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="association"> <xs:complexType> <xs:attribute name="title" type="xs:string" use="required"/> <xs:attribute name="edit" type="xs:boolean" use="optional"/> <xs:attribute name="code" type="xs:string" use="required"/> <xs:attribute name="overview" type="xs:integer"/> </xs:complexType> </xs:element> <xs:simpleType name="gruppe"> <xs:restriction base="xs:string"> <xs:pattern value="(g)?[0-9]+"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="radio"> <xs:restriction base="xs:string"> <xs:pattern value="(radio)?[0-9]+"/> </xs:restriction> </xs:simpleType> </xs:schema> Abbildung 35: XML-Schema von RBIS 86 Anhang C: Auszüge aus dem Quellcode Anhang C: Auszüge aus dem Quellcode create_query_linear_interpolation() Der Quellcode der Funktion create_query_linear_interpolation() für die lineare Interpolation ist hier stellvertretend für alle anderen Verfahren angegeben. Vom Aufbau her sind diese immer identisch. 1 function create_query_linear_interpolation($gap,$int_id, $tablename, 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 $col_a, $seconds ){ $db_ts = $this->db_ts; $ts = "ts_".$this->ts_a_id; $gap_start = $gap[0]-$seconds; $gap_end = $gap[1]+$seconds; $value = "value$col_a"; $query ="select ((select $value from $ts where timestamp = $gap_end)-(select $value from $ts where timestamp = $gap_start))/ ($gap_end-$gap_start),(select $value from $ts where timestamp = $gap_start)-((select $value from $ts where timestamp = $gap_end)(select $value from $ts where timestamp = $gap_start))/ ($gap_end$gap_start)*$gap_start"; $db_ts->sql_query($query); $result = $db_ts->sql_fetchrow(); $error = $db_ts->sql_error(); if(!empty($error['message'])) {return $queries[2] = false;} $m = $result[0]; $n = $result[1]; $equation .= $n." + " .$m." * float)"; cast(ref_86400.timestamp as $query = "insert into $tablename (select ref_86400.timestamp, ".$equation.", $col_a from $ts RIGHT OUTER JOIN ref_86400 ON ref_86400.timestamp = ".$ts.".timestamp where ref_86400.timestamp between ".$gap[0]." and ".$gap[1].");"; $log_ts_ids[$this->ts_a_id] = 0; $log_query .= $this->create_gapfilled($int_id, $gap[2], $log_ts_ids, 1 ); $queries[0] = $query; $queries[1] = $log_query; $queries[2] = true; return $queries; } Abbildung 36: Quellcode der Funktion: create_query_linear_interpolation() 87 Anhang C: Auszüge aus dem Quellcode interpolation_set() Die Funktion interpolation_set() ist die zentrale Funktionen eines Interpolationsvorgangs. Hier werden alle in Kapitel 4.4.2.2 beschriebenen Arbeitsschritte nacheinander aufgerufen. Die Ausführung der Berechnungen findet unter 11. (Zeile 149) statt, indem alle INSERT -Anweisungen auf der Zeitreihendatenbank ausgeführt werden. 1 function interpolation_set($method_set_id){ 2 3 $db_ts = $this->db_ts; 4 $db = $this->db; 5 6 #1.----Get default value & colnumber for original TS 7 $miss_val = $this->get_miss_val($this->ts_a_id); 8 $col_a = $this->get_colnumber($this->ts_a_id, $this->ts_type_id); 9 10 #2.----Log interpolation process 11 $int_id = $this->write_interpolation($this->ts_a_id, $col_a, $method_set_id, " " ); 12 13 #3.----Create View & Table / Get tablename 14 $tablename = $this->createViewandTable($this->ts_a_id, $int_id, $col_a); 15 16 #5.----Get all gaps 17 $gaps = $this->get_gaps($this->ts_a_id, $this->ts_type_id); 18 19 #6.----Get Method Set 20 $methods = $this->get_method_set($method_set_id); 21 $method_set = $methods[0]; 22 $method_ids = $methods[1]; 23 24 #7.----Preparation 25 foreach ($method_ids as $key=>$values){ 26 switch ($key){ 27 28 case 1: $seconds = $this->get_seconds($this->ts_a_id); 29 break; 30 31 case 2: foreach ($method_set as $pos=>$methods){ 32 33 34 35 36 37 38 39 40 41 42 if($methods['int_method_id'] == "2"){$number = $methods['max_parameter']*2;} } $this->correlation($this->ts_a_id, $this->ts_type_id, $number); $tsstat_lr = new TSStatInterface($this->db, $this>db_ts, $this->ts_a_id, $this->ts_type_id, "0", 0, 1); break; case 3: case 4: case 6: $tsstat_idw = new TSStatInterface($this->db, $this->db_ts, $this->ts_a_id, $this->ts_type_id, "-1", 0, 1); break; default: break; } } 88 Anhang C: Auszüge aus dem Quellcode 43 #8.----Create calc-query for every gap 44 foreach($gaps as $key =>$gap){ 45 while ($i <= 10) { 46 if($gap[3] <= $method_set[$i]['max_gap_length'] or empty( $method_set[$i]['max_gap_length'])){ switch ($method_set[$i]['int_method_id']) { case 1: //linear interpolation $queries = $this>create_query_linear_interpolation($gap,$int_id, $tablename, $seconds); 50 break 2; 47 48 49 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 $col_a, case 2: //linear regression $nogap_ts = $tsstat_lr->get_surrounding_ts_nogap( $method_set['max_distance'], $method_set['max_parameter'] , $gap[0], $gap[1]); if(count($nogap_ts['rsquared']) == 0){ $queries[2] = false; $error_message = "No matching time series found!."; break 1; } $key =array_search(max($nogap_ts['rsquared']), $nogap_ts['rsquared']); if(max($nogap_ts['rsquared']) < $method_set[$i]['min_rsquared']){ $queries[2] = false; $error_message = "To high r²!."; break 1; } else{ $best_corr[0]['ts_timeser_id'] = $nogap_ts['ts_id'][$key]; $best_corr[0]['colnumber'] = $nogap_ts['colnumber'][$key]; $queries = $this->create_query_linear_regression( $gap,$int_id, $tablename, $miss_val, $col_a, $best_corr); break 1; } case 3: //IDW $nogap_ts = $tsstat_idw->get_surrounding_ts_nogap( $method_set['max_distance'], $method_set[$i]['max_parameter'] , $gap[0], $gap[1]); if(count($nogap_ts['distance_arr']) == 0){ $queries[2] = false; $error_message = "No matching time series found!."; break 1; } $nogap_ts[11] = $gap; if(intval(count($nogap_ts['ts_id']))-1 < intval(($method_set[$i]['min']))) { $queries[2] = false; $error_message = "No enough matching time series found!."; break 1; } else{ $queries = $this->create_query_IDW($nogap_ts, $int_id, $tablename, $col_a); break 1; } 89 Anhang C: Auszüge aus dem Quellcode //nearest neighbour $nogap_ts = $tsstat_idw>get_surrounding_ts_nogap($method_set['max_distance'], 1 , $gap[0], $gap[1]); 91 $nogap_ts[11] = $gap; 92 if(count($nogap_ts['ts_id']) == 0){ 93 $queries[2] = false; 94 $error_message = "No matching time series found!."; 95 break 1; 96 } 97 else{ 98 $queries = $this>create_query_nearest_neighbour($nogap_ts, $int_id, $tablename, $col_a); 99 break 1; 100 } 89 90 case 4: 101 102 103 case 6: //IDW & elevat $nogap_ts = $tsstat_idw>get_surrounding_ts_nogap($method_set['max_distance'], $method_set[$i]['max_parameter'] , $gap[0], $gap[1]); 104 if(count($nogap_ts['distance_arr']) == 0){ 105 $queries[2] = false; 106 $error_message = "No matching time series found!."; 107 break 1; 108 } 109 foreach ($nogap_ts['elevation'] as $x => $elevation){ 110 if(!isset($elevation)){ 111 $queries[2] = false; 112 $error_message = "Incorrect elevation found!."; 113 break 2; 114 } 115 } 116 $nogap_ts[11] = $gap; 117 if(intval(count($nogap_ts['ts_id']))-1 < intval(($method_set[$i]['min']))) { 118 $queries[2] = false; 119 break 1; 120 } 121 else{ 122 $source_elevation = $this->get_elevation($this>ts_a_id) ; 123 $queries = $this->create_query_IDW_elevat($nogap_ts, $int_id, $tablename, $col_a, $source_elevation); 124 break 1; 125 } 126 127 default: 128 break; 129 } //end switch 130 if ($queries[2] == true) break; 131 $i++; 132 } //end if gap length 133 else $i++; 134}//end while 90 Anhang C: Auszüge aus dem Quellcode if ($queries[2] == false){ $log_query .= $this->write_not_filled_gap($int_id, $gap, $error_message); $complete = false; 137 $error_message .= "No matching method found!."; 138 } 139 else{ 140 $query_all .= $queries[0]; 141 $log_query .= $queries[1]; 142 } 143 } //end for gap 135 136 144 145#10.----Delete old data 146 $this->delete_calc($this->ts_a_id, $col_a); 147 148#11.----Execute 149 $db_ts->sql_query($query_all); 150 $error = $db_ts->sql_error(); 151 $error['message'] ; 152 if(!empty($error['message'])){ 153 $error_message = "Unexpected Error! Please contact your application administrator (".$error['message'].")"; $log_query = "UPDATE int_interpolation SET complete = false where int_interpolation_id = $int_id;"; 155 } 156 else{} 154 157 158 $db->sql_query($log_query); 159 160#12.----Check and Update 161 $this->check_and_update_results($tablename, $col_a, $this- >ts_type_id, $this->ts_a_id); 162 163#13.---UPDATE ts_description -> int_interpolation_id, 164 165 $this->update_ts_description($this->ts_a_id, $col_a, $int_id); 166 $this->update_interpolation($int_id, $error_message); 167 168 return $int_id; 169} Abbildung 37: Quellcode der Funktion: interpolation_set() 91 Literatur Literatur AGRAR (2007): agrar.de - Informations- und Internetdienstleistungen. Dokumente zur Agrar- und Umweltpolitik. www.agrar.de (letzter Zugriff am 01.11.2007) ALLEN, R.G., L.S. PERIERA, D. RAES, & M. SMITH (1998): Crop evapotranspiration. Guidelines for computing crop water requirements. - FAO Irrigation and drainage paper, 56. Logan, USA. AHRENS, B. (2005): Distance in spatial interpolation of daily rain gauge data. In: Hydrology and Earth System Science Discussion, 2,S. 1893–1923. AQUAPLAN (2002): Zeitreihen und ihre Benutzung. Analyse und Design des Datenmodells. Aachen. AQUAPLAN (2007): Professionelle Zeitreihenverwaltung und -auswertung für alle zeitabhängigen Daten. Faltblatt. BEHRENDS, K. W. CZEGKA & S. BRAUNE (2006): Metadateneditoren für geowissenschaftliche Daten. In: STROBL, J., T. BLASCHKE & G. GRIESEBNER (Hsrg.): Angewandte Geoinformatik 2006. Beiträge zum 18. AGIT-Symposium Salzburg, S. 41-46. BKG (2007): GeoPortal.Bund. (BKG - Bundesamtes für Kartographie und Geodäsie). http://geoportal.bkg.bund.de (letzter Zugriff am 30.07.2007) BILL, R. (1999): Grundlagen der Geo-Informationssysteme. Bd. 1, Hardware, Software und Daten. Heidelberg. BURROUGH, P.A. & R.A. MCDONNELL (1998): Principles of Geographical Information Systems. New York. CEGI (2007): CE°GI' GEOcatalog. www.geocatalog.de (letzter Zugriff am 30.07.2007) CEN (2007): Europäisches Komitee für Normung. www.cenorm.be (letzter Zugriff am 07.08.2007) CON (2004): News: Open Geospatial Consortium verabschiedet neue Catalog Services Specification 2.0. Datum: 04.10.2004. www.conterra.de/de/service/news/ TERRA COX, S. (2006): Oberservation and Measurement. Version 0.14.7. OGC 05-087r4. OpenGIS® Best Practise. Draft. 92 Literatur DEUTSCH, C.V. & JOURNEL, A.G. (1998²). GSLIB – Geostatistical software library and user’s guide. Applied geostatistics series. Oxford University Press, New York. ENGLUND, E & A. SPARKS (1991): GEO-EAS 1.2.1. Geostatitical environmental assessment software. Users's guide. EPA 600/8, 91-008. EPA Environmental Monitoring Systems Laboratory. Las Vegas. FAMILI A., W.-M. SHEN, R. WEBER & E. SIMOUDIS (1997): Data preprocessing and intelligent data analysis. In: FAMILI, A. (Hrsg.): Intelligent Data Analysis 1, Vol.1, No.1, S. 323. FDGC (1998): Content Standard for Digital Geospatial Metadata. FGDC-STD-001-1998. www.fgdc.gov/metadata/csdgm FDGC (2007a): The Federal Geographic Data Committee. www.fgdc.gov/ (letzter Zugriff am 07.08.2007) FDGC (2007b): Geospatial Metadata Standards. www.fgdc.gov/metadata/geospatial-metadata-standards (letzter Zugriff am 07.08.2007) FLÜGEL, W.-A., B. BÖHM, C. BUSCH & KRALISCH, S. (2005): Tisza River Information System (TRIS) - A GeoData Server and Spatially Enabled Internet Applications for Water Resources Management. 31st International Symposium on Remote Sensing of Environment, Saint Petersburg, Russian Federation, June 20-24, 4pp. (CDROM) FLÜGEL, W.-A. (2006): The adaptive integrated data information system (AIDIS) for global water research. In: Water Resources Management (2007) Vol. 21. S. 199–210. FSU (2007a): Integriertes Landschafts-Managementsystem (ILMS) für Wasserwirtschaft, Kommunal- und Regionalplanung. http://ilms.uni-jena.de (letzter Zugriff am 25.09.2007) FSU (2007b): Brahmatwinn. Twinning European and South Asian River Basins to enhance capacity and implement adaptive management approaches. www.brahmatwinn.uni-jena.de (letzter Zugriff am 25.09.2007) GERLACH, N. (2001): Ein Vergleich räumlicher Interpolationsverfahren für die Windgeschwindigkeitsdaten in komplexen Gelände mit besonderem Bezug zur Windkraftnutzung. Diplomarbeit. GELOG (2006): HydroZIS. Zeitreiheninformationssystem. www.eg-wrrl.de/downloads/zeitreiheninformationssystem.pdf 93 Literatur GHOSH, R. A. (2006): Economic impact of open source software on innovation and the competitiveness of the Information and Communication Technologies (ICT) sector in the EU. Final report. 20.11.2006. GISPUNKT (2007): Geo-Metadaten. http://gis.hsr.ch/wiki/Geo-Metadaten (letzter Zugriff am 29.07.2007) GWP (2000): Integrated Water Resources Management. TAC Background Paper 4. Global Water Partnership, Stockholm. HANSEN, H. R. & G. NEUMANN (20018): Wirtschaftsinformatik 1. Stuttgart. HERZOG, A. (2005): Zeitreihenanalyse. www.stochastik.tu-clausthal.de (letzter Zugriff am 26.09.2007) HEUER, A. & G. SAAKE (2000²): Datenbanken. Konzepte und Sprachen. Landsberg. HILLMAN, D. (2005): Using Dublin Core. http://dublincore.org/documents/usageguide (letzter Zugriff am 06.08.2007) HINTERDING, A (2003): Entwicklung hybrider Interpolationsverfahren für den automatischen Betrieb am Beispiel meteorologischer Größen. Münster. HORSTMANN, J. (2006): Freie Datenbanken im Unternehmenseinsatz. Analyse und Vergleich der wichtigsten Open-Source-Datenbanken. In: LUTTERBECK, B., BÄRWOLFF M. & R.A. GEHRING (Hrsg.): Open Source Jahrbuch 2006. IEEE & THE OPEN GROUP (2004): The Open Group Base Specifications Issue 6, IEEE Std 1003.1-2001. IS 19115 (2003): ISO 19115 – Geographic information – Metadata. ISO 19115:2003(E). ISO/TC 211 (2007): ISO/TC 211 Geographic Information / Geomatics. www.isotc211.org (letzter Zugriff am 07.08.2007) JASPER, K. & J. SCHULLA (2007): Das hydrologische Modellsystem WaSiM-ETH. http://homepage.hispeed.ch/wasim (letzter Zugriff am 26.09.2007) KAZAKOS, W. (2006): ISO 19115 Metadatenverwaltung als zentraler Bestandteil von Geodateninfrastrukturen (GDI). In: STROBL, J., T. BLASCHKE & G. GRIESEBNER ( Hsrg.): Angewandte Geoinformatik 2006. Beiträge zum 18. AGIT-Symposium Salzburg, S. 284-289. 94 Literatur KISTERS AG (2007): WISKI - Wasserwirtschaftliche InformationsSystem KISTERS. www.kisters.de (letzter Zugriff am 07.08.2007) KLINKENBERG, B. (1997): Spatial Interpolation 1. www.geog.ubc.ca/courses/klink/gis.notes/ncgia/u40.html#SEC40.7 (letzter Zugriff am 14.07.2007) KLOSSEK, M. (2004): Vor- und Nachteile von Webanwendungen im Vergleich zu Lösungen auf Office Software Basis. www.eworks.de/research/2004/05/Web_vs_Office/Web_vs_Office.pdf KNIESS, A. & J. SCHERZER (2003): Plausibilitätsprüfung und Lückenersatz meteorologischer Daten. In: BMVEL Wasserhaushalt von Waldökosystemen: Methodenleitfaden zur Bestimmung der Wasserhaushaltskomponenten auf Level II - Fläche. Bundesministerium für Verbraucherschutz, Ernährung und Landwirtschaft, Bonn. KRUSE, F. (2007): PortalU - Umweltportal Deutschland. Herausgeber: Koordinierungsstelle PortalU im Niedersächsischen Umweltministerium. www.portalu.de (letzter Zugriff am 07.08.2007) LORUP, E. & J. FISLER (2006): Kontinuierliche Räumliche Variablen. http://gitta.info/ContiSpatVar/de/html/index.html (letzter Zugriff am 16.07.2007) LUBW (2002): Aufbereitung von Wasserstandsdaten. Landesanstalt für Umweltschutz Baden-Württemberg (LUBW). Karlsruhe. MÜLLER, U., REMKE, A. & VOGES, U. (2005): Katalogdienste und Metainformation. In: L. BERNARD, J. FITZKE & R. M. WAGNER (Hrsg.): Geodateninfrastruktur – Grundlagen und Anwendungen, S. 126-133. MÜLLER-WESTERMEIER, G. (2003):Verfügbarkeit und Qualität flächenbezogener Klimadaten. www.dwd.de (letzter Zugriff 20.07.2007) OLAYA, V. (2004): A gentle introduction to SAGA GIS. Edition 1.1. OGC (2007a): OGC Inititives - Interoperability Program. www.opengeospatial.org/initiatives/ (letzter Zugriff am 27.07.2007) OGC (2007b): Documents. www.opengeospatial.org/specs/ (letzter Zugriff am 27.07.2007) 95 Literatur OGC (2007c): About us. www.opengeospatial.org/about (letzter Zugriff am 27.07.2007) PEBESMA, E.J. (2006): Waht is it? www.gstat.com (letzter Zugriff am 17.07.2007) POSTGRESQL (2007): PostgreSQL 8.2.5 Documentation. www.postgresql.org/docs/8.2/ (letzter Zugriff am 24.09.2007) RAMSEY, P. (2007): PostGIS Manual. Version 1.2.2. RAPP, J. (2001): Probleme bei der Analyse von Klimatrends auf der Basis von Stationszeitreihen. http://www.dwd.de/de/FundE/Klima/KLIS/prod/KSB/ksb00/proana.pdf (letzter Zugriff am 13.07.2007) SAAKE, G., A. HEUER & K.-U. SATTLER 2005²: Datenbanken: Implementierungstechniken. Landsberg. SCHERZER, J. (2007): Modellierung meteorologischer Fehlwerte (Lückenersatz). www.udata.de/Meteodata.htm (letzter Zugriff am 01.10.2007) SCHÖNAU, S. (2003): Regionalisierung von Klimaelementen für die hydrologische Modellierung. Diplomarbeit. SCHULLA , J. (1997): Hydrologische Modellierung von Flussgebieten zur Abschätzung der Folgen von Klimaänderungen. Dissertation. SCHWARZE, J. (20005): Einführung in die Wirtschaftsinformatik. Herne. STOLL, B.L. (2006): Spass und Software-Entwicklung. Zur Motivation von Open-SourceProgrammierern. Dissertation. STREIT, U. (1998): Einführung in die Geoinformatik. http://ifgivor.uni-muenster.de/vorlesungen/Geoinformatik (letzter Zugriff am 21.09.2007) SYDRO (2007): Zeitreihenmanagement. SYDRO Ingenieurgesellschaft für Systemhydrologie, Wasserwirtschaft, Informationssysteme. www.sydro.de (letzter Zugriff am 27.07.2007) Wikipedia (2007): GeoMIS. http://de.wikipedia.org/wiki/GeoMIS (letzter Zugriff am 30.07.2007) 96 Literatur WSV (2007): Pegelonline: Informationen. Bundesanstalt für Wasserbau. Fachstelle der Wasser- und Schifffahrtsverwaltung für Informationstechnik (F-IT), Referat IT2 Gewässerkunde. www.pegelonline.wsv.de (letzter Zugriff am 07.08.2007) WRIGHT, P. (1998): The Significance of the Missing Data Problem in Knowledge Discovery. In: Proceedings of the First Southern Symposium on Computin. University of Southern Mississippi. 4.-5.12.1998. WYTZISK, A.& I., SIMONIS (2005): Einbindung von Sensoren und Simulatoren in Geodateninfrastrukturen. In: L. BERNARD, J. FITZKE & R. M. WAGNER (Hrsg.): Geodateninfrastruktur – Grundlagen und Anwendungen, S. 235 – 246. YOU, J, K. G. HUBBARD & S. GODDARD (2004): Comparison of Estimates from Spatial Regression and Inverse Distance Method. J. Atmos. Oceanic Tech., submitted. ZANDER, F. (2006): Anwendung aktueller Standards für die datenbankbasierte Speicherung von Geodaten am Beispiel der Saale. Studienprojekt (unveröffentlicht). ZAPPA, M. & D. VIVIROLI (2005): Das PREVAH-Modellsystem – Konzept und Anwendungsdemonstration. Hydrologische Einzugsgebietsmodellierung: Ergebnisse und Anwendungspotential für die Praxis, Fachtagung an der Eidgenössichen Forschungsanstalt für Wald, Schnee und Landschaft (WSL), 03.05.2005. Abstracts. ZINK, L. (2000): Einbettung von Interpolationsverfahren in die Datenbanksprache SQL. Datenbankunterstützung für die Umweltforschung. Dissertation. 97 Selbstständigkeitserklärung Hiermit bestätige ich, dass ich diese Diplomarbeit selbständig und nur unter Verwendung der angegebenen Quellen und Hilfsmittel angefertigt habe. Ich habe aus anderen Werken entnommene Daten, Abbildungen sowie wörtliche oder sinngemäße Zitat mit Quellenangaben gekennzeichnet. Jena, den