In diesem Kapitel wird zunächst der Multi-Display-Arbeitsplatz zur Bildauswertung und deren Komponenten vorgestellt. Im Kapitel \ref{chapter:design} wird das Design der neuen interaktiven Features dargestellt. Insbesondere wird in dieser Ausarbeitung das Laden und Speichern von Auswertungsergebnissen aus einem Coalition Shared Data Server behandelt. Kapitel \ref{chapter:implemetation} befasst sich mit der Implementation der einzelnen Komponenten. Schließlich wird in Kapitel \ref{chapter:testing} die Code-Qualität betrachtet und in Kapitel \ref{chapter:conclusion} ein Ausblick gegeben, welche Features in Zukunft die interaktive Nutzung von Aufklärungsergebnissen am Bildauswerteplatz der Zukunft verbessern können.
In diesem Kapitel wird zunächst der Multi-Display-Arbeitsplatz zur Bildauswertung und deren Komponenten vorgestellt.
Im Kapitel \ref{chapter:design} wird das Design der neuen interaktiven Features dargestellt.
Insbesondere wird in dieser Ausarbeitung das Laden und Speichern von Auswertungsergebnissen aus einem Coalition Shared Data Server behandelt.
Kapitel \ref{chapter:implemetation} befasst sich mit der Implementation der einzelnen Komponenten.
Schließlich wird in Kapitel \ref{chapter:testing} die Code-Qualität betrachtet und in Kapitel \ref{chapter:conclusion} ein Ausblick gegeben, welche Features in Zukunft die interaktive Nutzung von Aufklärungsergebnissen am Bildauswerteplatz der Zukunft verbessern können.
\section{Bildauswerteplatz der Zukunft}
\section{Bildauswerteplatz der Zukunft}
Der Bildauswerteplatz der Zukunft ist ein Arbeitsplatz, der einen Bildauswerter in seiner Arbeit optimal unterstützen soll. Es sollen alle erforderlichen Werkzeuge für die Bildauswertung zur Verfügung stehen. Der Bildauswerteplatz ist mit vier 1080p Bildschirmen ausgestattet (siehe Bild \ref{figure:Auswerteplatz}). Der mittlere obere Bildschirm ist ein 3D Bildschirm und kann verwendet werden, um unter anderm stereoskopische Luftbildaufnahmen anzuzeigen. Der untere flach liegende Bildschirm ist ein Touch-Bildschirm. Er kann z.B. verwendet werden, um Kartenmaterial der Umgebung anzuzeigen.
Der Bildauswerteplatz der Zukunft ist ein Arbeitsplatz, der einen Bildauswerter in seiner Arbeit optimal unterstützen soll.
Es sollen alle erforderlichen Werkzeuge für die Bildauswertung zur Verfügung stehen.
Der Bildauswerteplatz ist mit vier 1080p Bildschirmen ausgestattet (siehe Bild \ref{figure:Auswerteplatz}).
Der mittlere obere Bildschirm ist ein 3D Bildschirm und kann verwendet werden, um unter anderm stereoskopische Luftbildaufnahmen anzuzeigen.
Der untere flach liegende Bildschirm ist ein Touch-Bildschirm. Er kann z.B. verwendet werden, um Kartenmaterial der Umgebung anzuzeigen.
\begin{figure}
\begin{figure}
\centering
\centering
...
@@ -14,19 +22,44 @@ Der Bildauswerteplatz der Zukunft ist ein Arbeitsplatz, der einen Bildauswerter
...
@@ -14,19 +22,44 @@ Der Bildauswerteplatz der Zukunft ist ein Arbeitsplatz, der einen Bildauswerter
\end{figure}
\end{figure}
\subsection{Stereo-Bildauswerter}
\subsection{Stereo-Bildauswerter}
Der Stereo-Bildauswerter (SBA) ist ein Programm zur Annotation von 2D- und 3D-Bildern. Die Annotation umfasst klassische Einzeichnungen wie Text, Linien, Quadrate und Freihand-Einzeichnungen. Der Auswerter kann außerdem Geodaten hinzufügen, wenn diese nicht im Bild enthalten sind. Aus diesen Daten kann zum Beispiel ein Kompass oder ein Maßstab errechnet und eingezeichnet werden. Anschließend lässt sich das annotierte Bild mit den Einzeichnungen exportieren. Insbesondere das Anzeigen von stereoskopische Bildern gibt dem Bildauswerter einige Vorteile. So lässt sich zum Beispiel die Höhe eines Gebäudes wesentlich einfacher erkennen. Hierfür eigntet sich der mittlere 3D Bidlschirm besonders gut. Die Arbetisfläche ist in der Mitte und der Monitor unterstützt ebenfalls das Anzeigen der Bilder.
Der Stereo-Bildauswerter (SBA) ist ein Programm zur Annotation von 2D- und 3D-Bildern.
Die Annotation umfasst klassische Einzeichnungen wie Text, Linien, Quadrate und Freihand-Einzeichnungen.
Der Auswerter kann außerdem Geodaten hinzufügen, wenn diese nicht im Bild enthalten sind.
Aus diesen Daten kann zum Beispiel ein Kompass oder ein Maßstab errechnet und eingezeichnet werden.
Anschließend lässt sich das annotierte Bild mit den Einzeichnungen exportieren.
Insbesondere das Anzeigen von stereoskopische Bildern gibt dem Bildauswerter einige Vorteile.
So lässt sich zum Beispiel die Höhe eines Gebäudes wesentlich einfacher erkennen. Hierfür eigntet sich der mittlere 3D Bidlschirm besonders gut.
\subsection{Geoviewer}
\subsection{Geoviewer}
Der Geoviewer ist ein Werkzeug zur Kartendarstellung.Hier können interaktiv Geodaten visualisiert werden, um eine bessere Analyse der Bilder zu erzielen (siehe \cite{IVIG}). Diese Daten stammen aus diversen Zivilen und Militärischen Quellen und können auf der Karte angezeigt werden. Z.B. kann so der Pfad eins Schiffes oder Fahrzeugs angezeigt werden. Außerdem ermöglicht die Software das Einzeichnen von Formen und Symbolen auf der Karte, dis mit dem Backend und damit mit allen andern verbundenen Anzeigesystemen, wie z.B. dem digitalen Lagetisch. Die Software unterstützt die Benutzung durch Touch eingeben und deshalb eignet sich der TouchDisplay gut zur Bedienung.
Der Geoviewer ist ein Werkzeug zur Kartendarstellung.Hier können interaktiv Geodaten visualisiert werden, um eine bessere Analyse der Bilder zu erzielen (siehe \cite{IVIG}).
Diese Daten stammen aus diversen Zivilen und Militärischen Quellen und können auf der Karte angezeigt werden.
Ein Anwendugsfall kann das Anzeigen von Pfaden eines Schiffes oder Fahrzeuges sein.
Außerdem ermöglicht die Software das Einzeichnen von Formen und Symbolen auf der Karte, dis mit dem Backend und damit mit allen andern verbundenen Anzeigesystemen, wie z.B. dem digitalen Lagetisch.
Die Software unterstützt die Benutzung durch Touch eingeben und deshalb eignet sich der TouchDisplay gut zur Bedienung.
\subsection{\rec}
\subsection{\rec}
\rec ist eine Objektidentifikations- Software, die dem Bildauswerter hilft, Objekte schneller zu erkennen (siehe \cite{rec}). Die eines Bildauswerters ist die Erkennung von Objekten anhand von erkennbaren Bildmerkmalen. Bisher wurde diese Aufgebe von speziell ausgebildeten Bildauswertern durchgeführt die ihr wissen über die Objekte aus Handbüchern hatten. Die Erkennungsassistenz ermöglicht dem Bildauswerter das Objekt durch Merkmale zu beschreiben und zeigt mögliche Kandidaten an. Für jeden Kandidat steht ein detaillierter Steckbrief zur Verfügung.
\todo{überarbeiten}
\rec ist eine Objektidentifikations- Software, die dem Bildauswerter hilft, Objekte schneller zu erkennen (siehe \cite{rec}).
Die eines Bildauswerters ist die Erkennung von Objekten anhand von erkennbaren Bildmerkmalen.
Bisher wurde diese Aufgebe von speziell ausgebildeten Bildauswertern durchgeführt die ihr wissen über die Objekte aus Handbüchern hatten.
Die Erkennungsassistenz ermöglicht dem Bildauswerter das Objekt durch Merkmale zu beschreiben und zeigt mögliche Kandidaten an.
Für jeden Kandidat steht ein detaillierter Steckbrief zur Verfügung.
\subsection{Weitere Funktonen}
\subsection{Weitere Funktonen}
Zu dem oben genannten Programmen wird noch ein Webbrowser zum Anzeigen von Metadaten verwendet. Außerrdem muss ein Bidlasuwerter zu jedem ausgewertete Bild einen Bericht anfertigen. Für deisen ZWeck wird häufig ein herkömmliches Programm verwendet, wie zum Beispiel Word.
Zu dem oben genannten Programmen wird noch ein Webbrowser zum Anzeigen von Metadaten verwendet.
Außerrdem muss ein Bidlasuwerter zu jedem ausgewertete Bild einen Bericht anfertigen. Eine Möglcihleit den Bericht zu schreiben ist Word.
Der Bildauswerteplatz der Zukunft verfügt außerdem über zwei Kinect-Kameras, die oberhalb der mittleren Bildschirme angebracht sind. Mit ihnen wird die Bedienung eines Arbeitsplatzes mit vier Bildschirmen verbessert. Bei der herkömmlichen Bedienung mit Maus und Tastatur muss die Maus eine große Distanz zurücklegen, sobald man zwischen den Bildschirmen wechselt. Die eine Kinekt-Kamera erfasst die Kopfdrehung des Betrachter und die zweite erkennt, wenn der Nutzer mit dem Finger auf einen Bildschirm zeigt. Aus diesen Daten ergeben sich neue Möglichkeiten der Interaktion mit dem System (siehe \cite{Tim}).
Der Bildauswerteplatz der Zukunft verfügt außerdem über zwei Kinect-Kameras, die oberhalb der mittleren Bildschirme angebracht sind.
Mit ihnen wird die Bedienung eines Arbeitsplatzes mit vier Bildschirmen verbessert.
Bei der herkömmlichen Bedienung mit Maus und Tastatur muss die Maus eine große Distanz zurücklegen, sobald man zwischen den Bildschirmen wechselt.
Die eine Kinekt-Kamera erfasst die Kopfdrehung des Betrachter und die zweite erkennt, wenn der Nutzer mit dem Finger auf einen Bildschirm zeigt.
Aus diesen Daten ergeben sich neue Möglichkeiten der Interaktion mit dem System (siehe \cite{Tim}).
\section{Coalition Shared Data Server}
\section{Coalition Shared Data Server}
Coalition Shared Data \cite{CSD} Server ist der Speicherort von Aufklärungsergebnissen. Der Server implementiert den STANAG 4559 Standard und dient zur Speicherung von standardisierten Daten, wie zum Beispiel Videos, Bilder, Berichte und Pfaden. Auf diese Daten kann durch verschiedene schreibende und lesende Clients zugegriffen werden. Der Zugriff erfolgt über Corba und die Antwort ist ein Metadaten-XML-File, in dem alle Referenzinformationen enthalten sind. In dem XML-Dokument ist der Download-Link oder -Stream auf die eigentlichen Daten angegeben. Es ist möglich Assoziationen zwischen den Daten erstellen, um Abhängigkeiten darzustellen.
Coalition Shared Data \cite{CSD} Server ist der Speicherort von Aufklärungsergebnissen.
Der Server implementiert den STANAG 4559 Standard und dient zur Speicherung von standardisierten Daten, wie zum Beispiel Videos, Bilder, Berichte und Pfaden.
Auf diese Daten kann durch verschiedene schreibende und lesende Clients zugegriffen werden.
Der Zugriff erfolgt über Corba und die Antwort ist ein Metadaten-XML-File, in dem alle Referenzinformationen enthalten sind.
In dem XML-Dokument ist der Download-Link oder -Stream auf die eigentlichen Daten angegeben.
Es ist möglich Assoziationen zwischen den Daten erstellen, um Abhängigkeiten darzustellen.
Ein Ziel dieser Arbeit ist es die Verbindung des CSDAdapter zu verbessern und wiederverwendbar für andre Projekte zu machen und zu aktualisieren.
Außerdem soll der SBA auch an die CSD angebunden werden.
Aktuell muss der Bidlasuwerter jedes Bild einzeln 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.
\section{Übersicht über die bestehende Struktur}
\section{Übersicht über die bestehende Struktur}
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 mehren 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.
Die zentrale Komponente ist das Backend. Dies speichert alle Informationen wie die Data Objekte die auf dem Geoviewer angezeigt werden.
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 Kommunikation zwischen dem Backend und andern verbundenen Komponenten läuft über die Middleware. Das Kartenmaterial bezieht sich der Geoviewer von einem Geoserver. Der Geoserver enthält das Karten Material des Systems und stellt dieses über Web Services zur Verfügung.
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.
Durch die Auswahl eines Data Objektes im Geoviewer können Metadaten zu diesem Objekt abgefragt werden. Diese Daten werden über die Metadaten Anzeige im Webbrowser dargestellt.
Der Stereo Bildauswerter ist ebenfalls an das Backend angeschlossen. Bisher wird dies Verbindung beim laden eines Bildes genutzt. Der SBA sendet die Koordinaten an den Geoviewer der dann zur Umgebung des Bildes zoomt.
Der CSDAdapter implementiert 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.
Der Geoviewer beschränkt sich beim Laden aus der CSD auf einige wichtige Datentypen, insbesondere Bilder Videos und Berichte die sofern sie georeferenziert sind an der richtigen Stelle auf die Karte angezeigt werden.
Insbesondere die Bilder aus der CSD werden heruntergeladen und wenn möglich als zusätzliches Kartenmaterial in den Geoserver integriert. Damit eignen sich diese Datenobjekte nicht zum Laden und verarbeiten im Stereo Bildauswerter.
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.
\caption{Die Eingabe eines CSD-Requests im SBA. Der Request ist auf Bilder eingeschränkt, da der SBA nur Bilder unterstützt}
\caption{Die Struktur der Komponenten des Bildauswerteplatzes. Die Kommunikation zwischen den Komponenten erfolgt hauptsächlich über den Java Message Service (JMS) }
\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 Schritt 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 nur das importieren von Bildern 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 hierbei ist, dass in der CSD nur Bilder im NSIF Format abgespeichert und geladen werden können.
Das NSIF Bildformat entspricht dem STANAG 4559 Standard und enthält neben dem Bild weiter Informationen.
Der Ablauf einer CSD Abfrage soll auf dem SBA und dem Geoviewer verläuft, bis auf die Verarbeitung der Ergebnisse 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.
\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 in allen Programmen die gleiche Nutzeroberfläche zur Verfügung stehen, um Daten aus der CSD auszulesen (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. 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.
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.
Eine wichtige Funktion zur Einschränkung der Suchergebnisse ist das Auswählen einer Region.
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.
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.
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.
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.
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.
Die Nutzeroberfläche verfügt über einige Comboboxen um eine einfachere Auswahl von Feldern ermöglicht.
Diese Boxen sind durch ein Preset konfigurierbar, das einfach aus einer Konfigurationsdatei 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.
Um die Nutzeroberfläche wiederverwendbar zu gestalten soll sie in eine CSDCommns Bibliothek integriert werden.
In den Abbildungen \ref{figure:strukturViewer} und \ref{figure:strukturSBA} ist diese Oberfläche als RequestUI in grün eingezeichnet.
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.
Das laden des Presets erfolgt auf dem SBA direkt und beim Geoviewer wird dieses vom CSDADapter 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 bisher 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 Querry umgewandelt und dir 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.
In den Abbildungen \ref{figure:strukturViewer} und \ref{figure:strukturSBA} ist dieser Teil iin grün markiert.
Die Verarbeitung eines Task und der Zugriff auf den CSD Server ist in beiden Komponenten ähnlich und wurde deshalb 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 wiederum dem Result Handler übergeben.
Ein Ergebnis besteht aus einem MetaDaten XML Dokument.
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.
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 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 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.
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 zur weiteren Verarbeitung aufbereitet.
Bei Bildern wird dies erst heruntergeladen und überprüft, ob das Bild direkt als Kartenmaterial in den Geoserver eingebunden werden kann.
Aus dem Metadaten-XML-File wird eine Ansicht für die Metadaten-Anzeige erstellt.
Außerdem wird ein Data Objekt erstellt und an das Backend gesendet, sodass das Ergebnis im Geoviewer visualisiert werden kann.
Durch Auswahl eines Objektes auf dem Geoviewer werden die Metadaten im Webbrowser dargestellt
\begin{landscape}
\begin{landscape}
\begin{figure*}
\begin{figure*}
...
@@ -79,23 +117,31 @@ Der CSD-Adapter trennt die Ergebnisse erst nach ihrem Typ, sodass zum Beispiel B
...
@@ -79,23 +117,31 @@ Der CSD-Adapter trennt die Ergebnisse erst nach ihrem Typ, sodass zum Beispiel B
\section{Ausgewertete Daten des SBA speichern}
\section{Ausgewertete Daten des SBA speichern}
\subsection{Export in \rec}
\subsection{Export in \rec}
Eine Funktion der Erkennungsassistenz \rec ist das Hinzufügen von bisher unbekannten Fahrzeugen. Sind zum Beispiel Piraten mit ihrem selbstgebauten Boot unterwegs, ist diese höchst wahrscheinlich nicht im System. \rec unterstützt das hinzufügen von neuen Objekten und Bildern. In dem SBA wurde eine Funktion eingebaut, die das Exportieren eines Bildes für den \rec vereinfacht. Durch einen Button wird der rendervorgang des Bildes gestartet und in einen definierten Ordner abgespeichert. In diesem Ordner durchsucht \rec regelmäßig und bietet einen Import an.
Eine Funktion der Erkennungsassistenz \rec ist das Hinzufügen von bisher unbekannten Fahrzeugen.
Sind zum Beispiel Piraten mit selbstgebauten Booten unterwegs, sind diese höchst wahrscheinlich nicht im System.
\rec unterstützt das hinzufügen von neuen Objekten und Bildern.
In dem SBA wurde eine Funktion integriert, die das Exportieren eines Bildes für den \rec vereinfacht.
Durch einen Button wird der Rendervorgang des Bildes gestartet und in einen definierten Ordner abgespeichert.
In diesem Ordner durchsucht \rec regelmäßig und bietet einen Import für neue Objekte an.
\subsection{Export in CSD}
\subsection{Export in CSD}
Nach einer erfolgreichen Auswertung soll das annotierte Bild auch wieder zu den CSD hinzugefügt werden. Hierfür wurde in den SBA ein schreibender Zugriff auf den Server implementiert. Zunächst kann der Nutzer die nötigen und bei Bedarf auch einige optionale Meta-Informationen eingeben. Hierfür wurde eine Oberfläche angelegt (siehe Abbildung \ref{figure:metaUI}). Falls das Bild aus der CSD geladen wurde, so wird das UI mit den Werten des geladenen Bildes gefüllt. Die Oberfläche überprüft, ob alle zwingenden Richtlinien eingehalten wurden. Das kann zum Beispiel bedeuten, dass gewisse Felder notwendig sind und dass einige Felder eine maximale Länge haben. Zur einfacheren Benutzung wurden Buttons zur einfacheren Datumsauswahl und zum Generieren von zufälligen IDs hinzugefügt.
Nach einer erfolgreichen Auswertung soll das annotierte Bild auch wieder zu den CSD hinzugefügt werden.
Nachdem der Nutzer alle Informationen eingetragen hat, beginnt der eigentliche Schreibvorgang. Zunächst wird das Bild gerendert und mit Hilfe des NSIF-Creators in ein NSIF-Bild umgewandelt. Dies ist notwendig, da in der CSD nur NSIF Bilder gespeichert werden können. Das Metadaten-XML-File wird mit Hilfe des CSD-Writing Cleints der Isaac.lib an die CSD gesendet. Das Bild wird in einem HTTP Server der der Isaac.lib zur Verfügung gestellt, sodass CSD Server das Bild herunterladen kann.
Hierfür wurde in den SBA ein schreibender Zugriff auf den Server implementiert.
Zunächst kann der Nutzer die nötigen und bei Bedarf auch einige optionale Meta-Informationen eingeben.
Hierfür wurde eine Oberfläche angelegt (siehe Abbildung \ref{figure:metaUI}).
Falls das Bild aus der CSD geladen wurde, so wird das UI mit den Werten des geladenen Bildes gefüllt.
Die Oberfläche überprüft, ob alle zwingenden Richtlinien eingehalten wurden.
Das kann zum Beispiel bedeuten, dass gewisse Felder notwendig sind und dass einige Felder eine maximale Länge haben.
Zur Benutzung wurden Buttons zur einfacheren Datumsauswahl und zum Generieren von zufälligen IDs hinzugefügt.
Nachdem der Nutzer alle Informationen eingetragen hat, beginnt der eigentliche Schreibvorgang.
Zunächst wird das Bild gerendert und mit Hilfe des NSIF-Creators in ein NSIF-Bild umgewandelt.
Das Metadaten-XML-File wird mit Hilfe des CSD-Writing Cleints der Isaac.lib an die CSD gesendet.
Das Bild wird in einem HTTP Server der der Isaac.lib zur Verfügung gestellt, sodass CSD Server das Bild herunterladen kann.
\caption{Die Anzeige aller Ergebnisse im SBA. Die Tabelle ist sortierbar und es lassen sich beliebige Spalten ein- und ausblenden. Falls ein Vorschaubild verfügbar ist, wird es an der Seite zusammen mit dem Kommentar des Bildes angezeigt.}
\caption{Die Nutzeroberfläche zum Eingeben der Metadaten. Links die Informationen zum Erzeugen eines NSIF Bildes und rechts die Informationen für die CSD}
@@ -128,3 +128,11 @@ In der Implementierung sind beim Bereitstellen des Bildes einige Probleme aufget
...
@@ -128,3 +128,11 @@ In der Implementierung sind beim Bereitstellen des Bildes einige Probleme aufget
Zum einen ist darauf zu achten, dass die Infrastruktur erlaubt, dass der Server eine Rückverbindung zum Client aufbaut. Ist diese Funktionalität durch eine Firewall blockiert, kann das Bild nicht übertragen werden.
Zum einen ist darauf zu achten, dass die Infrastruktur erlaubt, dass der Server eine Rückverbindung zum Client aufbaut. Ist diese Funktionalität durch eine Firewall blockiert, kann das Bild nicht übertragen werden.
Außerdem überträgt die Isaac.lib nicht die IP-Adresse des Clients als Download-URL, sondern den DNS-Namen. Dies kann ebenfalls dazu führen, dass der Server das Bild nicht herunterladen kann.
Außerdem überträgt die Isaac.lib nicht die IP-Adresse des Clients als Download-URL, sondern den DNS-Namen. Dies kann ebenfalls dazu führen, dass der Server das Bild nicht herunterladen kann.
In diesem Kapitel befassen wir uns mit der Qualität und der Absturzsicherheit der implementierten Features.
\section{Find Bugs}
\section{Find Bugs}
Um in der Benutzung keine Programmabstürze durch Programmierfehler zu erhalten wurde der Code mit Findbugs überprüft. Alle Fehlerquellen die Findbugs untersucht sind in dem Code beseitigt worden. Lediglich die Fehler in der JHotDraw GUI Bibliothek, auf dem der SBA aufbaut, wurden nicht behoben.
Das Parsen der XML Dokumente im ResultHandler ist hier insbesondere überprüft worden. Viele Felder sind optional und werden im CSDAdapter und im SBA ausgelesen. Es muss also immer darauf geachtet werden ob die Informationen vorhanden sind und auch verwendet werden können.
Bei der Nutzereingabe zum Schreiben in die CSD wird direkt bei der Eingabe die Richtigkeit und Notwendigkeit der einzelnen Felder überprüft. Übergibt man ein unvollständiges XML Dokument an die Isaac.lib so wirft diese Fehler. Um das zu vermeiden kann der Nutzer die Anfrage nicht absenden bevor alle Eingaben korrekt erfolgt sind.
\section{Testing}
Die Testcases das CSDAdapters sind erhalten geblieben. Für den SBA wurden keine Testcases erstellt. Das Parsen des XML Dokuments unterscheidet sich unwesentlich von dem CSDAdapter und ist hauptsächlich im allgemeine ResultHandler der CSDCommons Bibliothek enthalten. Dieser Test ist also durch den CSDAdapter abgedeckt.
\subsection{Direktest laden aus der CSD mit der UUID }
Jedes Objekt in der CSD hat eine eindeutige UUID. Diese wird verwendet um die Datensätze eindeutig zu identifizieren. Bekommt ein Bildauswerter den Auftrag ein Bestimmtes Bild auszuwerten bekommt er die ID des Bildes gesagt. Die Eingabeoberfläche unterstütze das Suchen nach der UUID, jedoch wird das Ergebnis anschließend in der Tabelle angezeigt. Da diese Suche nur ein einziges Ergebnis liefern kann ist das erneute Anzeigen und aussuchen das Nutzer überflüssig. Das direkte laden eines Bildes anhand der UUID könnte die Arbeit des Bildauswerters verbessern.
\subsection{SBA-Import durch Geoviewer}
\subsection{SBA-Import durch Geoviewer}
Bisher werden auf dem Geoviewer die Objekte aus der CSD nur dargestellt, und ermöglichen das Anzeigen der zugehörigen Metadaten auf dem MetaDaten Display. Hier kann eine weiter Verbindung zwischen SBA und Geoviewer hergestellt werden. Durch Auswahl des Objektes im Geoviewer wird das Bild im SBA geladen.