Commit 4ab5657a by Kai Westerkamp

mehr Bidler

parent d8540fe5
\appendix
\chapter{Anhang}
\section{CSD Reading Example XML Dokument}
\label{xml:reading}
\lstinputlisting[language=XML,breaklines=true]{csdInput.xml}
\section{CSD Writing Example XML Dokument}
\label{xml:writing}
\lstinputlisting[language=XML,breaklines=true]{csdWriting.xml}
......@@ -22,7 +22,7 @@ Der untere flach liegende Bildschirm ist ein Touch-Bildschirm. Er kann z.B. verw
\end{figure}
\subsection{Stereo-Bildauswerter}
Der Stereo-Bildauswerter (SBA) ist ein Programm zur Annotation von 2D- und 3D-Bilder, basierend auf dem JHotDraw GUI Framework zur Erstellung von grafischen Editoren\cite{JHD}.
Der Stereo-Bildauswerter (SBA \ref{figure:SBA}) ist ein Programm zur Annotation von 2D- und 3D-Bilder, basierend auf dem JHotDraw GUI Framework zur Erstellung von grafischen Editoren\cite{JHD}.
Die Annotation umfasst klassische Einzeichnungen von Bildverarbeitungsprogrammen 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.
......@@ -31,6 +31,13 @@ Insbesondere das Anzeigen von stereoskopische Bildern gibt dem Bildauswerter ein
So lässt sich zum Beispiel die Höhe eines Gebäudes wesentlich einfacher erkennen.
Hierfür eignet sich der mittlere 3D Bildschirm besonders gut.
\begin{figure}[h]
\centering
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{SBA.png}
\caption{Der Stereo-Bildauswerter. In das Bild wurden Einzeichnungen eingefügt.}
\label{figure:SBA}
\end{figure}
\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}).
......
......@@ -2,12 +2,12 @@
\label{chapter:design}
\section{Motivation}
Ein Ziel dieser Arbeit ist es, die Anbindung an die CSD des CSDAdapter wiederverwendbar für andere Projekte zu machen und zu aktualisieren.
Ein Ziel dieser Arbeit ist es, die bestehende Anbindung an die CSD des CSDAdapter wiederverwendbar für andere Projekte zu machen und zu aktualisieren.
Außerdem soll auch 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. % Wie hast du das gelöst und getestet?
Alle CSD Anfragen des SBA im CSD Adapter zu bearbeiten ist dementsprechend nicht erwünscht. % Ist das schon die Antwort auf die vorhergehende Frage?
Eine weitere Anforderung an den SBA ist, dass dieser auch ohne die Verbindung zur Middleware bzw. dem Backend funktionieren soll.
Alle CSD Anfragen des SBA im CSD Adapter zu bearbeiten ist dementsprechend nicht erwünscht.
\section{Übersicht über die bestehende Struktur}
Der Bildauswerteplatz der Zukunft besteht aus mehreren Komponenten (siehe Abbildung \ref{figure:backend}).
......@@ -19,7 +19,7 @@ Hierfür werden unter anderem Web Map Service (WMS) und Web Feature Service (WFS
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 diese Verbindung nur beim Laden eines Bildes genutzt. % Ist das eingeschobene Wort ``nur'' ok?
Bisher wird diese Verbindung beim Laden eines Bildes genutzt.
Falls das Bild georeferenziert ist, sendet der SBA 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 es werden Datenobjekte für das Backend erstellt.
......@@ -44,10 +44,7 @@ Eine Schwierigkeit dabei ist, dass in der CSD nur Bilder im NSIF Format abgespei
Das NSIF Bildformat entspricht dem STANAG 4559 Standard und enthält neben dem Bild weitere Informationen.
Der Ablauf einer CSD Abfrage soll auf dem SBA und dem Geoviewer verläuft gleich.
Der Nutzer erstellt eine Anfrage für einen CSDTask.
%VORHER
%Dieser Task wird dann ausgeführt und die Ergebnisse für die jeweiligen Anwendungsfälle verarbeitet.
%NACHHER (bitte prüfen)
Dieser Task wird dann ausgeführt und die Ergebnisse für die jeweiligen Anwendungsfälle werden durch den CSD-Server bereitgestellt.
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 zum Auslesen der CSD in allen Programmen dieselbe Nutzeroberfläche zur Verfügung stehen (siehe Abbildung \ref{figure:requestUI}).
......@@ -106,17 +103,19 @@ 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.
%VORHER
%Bei Bildern wird dies erst heruntergeladen und überprüft, ob das Bild direkt in das Kartenmaterial eingebunden werden kann.
%NACHHER (bitte prüfen)
Bei Bildern wird nach dem Herunterladen geprüft, ob das Bild direkt in das Kartenmaterial eingebunden werden kann.
Bei Bildern wird nach dem Herunterladen geprüft, ob das Bild direkt in das Kartenmaterial eingebunden werden kann (Abbildung \ref{figure:geoviewer}).
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.
%VORHER
%Im Geoviewer werden diese Objekt dargestellt und können verwendet werden, um die Metadaten im Metadaten-Display anzuzeigen.
%Nachher
Im Geoviewer werden diese Objekt dargestellt und können zur Anzeige der Metadaten im Metadaten-Display verwendet werden.
\begin{figure}[h]
\centering
\includegraphics[scale=0.3]{Geoviewer.png}
\caption{Der Geoviewer. Auf der Karte werden Luftbilder aus der CSD angezeigt.}
\label{figure:geoviewer}
\end{figure}
\begin{landscape}
\begin{figure*}
\includegraphics[scale=0.9]{../UML/Struktur Viewer.png}
......@@ -148,9 +147,16 @@ Sind zum Beispiel Piraten mit selbstgebauten Booten unterwegs, sind diese höch
\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.
Diesen Ordner durchsucht \rec regelmäßig und bietet einen Import für neue Objekte an.
Diesen Ordner durchsucht \rec regelmäßig und bietet einen Import für neue Objekte an (Abbildung \ref{figure:recceman});
\begin{figure}[h]
\centering
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{RecceMan.png}
\caption{Das importieren eines Bidles in den \rec}
\label{figure:recceman}
\end{figure}
\subsection{Export in CSD}
Nach einer erfolgreichen Auswertung soll das annotierte Bild wieder zu den CSD hinzugefügt werden.
Hierfür wurde in den SBA ein schreibender Zugriff auf den Server implementiert.
......
......@@ -35,9 +35,9 @@ So kann der RequestDialog wiederverwendet werden.}
\begin{figure*}
\centering
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{../UML/Sequenz RequestUI.png}
\includegraphics[scale=0.95]{../UML/Sequenz RequestUI.png}
\caption{Das Erstellen eines CSD Tasks als Sequenz Diagramm.
Links der Ablauf im CSDPlugin des Geoviewer; Rechts im SBA.
Oben der Ablauf im CSDPlugin des Geoviewer; Unten im SBA.
Der alternative Block (Alt) steht nur zur Verfügung wenn der SBA mit dem Geoviewer verbunden ist. }
\label{figure:sequenzRequest}
\end{figure*}
......@@ -91,7 +91,8 @@ Der SBA Request und der Adapter Request implementieren die Vor- und Nachbereitun
\subsection{ResultHandling}
Die Ergebnisse aus einer CSD-Abfrage werden als Liste aus XML-Dokumenten an die Methode newResults(List<Documents>) übergeben.
Die Ergebnisse aus einer CSD-Abfrage werden als Liste aus XML-Dokumenten an die Methode newResults(List<Documents>) übergeben.
Ein Beispiel XML Dokument ist im Anhang \ref{xml:reading}.
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}).
......@@ -171,7 +172,7 @@ 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.
Stammt das Bild nicht aus der CSD, werden falls möglich Standardwerte gesetzt, die in einer Konfigurationsdatei editierbar sind.
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}).
Die Nutzereingaben erfolgen in 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.
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.
......@@ -179,7 +180,7 @@ Das XML-Dokument für die CSD wird auch mit den Informationen aus der Nutzereing
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.
Sind keine Informationen vom vorherigen Bild vorhanden, wird ein neues XML-Dokument generiert (Beispiel im Anhang \ref{xml:writing}).
Das NSIF-Bild wird nicht direkt übertragen, sondern wird in einem HTTP Server der isaac.lib zum Download bereitgestellt.
Die URL des Bildes wird in das XML Dokument eingetragen und dann mit dem CSDWritingClient an die CSD übertragen.
Der CSD-Server lädt sich daraufhin das Bild aus dem HTTP-Server herunter.
......
......@@ -13,14 +13,15 @@ Dazu mussten die Abhängigkeiten der einzelnen Bibliotheken manuell aufgelöst w
\subsection{CSD upload}
In der Implementierung sind beim Hochladen des Bildes einige Probleme aufgetreten.
Genauer gesagt, wird der CSD mitgeteilt, wo das Bild herunterzuladen ist und das kann zu Problemen führen. Siehe Abbildung \ref{upload}
Der CSD mitgeteilt, wo das Bild herunterzuladen ist und das kann zu Problemen führen. Siehe Abbildung \ref{upload}
Ein Problem, das hierbei auftreten kann, ist, dass der benötigte Netzwerk-Port nicht freigegeben ist.
Um einen Port freizugeben, braucht man Administratorrechte, die nicht jeder Nutzer hat.
\begin{figure}[h]
\centering
\includegraphics[scale=1]{../Uml/Struktur Upload.png}
\caption{Der Upload eines Bildes zur CSD erfolgt, indem der Server das Bild herunterlädt}
\caption{Der Upload eines Bildes zur CSD erfolgt, indem der Server das Bild herunterlädt.
}
\label{upload}
\end{figure}
......@@ -32,7 +33,6 @@ Kann der Server den Namen nicht auflösen, kann der Server das Bild ebenfalls ni
\section{Code Qualität}
\subsection{Testing}
Es wurden keine Testcases geschrieben.
Um die Anbindung an die CSD zu testen, wären umfangreiche Integrationstest nötig.
Diese gestalten sich schwierig, da keine CSD Server als exklusive Testinstanzen zur Verfügung stehen.
......@@ -56,4 +56,4 @@ Findbugs untersucht den Java bytecode nach Bug Patterns.
Vermutliche Fehler z.B. Nullpointer oder auch schlechter Stil wie == Operatoren anstelle der equals Methode werden von der Bibliothek erkannt und dem Nutzer zur Verbesserung vorgeschlagen.
In der Implementierung wurden alle Anmerkungen von Findbugs behoben.
Lediglich die Fehler in der JHotDraw GUI Bibliothek, auf dem der SBA aufbaut, wurden nicht behoben.
Dafür wäre ein exaktes Verständnis des gesamten JHotDraw Frameworks notwendig, um z.B. die gefundenen Bitmaskenfehler zu beheben.
Dafür wäre ein exaktes Verständnis des gesamten JHotDraw Frameworks notwendig.
\ No newline at end of file
......@@ -26,7 +26,7 @@ Eine Möglichkeit wäre, hierfür einen Task an den CSDAdapter zu senden, der ge
\subsection{Assoziationen}
Bisher werden beim Lesen und Schreiben der CSD die Assoziationen zwischen den Datensätzen nicht ausgelesen.
Assoziationen stellen Zusammenhänge zwischen den Datensätzen dar.
Diese Zusammanhänge zwischen den Daten sidn wichtige Informationen.
Hier bieten sich zwei Verbesserungsmöglichkeiten an.
Beim schreiben in die CSD sollte überprüft werden, ob eine neue Assoziation sinnvoll ist.
Ist das Bild aus der CSD geladen, sollte das ausgewertet Bild auf das Original verweisen.
......@@ -36,13 +36,13 @@ Für die sinnvolle Darstellung der Verknüpfungen müsste man eine geeignete Vis
Eine Möglichkeit wäre eine Baumstruktur.
\subsection{Reports}
In dieser Arbeit haben wir uns hauptsächlich mit dem Laden und Speichern der Bilder für den SBA befasst.
In dieser Arbeit haben wurde hauptsächlich das Laden und Speichern der Bilder für den SBA implementiert.
Ein wichtiger Bestandteil der Bildauswertung ist der Bericht, der während der Auswertung angefertigt werden muss.
Eine Verbesserung des Arbeitsplatzes kann erzielt werden, indem der Nutzer auch die Reports in die CSD eintragen kann.
Idealerweise wird dieser Bericht dann mit dem Original und dem ausgewertetem Bild verknüpft.
Eine Möglichkeit wäre, diesen Upload ebenfalls in den SBA einzubauen.
Zusätzlich zu den Metainformationen gibt man den Dateipfad des Berichts an und dieser wird zusammen mit dem Bild in die CSD eingetragen.
Alternativ könnte man evaluieren, ob eine direkte Integration des Texteditors zum Berichteverfassen in den SBA sinnvoll ist.
Alternativ könnte man evaluieren, ob eine direkte Integration eines Texteditors oder eines spezialisierten Werkzeugs in den SBA sinnvoll ist.
......
<?xml version="1.0" encoding="UTF-8"?>
<PRODUCT>
<CARD>
<dateTimeModified>2013-01-17T16:05:01.731Z</dateTimeModified>
<identifier>a629bfac-60bf-11e2-bccb-0050568e0049</identifier>
<numberOfParts>1</numberOfParts>
<sourceDateTimeModified>2013-01-17T16:05:01.731Z</sourceDateTimeModified>
<sourceLibrary>DEU-IOSB_majex12</sourceLibrary>
<status>NEW</status>
</CARD>
<FILE>
<archived>false</archived>
<creator>IOSB</creator>
<dateTimeDeclared>2011-10-02T09:26:27.000Z</dateTimeDeclared>
<extent>1.751220703125</extent>
<format>application/x-nitf</format>
<formatVersion>02.10</formatVersion>
<isProductLocal>true</isProductLocal>
<productURL>http://153.96.15.182:8090/proxy/a5e9f786-60bf-11e2-bccb-0050568e0049</productURL>
<title>blaue Moschee Uebersichtsbild</title>
</FILE>
<METADATASECURITY>
<classification>UNCLASSIFIED</classification>
<policy>DEU</policy>
<releasability>XXN</releasability>
</METADATASECURITY>
<PART>
<COMMON>
<identifierMission>DNBL</identifierMission>
<identifierUUID>00912402-0001-0002-0003-000120095423</identifierUUID>
<type>IMAGERY</type>
</COMMON>
<COVERAGE>
<spatialCountryCode>AFG</spatialCountryCode>
<spatialGeographicReferenceBox>
<lowerRightPoint>
<latitude>36.703538</latitude>
<longitude>67.118332</longitude>
</lowerRightPoint>
<upperLeftPoint>
<latitude>36.714442</latitude>
<longitude>67.104637</longitude>
</upperLeftPoint>
</spatialGeographicReferenceBox>
<temporalStart>2009-11-03T13:43:41.000Z</temporalStart>
</COVERAGE>
<IMAGERY>
<category>EO</category>
<decompressionTechnique>NC</decompressionTechnique>
<identifier>blueMMos#1</identifier>
<numberOfBands>3</numberOfBands>
</IMAGERY>
<SECURITY>
<classification>UNCLASSIFIED</classification>
<policy>DEU</policy>
<releasability>XXN</releasability>
</SECURITY>
<partIdentifier>1</partIdentifier>
</PART>
<RELATED_FILE>
<URL>http://153.96.15.182:8090/proxy/a60c73a8-60bf-11e2-bccb-0050568e0049</URL>
<creator>DEU-IOSB_majex12</creator>
<dateTimeDeclared>2013-01-17T16:05:01.547Z</dateTimeDeclared>
<extent>0.10154247283935547</extent>
<fileType>THUMBNAIL</fileType>
<isFileLocal>true</isFileLocal>
</RELATED_FILE>
<RELATED_FILE>
<URL>http://153.96.15.182:8090/proxy/a62070da-60bf-11e2-bccb-0050568e0049</URL>
<creator>DEU-IOSB_majex12</creator>
<dateTimeDeclared>2013-01-17T16:05:01.679Z</dateTimeDeclared>
<extent>0.599853515625</extent>
<fileType>OVERVIEW</fileType>
<isFileLocal>true</isFileLocal>
</RELATED_FILE>
<SECURITY>
<classification>UNCLASSIFIED</classification>
<policy>DEU</policy>
<releasability>XXN</releasability>
</SECURITY>
</PRODUCT>
<?xml version="1.0" encoding="UTF-8"?>
<PRODUCT>
<FILE>
<creator>SBA</creator>
<dateTimeDeclared>2015-03-11T14:52:14.000Z</dateTimeDeclared>
<productURL>H:\SBA\temp\a629bfac-60bf-11e2-bccb-0050568e00494503771203963546572.nsif</productURL>
</FILE>
<METADATASECURITY>
<classification>UNCLASSIFIED</classification>
<policy>DEU</policy>
<releasability>XXN</releasability>
</METADATASECURITY>
<PART>
<COMMON>
<identifierMission>DNBL</identifierMission>
<identifierUUID>00912402-0001-0002-0003-000120095423</identifierUUID>
<type>IMAGERY</type>
</COMMON>
<COVERAGE>
<spatialCountryCode>AFG</spatialCountryCode>
<spatialGeographicReferenceBox>
<lowerRightPoint>
<latitude>36.703538</latitude>
<longitude>67.118332</longitude>
</lowerRightPoint>
<upperLeftPoint>
<latitude>36.714442</latitude>
<longitude>67.104637</longitude>
</upperLeftPoint>
</spatialGeographicReferenceBox>
<temporalStart>2009-11-03T13:43:41.000Z</temporalStart>
</COVERAGE>
<IMAGERY>
<category>EO</category>
<decompressionTechnique>NC</decompressionTechnique>
<identifier>blueMMos#1</identifier>
<numberOfBands>3</numberOfBands>
<numberOfColumns>1563</numberOfColumns>
<numberOfRows>1563</numberOfRows>
</IMAGERY>
<SECURITY>
<classification>UNCLASSIFIED</classification>
<policy>DEU</policy>
<releasability>XXN</releasability>
</SECURITY>
<partIdentifier>1</partIdentifier>
</PART>
<SECURITY>
<classification>UNCLASSIFIED</classification>
<policy>DEU</policy>
<releasability>XXN</releasability>
</SECURITY>
</PRODUCT>
......@@ -14,6 +14,7 @@
\usepackage{algpseudocode}
\usepackage{lscape}
\usepackage{listings}
\usepackage[space]{grffile}
\usepackage[utf8]{inputenc}
......@@ -173,6 +174,10 @@
% Use IEEEtran for numeric references
%\bibliographystyle{IEEEtranSA}
\include{appendix}
\bibliography{thesis}
\cleardoublepage
......
No preview for this file type
UML/Struktur Upload.png

9.14 KB | W: | H:

UML/Struktur Upload.png

10.1 KB | W: | H:

UML/Struktur Upload.png
UML/Struktur Upload.png
UML/Struktur Upload.png
UML/Struktur Upload.png
  • 2-up
  • Swipe
  • Onion skin
No preview for this file type
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