Commit bad6e636 by Kai Westerkamp

Todos

Bilder überarbetitet
parent 4d37f434
...@@ -35,12 +35,11 @@ Hierfür eignet sich der mittlere 3D Bildschirm besonders gut. ...@@ -35,12 +35,11 @@ Hierfür eignet sich der mittlere 3D Bildschirm besonders gut.
Der Geoviewer ist ein Werkzeug zur Kartendarstellung. 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}). 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. Diese Daten stammen aus diversen zivilen und militärischen Quellen und können auf der Karte angezeigt werden.
Ein Anwendungsfall kann das Anzeigen von Pfaden eines Schiffes oder Fahrzeuges sein. % Bei GPS-Navis würde man Track statt Pfad sagen. Ein Anwendungsfall kann das Anzeigen von Tracks eines Schiffes oder Fahrzeuges sein.
Außerdem ermöglicht die Software das Einzeichnen von Formen und Symbolen auf der Karte, die mit dem Backend und damit mit allen anderen verbundenen Anzeigesystemen, wie z.B. dem digitalen Lagetisch. % Im Relativsatz fehlt das Verb. --> Verständnisproblem Außerdem ermöglicht die Software das Einzeichnen von Formen und Symbolen auf der Karte, die mit dem Backend synchronisiert werden und damit mit allen anderen verbundenen Anzeigesystemen, wie z.B. dem digitalen Lagetisch.
Die Software unterstützt die Benutzung durch Touch Eingaben. Das wird am Bildauswerteplatz der Zukunft durch ein TouchDisplay ausgenutzt. Die Software unterstützt die Benutzung durch Touch Eingaben. Das wird am Bildauswerteplatz der Zukunft durch ein TouchDisplay ausgenutzt.
\subsection{\rec} \subsection{\rec}
\todo{überarbeiten}
\rec ist eine Objekt-Identifikations-Software, die den Bildauswerter unterstützt, Objekte zu erkennen (siehe \cite{rec}). \rec ist eine Objekt-Identifikations-Software, die den Bildauswerter unterstützt, Objekte zu erkennen (siehe \cite{rec}).
Die Aufgabe eines Bildauswerters ist die exakte Erkennung von Objekten anhand von charakteristischen Bildmerkmalen. Die Aufgabe eines Bildauswerters ist die exakte Erkennung von Objekten anhand von charakteristischen Bildmerkmalen.
Die speziell ausgebildeten Bildauswerter nutzen hierfür das dokumentierte Wissen aus Handbüchern. Die speziell ausgebildeten Bildauswerter nutzen hierfür das dokumentierte Wissen aus Handbüchern.
......
...@@ -13,8 +13,8 @@ Der Bildauswerteplatz der Zukunft besteht aus mehren Komponenten (siehe Abbildun ...@@ -13,8 +13,8 @@ Der Bildauswerteplatz der Zukunft besteht aus mehren Komponenten (siehe Abbildun
Die zentrale Komponente ist das Backend. Die zentrale Komponente ist das Backend.
Dies speichert alle Informationen wie die Data Objekte die auf dem Geoviewer visualisiert werden. 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. Die Kommunikation zwischen dem Backend und andern verbundenen Komponenten läuft über die Middleware.
der Geoviewer bezieht das Kartenmaterialsich von einem Geoserver. Der Geoviewer bezieht das Kartenmaterialsich von einem Geoserver.
Der Geoserver stellt dieses über Web Services zur Verfügung. Hierfür werden unter anderem Web Map Service (WMS) und Web Feature Service (WFS) verwendet.
Durch die Auswahl eines Data Objektes im Geoviewer können Metadaten zu diesem Objekt abgefragt werden. 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. Diese Daten werden über die Metadaten Anzeige im Webbrowser dargestellt.
Der Stereo Bildauswerter ist ebenfalls an das Backend angeschlossen. Der Stereo Bildauswerter ist ebenfalls an das Backend angeschlossen.
...@@ -30,7 +30,7 @@ Damit eignen sich diese Datenobjekte nicht zum Laden und verarbeiten im Stereo B ...@@ -30,7 +30,7 @@ Damit eignen sich diese Datenobjekte nicht zum Laden und verarbeiten im Stereo B
\begin{figure}[h] \begin{figure}[h]
\centering \centering
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{../UML/Backend.png} \includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{../UML/Backend.png}
\caption{Die Struktur der Komponenten des Bildauswerteplatzes. Die Kommunikation zwischen den Komponenten erfolgt hauptsächlich über den Java Message Service (JMS) } \caption{Die Struktur der Komponenten des Bildauswerteplatzes. Die Kommunikation zwischen den Komponenten erfolgt hauptsächlich über den Java Message Service (JMS). In den grün eingefärbten Komponenten wurde während dieser Arbeit Veränderungen vorgenommen}
\label{figure:backend} \label{figure:backend}
\end{figure} \end{figure}
...@@ -152,12 +152,13 @@ Das kann zum Beispiel die Prüfung von Pflichteingaben oder der maximalen Zeiche ...@@ -152,12 +152,13 @@ Das kann zum Beispiel die Prüfung von Pflichteingaben oder der maximalen Zeiche
Zur Benutzung wurden Buttons zur schnellen Datumsauswahl und zum Generieren von zufälligen IDs hinzugefügt. 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. 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. 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. Der NSIF-Creator ist eine Bibliothek, die aus diversen herkömmlichen Bildformaten und einem Metadaten XML-File ein NSIF-Bild erstellt.
Das Metadaten-XML-File wird mit Hilfe des CSD-Writing Clients der Isaac.lib an die CSD gesendet.
Das Bild wird in einem HTTP Server, der in der Isaac.lib enthalten ist, zur Verfügung gestellt, sodass CSD Server das Bild herunterladen kann. Das Bild wird in einem HTTP Server, der in der Isaac.lib enthalten ist, zur Verfügung gestellt, sodass CSD Server das Bild herunterladen kann.
\begin{figure}[h] \begin{figure}[h]
\centering \centering
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{MetaDataUI.png} \includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{WriteCSD.png}
\caption{Die Nutzeroberfläche zum Eingeben der Metadaten. Links die Informationen zum Erzeugen eines NSIF Bildes und rechts die Informationen für die CSD} \caption{Die Nutzeroberfläche zum Eingeben der Metadaten. Links die Informationen zum Erzeugen eines NSIF Bildes und rechts die Informationen für die CSD}
\label{figure:metaUI} \label{figure:metaUI}
\end{figure} \end{figure}
...@@ -34,15 +34,18 @@ So kann der RequestDialog wiederverwendet werden.} ...@@ -34,15 +34,18 @@ So kann der RequestDialog wiederverwendet werden.}
\end{figure} \end{figure}
\begin{figure}[h] \begin{figure}[h]
\centering \centering
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{../UML/Sequenz RequestUI.png} \includegraphics[scale=1]{ProgressGeo.png}
\caption{Das Erstellen eines CSD Tasks als Sequenz Diagramm. ~
Links der Ablauf im CSDPlugin des Geoviewer, Rechts im SBA. \includegraphics[scale=1]{ProgressSBA.png}
Der alternative Block (Alt) steht nur zur Verfügung wenn der SBA mit dem Geoviewer verbunden ist. } \caption{Links die Fortschrittsanzeige im Geoviewer, Rechts im SBA}
\label{figure:sequenzRequest} \label{figure:progress}
\end{figure} \end{figure}
\todo{Bilder besser plazieren}
\subsection{Task ausführen} \subsection{Task ausführen}
Die Isaac.lib unterstützt 2 Arten von Anfragen an die CSD. Die Isaac.lib unterstützt 2 Arten von Anfragen an die CSD.
Ein CSD-Request ist eine einmalige Abfrage des Servers, die alle Treffer an einen im Request definierten ResultHandler übergibt und sich dann beendet. Ein CSD-Request ist eine einmalige Abfrage des Servers, die alle Treffer an einen im Request definierten ResultHandler übergibt und sich dann beendet.
...@@ -54,7 +57,7 @@ Die Methode startRequest startet die Abfrage in einen neuen Thread. ...@@ -54,7 +57,7 @@ Die Methode startRequest startet die Abfrage in einen neuen Thread.
Zuerst wird die abstrakte Methode beforeTask aufgerufen, um Vorbereitungen zu treffen, zum Beispiel Ergebnisse von einem alten Task zu löschen. Zuerst wird die abstrakte Methode beforeTask aufgerufen, um Vorbereitungen zu treffen, zum Beispiel Ergebnisse von einem alten Task zu löschen.
Die Ausführung der CSD-Abfrage erfolgt in 3 Schritten. Die Ausführung der CSD-Abfrage erfolgt in 3 Schritten.
Erst wird der CSD Querry String generiert. \todo{Beispiel} Erst wird der CSD Querry String generiert (Siehe Querry \ref{querry}).
Anschließend folgt eine Abfrage über die Anzahl der erwarteten Ergebnisse. Anschließend folgt eine Abfrage über die Anzahl der erwarteten Ergebnisse.
Die Methode isValidTaskSize überprüft nun, ob der Task ausgeführt werden soll oder ob das Ergebnis zu groß und somit nicht sinnvoll ist. Die Methode isValidTaskSize überprüft nun, ob der Task ausgeführt werden soll oder ob das Ergebnis zu groß und somit nicht sinnvoll ist.
Die Standard-Implementierung vergleicht die erwarteten Ergebnisse mit einem Wert aus der Konfigurationsdatei. Die Standard-Implementierung vergleicht die erwarteten Ergebnisse mit einem Wert aus der Konfigurationsdatei.
...@@ -63,9 +66,32 @@ Die Methode wird implementiert von den beiden Klassen CSDRequst und CSDSubscript ...@@ -63,9 +66,32 @@ Die Methode wird implementiert von den beiden Klassen CSDRequst und CSDSubscript
In dieser Methode wird die Verbindung zur CSD aufgebaut und durchsucht. In dieser Methode wird die Verbindung zur CSD aufgebaut und durchsucht.
Die Ergebnisse der Abfrage werden alle an den übergebenden Result Handler weitergeleitet. Die Ergebnisse der Abfrage werden alle an den übergebenden Result Handler weitergeleitet.
Um in Demonstrationen beim Kunden Fehler zu vermeiden, wurde die Möglichkeit eines lokalen Request aus dem CSD-Adapter übernommen. Um das System auch ohne CSD beim Kunden zu präsentieren, wurde die Möglichkeit eines lokalen Request aus dem CSD-Adapter übernommen.
Dieser lokale Request lässt sich im Konfigurationsdatei aktivieren und führt dazu, dass die Ergebnisse aus einer Datei geladen und direkt an den ResultHandler übergeben werden. Dieser lokale Request lässt sich im Konfigurationsdatei aktivieren und führt dazu, dass die Ergebnisse aus einer Datei geladen und direkt an den ResultHandler übergeben werden.
\begin{querry}[h]
\centering
\begin{verbatim}
((NSIL_COMMON.type = 'IMAGERY'))
AND NSIL_COVERAGE.spatialGeographicReferenceBox inside POLYGON
(49.0578,11.3417,49.0526,11.3407,49.0522,11.3543,
49.0584,11.3553,49.0584,11.3553,49.0578,11.3417)
\end{verbatim}
\caption{Beispiel eines CSD Querry Strings nach Bildern innerhalb einer geografischen Region.
Die Koordinaten wurden aus Übersichtsgründen auf vier Nachkommastellen gekürzt
}
\label{querry}
\end{querry}
\begin{figure}[h]
\centering
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{../UML/Sequenz RequestUI.png}
\caption{Das Erstellen eines CSD Tasks als Sequenz Diagramm.
Links der Ablauf im CSDPlugin des Geoviewer, Rechts im SBA.
Der alternative Block (Alt) steht nur zur Verfügung wenn der SBA mit dem Geoviewer verbunden ist. }
\label{figure:sequenzRequest}
\end{figure}
\begin{figure}[h] \begin{figure}[h]
\centering \centering
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{../UML/Klassen CSDTask.png} \includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{../UML/Klassen CSDTask.png}
...@@ -92,6 +118,9 @@ Der Nutzer kann diese XML Dokument manuell einsehen und sich nötige Daten selbe ...@@ -92,6 +118,9 @@ Der Nutzer kann diese XML Dokument manuell einsehen und sich nötige Daten selbe
Ist ein Ergebnis verarbeitet, wird im zugehörigen Task die Methode resultFinished aufgerufen. 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 (Abbildung \ref{figure:klassenTask}). So kann der Task, nachdem alle Ergebnis ausgewertet sind, die Methode afterTask aufrufen, um einen eventuelle Nachbearbeitung durchzuführen (Abbildung \ref{figure:klassenTask}).
\begin{figure}[h] \begin{figure}[h]
\centering \centering
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{../UML/Klassen ResultHandler.png} \includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{../UML/Klassen ResultHandler.png}
...@@ -99,10 +128,13 @@ So kann der Task, nachdem alle Ergebnis ausgewertet sind, die Methode afterTask ...@@ -99,10 +128,13 @@ So kann der Task, nachdem alle Ergebnis ausgewertet sind, die Methode afterTask
\label{figure:klassenResult} \label{figure:klassenResult}
\end{figure} \end{figure}
\subsection{CSD-Adapter} \subsection{CSD-Adapter}
Im CSD-Adapter wird ein CSDRequest genutzt. Im CSD-Adapter wird ein CSDRequest genutzt.
In beforeTask und resultFinished werden Nachrichten an den Goeviewer gesendet, um ein visuelles Feedback an den Nutzer zu geben, wie weit die Bearbeitung des Tasks vorangeschritten ist. In beforeTask und resultFinished werden Nachrichten an den Goeviewer gesendet, um ein visuelles Feedback an den Nutzer zu geben, wie weit die Bearbeitung des Tasks vorangeschritten ist (siehe Abbildung \ref{figure:progress})
\todo{Bild}
Zur Kommunikation implementiert der CSD-Adapter einen ConnectionServer und der Geoviwer einen ConnectionManager aus den MiddlewareTools. Zur Kommunikation implementiert der CSD-Adapter einen ConnectionServer und der Geoviwer einen ConnectionManager aus den MiddlewareTools.
Das heißt, die Kommunikation über neue Tasks und den Fortschritt läuft nicht über das Backend, sondern direkt zwischen den Programmen. Das heißt, die Kommunikation über neue Tasks und den Fortschritt läuft nicht über das Backend, sondern direkt zwischen den Programmen.
...@@ -121,7 +153,7 @@ Falls ein Vorschaubild vorhanden ist, wird dieses heruntergeladen. ...@@ -121,7 +153,7 @@ Falls ein Vorschaubild vorhanden ist, wird dieses heruntergeladen.
Auch Vorschaubilder liegen in der CSD als NSIF-Bilder vor und werden deshalb in PNG-Bilder umgewandelt. Auch Vorschaubilder liegen in der CSD als NSIF-Bilder vor und werden deshalb in PNG-Bilder umgewandelt.
Alle Ergebnisse werden dem CSDDataStore hinzugefügt und der Nutzer kann sich in der ResultUI ein Bild aussuchen. Alle Ergebnisse werden dem CSDDataStore hinzugefügt und der Nutzer kann sich in der ResultUI ein Bild aussuchen.
Sobald der Nutzer ein Bild aus der CSD laden möchte, wird dieses heruntergeladen und aus dem NSIF-Format in den SBA importiert. Sobald der Nutzer ein Bild aus der CSD laden möchte, wird dieses heruntergeladen und aus dem NSIF-Format in den SBA importiert.
Um das Bil0 zu importieren wird es zunächst in ein PNG umgewandelt. Um das Bild zu importieren wird es zunächst in ein PNG umgewandelt.
\section{Bilder exportieren} \section{Bilder exportieren}
...@@ -137,20 +169,19 @@ Dieser Ordnerpfad wird aus der Konfigurationsdatei gelesen. ...@@ -137,20 +169,19 @@ Dieser Ordnerpfad wird aus der Konfigurationsdatei gelesen.
Der Nutzer muss also nicht jedes mal manuell den Pfad heraussuchen, sondern das Bild wird direkt an den richtigen Ort gelegt. Der Nutzer muss also nicht jedes mal manuell den Pfad heraussuchen, sondern das Bild wird direkt an den richtigen Ort gelegt.
\subsection{Export in CSD} \subsection{Export in CSD}
Der Export in die CSD erbt auch von der ExportAction. \todo Bild referenzieren 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. Zunächst muss der Nutzer alle nötigen Informationen zum Speichern in die CSD eingeben.
Die Informationen werden auf Richtigkeit und Notwendigkeit überprüft. 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. Wurde das editierte Bild aus der CSD geladen, so wird die Oberfläche mit den Informationen aus dem geladenen XML-File ausgefüllt.
Stammt 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, die in einer Konfigurationsdatei editierbar sind.
Diese Werte sind in der Konfigurationsdatei editierbar. Für das Einlesen und generieren der XML Files ist die XMLGenerator zuständig.
Die Nutzereingane erfolgen id der MetaDataUI (siehe Abbildung \ref{figure:strukturWriting}).
Nachdem der Nutzer die Informationen editiert hat, wird das temporäre Bild mit dem NSIF-Creator zu 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.
Der NSIF-Creator ist eine Bibliothek, die aus diversen herkömmlichen Bildformaten und einem Metadaten XML-File ein NSIF-Bild erstellt.
Die nötigen Metadaten werden aus der Nutzeroberfläche geladen und in ein XML-Dokument geschrieben. Die nötigen Metadaten werden aus der Nutzeroberfläche geladen und in ein XML-Dokument geschrieben.
Sind im SBA Geoinformationen vorhanden, werden diese ebenfalls angefügt. Sind im SBA Geoinformationen vorhanden, werden diese ebenfalls angefügt.
Das XML-Dokument für die CSD wird ebenfalls mit den Informationen aus der Nutzereingabe generiert und zusammen mit dem NSIF-Bild an die Isaac.lib übergeben. Das XML-Dokument für die CSD wird ebenfalls mit den Informationen aus der Nutzereingabe generiert und zusammen mit dem NSIF-Bild an die Isaac.lib übergeben.
Ist das Bild aus der CSD geladen, wird darauf geachtet, dass alle Informationen aus dem alten XML-Dokument übernommen werden. 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. 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. 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. Sind keine Informationen vom vorherigen Bild vorhanden, wird ein neues XML-Dokument generiert.
Das NSIF-Bild wird nicht direkt übertragen sondern wird in einem HTTP Server der isaac.lib zum download bereitgestellt. Das NSIF-Bild wird nicht direkt übertragen sondern wird in einem HTTP Server der isaac.lib zum download bereitgestellt.
......
...@@ -18,6 +18,8 @@ ...@@ -18,6 +18,8 @@
\usepackage[space]{grffile} \usepackage[space]{grffile}
\usepackage[utf8]{inputenc} \usepackage[utf8]{inputenc}
\usepackage{float}
%\usepackage{blindtext} %\usepackage{blindtext}
\renewcommand{\vec}{\overline} \renewcommand{\vec}{\overline}
...@@ -32,6 +34,10 @@ ...@@ -32,6 +34,10 @@
\newcommand{\rec}{RecceMan\textsuperscript{\textregistered} } \newcommand{\rec}{RecceMan\textsuperscript{\textregistered} }
\floatstyle{plain}
\newfloat{querry}{thp}{lop}
\floatname{querry}{Querry}
%% ------------------------------- %% -------------------------------
%% | Information for PDF file | %% | Information for PDF file |
......
No preview for this file type
UML/Backend.png

13 KB | W: | H:

UML/Backend.png

13.1 KB | W: | H:

UML/Backend.png
UML/Backend.png
UML/Backend.png
UML/Backend.png
  • 2-up
  • Swipe
  • Onion skin
No preview for this file type
UML/Sequenz RequestUI.png

27.3 KB | W: | H:

UML/Sequenz RequestUI.png

28.1 KB | W: | H:

UML/Sequenz RequestUI.png
UML/Sequenz RequestUI.png
UML/Sequenz RequestUI.png
UML/Sequenz RequestUI.png
  • 2-up
  • Swipe
  • Onion skin
No preview for this file type
UML/Struktur Writing.png

14.1 KB | W: | H:

UML/Struktur Writing.png

12.2 KB | W: | H:

UML/Struktur Writing.png
UML/Struktur Writing.png
UML/Struktur Writing.png
UML/Struktur Writing.png
  • 2-up
  • Swipe
  • Onion skin
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