Commit c9d026a7 by Kai Westerkamp

Merge branch 'master' of ssh://git.breab.org:2222/kai/bachlorarbeit

Conflicts: Ausarbeitung/chapter1.tex Ausarbeitung/chapter2.tex Ausarbeitung/chapter5.tex
parents ee937eb2 eab73428
\chapter{Einleitung}
\label{chaper:introduction}
In diesem Kapitel wird zunächst der Multi-Display-Arbeitsplatz zur Bildauswertung und deren Komponenten vorgestellt.
In diesem Kapitel werden zunächst der Multi-Display-Arbeitsplatz zur Bildauswertung und dessen 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.
Insbesondere wird 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}
Der Bildauswerteplatz der Zukunft ist ein Arbeitsplatz, der einen Bildauswerter in seiner Arbeit optimal unterstützen soll.
Der Bildauswerteplatz der Zukunft ist ein Arbeitsplatz, der einen Bildauswerter bei 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 mittlere obere Bildschirm ist ein 3D Bildschirm und kann z.B. 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}
......@@ -28,10 +28,12 @@ Der Auswerter kann außerdem Geodaten hinzufügen, wenn diese nicht im Bild enth
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.
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}
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}).
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.
......@@ -39,27 +41,29 @@ Die Software unterstützt die Benutzung durch Touch eingeben und deshalb eignet
\subsection{\rec}
\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.
\rec ist eine Objekt-Identifikations-Software, die dem Bildauswerter unterstützt, Objekte schneller zu erkennen (siehe \cite{rec}).
Die Aufgabe eines Bildauswerters ist die Erkennung von Objekten anhand von charakteristischen Bildmerkmalen.
Bisher wurde diese Aufgebe von speziell ausgebildeten Bildauswertern durchgeführt, die ihr Wissen über die Objekte aus Handbüchern erlernt hatten.
Die Erkennungsassistenz ermöglicht dem Bildauswerter, das Objekt durch Merkmale zu beschreiben und zeigt mögliche Kandidaten an. % Verstehe ich nicht. Wer muss jetzt hier was beschreiben und warum?
Für jeden Kandidat steht ein detaillierter Steckbrief zur Verfügung.
\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. Eine Möglcihleit den Bericht zu schreiben ist Word.
Ergänzend zu dem bereits genannten Programmen wird noch ein Webbrowser zum Anzeigen von Metadaten verwendet.
Zu jedem ausgewerteten Bild muss der Bildauswerter einen Bericht anfertigen.
Dafür wird häufig Standardsoftware verwendet, wie zum Beispiel Microsoft 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.
Mit ihnen wird die Bedienung eines Arbeitsplatzes mit vier Bildschirmen erlciehtert.
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}).
Die eine Kinect-Kamera erfasst die Kopfdrehung des Betrachters und die zweite erkennt, wenn der Nutzer mit dem Finger auf einen Bildschirm zeigt.
Mit dieser Technologie ergeben sich neue Möglichkeiten der Interaktion mit dem System (siehe \cite{Tim}).
\section{Coalition Shared Data Server}
Coalition Shared Data \cite{CSD} Server ist der Speicherort von Aufklärungsergebnissen.
Coalition Shared Data Server \cite{CSD} 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.
Es ist möglich, Assoziationen zwischen den Daten zu erstellen, um Abhängigkeiten darzustellen.
% Eventuell besser erklären was Assoziationen sind.
......@@ -6,17 +6,25 @@ Ein Ziel dieser Arbeit ist es die Verbindung des CSDAdapter zu verbessern und wi
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.
Eine weiter Anforderung an den SBA ist das dieser auch ohne die Verbindung zur Middleware bzw. dem Backend funktionieren soll. % Zur Verbesserung der Robustheit.
\section{Übersicht über die bestehende Struktur}
Der Bildauswerteplatz der Zukunft besteht aus mehren Komponenten (siehe Abbildung \ref{figure:backend}).
Die zentrale Komponente ist das Backend. Dies speichert alle Informationen wie die 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 Geoserver enthält das Karten Material des Systems und stellt dieses über Web Services zur Verfügung.
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.
Die zentrale Komponente ist das Backend.
Dies speichert alle Informationen wie die Data Objekte die auf dem Geoviewer visualisiert werden.
Die Kommunikation zwischen dem Backend und andern verbundenen Komponenten läuft über die Middleware.
der Geoviewer bezieht das Kartenmaterialsich von einem Geoserver.
Der Geoserver stellt dieses über Web Services zur Verfügung.
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 falls das Bild goereferenziert ist 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 den Server 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.
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.
\begin{figure}
......@@ -26,35 +34,37 @@ Insbesondere die Bilder aus der CSD werden heruntergeladen und wenn möglich als
\label{figure:backend}
\end{figure}
\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.
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.
Bisher war das Importieren von Bildern nur 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, dass in der CSD nur Bilder im NSIF Format abgespeichert und geladen werden können.
Eine Schwierigkeit dabei ist, dass in der CSD nur Bilder im NSIF Format abgespeichert und bereitgestellt werden.
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 Ablauf einer CSD Abfrage soll auf dem SBA und dem Geoviewer verläuft 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}
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. 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.
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. 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.
Um das zu gewährleisten, wurde die Nutzeroberfläche außerdem 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.
Der Geoviewer bietet hierfür eine einfache Möglichkeit.
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.
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.
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 um eine einfachere Auswahl von Feldern ermöglicht.
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 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.
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.
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.
......@@ -62,36 +72,40 @@ Das laden des Presets erfolgt auf dem SBA direkt und beim Geoviewer wird dieses
\begin{figure}
\centering
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{RequestUI.png}
\caption{Die Eingabe eines CSD-Requests im SBA. Der Request ist auf Bilder eingeschränkt, da der SBA bisher 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}
\end{figure}
\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 Verarbeitung eines Task und der Zugriff auf den CSD Server ist in beiden Komponenten ähnlich und wurde deshalb 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 in die CSDCommons-Bibliothek ausgelagert.
\subsection{Ergebnis auswerten}
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.
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.
Anschließend folgt die typspezifische Verarbeitung.
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.
Das Ergebnis der Anfrage wird anschließend in einer Tabelle dargestellt und der Nutzer kann daraus Bild zum Laden auswählen.
In Abbildung \ref{figure:strukturSBA} ist der SBAResultHandler der die Ergebnisverarbeitung ü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
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.
\begin{landscape}
\begin{figure*}
......@@ -102,7 +116,8 @@ Durch Auswahl eines Objektes auf dem Geoviewer werden die Metadaten im Webbrowse
\begin{figure*}
\includegraphics[scale=1]{../UML/Struktur SBA.png}
\caption{Struktur der Anbindung an die CSD im Stereo-Bildauswerter. In Gelb sind die Swing-Actions eingezeichnet, die der Nutzer aufrufen kann.}
\caption{Struktur der Anbindung an die CSD im Stereo-Bildauswerter.
In Gelb sind die Swing-Actions eingezeichnet, die der Nutzer aufrufen kann.}
\label{figure:strukturSBA}
\end{figure*}
\end{landscape}
......@@ -110,7 +125,8 @@ Durch Auswahl eines Objektes auf dem Geoviewer werden die Metadaten im Webbrowse
\begin{figure}
\centering
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{ResultUI.png}
\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 dieses an der Seite zusammen mit dem Kommentar des Bildes angezeigt.}
\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 dieses an der Seite zusammen mit dem Kommentar des Bildes angezeigt.}
\label{figure:resultUI}
\end{figure}
......@@ -132,12 +148,12 @@ Zunächst kann der Nutzer die nötigen und bei Bedarf auch einige optionale Meta
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.
Das kann zum Beispiel die Prüfung von Pflichteingaben oder der maximalen Zeichenzahl für bestimmte Felder bedeuten.
Zur Benutzung wurden Buttons zur schnellen 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.
Das Bild wird in einem HTTP Server der der Isaac.lib zur Verfügung gestellt, sodass CSD Server das Bild herunterladen kann. % gehört der HTTP Server zur isaac.lib? Das ``der Isaac.lib'' kann man auf 2 Arten lesen (Genetiv ODER Dativ-Objekt zum Verb ``zur Verfügung stellen''
\begin{figure}
\centering
......
......@@ -5,20 +5,24 @@
\subsection{CSD-Task erstellen}
Um eine wiederverwendbare Oberfläche einzubinden, wird eine Schnittstelle angelegt (siehe Abbildung \ref{figure:klassenRequest}).
Die Schnittstelle wird aufgerufen, sobald der Nutzer einen Task absendet und bei der Auswahl einer Region. Das CSD-Plugin des Geoviewers implementiert diese Schnittstelle.
Die Schnittstelle wird aufgerufen, sobald der Nutzer einen Task absendet und bei der Auswahl einer Region.
Das CSD-Plugin des Geoviewers implementiert diese Schnittstelle.
Region-Anfragen werden direkt bearbeitet und der Task Request wird an den CSD-Adapter gesendet.
Im SBA wird das Interface der CSDRequestAction implementiert.
Der Aufruf der Region wird falls möglich über einen DirectRequest an das CSDPlugin weitergeleitet.
Der Aufruf der Region wird falls möglich über einen DirectRequest an das CSD-Plugin weitergeleitet.
Die Antwort darauf erhält der SBA erneut über einen DirectRequest. % Warum ``erneut''?
Eine DirectMessage ist im System der Middleware nicht vorhanden. Deshalb werden an dieser Stelle ersatzweise Requests verwendet.
Wir können nicht nur einen einzigen Request absetzen, da nicht bekannt ist, wie lange der Nutzer zum Einzeichnen benötigt.
Nutzt man lediglich einen DirectRequest, so müsste die Antwort der Plugins innerhalb des Timeouts von 5 Sekunden erfolgen.
Eine DirectMessage ist im System der Middleware nicht vorhanden.
Deshalb werden an dieser Stelle ersatzweise Requests verwendet.
Ein einziger Request genügt für diese Aufgabe nicht, da nicht bekannt ist, wie lange der Nutzer zum Einzeichnen benötigt.
Nutzt man lediglich einen DirectRequest, so müsste die Antwort der Plugins innerhalb des Timeouts von 5 Sekunden erfolgen, was nicht gewährleistet werden kann.
\begin{figure}
\centering
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{../UML/Klassen RequestDialogue.png}
\caption{Das Generieren von Tasks hat eine einheitliche Schnittstelle. Diese wird im SBA und CSDPlugin implementiert und so kann der RequestDialog wiederverwendet werden}
\caption{Das Generieren von Tasks hat eine einheitliche Schnittstelle.
Diese wird im SBA und CSDPlugin implementiert.
So kann der RequestDialog wiederverwendet werden.}
\label{figure:klassenRequest}
\end{figure}
......@@ -58,13 +62,14 @@ Dieser lokale Request lässt sich im Konfigurationsfile aktivieren und führt da
Die Ergebnisse aus einer CSD-Abfrage werden als Liste aus XML-Dokumenten an die Methode newResults(List<Documents>) übergeben.
Diese ist ein Teil des Interfaces isaac.lib ResultHandler.
Für den SBA und den CSD-Adapter müssen zunächst einige allgemeine Informationen aus dem XML-Dokument ausgelesen werden.
Deshalb wurde die abstrakte Klasse ResultHandler in der CSDCommon Bibliothek angelegt (siehe Abbildung \ref{figure:klassenResult}.
Deshalb wurde die abstrakte Klasse ResultHandler in der CSDCommon-Bibliothek angelegt (siehe Abbildung \ref{figure:klassenResult}.
Für jedes neue Ergebnis werden zunächst alle allgemeinen Felder ausgelesen und anschließend die Methode newResult aufgerufen, um das Ergebnis genau zu verarbeiten. %Was meinst du mit ``genau verarbeiten''?
Außerdem wird jeder Fehler abgefangen, der bei der Auswertung passieren könnte. % ``jeder Fehler wird abgefangen''. Bist du sicher das du ALLE Fehler abfängst? Wenn nicht würde ich schreiben ``Außerdem werden Fehler abgefangen''
Außerdem wird jeder Fehler abgefangen, der bei der Auswertung passieren könnte. % ``jeder Fehler wird abgefangen''. Bist du sicher das du ALLE Fehler abfängst? Wenn nicht, würde ich schreiben ``Außerdem werden Fehler abgefangen''
Bricht die Verarbeitung eines Ergebnisses ab, so wird die Methode storeErrorProduct aufgerufen.
In der Standard-Implementierung wird das XML-Dokument in einem Ordner abgelegt.
Ist ein Ergebnis verarbeitet, wird im zugehörigen Task die Methode resultFinished aufgerufen. So kann der Task, nachdem alle Ergebnis ausgewertet sind, die Methode afterTask aufrufen, um einen eventuelle Nachbearbeitung durchzuführen.
Ist ein Ergebnis verarbeitet, wird im zugehörigen Task die Methode resultFinished aufgerufen.
So kann der Task, nachdem alle Ergebnis ausgewertet sind, die Methode afterTask aufrufen, um einen eventuelle Nachbearbeitung durchzuführen.
\begin{figure}
\centering
......@@ -97,27 +102,28 @@ Alle Ergebnisse werden dem CSDDataStore hinzugefügt und der Nutzer kann sich in
Sobald der Nutzer ein Bild aus der Datenbank öffnen möchte, wird dieses heruntergeladen und aus dem NSIF-Format in den SBA importiert.
\section{Ausgewertete Daten speichern}
Das Exportieren von Daten war im SBA im Allgemeinen vorhanden. %Im Allgemeinen - im Speziellen nicht? Ich verstehe nicht warum du die Formulierung ``im Allgemeinen'' verwendest.
Das Exportieren von Daten war im SBA im Allgemeinen vorhanden. %Im Allgemeinen - im Speziellen nicht? Ich verstehe nicht, warum du die Formulierung ``im Allgemeinen'' verwendest.
Die ExportAction fragt den Nutzer nach einem Speicherort und rendert das Bild.
\subsection{Export in \rec}
Um den Export in den \rec zu gestalten, wurde das Rendern der ExportAction umgebaut, so dass es wiederverwendbar ist.
Die ExportAction in \rec überschreibt die Standard-Export-Action.
Die Auswahl des Nutzers wurde ersetzt durch einen Ordnerpfad, der aus der Konfigurationsdatei gelesen werden kann.
Die Auswahl des Nutzers wurde ersetzt durch einen Ordnerpfad, der aus der Konfigurationsdatei gelesen werden kann. % ... weil hier keine Benutzerinteraktion möglich ist? Ist mir nicht ganz klar.
\subsection{Export in CSD}
Der Export in die CSD erbt auch von der ExportAction.
Zunächst muss der Nutzer alle nötigen Informationen zum Speichern in die CSD eingeben.
Die Informationen werden auf Richtigkeit und Notwendigkeit überprüft.
Wurde das editierte Bild aus der CSD geladen, so wird die Oberfläche mit den Informationen aus dem geladenen XML-File ausgefüllt.
Ist das Bild nicht aus der CSD, werden falls möglich Standardwerte gesetzt.
Stammt das Bild nicht aus der CSD, werden falls möglich Standardwerte gesetzt.
Diese Werte sind in der Konfigurationsdatei editierbar.
Nachdem der Nutzer die Informationen editiert hat, wird das temporäre Bild mit dem Nsif Creator zur einem NSIF-Bild konvertiert.
Nachdem der Nutzer die Informationen editiert hat, wird das temporäre Bild mit dem Nsif-Creator zu einem NSIF-Bild konvertiert.
Die nötigen Metadaten zur Erstellung des Bildes werden aus der Nutzeroberfläche geladen und in ein XML-Dokument geschrieben.
Sind im SBA Geoinformationen vorhanden, werden diese ebenfalls angefügt.
Mit den restlichen Informationen wird das XML-Dokument für die CSD erstellt und zusammen mit dem NSIF Bild an die Isaac.lib übergeben. % Welche Informationen können zu den ``restlichen'' gehören?
Ist das Bild aus der CSD geladen, wird darauf geachtet, dass alle Informationen aus dem alten XML-Dokument übernommen werden, da die Eingabe nicht alle Felder umfasst, die in dem XML-Dokument vorhanden sein können.
Das XML-Dokument für die CSD wird mit den restlichen Informationen angereichert und zusammen mit dem NSIF-Bild an die Isaac.lib übergeben. % Welche Informationen können zu den ``restlichen'' gehören?
Ist das Bild aus der CSD geladen, wird darauf geachtet, dass alle Informationen aus dem alten XML-Dokument übernommen werden.
Die Eingabe umfasst nicht alle Felder , die in dem XML-Dokument vorhanden sein können.
Bei der Erstellung des neuen Dokuments wird in diesem Fall das alte kopiert, alle Felder, die vom Server generiert werden, gelöscht und alle Änderungen aus der Nutzereingabe eingetragen.
Sind keine Informationen vom vorherigen Bild vorhanden, wird ein neues XML-Dokument generiert.
Der CSDWritingClient übernimmt das Übertragen des Meta-Dokuments.
......@@ -125,8 +131,8 @@ Das NSIF-Bild stellt die Bibliothek in einem HttpServer zur Verfügung. % Dieser
Der CSD-Server lädt sich diese Datei herunter.
In der Implementierung sind beim Bereitstellen des Bildes einige Probleme aufgetreten.
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.
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 Anderen ü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.
\TODO{Ref auf Bild}
\begin{figure}
......
......@@ -7,9 +7,10 @@
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}
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.
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.
\subsection{Assoziationenr}
\subsection{Assoziationen}
Bidl und ergebniss verknüpfen
Bericht hinzufügen
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment