Der Bildauswerteplatz der Zukunft besteht bereits aus mehren Komponenten (siehe Abbildung \ref{figure:backend}). Insbesondere der Geoviewer funktioneirt nicht ohne Komponnenten im Hintergrund. Die Wichtigste Komponente ist das Backend. Dies speichert alle Szenarien, Layer und Data Objekte die auf dem Geoviewer angezeigt werden. Die Kommunikation zwischen dem Backend und andern verbundenen Komponenten läuft über die Middleware. Das Kartenmaterial bezieht sich der Geoviewer von einem Geoserver.
Der Bildauswerteplatz der Zukunft besteht aus mehreren Komponenten (siehe Abbildung \ref{figure:backend}).
Neben dem Geoviewer ist die Metadeten Anzeige an das Backend angeschlossen. Diese Anzeige kann durch eine Webseite erreicht werden. Durch Nachrichten an die Anzeige kann die aktuell angezeigte Information verändert werden und neue Informationen zur Anzeige hinzugefügt werden. Die Bedienung des Displays erfolgt meistens durch Auswahl auf dem Geoviewer der die Anzeige dementsprechend verändert.
Insbesondere der Geoviewer benötigt mehrere Komponenten im Hintergrund.
Der Stereo Bildauswerter ist acuh and des ABckend angeschlossen. Bisher wird dies Verbindung nur beim laden eines Bildes genutzt. Der SBA sendet die Koordinaten an den Geoviewer der dann den zu diesen Koordinaten zoomt.
Die zentrale Komponente ist dabei das Backend.
Der CSDADapter implementeirt eine Verbindung zur CSD. Mit Hilfe der isaac.lib (Siehe \cite[Clients für Datenzugriff]{CSD}) wird auf die Datenbank zugegriffen und Datenobjekte für das Backend erstellt.
Dieses speichert alle Szenarien, Layer und Datenobjekte, die auf dem Geoviewer angezeigt werden.
Die Kommunikation zwischen dem Backend und anderen verbundenen Komponenten läuft über die Middleware.
Ein Ziel dieser Arbteit ist es die Verbindung des CSDAdapter zu verbessern und wiederverwendbar für andre Projekte zu machen und alle Bibliotheken zu aktualisieren. Außerdem soll der SBA auch an die CSD angebunden werden. Aktuell muss der Bidlasuwerter jedes Bild einzeln vom Dateisystem laden, was ineffizient und langwierig ist. Der Bildauswerter soll die Daten direkt aus der CSD laden können und seine ausgewerteten Ergebnisse dort abspeichern. Eine weiter Anforderung an den SBA ist das dieser auch ohne die Verbindung zur Middleware bzw. dem backend funktionieren soll.
Der Geoviewer bezieht das Kartenmaterial von einem Geoserver.
Neben dem Geoviewer ist die Metadaten-Anzeige an das Backend angeschlossen.
Diese Anzeige kann durch eine Webseite erreicht werden. % Durch eine Webseite oder meinst du durch eine URL bzw Webservice?
Durch Nachrichten an die Anzeige kann die aktuell angezeigte Information verändert und neue Informationen zur Anzeige hinzugefügt werden.
Die Bedienung des Displays erfolgt meistens durch Auswahl auf dem Geoviewer, der die Anzeige dementsprechend verändert.
Der Stereo-Bildauswerter ist auch an das Backend angeschlossen.
Bisher wird diese Verbindung nur beim Laden eines Bildes genutzt.
Der SBA sendet die Koordinaten an den Geoviewer, der dann den zu diesen Koordinaten zoomt. % Was willst du sagen?
Der CSD-Adapter implementiert eine Verbindung zur CSD.
Mit Hilfe der isaac.lib (Siehe \cite[Clients für Datenzugriff]{CSD}) wird auf die Datenbank zugegriffen und die benötigten Datenobjekte für das Backend werden erstellt.
Ein Ziel dieser Arbeit ist es, die Verbindung des CSD-Adapter zu verbessern, für andere Projekte wiederverwendbar zu machen und alle Bibliotheken zu aktualisieren.
Außerdem soll der SBA an die CSD angebunden werden.
Aktuell muss der Bildauswerter jedes Bild einzeln aus dem Dateisystem laden, was ineffizient und langwierig ist.
Der Bildauswerter soll die Daten direkt aus der CSD laden können und seine ausgewerteten Ergebnisse dort abspeichern.
Eine weitere Anforderung an den SBA ist, dass dieser auch ohne die Verbindung zur Middleware bzw. dem Backend funktionieren soll. % Zur Verbesserung der Robustheit.
\begin{figure}
\begin{figure}
\centering
\centering
...
@@ -15,45 +30,78 @@ Ein Ziel dieser Arbteit ist es die Verbindung des CSDAdapter zu verbessern und w
...
@@ -15,45 +30,78 @@ Ein Ziel dieser Arbteit ist es die Verbindung des CSDAdapter zu verbessern und w
\label{figure:backend}
\label{figure:backend}
\end{figure}
\end{figure}
\section{Laden von Daten}
\section{Laden von Daten}
Der erste Schritt eines Bildauswerters ist das Laden der benötigten Daten, insbesondere das zur Auswertung vorgesehene Bild und die dazugehörigen Informationen aus der Umgebung. Bisher war nur das importieren von Bildern aus dem Dateisystem möglich. Das Bild wird häufig durch den CSD-Server zur Verfügung gestellt und soll deshalb leicht in den SBA geladen werden können. Eine Schwierigkeit hierbei ist, das in der CSD nur Bilder im NSIF Format abgespeichert und geladen werden können.
Der erste Arbeitsschritt eines Bildauswerters ist das Laden der benötigten Daten, insbesondere das zur Auswertung vorgesehene Bild und die dazugehörigen Informationen aus der Umgebung.
Der Geoviewer beschränkt sich beim Laden der Daten von dem Server auf einige wichtige Datentypen, insbesondere Bilder Videos und Berichte die sofern sie georeferenziert sind an der richtigen Stelle auf die Karte angezeigt werden.
Bisher war das Importieren von Bildern nur aus dem Dateisystem möglich.
Der Ablauf einer CSD Abfrage soll auf dem SBA und dem Geoviewer verläuft einigermaßen gleich. Der Nutzer erstellt eine Anfrage für einen CSDTask. Dieser Task wird dann ausgeführt und die Ergebnisse für die jeweiligen Anwendungsfälle verarbeitet.
Das Bild wird häufig durch den CSD-Server zur Verfügung gestellt und soll deshalb leicht in den SBA geladen werden können.
Eine Schwierigkeit ist dabei, dass die CSD Bilder nur im NSIF-Format abspeichert und bereitstellt.
Der Geoviewer beschränkt sich beim Laden der Daten von dem Server auf einige wichtige Datentypen, insbesondere Bilder, Videos und Berichte, die sofern sie georeferenziert sind, an der richtigen Stelle auf die Karte angezeigt werden.
Der Ablauf einer CSD-Abfrage soll auf dem SBA und dem Geoviewer ähnlich ablaufen. Der Nutzer erstellt eine Anfrage für einen CSD-Task.
Dieser Task wird dann ausgeführt und die Ergebnisse für die jeweiligen Anwendungsfälle werden verarbeitet. % klingt fast zu allgemein.
\subsection{CSD Task erstellen}
\subsection{CSD Task erstellen}
Um den Bildauswertern die Arbeit zu vereinfachen, soll in allen Programmen die gleiche Nutzeroberfläche zur Verfügung stehen, um Daten aus der CSD auszulesen (siehe Abbildung \ref{figure:requestUI}).
Um den Bildauswertern die Arbeit zu vereinfachen, soll zum Auslesen der CSD in allen Programmen dieselbe Nutzeroberfläche zur Verfügung stehen (siehe Abbildung \ref{figure:requestUI}).
Die Benutzeroberfläche ermöglicht das Suchen nach vielen Kriterien, wie z.B.l dem Namen der Mission, des Erstellers und der Erdstellzeit. Die Eingabe Oberfläche war im CSDPlugin des Geoviewers vorhanden muss aber angepasst werden, sodass sie wiederverwendbar ist. Um das zu gewährleisten wurde die Nutzeroberfläche in die CSDCommon Bibliothek verschoben.
Die Benutzeroberfläche ermöglicht das Suchen nach vielen Kriterien, wie z.B. den Namen der Mission, des Erstellers sowie der Erdstellungszeit.
Die Eingabeoberfläche war im CSD-Plugin des Geoviewers vorhanden, musste aber angepasst werden, damit sie wiederverwendbar wird.
Eine wichtige Funktion zur Einschränkung der Suchergebnisse ist das Auswählen einer Region. Der Geoviewer bietet hierfür eine einfache Möglichkeit. Der Nutzer kann durch eine Einzeichnung auf der Karte den Suchbereich selektieren und die Suche einschränken und so auch nur Ergebnis zu erhalten die ihn wirklich interessieren. Da die Verarbeitung der einzelnen Ergebnise zum Teil merkbar Zeit verbraucht führt dies auch zu einer flüssigeren Bedienung.
Um das zu gewährleisten, wurde die Nutzeroberfläche außerdem in die CSDCommon-Bibliothek verschoben.
Auf dem SBA gibt es keine einfache Möglichkeit einen Bereich zu selektieren. Um eine einfache Eingabe zur Verfügung zu stellen wurde die Verbindung vom SBA zum Geoviewer um eine Regionsauswahl erweitert.
Ist der SBA mit dem Geoviewers über das Backend verbunden und Geoviewer gestartet, so aktiviert sich der Regionsauswahl des Bildauswerters. Die Auswahl der Region für den SBA erfolgt auf dem Geoviewer und das Ergebnis wird an den SAB gesendet. In Abbildung \ref{figure:strukturSBA} ist diese Verbindung über das Backend an der CSD Plugin eingezeichnet.
Eine wichtige Funktion zur Einschränkung der Suchergebnisse ist das Auswählen einer Region.
Der Geoviewer bietet hierfür eine einfache Möglichkeit.
Die Nutzeroberfläche verfügt über einige Comboboxen um eine einfachere Auswahl von einigen Feldern ermöglicht. Diese Boxen sind durch ein Preset konfigurierbar, das einfach aus einer Konfigurationsfile erstellt werden kann. Dies hat den Vorteil das der Nutzer nicht alle Informationen per Hand eingeben muss, z.B. die URL der CSD Server muss so nicht jedes mal per Hand eingegeben werden.
Der Nutzer kann durch eine Einzeichnung auf der Karte den Suchbereich selektieren und damit die Suche einschränken, um nur die für ihn interessanten Ergebnisse zu erhalten.
Da die Verarbeitung vieler Ergebnisse merklich Zeit verbraucht, führt die Einschränkung der Region auch zu einer flüssigeren Bedienbarkeit.
Um die Nutzeroberfläche wiederverwendbar zu gestalten soll sie in eine CSDCommns Bibliothek integriert werden.
Auf dem SBA gibt es keine einfache Möglichkeit einen Bereich zu selektieren.
In den Abbildungen \ref{figure:strukturViewer} und \ref{figure:strukturSBA} ist diese Oberfläche als RequestUI in grün eingezeichnet. Das laden des Presets erfolgt auf dem SBA direkt und beim Geoviewer wird dieses vom CSDADapter geladen.
Um eine alternative einfache Eingabe zur Verfügung zu stellen, wurde die Verbindung vom SBA zum Geoviewer um eine Regionsauswahl erweitert.
Ist der SBA mit dem Geoviewer über das Backend verbunden und der Geoviewer gestartet, so aktiviert sich die Regionsauswahl für den Bildauswerter.
Die Auswahl der Region für den SBA erfolgt auf dem Geoviewer und das Ergebnis wird an den SBA gesendet.
In Abbildung \ref{figure:strukturSBA} ist diese Verbindung über das Backend an das CSD-Plugin eingezeichnet.
Die Nutzeroberfläche verfügt über einige Comboboxen, die eine einfache Auswahl von Feldern ermöglichen.
Diese Boxen sind durch ein Preset konfigurierbar, das einfach aus einer Konfigurationsfile erstellt werden kann.
Für den Nutzer hat das den Vorteil, dass er nicht alle Informationen von Hand eingeben muss.
Das ist z.B. für die URLs der CSD-Server sinnvoll.
Um die Nutzeroberfläche wiederverwendbar zu gestalten, soll sie in eine CSDCommons-Bibliothek integriert werden. %Gibt es mehrere CSDCommons-Bibliotheken?
In den Abbildungen \ref{figure:strukturViewer} und \ref{figure:strukturSBA} ist diese Oberfläche in grün eingezeichnet und als RequestUI bezeichnet.
Das Laden des Presets erfolgt auf dem SBA direkt und beim Geoviewer wird dieses vom CSD-Adapter geladen.
\caption{Die Eingabe eines CSD-Requests im SBA. Der Request ist auf Bilder eingeschränkt, da der SBA nur Bilder unterstützt}
\caption{Die Eingabe eines CSD-Requests im SBA.
Der Request ist auf Bilder eingeschränkt, da der SBA nur Bilder unterstützt.}
\label{figure:requestUI}
\label{figure:requestUI}
\end{figure}
\end{figure}
\subsection{Task ausführen}
\subsection{Task ausführen}
Nachdem der Nutzer einen Task erstellt hat, muss dieser ausgeführt werden. Die Eingaben des Nutzers müssen in eine CSD Querry umgewandelt und dir Verbindung zum Server hergestellt werden.
Nachdem der Nutzer einen Task erstellt hat, muss dieser ausgeführt werden.
Die Eingaben des Nutzers müssen in eine CSD-Query umgewandelt und die Verbindung zum Server hergestellt werden.
Der Geoviewer sendet die Task zur Verarbeitung an den CSD Adapter, der SBA verarbeitet den Task direkt. Bei beiden Zugriffen auf die CSD wird zunächst der Task gestartet und anschließend mit dem CSDReadingClient der Isaac.lib auf den Server zugegriffen. In den Abbildungen \ref{figure:strukturViewer} und \ref{figure:strukturSBA} ist dieser Teil iin grün markiert. Die Verarbetung eines Task und der Zugriff auf den CSD Server ist in beiden komponnenten ähnlich und wurde deshalb acuh in die CSDCommons Bibliothek ausgelagert.
Der Geoviewer sendet die Task zur Verarbeitung an den CSD-Adapter.
Der SBA verarbeitet den Task direkt.
Bei beiden Zugriffen auf die CSD wird zunächst der Task gestartet und anschließend mit dem CSDReadingClient der Isaac.lib auf den Server zugegriffen. % Warum sprichst du von 2 Zugriffen?
In den Abbildungen \ref{figure:strukturViewer} und \ref{figure:strukturSBA} ist dieser Teil grün markiert.
Die Verarbeitung eines Tasks und der Zugriff auf den CSD-Server ist in beiden Komponenten ähnlich und wurde deshalb auch in die CSDCommons-Bibliothek ausgelagert.
\subsection{Ergebnis auswerten}
\subsection{Ergebnis auswerten}
Der Isaac.lib kann bei einer Abfrage ein Result Handler übergeben werden. Gibt es zu einer Abfrage ein Ergebnis, wird dieses dem Result Handler übergeben. Ein Ergebniss besteht aus einem MetaDaten XML Dokument. Für den SBA und den CSD Adapter müssen zunächst alle generellen Informationen aus diesem XML Dokument herausgelesen werden. Anschließend folgt die Typ spezifische Verarbeitung.
Der Isaac.lib kann bei einer Abfrage ein Result Handler übergeben werden.
Gibt es zu einer Abfrage ein Ergebnis, wird dieses dem Result Handler übergeben.
Beim SBA wird anschließend ein CSD-Data-Objekt mit allen nötigen Informationen erstellt und dieses Objekt dem CSD-DataStore hinzugefügt. Das Ergebnis der Anfrage wird anschließend in einer Tabelle dargestellt und der Nutzer kann ein Bild zum Laden auswählen. In Abbildung \ref{figure:strukturSBA} ist der SBAReusltHandler der die Ergebnissverarbeitung übernimmt und der CSD Data Sore eingezeichnet. Die ResultUI ist das Oberfläche zur Auswahl eines Ergebnisses. Ein Screenshot der UI ist in Abbildung \ref{figure:resultUI}) zu sehen.
Ein Ergebnis besteht aus einem MetaDaten-XML-Dokument. Für den SBA und den CSD-Adapter müssen zunächst alle generellen Informationen aus diesem XML-Dokument herausgelesen werden.
Anschließend folgt die typspezifische Verarbeitung.
Der CSD-Adapter trennt die Ergebnisse erst nach ihrem Typ, sodass zum Beispiel Bilder und Videos anders verarbeitet werden. In Abbildung \ref{figure:strukturViewer} ist die Getrennte Verarbeitung durch den MainResultHandler und mehrere spezielle ResultHandler dargestellt. Im den meisten Fällen wird zuerst das eigentliche Objekt heruntergeladen und für den Geoviwer aufbereitet. Bei Bildern wird dies erst heruntergeladen und überprüft, ob das Bild direkt als Kartenmaterial eingebunden werden kann. Aus dem Metadaten-XML-File wird eine Metadaten-Anzeige erstellt. Außerdem wird ein Data Objekt erstellt und an das Backend gesendet, sodass das Ergebnis auf der Karte visualisiert werden kann. Im Geoviewer werden diese Objekt dann dargestellt und können verwendet werden, um die Metadaten im Metadaten Display anzuzeigen.
Beim SBA wird anschließend ein CSD-Data-Objekt mit allen nötigen Informationen erstellt und dieses Objekt dem CSD-DataStore hinzugefügt.
Das Ergebnis der Anfrage wird anschließend in einer Tabelle dargestellt und der Nutzer kann daraus ein Bild zum Laden auswählen.
In Abbildung \ref{figure:strukturSBA} ist der SBAResultHandler, der die Ergebnisverarbeitung übernimmt und der CSD-Data-Store eingezeichnet.
Die ResultUI ist das Oberfläche zur Auswahl eines Ergebnisses.
Ein Screenshot der UI ist in Abbildung \ref{figure:resultUI}) zu sehen.
Der CSD-Adapter trennt die Ergebnisse erst nach ihrem Typ, sodass zum Beispiel Bilder und Videos anders verarbeitet werden.
In Abbildung \ref{figure:strukturViewer} ist die Aufspaltung der Verarbeitung durch den MainResultHandler und mehrere spezielle ResultHandler dargestellt.
Im den meisten Fällen wird zuerst das eigentliche Objekt heruntergeladen und für den Geoviwer aufbereitet.
Bei Bildern wird dies erst heruntergeladen und überprüft, ob das Bild direkt in das Kartenmaterial eingebunden werden kann.
Aus dem Metadaten-XML-File wird eine Metadaten-Anzeige erstellt.
Außerdem wird ein Data Objekt erstellt und an das Backend gesendet, sodass das Ergebnis auf der Karte visualisiert werden kann.
Im Geoviewer werden diese Objekt dargestellt und können verwendet werden, um die Metadaten im Metadaten-Display anzuzeigen.