+
+Diese LaTeX-Vorlage kann für technische Berichte und Diplom- / Bachelor- / Masterarbeiten genutzt werden. Eine Vorschau liefert "[Hauptdatei.pdf](/src/Hauptdatei.pdf)".
+
+This LaTeX-template can be used for technical reports, BSc or MSc thesis. Please see "[Hauptdatei.pdf](/src/Hauptdatei.pdf)" as an example.
+
+
+
+## Verwendung
+
+Dreh- und Angelpunkt der Vorlage ist die "[Hauptdatei.tex](/src/Hauptdatei.tex)". Hier werden grundlegende Layout-Einstellungen gesetzt und die anderen Dateien inkludiert. Diese könnt ihr beliebig für eure eigene Arbeit erweitern. Hinweise zu den einzelnen LaTeX-Direktiven befinden sich direkt im Quellcode der Vorlage.
+
+In der "[beispiel.tex](/src/beispiel.tex)" wird gezeigt wie Bilder, Bildreferenzen, Tabellen, Quellcode-Listings, mathematische Formeln und Fußnoten in LaTeX verwendet werden können.
+
+Des Weiteren findet ihr in der Vorlage diverse Platzhalter für die Logos eurer Universität / Fachhochschule, euren Namen, Professoren, Matrikelnummer etc.
+
+Die Vorlage verwendet die deutschen Literaturzitate im Literaturverzeichnis gemäß der deutschen Norm DIN 1505, Teil 2 vom Jan. 1984 (siehe [alphadin.bst](/src/alphadin.bst)). Prüft bitte ob dieser Zitat-Stil von eurem Institut akzeptiert wird, was jedoch für eine Abschlussarbeit in deutscher Sprache meist der Fall sein dürfte.
+
+## Zeichensatz
+
+Die Vorlage verwendet den generell empfehlenswerten Zeichensatz UTF-8. Dadurch könnt ihr direkt die deutschen Umlaute ÄäÖöÜü sowie die Anführungszeichen „“ in euren Quelltexten nutzen.
+
+## Von LaTeX zum PDF
+
+Unter "[scripts/generatePdf.sh](/scripts/generatePdf.sh)" liegt das Skript welches auf unixähnliches Betriebssystemen (Linux, Mac) nach Installation einer TEX Distribution häufig direkt verwendet werden kann. Mittels pdflatex, bibtex und makeindex wird aus der Vorlage direkt ein PDF inkl. Literaturverzeichnis und Abkürzungsverzeichnis erstellt.
+
+## LaTeX Distributionen und Editoren
+
+Vermutlich wirst du zum Verfassen deiner Arbeit einen Editor mit LaTeX Unterstützung verwenden.
+
+### Linux: Debian, Ubuntu, Linux Mint
+
+Bei Linux Distributionen auf Debian Basis empfehle ich die TEX Distribution [TeX Live](http://www.tug.org/texlive/ "TeX Live") sowie den Editor [Kile](http://kile.sourceforge.net/ "Kile").
+
+Für Eilige lautet der apt-get Befehl: `sudo apt-get install texlive texlive-lang-german texlive-latex-extra lmodern`
+
+Bei der Installation der Software unter Ubuntu helfen die folgenden Links:
+[Installation von TeX-Live](http://wiki.ubuntuusers.de/LATEX#TeX-Live "Installation von TeX-Live").
+[Installation von Kile](http://wiki.ubuntuusers.de/Kile "Installation von Kile").
+
+### Mac
+
+Auf dem Mac hat sich eine Kombination aus [MacTeX](http://www.tug.org/mactex/ "MacTeX") Distribution und dem Editor [TeXShop](http://pages.uoregon.edu/koch/texshop/ "TeXShop") als sehr brauchbar herausgestellt. Eine hilfreiche Funktion bei dieser Kombination: Mit CMD + Linksklick auf eine Stelle im PDF springt man im Editor direkt an die betreffende Stelle im LaTeX Quellcode.
+
+### Windows
+
+Unter Windows habe ich persönlich [TeXlipse](http://texlipse.sourceforge.net/ "TeXlipse") (Eclipse Plugin für LaTeX) sowie das [TeXnicCenter](http://www.texniccenter.org/ "TeXnicCenter") als Editor verwendet. Als Distribution kann [MikTeX](http://miktex.org/ "MikTeX") verwendet werden.
+
+## Feedback
+
+Falls ihr Anmerkungen, Verbesserungsvorschläge und / oder Fehler findet, schreibt mir bitte eine Nachricht an:
+kontakt at maknesium de
+
+Alternativ übernehme ich natürlich auch gerne Pull-Requests auf Github.
+
+Ich wünsche euch viel Erfolg und Spaß bei der Erstellung eurer Abschlussarbeit mit LaTeX!
+
+# Lizenz / License
+
+This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Germany License.
+http://creativecommons.org/licenses/by-nc-sa/3.0/de/
+
+# Lade mich auf einen Kaffee ein!
+
+Wenn dir die Latex-Vorlage (viel) Zeit erspart hat, du endlich deine Abschlussarbeit abgegeben hast und jetzt einfach etwas zurück geben möchtest, kannst du mich gerne auf einen (oder zwei) Kaffee einladen. Ja, ich trinke gerne Kaffee :)
+
+[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=6LZRV8ZHN2Z9A)
\ No newline at end of file
diff --git a/Documentation/scripts/abkuerzung.sh b/Documentation/scripts/abkuerzung.sh
new file mode 100755
index 0000000..1675465
--- /dev/null
+++ b/Documentation/scripts/abkuerzung.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+# runme if you want to update all your abbreviations
+
+makeindex ../src/Hauptdatei.nlo -s ../src/latex_einstellungen/abkuezungen/nomencl.ist -o ../src/Hauptdatei.nls
diff --git a/Documentation/scripts/generatePdf.sh b/Documentation/scripts/generatePdf.sh
new file mode 100755
index 0000000..8ec71fc
--- /dev/null
+++ b/Documentation/scripts/generatePdf.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+# runme if you want generate the pdf file
+
+cd ../src
+
+# 1. Generiert das Dokument mit Fragezeichen anstelle von Zitaten
+pdflatex Hauptdatei.tex
+# 2. Dies wird die .bib Datei verarbeiten, und das Dokument mit Zitatinformationen anreichern – Beachten Sie dass Ihre .bib Datei änders heißen kann, dann muss der Befehl Hauptdatei entsprechend angepasst werden.
+bibtex Hauptdatei
+# 3. aktualisiert den Index
+makeindex Hauptdatei.nlo -s latex_einstellungen/abkuezungen/nomencl.ist -o Hauptdatei.nls
+# 4. Verarbeitet die Datein nochmals und inkludiert die Zitate
+pdflatex Hauptdatei.tex
+# 5. nochmal, um sicher zu gehen, u.a. falls sich durch die Zitate die Seitennummerierung geändert hat
+pdflatex Hauptdatei.tex
+
+
+## Aufräumen...
+rm *.aux *.dvi *.log *.lot *.lol *.lof *.nls *.ilg *.nlo *.idx *.out *.toc *.ist *.glo *.blg
+
+cd latex_einstellungen
+rm *.aux
\ No newline at end of file
diff --git a/Documentation/src/.vscode/settings.json b/Documentation/src/.vscode/settings.json
new file mode 100644
index 0000000..fd90044
--- /dev/null
+++ b/Documentation/src/.vscode/settings.json
@@ -0,0 +1,5 @@
+{
+ "latex-workshop.latex.texDirs": [
+ "/home/paul/Documents/Master1/DeepRain_Teamproject/DeepRain2/Documentation/src"
+ ]
+}
\ No newline at end of file
diff --git a/Documentation/src/1_einleitung.tex b/Documentation/src/1_einleitung.tex
new file mode 100755
index 0000000..77becc8
--- /dev/null
+++ b/Documentation/src/1_einleitung.tex
@@ -0,0 +1,3 @@
+\section{Einleitung}\label{einleitung}
+
+Hier steht die Einleitung der Arbeit... Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
diff --git a/Documentation/src/2_kap1.tex b/Documentation/src/2_kap1.tex
new file mode 100755
index 0000000..ae860a2
--- /dev/null
+++ b/Documentation/src/2_kap1.tex
@@ -0,0 +1,15 @@
+\section{Hauptabschnitt}\label{hauptabschnitt}
+
+Text des ersten Abschnitts... Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
+
+\subsection{Unterabschnitt 1}\label{unterabschnitt_1}
+
+Erstes Unterabschnitt
+
+\subsection{Unterabschnitt 2}\label{unterabschnitt_2}
+
+Zweites Unterabschnitt
+
+\subsection{Unterabschnitt 3}\label{unterabschnitt_3}
+
+Drittes Unterabschnitt
diff --git a/Documentation/src/3_kap2.tex b/Documentation/src/3_kap2.tex
new file mode 100755
index 0000000..8bfb5e3
--- /dev/null
+++ b/Documentation/src/3_kap2.tex
@@ -0,0 +1,3 @@
+\section{Weiterer Hauptabschnitt}\label{hauptabschnitt_2}
+
+Text des zweiten Abschnitts... Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
diff --git a/Documentation/src/7_ausblick.tex b/Documentation/src/7_ausblick.tex
new file mode 100755
index 0000000..6472878
--- /dev/null
+++ b/Documentation/src/7_ausblick.tex
@@ -0,0 +1,3 @@
+\section{Ausblick}\label{ausblick}
+
+Text des Ausblicks - sofern dies in der Arbeit gewünscht ist... Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
diff --git a/Documentation/src/8_fazit.tex b/Documentation/src/8_fazit.tex
new file mode 100755
index 0000000..498d0db
--- /dev/null
+++ b/Documentation/src/8_fazit.tex
@@ -0,0 +1,3 @@
+\section{Fazit}\label{fazit}
+
+Text des Fazits... Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
diff --git a/Documentation/src/Hauptdatei.bib b/Documentation/src/Hauptdatei.bib
new file mode 100755
index 0000000..14c72f5
--- /dev/null
+++ b/Documentation/src/Hauptdatei.bib
@@ -0,0 +1,43 @@
+%% This BibTeX bibliography file was created using BibDesk.
+%% http://bibdesk.sourceforge.net/
+
+
+%% Created for Mak at 2011-07-01 23:12:31 +0200
+
+
+%% Saved with string encoding Unicode (UTF-8)
+
+
+
+@electronic{mm2009,
+ Author = {Mustermann, Max},
+ Date-Added = {2010-03-21 22:17:12 +0100},
+ Date-Modified = {2011-07-01 23:11:24 +0200},
+ Language = {de},
+ Month = {11},
+ Timestamp = {2009.12.29},
+ Title = {Ein Beispielbuch},
+ Url = {http://www.example.com},
+ Year = {2009},
+ Bdsk-Url-1 = {http://www.example.com}}
+
+@electronic{mf2005,
+ Author = {Musterfrau, Maxi},
+ Date-Modified = {2011-07-01 23:12:20 +0200},
+ Language = {en},
+ Month = {08},
+ Timestamp = {2009.12.29},
+ Title = {Ein weiteres Beispielbuch},
+ Url = {http://www.example.com},
+ Year = {2005},
+ Bdsk-Url-1 = {http://www.example.com}}
+
+
+@misc{hosseini2019inceptioninspired,
+ title={Inception-inspired LSTM for Next-frame Video Prediction},
+ author={Matin Hosseini and Anthony S. Maida and Majid Hosseini and Gottumukkala Raju},
+ year={2019},
+ eprint={1909.05622},
+ archivePrefix={arXiv},
+ primaryClass={cs.CV}
+}
\ No newline at end of file
diff --git a/Documentation/src/Hauptdatei.pdf b/Documentation/src/Hauptdatei.pdf
new file mode 100644
index 0000000..755882d
Binary files /dev/null and b/Documentation/src/Hauptdatei.pdf differ
diff --git a/Documentation/src/Hauptdatei.tex b/Documentation/src/Hauptdatei.tex
new file mode 100755
index 0000000..1a4b13f
--- /dev/null
+++ b/Documentation/src/Hauptdatei.tex
@@ -0,0 +1,611 @@
+% Festlegung des Allgemeinen Dokumentenformats
+\documentclass[a4paper,12pt,headsepline]{scrartcl}
+
+% Umlaute unter UTF8 nutzen
+\usepackage[utf8]{inputenc}
+
+% Variablen
+\input{latex_einstellungen/variablen}
+
+% weitere Pakete
+% Grafiken aus PNG Dateien einbinden
+\usepackage{graphicx}
+\usepackage{float}
+\usepackage{subfig}
+\usepackage{multirow}
+%\usepackage{wrapfig}
+% aus SVG
+\usepackage{svg}
+
+% Deutsche Sonderzeichen und Silbentrennung nutzen
+\usepackage[ngerman]{babel}
+
+% Eurozeichen einbinden
+\usepackage[right]{eurosym}
+
+% Zeichenencoding
+\usepackage[T1]{fontenc}
+
+\usepackage{lmodern}
+
+% floatende Bilder ermöglichen
+%\usepackage{floatflt}
+
+% mehrseitige Tabellen ermöglichen
+\usepackage{longtable}
+
+% Unterstützung für Schriftarten
+%\newcommand{\changefont}[3]{
+%\fontfamily{#1} \fontseries{#2} \fontshape{#3} \selectfont}
+
+% Packet für Seitenrandabständex und Einstellung für Seitenränder
+\usepackage{geometry}
+\geometry{left=3cm, right=3cm, top=2.5cm, bottom=2cm}
+
+% Paket für Boxen im Text
+\usepackage{fancybox}
+
+% bricht lange URLs "schön" um
+\usepackage[hyphens,obeyspaces,spaces]{url}
+
+% Paket für Textfarben
+\usepackage{color}
+
+% Mathematische Symbole importieren
+\usepackage{amssymb}
+
+% auf jeder Seite eine Überschrift (alt, zentriert)
+%\pagestyle{headings}
+
+% erzeugt Inhaltsverzeichnis mit Querverweisen zu den Abschnitten (PDF Version)
+\usepackage[bookmarksnumbered,pdftitle={\titleDocument},hyperfootnotes=false]{hyperref}
+%\hypersetup{colorlinks, citecolor=red, linkcolor=blue, urlcolor=black}
+%\hypersetup{colorlinks, citecolor=black, linkcolor= black, urlcolor=black}
+
+% neue Kopfzeilen mit fancypaket
+\usepackage{fancyhdr} %Paket laden
+\pagestyle{fancy} %eigener Seitenstil
+\fancyhf{} %alle Kopf- und Fußzeilenfelder bereinigen
+\fancyhead[L]{\nouppercase{\leftmark}} %Kopfzeile links
+\fancyhead[C]{} %zentrierte Kopfzeile
+\fancyhead[R]{\thepage} %Kopfzeile rechts
+\renewcommand{\headrulewidth}{0.2pt} %obere Trennlinie
+%\fancyfoot[C]{\thepage} %Seitennummer
+%\renewcommand{\footrulewidth}{0.4pt} %untere Trennlinie
+
+% für Tabellen
+\usepackage{array}
+
+% Runde Klammern für Zitate
+%\usepackage[numbers,round]{natbib}
+
+% Festlegung Art der Zitierung - Havardmethode: Abkuerzung Autor + Jahr
+
+%\bibliographystyle{alphadin}
+%\bibliography{Hauptdatei}
+
+
+% Schaltet den zusätzlichen Zwischenraum ab, den LaTeX normalerweise nach einem Satzzeichen einfügt.
+%\frenchspacing
+
+% Paket für Zeilenabstand
+\usepackage{setspace}
+
+% für Bildbezeichner
+\usepackage{capt-of}
+
+% für Stichwortverzeichnis
+\usepackage{makeidx}
+
+% für Listings
+\usepackage{listings}
+\lstset{numbers=left, numberstyle=\tiny, numbersep=5pt, keywordstyle=\color{black}\bfseries, stringstyle=\ttfamily,showstringspaces=false,basicstyle=\footnotesize,captionpos=b}
+\lstset{language=java}
+
+% Indexerstellung
+\makeindex
+
+% Abkürzungsverzeichnis
+\usepackage[german]{nomencl}
+\let\abbrev\nomenclature
+
+% Abkürzungsverzeichnis LiveTex Version
+% Titel des Abkürzungsverzeichnisses
+\renewcommand{\nomname}{Abkürzungsverzeichnis}
+% Abstand zwischen Abkürzung und Erläuterung
+\setlength{\nomlabelwidth}{.25\textwidth}
+% Zwischenraum zwischen Abkürzung und Erläuterung mit Punkten
+\renewcommand{\nomlabel}[1]{#1 \dotfill}
+% Variation des Abstandes der einzelnen Abkürzungen zu einander
+\setlength{\nomitemsep}{-\parsep}
+% Index mit Abkürzungen erzeugen
+\makenomenclature
+%\makeglossary
+
+% Abkürzungsverzeichnis TeTEX Version
+% \usepackage[german]{nomencl}
+% \makenomenclature
+% %\makeglossary
+% \renewcommand{\nomname}{Abkürzungsverzeichnis}
+% \AtBeginDocument{\setlength{\nomlabelwidth}{.25\columnwidth}}
+% \renewcommand{\nomlabel}[1]{#1 \dotfill}
+% \setlength{\nomitemsep}{-\parsep}
+
+% Optional: Einzelne Zeilen am Anfang einer Seite unterdrücken (Schusterjungen)
+% \clubpenalty = 10000
+% Optional: Einzelne Zeilen am Ende einer Seite unterdrücken (Hurenkinder)
+% \widowpenalty = 10000
+% \displaywidowpenalty = 10000
+
+
+
+\usepackage{tikz}
+
+\usetikzlibrary{arrows,decorations.pathmorphing,backgrounds,positioning,fit,petri, decorations.pathreplacing,shadows,calc}
+
+\definecolor{echoreg}{HTML}{2cb1e1}
+\definecolor{sublimedg}{HTML}{171813}
+\definecolor{lgry}{HTML}{aaaaaa}
+\definecolor{mymauve}{rgb}{0.58,0,0.82}
+
+
+
+\tikzset{%
+ cascaded/.style = {%
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -1ex,
+ shadow yshift = 1ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -1ex,
+ shadow yshift = 1ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -.5ex,
+ shadow yshift = .5ex,
+ draw=black,
+ thick,
+ fill = white},
+ fill = white,
+ draw,
+ thick}}
+
+\tikzset{%
+ cascadedd/.style = {%
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -4.5ex,
+ shadow yshift = 4.5ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -4ex,
+ shadow yshift = 4ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -3.5ex,
+ shadow yshift = 3.5ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -3ex,
+ shadow yshift = 3ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -2.5ex,
+ shadow yshift = 2.5ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -2ex,
+ shadow yshift = 2ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -1.5ex,
+ shadow yshift = 1.5ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -1ex,
+ shadow yshift = 1ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -.5ex,
+ shadow yshift = .5ex,
+ draw=black,
+ thick,
+ fill = white},
+ fill = white,
+ draw,
+ thick}}
+
+\tikzset{%
+ cascadeddd/.style = {%
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -9ex,
+ shadow yshift = 9ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -8.5ex,
+ shadow yshift = 8.5ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -8ex,
+ shadow yshift = 8ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -7.5ex,
+ shadow yshift = 7.5ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -7ex,
+ shadow yshift = 7ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -6.5ex,
+ shadow yshift = 6.5ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -6ex,
+ shadow yshift = 6ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -5.5ex,
+ shadow yshift = 5.5ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -5ex,
+ shadow yshift = 5ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -4.5ex,
+ shadow yshift = 4.5ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -4ex,
+ shadow yshift = 4ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -3.5ex,
+ shadow yshift = 3.5ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -3ex,
+ shadow yshift = 3ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -2.5ex,
+ shadow yshift = 2.5ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -2ex,
+ shadow yshift = 2ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -1.5ex,
+ shadow yshift = 1.5ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -1ex,
+ shadow yshift = 1ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -.5ex,
+ shadow yshift = .5ex,
+ draw=black,
+ thick,
+ fill = white},
+ fill = white,
+ draw,
+ thick}}
+
+
+\tikzset{%
+ cascaded3/.style = {%
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -9ex,
+ shadow yshift = 9ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -8.5ex,
+ shadow yshift = 8.5ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -8ex,
+ shadow yshift = 8ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -7.5ex,
+ shadow yshift = 7.5ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -7ex,
+ shadow yshift = 7ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -6.5ex,
+ shadow yshift = 6.5ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -6ex,
+ shadow yshift = 6ex,
+ draw=black,
+ thick,
+ fill = white},
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -5.5ex,
+ shadow yshift = 5.5ex,
+ draw=black,
+ thick,
+ fill = white},
+
+ fill = white,
+ draw,
+ thick}}
+
+
+\tikzset{
+test/.style = {%
+ general shadow = {%
+ shadow scale = 1,
+ shadow xshift = -9ex,
+ shadow yshift = 9ex,
+ draw=black,
+ thick,
+ fill = white}
+ }}
+
+
+\tikzset{
+slimconv/.style = {rectangle,
+ dashed,
+ draw=sublimedg,
+ fill=cyan,
+ fill opacity=0.5,
+ very thin,
+ minimum width=0.1em,
+ minimum height=12em
+ }}
+
+
+\let\oldquote\quote
+\let\endoldquote\endquote
+\renewenvironment{quote}[2][]
+ {\if\relax\detokenize{#1}\relax
+ \def\quoteauthor{#2}%
+ \else
+ \def\quoteauthor{#2~---~#1}%
+ \fi
+ \oldquote}
+ {\par\nobreak\smallskip\hfill(\quoteauthor)%
+ \endoldquote\addvspace{\bigskipamount}}
+ %\usepackage{wrapfig}
+
+\newpage
+
+\begin{document}
+% hier werden die Trennvorschläge inkludiert
+\input{latex_einstellungen/trennung}
+
+% Schriftart Helvetica verwenden
+%\usepackage{helvet}
+%\renewcommand\familydefault{\sfdefault}
+
+% Titelseite %
+\input{latex_einstellungen/deckblatt}
+
+% römische Numerierung
+\pagenumbering{roman}
+
+% 1.5 facher Zeilenabstand
+\onehalfspacing
+
+\newpage
+
+
+% Einleitung / Abstract
+\thispagestyle{empty}
+\input{abstract}
+
+% einfacher Zeilenabstand
+\singlespacing
+
+\newpage
+% Seitenzählung bei Inhaltsverzeichnis beginnen
+\setcounter{page}{1}
+
+% Inhaltsverzeichnis anzeigen
+\thispagestyle{empty}
+\tableofcontents
+
+\newpage
+% das Abbildungsverzeichnis
+% Abbildungsverzeichnis soll im Inhaltsverzeichnis auftauchen
+\addcontentsline{toc}{section}{Abbildungsverzeichnis}
+% Verion 1: Abbildungsverzeichnis MIT führender Nummberierung endgueltig anzeigen
+\listoffigures
+
+% Verion 2: Abbildungsverzeichnis OHNE führende Nummberierung endgueltig anzeigen
+%\begingroup
+%\renewcommand\numberline[1]{}
+%\listofs
+%\endgroup
+
+
+% das Tabellenverzeichnis
+%\newpage
+% Tabellenverzeichnis soll im Inhaltsverzeichnis auftauchen
+%\addcontentsline{toc}{section}{Tabellenverzeichnis}
+% \fancyhead[L]{Abbildungsverzeichnis / Abkürzungsverzeichnis} %Kopfzeile links
+% Tabellenverzeichnis endgültig anzeigen
+%\listoftables
+
+%% WORKAROUND für Listings
+%\makeatletter% --> De-TeX-FAQ
+%\renewcommand*{\lstlistoflistings}{%
+% \begingroup
+% \if@twocolumn
+% \@restonecoltrue\onecolumn
+% \else
+% \@restonecolfalse
+% \fi
+% \lol@heading
+% \setlength{\parskip}{\z@}%
+% \setlength{\parindent}{\z@}%
+% \setlength{\parfillskip}{\z@ \@plus 1fil}%
+% \@starttoc{lol}%
+% \if@restonecol\twocolumn\fi
+% \endgroup
+%}
+%\makeatother% --> \makeatletter
+% das Listingverzeichnis
+%\newpage
+% Listingverzeichnis soll im Inhaltsverzeichnis auftauchen
+%\addcontentsline{toc}{section}{Listingverzeichnis}
+%\fancyhead[L]{Listingverzeichnis} %Kopfzeile links
+%\renewcommand{\lstlistlistingname}{Listingverzeichnis}
+%\lstlistoflistings
+%%%%
+
+% das Abkürzungsverzeichnis
+\newpage
+% Abkürzungsverzeichnis soll im Inhaltsverzeichnis auftauchen
+\addcontentsline{toc}{section}{Abkürzungsverzeichnis}
+% das Abkürzungsverzeichnis ausgeben
+\fancyhead[L]{Abkürzungsverzeichnis} %Kopfzeile links
+\input{latex_einstellungen/abkuezungen/abkuerzungen}
+\printnomenclature[3cm]
+
+
+%%%%%%% EINLEITUNG %%%%%%%%%%%%
+\newpage
+\fancyhead[L]{\nouppercase{\leftmark}} %Kopfzeile links
+
+% 1,5 facher Zeilenabstand
+\onehalfspacing
+
+% arabische Seitennummerierung ab hier
+\pagenumbering{arabic}
+
+
+
+\nocite{*} % adds all references without citations to bibliography
+\bibliographystyle{apalike}
+\bibliography{Hauptdatei}
+
+
+\input{kapitel/gesamtsystem/Gesamtsystem}
+
+\input{kapitel/daten/die_daten}
+
+\input{kapitel/datenaufbereitung/die_datenaufbereitung}
+
+\input{kapitel/neuronale_netze/die_neuronalen_netze}
+
+\input{kapitel/app_datenbank/app_datenbank}
+
+
+% In dieser Datei ist viel Beispielcode für alle möglichen Arten von Formattierungen usw.
+%\input{beispiel_text}
+
+
+\end{document}
diff --git a/Documentation/src/Makefile b/Documentation/src/Makefile
new file mode 100644
index 0000000..e883c9d
--- /dev/null
+++ b/Documentation/src/Makefile
@@ -0,0 +1,45 @@
+#############################################################
+# Files to remove when target clean is called
+
+FILES2CLEAN = $(shell find ./ -name "*.log" -o -name "*.aux" -o -name "*.toc" -o -name "*.out" -o -name "*.lof" -o -name "*.bbl" -o -name "*.blg" -o -name "*.loc" -o -name "*.lot" -o -name "*.idx" -o -name "*.nlo")
+
+
+#############################################################
+# File to build
+
+
+THESIS = Hauptdatei
+
+#############################################################
+# Command definition
+
+CMD_LATEX = pdflatex
+CMD_BIB = bibtex
+CMD_CLEAN = rm -rf
+
+
+
+
+#############################################################
+# Targets
+
+
+.PHONY : pdf $(THESIS).pdf
+
+pdf: bib
+ $(CMD_LATEX) $(THESIS)
+ $(CMD_LATEX) $(THESIS)
+ $(CMD_CLEAN) $(FILES2CLEAN)
+
+
+thesis:
+ $(CMD_LATEX) $(THESIS)
+
+bib: thesis
+ $(CMD_BIB) $(THESIS)
+
+clean:
+ $(CMD_CLEAN) $(FILES2CLEAN)
+
+clean_all: clean
+ $(CMD_CLEAN) $(THESIS).pdf
diff --git a/Documentation/src/abb/Categorical.png b/Documentation/src/abb/Categorical.png
new file mode 100644
index 0000000..489d15b
Binary files /dev/null and b/Documentation/src/abb/Categorical.png differ
diff --git a/Documentation/src/abb/Gesamtsystem.png b/Documentation/src/abb/Gesamtsystem.png
new file mode 100644
index 0000000..b3ed00e
Binary files /dev/null and b/Documentation/src/abb/Gesamtsystem.png differ
diff --git a/Documentation/src/abb/LSTM_LOGBIN.png b/Documentation/src/abb/LSTM_LOGBIN.png
new file mode 100644
index 0000000..cba1fe2
Binary files /dev/null and b/Documentation/src/abb/LSTM_LOGBIN.png differ
diff --git a/Documentation/src/abb/Loss_zinfBinom.png b/Documentation/src/abb/Loss_zinfBinom.png
new file mode 100644
index 0000000..5c884e9
Binary files /dev/null and b/Documentation/src/abb/Loss_zinfBinom.png differ
diff --git a/Documentation/src/abb/ROC_Categorical.png b/Documentation/src/abb/ROC_Categorical.png
new file mode 100644
index 0000000..f307544
Binary files /dev/null and b/Documentation/src/abb/ROC_Categorical.png differ
diff --git a/Documentation/src/abb/ROC_ZINFBINOM.png b/Documentation/src/abb/ROC_ZINFBINOM.png
new file mode 100644
index 0000000..f3557cd
Binary files /dev/null and b/Documentation/src/abb/ROC_ZINFBINOM.png differ
diff --git a/Documentation/src/abb/Radardatapoints_of_June_2016.svg b/Documentation/src/abb/Radardatapoints_of_June_2016.svg
new file mode 100644
index 0000000..fe52208
--- /dev/null
+++ b/Documentation/src/abb/Radardatapoints_of_June_2016.svg
@@ -0,0 +1,3186 @@
+
+
+
+
diff --git a/Documentation/src/abb/Radardatapoints_of_June_2016_RecoveredData.svg b/Documentation/src/abb/Radardatapoints_of_June_2016_RecoveredData.svg
new file mode 100644
index 0000000..c0528ab
--- /dev/null
+++ b/Documentation/src/abb/Radardatapoints_of_June_2016_RecoveredData.svg
@@ -0,0 +1,3661 @@
+
+
+
+
diff --git a/Documentation/src/abb/Radardatapoints_of_June_2016_RemainingData.svg b/Documentation/src/abb/Radardatapoints_of_June_2016_RemainingData.svg
new file mode 100644
index 0000000..1ce9af8
--- /dev/null
+++ b/Documentation/src/abb/Radardatapoints_of_June_2016_RemainingData.svg
@@ -0,0 +1,3103 @@
+
+
+
+
diff --git a/Documentation/src/abb/Radardatapoints_of_June_2016_TransformedToPNG.svg b/Documentation/src/abb/Radardatapoints_of_June_2016_TransformedToPNG.svg
new file mode 100644
index 0000000..a93e4f7
--- /dev/null
+++ b/Documentation/src/abb/Radardatapoints_of_June_2016_TransformedToPNG.svg
@@ -0,0 +1,1316 @@
+
+
+
+
diff --git a/Documentation/src/abb/Radardatapoints_of_June_2016_larger0.svg b/Documentation/src/abb/Radardatapoints_of_June_2016_larger0.svg
new file mode 100644
index 0000000..cb65371
--- /dev/null
+++ b/Documentation/src/abb/Radardatapoints_of_June_2016_larger0.svg
@@ -0,0 +1,3208 @@
+
+
+
+
diff --git a/Documentation/src/abb/Radardatapoints_of_June_2016_larger0_99percentile.svg b/Documentation/src/abb/Radardatapoints_of_June_2016_larger0_99percentile.svg
new file mode 100644
index 0000000..8607a02
--- /dev/null
+++ b/Documentation/src/abb/Radardatapoints_of_June_2016_larger0_99percentile.svg
@@ -0,0 +1,3344 @@
+
+
+
+
diff --git a/Documentation/src/abb/Radardatapoints_of_June_2016_larger0_percentiles.svg b/Documentation/src/abb/Radardatapoints_of_June_2016_larger0_percentiles.svg
new file mode 100644
index 0000000..2218674
--- /dev/null
+++ b/Documentation/src/abb/Radardatapoints_of_June_2016_larger0_percentiles.svg
@@ -0,0 +1,3466 @@
+
+
+
+
diff --git a/Documentation/src/abb/UNET_LOGBIN.png b/Documentation/src/abb/UNET_LOGBIN.png
new file mode 100644
index 0000000..19fbc70
Binary files /dev/null and b/Documentation/src/abb/UNET_LOGBIN.png differ
diff --git a/Documentation/src/abb/app_datenbank_komponente_uebersicht.png b/Documentation/src/abb/app_datenbank_komponente_uebersicht.png
new file mode 100644
index 0000000..90eebe9
Binary files /dev/null and b/Documentation/src/abb/app_datenbank_komponente_uebersicht.png differ
diff --git a/Documentation/src/abb/categoricalConfusion_LSTM.png b/Documentation/src/abb/categoricalConfusion_LSTM.png
new file mode 100644
index 0000000..67d1ccc
Binary files /dev/null and b/Documentation/src/abb/categoricalConfusion_LSTM.png differ
diff --git a/Documentation/src/abb/categoricalConfusion_UNET.png b/Documentation/src/abb/categoricalConfusion_UNET.png
new file mode 100644
index 0000000..1863f25
Binary files /dev/null and b/Documentation/src/abb/categoricalConfusion_UNET.png differ
diff --git a/Documentation/src/abb/daten_stationsuebersicht.png b/Documentation/src/abb/daten_stationsuebersicht.png
new file mode 100644
index 0000000..67342d8
Binary files /dev/null and b/Documentation/src/abb/daten_stationsuebersicht.png differ
diff --git "a/Documentation/src/abb/datenbank_aufbau_\303\274bersicht.png" "b/Documentation/src/abb/datenbank_aufbau_\303\274bersicht.png"
new file mode 100644
index 0000000..09c2535
Binary files /dev/null and "b/Documentation/src/abb/datenbank_aufbau_\303\274bersicht.png" differ
diff --git a/Documentation/src/abb/dist_LSTM.png b/Documentation/src/abb/dist_LSTM.png
new file mode 100644
index 0000000..889f77a
Binary files /dev/null and b/Documentation/src/abb/dist_LSTM.png differ
diff --git a/Documentation/src/abb/dist_UNET.png b/Documentation/src/abb/dist_UNET.png
new file mode 100644
index 0000000..7902cf5
Binary files /dev/null and b/Documentation/src/abb/dist_UNET.png differ
diff --git a/Documentation/src/abb/dist_cat_lstm.png b/Documentation/src/abb/dist_cat_lstm.png
new file mode 100644
index 0000000..c21eead
Binary files /dev/null and b/Documentation/src/abb/dist_cat_lstm.png differ
diff --git a/Documentation/src/abb/dist_cat_unet.png b/Documentation/src/abb/dist_cat_unet.png
new file mode 100644
index 0000000..a85d895
Binary files /dev/null and b/Documentation/src/abb/dist_cat_unet.png differ
diff --git a/Documentation/src/abb/firebase_aufbau.png b/Documentation/src/abb/firebase_aufbau.png
new file mode 100644
index 0000000..d7f320c
Binary files /dev/null and b/Documentation/src/abb/firebase_aufbau.png differ
diff --git a/Documentation/src/abb/flutter_google_trends.png b/Documentation/src/abb/flutter_google_trends.png
new file mode 100644
index 0000000..208c106
Binary files /dev/null and b/Documentation/src/abb/flutter_google_trends.png differ
diff --git a/Documentation/src/abb/funktionsweise_pushnachrichten_senden.png b/Documentation/src/abb/funktionsweise_pushnachrichten_senden.png
new file mode 100644
index 0000000..d6209f3
Binary files /dev/null and b/Documentation/src/abb/funktionsweise_pushnachrichten_senden.png differ
diff --git a/Documentation/src/abb/karte_abdeckung_daten.png b/Documentation/src/abb/karte_abdeckung_daten.png
new file mode 100644
index 0000000..4327f12
Binary files /dev/null and b/Documentation/src/abb/karte_abdeckung_daten.png differ
diff --git a/Documentation/src/abb/listen_pixel_berechnung.png b/Documentation/src/abb/listen_pixel_berechnung.png
new file mode 100644
index 0000000..bdf6112
Binary files /dev/null and b/Documentation/src/abb/listen_pixel_berechnung.png differ
diff --git a/Documentation/src/abb/logo1.png b/Documentation/src/abb/logo1.png
new file mode 100755
index 0000000..7fd764c
Binary files /dev/null and b/Documentation/src/abb/logo1.png differ
diff --git a/Documentation/src/abb/logo2.png b/Documentation/src/abb/logo2.png
new file mode 100755
index 0000000..ae93ea1
Binary files /dev/null and b/Documentation/src/abb/logo2.png differ
diff --git a/Documentation/src/abb/min_LSTM_2categorical.png b/Documentation/src/abb/min_LSTM_2categorical.png
new file mode 100644
index 0000000..4d7d484
Binary files /dev/null and b/Documentation/src/abb/min_LSTM_2categorical.png differ
diff --git a/Documentation/src/abb/min_LSTM_categorical.png b/Documentation/src/abb/min_LSTM_categorical.png
new file mode 100644
index 0000000..c1c079d
Binary files /dev/null and b/Documentation/src/abb/min_LSTM_categorical.png differ
diff --git a/Documentation/src/abb/prediction/100_cat_maxCont.jpg b/Documentation/src/abb/prediction/100_cat_maxCont.jpg
new file mode 100644
index 0000000..ac1223d
Binary files /dev/null and b/Documentation/src/abb/prediction/100_cat_maxCont.jpg differ
diff --git a/Documentation/src/abb/prediction/100_maxCont.jpg b/Documentation/src/abb/prediction/100_maxCont.jpg
new file mode 100644
index 0000000..f457e6c
Binary files /dev/null and b/Documentation/src/abb/prediction/100_maxCont.jpg differ
diff --git a/Documentation/src/abb/prediction/101_cat_maxCont.jpg b/Documentation/src/abb/prediction/101_cat_maxCont.jpg
new file mode 100644
index 0000000..561cd2b
Binary files /dev/null and b/Documentation/src/abb/prediction/101_cat_maxCont.jpg differ
diff --git a/Documentation/src/abb/prediction/101_maxCont.jpg b/Documentation/src/abb/prediction/101_maxCont.jpg
new file mode 100644
index 0000000..41d2c7b
Binary files /dev/null and b/Documentation/src/abb/prediction/101_maxCont.jpg differ
diff --git a/Documentation/src/abb/prediction/102_cat_maxCont.jpg b/Documentation/src/abb/prediction/102_cat_maxCont.jpg
new file mode 100644
index 0000000..0a204c2
Binary files /dev/null and b/Documentation/src/abb/prediction/102_cat_maxCont.jpg differ
diff --git a/Documentation/src/abb/prediction/102_maxCont.jpg b/Documentation/src/abb/prediction/102_maxCont.jpg
new file mode 100644
index 0000000..2b32726
Binary files /dev/null and b/Documentation/src/abb/prediction/102_maxCont.jpg differ
diff --git a/Documentation/src/abb/prediction/103_cat_maxCont.jpg b/Documentation/src/abb/prediction/103_cat_maxCont.jpg
new file mode 100644
index 0000000..5f6a978
Binary files /dev/null and b/Documentation/src/abb/prediction/103_cat_maxCont.jpg differ
diff --git a/Documentation/src/abb/prediction/103_maxCont.jpg b/Documentation/src/abb/prediction/103_maxCont.jpg
new file mode 100644
index 0000000..c150fe0
Binary files /dev/null and b/Documentation/src/abb/prediction/103_maxCont.jpg differ
diff --git a/Documentation/src/abb/prediction/104_cat_maxCont.jpg b/Documentation/src/abb/prediction/104_cat_maxCont.jpg
new file mode 100644
index 0000000..16391fd
Binary files /dev/null and b/Documentation/src/abb/prediction/104_cat_maxCont.jpg differ
diff --git a/Documentation/src/abb/prediction/104_maxCont.jpg b/Documentation/src/abb/prediction/104_maxCont.jpg
new file mode 100644
index 0000000..8a84a47
Binary files /dev/null and b/Documentation/src/abb/prediction/104_maxCont.jpg differ
diff --git a/Documentation/src/abb/prediction/105_cat_maxCont.jpg b/Documentation/src/abb/prediction/105_cat_maxCont.jpg
new file mode 100644
index 0000000..5e26cf2
Binary files /dev/null and b/Documentation/src/abb/prediction/105_cat_maxCont.jpg differ
diff --git a/Documentation/src/abb/prediction/105_maxCont.jpg b/Documentation/src/abb/prediction/105_maxCont.jpg
new file mode 100644
index 0000000..bc980d2
Binary files /dev/null and b/Documentation/src/abb/prediction/105_maxCont.jpg differ
diff --git a/Documentation/src/abb/prediction/106_cat_maxCont.jpg b/Documentation/src/abb/prediction/106_cat_maxCont.jpg
new file mode 100644
index 0000000..3637386
Binary files /dev/null and b/Documentation/src/abb/prediction/106_cat_maxCont.jpg differ
diff --git a/Documentation/src/abb/prediction/106_maxCont.jpg b/Documentation/src/abb/prediction/106_maxCont.jpg
new file mode 100644
index 0000000..4aed8a1
Binary files /dev/null and b/Documentation/src/abb/prediction/106_maxCont.jpg differ
diff --git a/Documentation/src/abb/prediction/107_cat_maxCont.jpg b/Documentation/src/abb/prediction/107_cat_maxCont.jpg
new file mode 100644
index 0000000..ee4135a
Binary files /dev/null and b/Documentation/src/abb/prediction/107_cat_maxCont.jpg differ
diff --git a/Documentation/src/abb/prediction/107_maxCont.jpg b/Documentation/src/abb/prediction/107_maxCont.jpg
new file mode 100644
index 0000000..1d598db
Binary files /dev/null and b/Documentation/src/abb/prediction/107_maxCont.jpg differ
diff --git a/Documentation/src/abb/prediction/108_cat_maxCont.jpg b/Documentation/src/abb/prediction/108_cat_maxCont.jpg
new file mode 100644
index 0000000..608074f
Binary files /dev/null and b/Documentation/src/abb/prediction/108_cat_maxCont.jpg differ
diff --git a/Documentation/src/abb/prediction/108_maxCont.jpg b/Documentation/src/abb/prediction/108_maxCont.jpg
new file mode 100644
index 0000000..a824e82
Binary files /dev/null and b/Documentation/src/abb/prediction/108_maxCont.jpg differ
diff --git a/Documentation/src/abb/prediction/109_cat_maxCont.jpg b/Documentation/src/abb/prediction/109_cat_maxCont.jpg
new file mode 100644
index 0000000..42f4d36
Binary files /dev/null and b/Documentation/src/abb/prediction/109_cat_maxCont.jpg differ
diff --git a/Documentation/src/abb/prediction/109_maxCont.jpg b/Documentation/src/abb/prediction/109_maxCont.jpg
new file mode 100644
index 0000000..34754bf
Binary files /dev/null and b/Documentation/src/abb/prediction/109_maxCont.jpg differ
diff --git a/Documentation/src/abb/quantile_LSTM.png b/Documentation/src/abb/quantile_LSTM.png
new file mode 100644
index 0000000..9cd46e8
Binary files /dev/null and b/Documentation/src/abb/quantile_LSTM.png differ
diff --git a/Documentation/src/abb/quantile_UNET.png b/Documentation/src/abb/quantile_UNET.png
new file mode 100644
index 0000000..e5b5e16
Binary files /dev/null and b/Documentation/src/abb/quantile_UNET.png differ
diff --git a/Documentation/src/abb/radolan_koordinatensystem_aufbau.png b/Documentation/src/abb/radolan_koordinatensystem_aufbau.png
new file mode 100644
index 0000000..9e5aab1
Binary files /dev/null and b/Documentation/src/abb/radolan_koordinatensystem_aufbau.png differ
diff --git a/Documentation/src/abb/regenschirm.png b/Documentation/src/abb/regenschirm.png
new file mode 100644
index 0000000..39b060c
Binary files /dev/null and b/Documentation/src/abb/regenschirm.png differ
diff --git a/Documentation/src/abb/screenshot_forecast_list.jpg b/Documentation/src/abb/screenshot_forecast_list.jpg
new file mode 100644
index 0000000..8d9018b
Binary files /dev/null and b/Documentation/src/abb/screenshot_forecast_list.jpg differ
diff --git a/Documentation/src/abb/screenshot_forecast_map.jpg b/Documentation/src/abb/screenshot_forecast_map.jpg
new file mode 100644
index 0000000..4f60083
Binary files /dev/null and b/Documentation/src/abb/screenshot_forecast_map.jpg differ
diff --git a/Documentation/src/abb/screenshot_settings.jpg b/Documentation/src/abb/screenshot_settings.jpg
new file mode 100644
index 0000000..2909793
Binary files /dev/null and b/Documentation/src/abb/screenshot_settings.jpg differ
diff --git a/Documentation/src/abb/sequence_diagram_app_start.png b/Documentation/src/abb/sequence_diagram_app_start.png
new file mode 100644
index 0000000..4a21db4
Binary files /dev/null and b/Documentation/src/abb/sequence_diagram_app_start.png differ
diff --git a/Documentation/src/abb/sequence_diagram_change_settings.png b/Documentation/src/abb/sequence_diagram_change_settings.png
new file mode 100644
index 0000000..69b81fb
Binary files /dev/null and b/Documentation/src/abb/sequence_diagram_change_settings.png differ
diff --git a/Documentation/src/abb/simpleBaseLine.png b/Documentation/src/abb/simpleBaseLine.png
new file mode 100644
index 0000000..7f47f41
Binary files /dev/null and b/Documentation/src/abb/simpleBaseLine.png differ
diff --git a/Documentation/src/abb/skizzierung_regenvorhersage.png b/Documentation/src/abb/skizzierung_regenvorhersage.png
new file mode 100644
index 0000000..64793b8
Binary files /dev/null and b/Documentation/src/abb/skizzierung_regenvorhersage.png differ
diff --git a/Documentation/src/abb/znBinomConfusion_LSTM.png b/Documentation/src/abb/znBinomConfusion_LSTM.png
new file mode 100644
index 0000000..9802cbb
Binary files /dev/null and b/Documentation/src/abb/znBinomConfusion_LSTM.png differ
diff --git a/Documentation/src/abb/znBinomConfusion_UNET.png b/Documentation/src/abb/znBinomConfusion_UNET.png
new file mode 100644
index 0000000..59ebaca
Binary files /dev/null and b/Documentation/src/abb/znBinomConfusion_UNET.png differ
diff --git a/Documentation/src/abstract.tex b/Documentation/src/abstract.tex
new file mode 100755
index 0000000..6422971
--- /dev/null
+++ b/Documentation/src/abstract.tex
@@ -0,0 +1,11 @@
+\section*{Zusammenfassung}
+
+Hier steht der Text, welcher den Inhalte der Arbeit zusammenfasst...
+
+Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
+
+\section*{Abstract}
+
+Here goes the English text which summarizes the content of the thesis...
+
+Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
diff --git a/Documentation/src/anhang/abb/abb_anhang1.png b/Documentation/src/anhang/abb/abb_anhang1.png
new file mode 100755
index 0000000..7fd764c
Binary files /dev/null and b/Documentation/src/anhang/abb/abb_anhang1.png differ
diff --git a/Documentation/src/anhang/anhang.tex b/Documentation/src/anhang/anhang.tex
new file mode 100755
index 0000000..ed94f2e
--- /dev/null
+++ b/Documentation/src/anhang/anhang.tex
@@ -0,0 +1,13 @@
+\subsection*{Anhang}\label{anhang}
+
+Der Anhang bestehend aus Bildern und Texten...
+
+% Beispiel für Bildintegration
+\begin{figure}[htb]
+ \centering
+ \includegraphics[width=0.3\textwidth,angle=0]{abb/logo1}
+ \caption[Abbildung im Anhang]{Abbildung im Anhang}
+\label{fig:Abbildung im Anhang}
+\end{figure}
+
+Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
diff --git a/Documentation/src/beispiel.tex b/Documentation/src/beispiel.tex
new file mode 100755
index 0000000..f3f2c1a
--- /dev/null
+++ b/Documentation/src/beispiel.tex
@@ -0,0 +1,106 @@
+% Beispiel für Bild mit Fußnote
+\begin{figure}[htb]
+ \centering
+ \includegraphics[width=0.4\textwidth,angle=45]{abb/logo1}
+ \caption[Beispiel einer Bildbeschreibung]{Beispiel einer Bildbeschreibung\footnotemark}
+\label{fig:beispiel1}
+\end{figure}
+\footnotetext{Bildquelle: Beispiel einer Bildquelle}
+
+% Beispiel für Bildintegration
+\begin{figure}[htb]
+ \centering
+ \includegraphics[width=0.3\textwidth,angle=0]{abb/logo2}
+ \caption[Beschreibung]{Beschreibung}
+\label{fig:Beschreibung}
+\end{figure}
+
+% Beispiel: Referenz auf Abbildung
+Abbildung~\ref{fig:Beschreibung} [S.\pageref{fig:Beschreibung}]
+
+% Beispiel: Tabelle
+\begin{center}
+ \begin{tabular}{ | l | c | }
+ \hline
+ Überschrift 1 & Überschrift 2 \\ \hline \hline
+ Info 1 & Info 2 \\ \hline
+ Info 3 & Info 4 \\ \hline
+ \hline
+ \multicolumn{2}{|c|}{Info in einer Zelle} \\
+ \hline
+ \end{tabular}
+\end{center}
+
+
+% Beispiel für Quellcode Listings
+\lstset{language=xml}
+\begin{lstlisting}[frame=htrbl, caption={Die Datei {\normalfont \ttfamily data-config.xml} dient als Beispiel für XML Quellcode}, label={lst:dataconfigxml}]
+
+
+
+
+
+
+
+
+
+
+
+
+
+\end{lstlisting}
+
+\lstset{language=java}
+\begin{lstlisting}[frame=htrbl, caption={Das Listing zeigt Java Quellcode}, label={lst:result2}]
+/* generate TagCloud */
+Cloud cloud = new Cloud();
+cloud.setMaxWeight(_maxSizeOfText);
+cloud.setMinWeight(_minSizeOfText);
+cloud.setTagCase(Case.LOWER);
+
+/* evaluate context and find additional stopwords */
+String query = getContextQuery(_context);
+List contextStoplist = new ArrayList();
+contextStoplist = getStopwordsFromDB(query);
+
+/* append context stoplist */
+while(contextStoplist != null && !contextStoplist.isEmpty())
+ _stoplist.add(contextStoplist.remove(0));
+
+/* add cloud filters */
+if (_stoplist != null) {
+ DictionaryFilter df = new DictionaryFilter(_stoplist);
+ cloud.addInputFilter(df);
+}
+/* remove empty tags */
+NonNullFilter nnf = new NonNullFilter();
+cloud.addInputFilter(nnf);
+
+/* set minimum tag length */
+MinLengthFilter mlf = new MinLengthFilter(_minTagLength);
+cloud.addInputFilter(mlf);
+
+/* add taglist to tagcloud */
+cloud.addText(_taglist);
+
+/* set number of shown tags */
+cloud.setMaxTagsToDisplay(_tagsToDisplay);
+\end{lstlisting}
+
+
+% Beispiel für Formeln
+Die Zuordnung aller möglichen Werte, welche eine Zufallsvariable annehmen kann nennt man \emph{Verteilungsfunktion} von $X$.
+
+\begin{quotation}
+Die Funktion F: $\mathbb{R} \rightarrow$ [0,1] mit $F(t) = P (X \le t)$ heißt Verteilungsfunktion von $X$.\footnote{Mustermann, vgl.~\cite{mm2009}~[S.55]}
+\end{quotation}
+
+\begin{quotation}
+Für eine stetige Zufallsvariable $X: \Omega \rightarrow \mathbb{R}$ heißt eine integrierbare, nichtnegative reelle Funktion $w: \mathbb{R} \rightarrow \mathbb{R}$ mit $F(x) = P(X \le x) = \int_{-\infty}^{x} w(t)dt$ die \emph{Dichte} oder \emph{Wahrscheinlichkeitsdichte} der Zufallsvariablen $X$.\footnote{Mustermann, vgl.~\cite{mf2005}~[S.56]}
+\end{quotation}
diff --git a/Documentation/src/beispiel_text.tex b/Documentation/src/beispiel_text.tex
new file mode 100644
index 0000000..801269e
--- /dev/null
+++ b/Documentation/src/beispiel_text.tex
@@ -0,0 +1,48 @@
+% einzelne Kapitel werden hier eingebunden
+\input{1_einleitung}
+\newpage
+
+\input{2_kap1}
+\newpage
+
+\input{3_kap2}
+\newpage
+
+% hier können weitere Kapitel angelegt und eingetragen werden
+% ....
+
+\input{7_ausblick}
+\newpage
+
+\input{8_fazit}
+
+\input{beispiel}
+
+% einfacher Zeilenabstand
+\singlespacing
+% Literaturliste soll im Inhaltsverzeichnis auftauchen
+\newpage
+\addcontentsline{toc}{section}{Literaturverzeichnis}
+% Literaturverzeichnis anzeigen
+\renewcommand\refname{Literaturverzeichnis}
+\bibliography{Hauptdatei}
+
+%% Index soll Stichwortverzeichnis heissen
+% \newpage
+% % Stichwortverzeichnis soll im Inhaltsverzeichnis auftauchen
+% \addcontentsline{toc}{section}{Stichwortverzeichnis}
+% \renewcommand{\indexname}{Stichwortverzeichnis}
+% % Stichwortverzeichnis endgültig anzeigen
+% \printindex
+
+\onehalfspacing
+% evtl. Anhang
+\newpage
+\addcontentsline{toc}{section}{Anhang}
+\fancyhead[L]{Anhang} %Kopfzeile links
+\input{anhang/anhang}
+
+% Eidesstattliche Erklärung
+\newpage
+\addcontentsline{toc}{section}{Eidesstattliche Erklärung}
+\input{erklaerung}
diff --git a/Documentation/src/erklaerung.tex b/Documentation/src/erklaerung.tex
new file mode 100755
index 0000000..ccebda6
--- /dev/null
+++ b/Documentation/src/erklaerung.tex
@@ -0,0 +1,23 @@
+\section*{Eidesstattliche Erklärung}
+\thispagestyle{empty}
+
+\begin{verbatim}
+
+\end{verbatim}
+
+\begin{LARGE}Eidesstattliche Erklärung zur <-Arbeit>\end{LARGE}
+\begin{verbatim}
+
+
+\end{verbatim}
+Ich versichere, die von mir vorgelegte Arbeit selbstständig verfasst zu haben. Alle Stellen, die wörtlich oder sinngemäß aus veröffentlichten oder nicht veröffentlichten Arbeiten anderer entnommen sind, habe ich als entnommen kenntlich gemacht. Sämtliche Quellen und Hilfsmittel, die ich für die Arbeit benutzt habe, sind angegeben. Die Arbeit hat mit gleichem Inhalt bzw. in wesentlichen Teilen noch keiner anderen Prüfungsbehörde vorgelegen.
+
+
+
+\begin{displaymath}
+% use packages: array
+\begin{array}{ll}
+Unterschrift:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+& Ort, Datum:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+\end{array}
+\end{displaymath}
diff --git a/Documentation/src/kapitel/app_datenbank/app_datenbank.tex b/Documentation/src/kapitel/app_datenbank/app_datenbank.tex
new file mode 100644
index 0000000..82711f8
--- /dev/null
+++ b/Documentation/src/kapitel/app_datenbank/app_datenbank.tex
@@ -0,0 +1,8 @@
+\section{Die DeepRainApp und das Datenbankhandling}\label{die deeprain app und das datenbankhandling}
+In den folgenden Abschnitten werden alle Komponenten behandelt welche benötigt werden um die Vorhersage Daten in der DeepRain App anzuzeigen und die volle Funktionalität der App zu gewährleisten.
+
+\input{kapitel/app_datenbank/app_datenbank_uebersicht}
+\input{kapitel/app_datenbank/firebase}
+\input{kapitel/app_datenbank/datenbank_und_cloudspeicher}
+\input{kapitel/app_datenbank/server}
+\input{kapitel/app_datenbank/die_app}
\ No newline at end of file
diff --git a/Documentation/src/kapitel/app_datenbank/app_datenbank_uebersicht.tex b/Documentation/src/kapitel/app_datenbank/app_datenbank_uebersicht.tex
new file mode 100644
index 0000000..3b463bd
--- /dev/null
+++ b/Documentation/src/kapitel/app_datenbank/app_datenbank_uebersicht.tex
@@ -0,0 +1,11 @@
+\subsection{Übersicht}\label{übersicht}
+Die Komponente “App und Datenbankhandling” besteht zum wesentlich aus diese drei Unterkomponenten.
+
+\begin{figure}[h]
+ \centering
+ \includegraphics[width=0.6\textwidth,angle=0]{abb/app_datenbank_komponente_uebersicht}
+ \caption[Komponentenübersicht App und Datenbankhandling]{Die Komponente App und Datenbankhandling}
+\label{fig:Beschreibung}
+\end{figure}
+
+Die App dient im Wesentlichen zur Visualisierung der Daten und macht somit die Regenvorhersagen für den Endnutzer brauchbar. Auf dem Server werden die Vorhersagen berechnet und, in dem für dieses Kapitel relevanten Teil, für die App zur Verfügung gestellt. Die Cloudfunktion, welche in der Firebase gespeichert ist, ist für das senden der Push Benachrichtigungen an das Gerät verantwortlich. Das senden der Push Benachrichtigungen wird jedoch vom Server getriggert.
\ No newline at end of file
diff --git "a/Documentation/src/kapitel/app_datenbank/app_datenbank_\303\274bersicht.tex" "b/Documentation/src/kapitel/app_datenbank/app_datenbank_\303\274bersicht.tex"
new file mode 100644
index 0000000..507dc51
--- /dev/null
+++ "b/Documentation/src/kapitel/app_datenbank/app_datenbank_\303\274bersicht.tex"
@@ -0,0 +1,10 @@
+\subsection{Uebersicht}\label{uebersicht}
+Die Komponente “App und Datenbankhandling” besteht zum wesentlich aus diese drei Unterkomponenten.
+\begin{figure}[htb]
+ \centering
+ \includegraphics[width=0.6\textwidth,angle=0]{abb/app_datenbank_komponente_uebersicht}
+ \caption[Beschreibung]{Übersicht über die im folgenden Kapitel betrachtete Komponente App und Datenbankhandling}
+\label{fig:Beschreibung}
+\end{figure}
+
+Die App dient im Wesentlichen zur Visualisierung der Daten und macht somit die Regenvorhersagen für den Endnutzer brauchbar. Auf dem Server werden die Vorhersagen berechnet und, in dem für dieses Kapitel relevanten Teil, für die App zur Verfügung gestellt. Die Cloudfunktion, welche in der Firebase gespeichert ist, ist für das senden der Push Benachrichtigungen an das Gerät verantwortlich. Das senden der Push Benachrichtigungen wird jedoch vom Server getriggert.
\ No newline at end of file
diff --git a/Documentation/src/kapitel/app_datenbank/datenbank_und_cloudspeicher.tex b/Documentation/src/kapitel/app_datenbank/datenbank_und_cloudspeicher.tex
new file mode 100644
index 0000000..6579a6d
--- /dev/null
+++ b/Documentation/src/kapitel/app_datenbank/datenbank_und_cloudspeicher.tex
@@ -0,0 +1,22 @@
+\subsection{Datenbank und Cloudspeicher}\label{datenbank und cloudspeicher}
+Die verwendete Datenbank ist ein Firestore von Firebase. Firestore ist ein Cloud NOSQL Datenbanksystem.
+Die Daten werden in sogenannte Kollektionen und Dokumente eingeteilt.
+Dabei gehören zu jeder Kollektion Dokumente, in welchen die eigentlichen Daten gespeichert sind.
+In Abbildung \ref{fig:datenbank_aufbau} ist der Datenbankaufbau zu sehen.
+\begin{figure}[h]
+ \centering
+ \includegraphics[width=0.6\textwidth,angle=0]{abb/datenbank_aufbau_übersicht}
+ \caption[Datenbankarchitektur]{Der Aufbau der Kollektionen und Dokumente in der Firebase}
+\label{fig:datenbank_aufbau}
+\end{figure}
+
+Jedes Gerät besitzt einen einmaligen Device Token welcher in zwei Kollektionen gespeichert wird.
+Die Eine Kollektion steht für den Zeitpunkt in dem die Regenwarnung gesendet werden soll, die andere Kollektion steht für die Region in der die App verwendet wird.
+Diese beiden Kollektionen werden für das Senden der Push Benachrichtigungen benötigt, in dem Kapitel \ref{sec:Pushbenachrichtigungen} wird darauf genauer eingegangen.
+In den Einstellungen der App kann eingestellt werden wann die Regenwarnung als Push-Benachrichtigung gesendet werden soll.
+Je nachdem was der User einstellt, wird sein Devicetoken in eine andere Kollektion gespeichert.
+Dabei gibt es für jede einstellbare Zeit ein eigenes Dokument in der Kollektion TimeBeforeWarning.
+Wenn die Netze Regen vorhersagen wird vom Server ein Dokument in RainWarningPushNotification gepusht.
+Dieses Dokument wird von einer Cloud-Function (Siehe Kapitel \ref{sec:Pushbenachrichtigungen}) verwendet um die Push Benachrichtigungen an die richtigen Geräte zu senden.
+Der Cloud Storage von Firebase wird verwendet um die PNGs mit der jeweiligen Vorhersage zu speichern.
+Dabei pushed der Server alle 5 Minuten die neuen Vorhersagen. Diese PNGs werden in der App angezeigt.
\ No newline at end of file
diff --git a/Documentation/src/kapitel/app_datenbank/die_app.tex b/Documentation/src/kapitel/app_datenbank/die_app.tex
new file mode 100644
index 0000000..7b2a2f0
--- /dev/null
+++ b/Documentation/src/kapitel/app_datenbank/die_app.tex
@@ -0,0 +1,188 @@
+\subsection{Die App}\label{die app}
+
+\subsubsection{Funktionen der App}\label{funkionen der app}
+Die App soll die von den Netzen berechnete Vorhersagen visualisieren und dem Benutzer zur Verfügung stellen. Die Daten werden dabei sowohl in
+Tabellarischer als auch in Form einer Karte dargestellt. Dabei wird gewährleistet, dass immer die aktuellsten Daten zur Verfügung stehen.
+Außerdem wird der Benutzer benachrichtigt sobald es eine Regenwarnung gibt. Der Zeitpunkt der Regenwarnung kann eingestellt werden.
+
+\subsubsection{Screens der App}\label{screens der app}
+Im Wesentlichen besteht die App aus drei Screens. Einem Screen zum Anzeigen der Daten in Listenform,
+einem zum Anzeigen der Daten auf einer Karte und den Einstellungen.
+Die jeweiligen Screens können über die Bottomnavigation erreicht werden, somit ist es möglich intuitiv zwischen den einzelnen
+Screens zu wechseln.
+\begin{figure}[H]
+ \centering
+ \subfloat[][]{\includegraphics[width=0.3\linewidth]{abb/screenshot_forecast_list}}
+ \subfloat[][]{\includegraphics[width=0.3\linewidth]{abb/screenshot_forecast_map}}
+ \subfloat[][]{\includegraphics[width=0.3\linewidth]{abb/screenshot_settings}}
+ \caption{Die drei Hauptscreens der App}
+ \end{figure}
+
+\subsubsection*{Regenvorhersage als Liste}
+Auf diesem Screen werden die von den Netzen berechneten Regenvorhersagen angezeigt.
+Dabei wird in die drei Kategorien “Kein Regen”, “Leichter Regen” und “Starker Regen” unterschieden.
+Je höher die berechnete Regenintensität ist, je dunkler wird der Regenschirm welcher zu Beginn jedes einzelnen Listeneintrages zu sehen ist.
+
+\subsubsection*{Regenvorhersage als Karte}
+Auf diesem Screen werden die von den Netzen erzeugten PNGs visualisiert.
+Dafür werden die PNGs mit einer Karte hinterlegt auf welcher der User frei navigieren kann,
+um die aktuelle Regensituation an jedem beliebigen Ort zu prüfen.
+Dabei wird standardmäßig der Kartenausschnitt von der Region angezeigt, die in den Einstellungen eingestellt wurde.
+Mit dem Slider kann der Zeitpunkt eingestellt werden, in dem die Regenvorhersage angezeigt werden soll.
+Mit dem Aktualisieren Button in der Actionbar können die neusten Bilder vom Server heruntergeladen werden.
+Im Normalfall werden die Bilder einmalig bei dem App Start heruntergeladen.
+
+\subsubsection*{Einstellungen}
+Auf diesem Screen können alle relevanten Einstellungen gemacht werden. Dazu gehört z.B. die Sprache der Benutzeroberfläche. Außerdem kann die Region
+eingestellt werden. Die hier ausgewählte Region wird standardmäßig auf der Karte angezeigt und nur für diese Region werden Regenwarnungen gesendet.
+Unter der Benachrichtigung’s Kategorie können die Regenwarnungen Aktiviert werden sowie der Zeitpunkt der Regenwarnung eingestellt werden.
+Jede Aktion in dieser Kategorie löst eine Datenbankaktion aus. Wenn die Regenwarnung aktiviert wird, wird der Device Token von dem Gerät in die
+Datenbank hochgeladen, beim Deaktivieren wird der Device Token gelöscht. Wenn der Zeitpunkt der Regenwarnung verändert wird, wird der Device
+Token in der Datenbank von einer Kollektion in eine andere Kollektion verschoben.
+Alle gemachten Einstellungen werden in sogenannten Shared Preferences gespeichert, damit sie auch nach App Start immer noch vorhanden sind.
+Die Shared Preferences sind eine Key-Value Datenbank die auf dem Gerät gespeichert wird. Bei App Start werden die Einstellungen aus den Shared
+Preferences gelesen und auf globale Variablen gespeichert. Diese Variablen sind dafür entscheidend, welche Einstellungen wiederhergestellt werden.
+In der folgenden Abbildung kann der Datenfluss nachdem der Zeitpunkt der Regenwarnung verändert wurde nachvollzogen werden.
+
+\begin{figure}[H]
+ \centering
+ \includegraphics[width=0.8\textwidth,angle=0]{abb/sequence_diagram_change_settings}
+ \caption[Sequencediagram Einstellungen ändern]{Der Datenfluss beim ändern des Zeitpunktes der Regenwarnung}
+\label{fig:sequence_diagram_change_settings}
+\end{figure}
+
+\begin{figure}[H]
+ \centering
+ \includegraphics[width=0.8\textwidth,angle=0]{abb/sequence_diagram_app_start}
+ \caption[Sequencediagram Appstart]{Datenfluss beim starten der App inklusive der Datenbankabfragen (Server und Lokale Datenbank)}
+\label{fig:sequence_diagram_app_start}
+\end{figure}
+
+\subsubsection*{Die Berechnung der Regenintensität}
+Zu beginn wurde angenommen, dass die App nur in Konstanz verwendet werden soll.
+Im Laufe des Projektes stellte sich jedoch heraus, dass die entwickeleten Netze in der Lage sind, Vorhersagen
+für ganz Deutschland zu machen. Da die Software Architektur nicht für eine solche Anwendung ausgelegt war,
+mussten einige Änderungen vorgenommen werden.
+Bis zu diesem Zeitpunkt wurden die Vorhersage Daten für jeden Pixel auf dem Server berechnet und im Anschluss in
+der Firebase gespeichert.
+Bei verschiedenen Nutzern in verschiedenen Regionen kommt diese Architektur allerdings schnell an seine Grenzen.
+Hat die App bspw. 1000 Nutzer in verschiedenen Regionen,
+müssen für jeden der 1000 Nutzer, alle fünf Minuten, 20 Vorhersage Daten hochgeladen werden.
+Daher musste der Datenfluss so umstrukturiert werden, dass der neue Regenwert direkt in der App berechnet wird.
+Dabei muss das Handy den entsprechenden, eigenen, Pixel auf der Karte berechnen.
+Die Berechnung hierfür ist verhältnismäßig aufwändig, da mit großen Listen (810.000) Einträgen gearbeitet werden muss.
+Auf diese Berechnung wird in Abschnitt \ref{sec: pixel_berechnung} eingegangen.
+
+Wenn die Bilder beim Appstart oder bei einem Vorhersageupdate heruntergeladen werden, wird von jedem Bild der Regenwert
+in dem entsprechnden Pixel berechnet.
+Es wird eine Liste mit ForecastListItem Objekten erstellt. Diese wird global gespeichert und in der Vorhersage Liste angezeigt.
+Aktuell können nur beim App Start und durch manuelles auslösen eines Updates die Vorhersage Daten aktualisiert werden.
+
+\subsubsection*{Berechnung des Pixels} \label{sec: pixel_berechnung}
+Um die Regensituation an dem jeweiligen Ort des Users auszuwerten, muss der Pixel in dem Vorhersagebild berechnet werden.
+Hierfür dienen drei verschiedene Listen. Diese Listen wurden in Python mit der Wradlib erstellt, und anschließend
+im JSON Format in die App übertragen.
+Zwei der Listen enthalten alle Latitude bzw. Longitude Werte.
+Die Koordinaten in den einzelnen Indizes Kombiniert geben die Position der einzelnen Pixel im Weltkoordinatensystem an.
+In der dritten Liste steht zu jedem Index die jeweilig zugehörige Pixel Koordinate im Bild.
+Somit steht jeder Index für eine Position im Weltkoordinatensystem, ausgedrückt durch Höhen und Breitengrad Informationen,
+und der Abbildung dieser Position auf den Vorhersagebild.
+Da das Bild eine Auflösung von 900x900 Pixeln hat, sind diese Listen 810.000 Elemente groß.
+\begin{figure}[H]
+ \centering
+ \includegraphics[width=0.8\textwidth,angle=0]{abb/listen_pixel_berechnung.png}
+ \caption{Der Exemplarische Aufbau der Listen zur Berechnung des eigenen Pixels}
+ \label{fig:sequence_diagram_app_start}
+ \end{figure}
+ Jeder User hat eine eigene Position in Deutschland, welche in Form von Höhen und Breitengrad angaben bekannt ist.
+ Diese wird durch die in den Einstellungen festgelegte Region bestimmt.
+ Es wird nun also ein Algorithmus gesucht, der mithilfe der Höhen und Breitengrad Informationen den Pixel im Bild findet,
+ der am besten zu diesen Koordinaten passt.
+ Nun wäre es natürlich möglich, durch alle Indizes zu Iterieren und somit den richtigen Pixel zu finden. Dieses Verfahren
+ ist aber sehr Zeit und Rechenintensiv und daher nicht geeignet um es auf einem Smartphone auszuführen.
+
+ Wir brauchen noch eine Lösung!!
+
+\subsubsection{Framework Entscheidung}\label{framework entscheidung}
+Bei der Entwicklung einer App steht die Frage der zu bedienenden Plattformen an erster Stelle. Soll die App zum Beispiel nur unternehmensintern verwendet
+werden oder ist das Gerät auf dem sie verwendet wird eine Neuanschaffung kann es ausreichend sein nativ auf einer Plattform zu entwickeln. Soll jedoch,
+wie bei den meisten Apps, eine breite Zielgruppe angesprochen werden, ist es unerlässlich die App auf IOS und Android zur Verfügung zu stellen.
+Je nach dem auf welchen Betriebssystemen die App verwendet werden soll, muss eine komplett andere Framework wahl getroffen werden.
+So würde man, wenn man entweder nur für IOS oder Android entwickeln möchte, zu einer der nativen Lösungen greifen. Je nach Anforderungen kann auch,
+wenn beide Betriebssysteme bedient werden sollen, zu der nativen Lösung gegriffen werden. In dem Fall muss der komplette Code natürlich doppelt
+geschrieben werden. Daher wird normalerweise auf Frameworks zurück gegriffen welche beide Betriebssysteme bedienen.
+Einige bekannte Frameworks sind zum Beispiel Xamarin, React Native oder Flutter. Jedes dieser Frameworks ist zukunftsträchtig und wurde von großen
+Unternehmen auf den Markt gebracht. So steht Microsoft hinter Xamarin, Facebook hinter React Native und Google hinter Flutter.
+Je nach Framework Wahl kann von ca. 80-100 Prozent von dem kompletten Code für beide Betriebssysteme verwendet werden.
+Dafür sind Cross-Plattform Frameworks oft nicht so performant wie die nativen. Dies fällt besonders bei rechenaufwändigen Apps und Spielen ins Gewicht.
+Bei so einer leichten App wie DeepRain fällt dieser Nachteil nicht ins Gewicht. Außerdem hätten wir auch nicht genug Kapazitäten um zwei native und
+voneinander unabhängige Apps zu entwickeln.
+Ein großer Vorteil von Flutter ist, dass 100 Prozent der Codebasis für Android und IOS übernommen werden können. Außerdem hat die Prominenz von
+Flutter in den letzten Jahren seit der Veröffentlichung stark zugenommen. In der folgenden Abbildung sind die Google Suchanfragen für den Begriff
+Flutter abgebildet. Das in Kombination mit eigenem Interesse an dem Framework, ist der Grund dafür, dass die DeepRain App mit Flutter entwickelt wurde.
+
+\begin{figure}[H]
+ \centering
+ \includegraphics[width=0.8\textwidth,angle=0]{abb/flutter_google_trends}
+ \caption[Entwicklung von Flutter]{Entwicklung der Suchanfragen für den Begriff 'Flutter'}
+\label{fig:flutter_google_trends}
+\end{figure}
+
+\subsubsection{Technischer Aufbau von Flutter}
+Flutter Anwendungen werden in der Programmiersprache Dart geschrieben und können anschließend für IOS, Android, Windows, Linux, MacOs und als WebApp
+veröffentlicht werden. Dart bringt dabei im Vergleich zu Java Script den Vorteil mit, dass es objektorientiert ist, was vor allem in größeren
+Softwarearchitekturen zum tragen kommt. Auch alle Bibliotheken um Code asynchron auszuführen werden bereits von Dart mitgeliefert.
+Die wohl größte Rolle für jeden Dart Entwickler spielen die sogenannten Widgets. Widgets sind einzelene Bausteine welche die UI repräsentieren.
+Jedes UI element ist dabei ein eigenes Widget. Dabei werden widgets oft ineinander geschachtelt, was es ermöglicht, komplexere UI’s zu entwerfen.
+Dabei werden Widgets in Stateless und Statefull Widgets unterschieden. Während ein Stateless Widget keine Daten und somit keinen Zustand speichern kann,
+ist das mit einem Stateful Widget möglich.
+
+Die Grundlage von Flutter sind Widgets. \\
+Wie funktioniert flutter? \\
+Was ist der Unterschied zu anderen hybriden Frameworks? \\
+Nur eine Codebasis \\
+Keine weiteren Frameworks nötig\\
+Alles dabei, UI, Widgets, Animationen\\
+
+\subsubsection{Projektstruktur}
+Welche Files gibt es? \\
+Welche Klassen gibt es? \\
+Wie arbeitet was zusammen? \\
+
+\subsection{Cloudfunktionen}
+Was ist eine Cloudfunktion? \\
+Was macht die Cloudfunktion? \\
+Wie funktioniert eine Cloudfunktion? \\
+
+\subsubsection{Push Benachrichtigungen}\label{sec:Pushbenachrichtigungen}
+Zum Warnen der Benutzer, wenn es eine Regenvorhersage gibt werden Push Nachrichten verwendet. Der Zeitpunkt der Push Benachrichtigungen kann in der App
+eingestellt werden. So kann man sich zwischen 5 und 30 Minuten vor dem bevorstehenden Regen warnen lassen.
+Um eine Push Benachrichtigung zu versenden speichert der Server ein Dokument in der Firebase welches alle für die Push Benachrichtigung relevanten Informationen
+enthält. Dazu gehört zum Beispiel Der Titel, der Text und wie lange es noch bis zu dem Regen braucht.
+Es wurde eine Cloud Funktion in der Firebase hinterlegt, welche darauf reagiert, dass ein neues Dokument vom Server gespeichert wurde.
+Daraufhin liest die Cloud Funktion aus gesonderten Kollektionen die Device Tokens aus, für welche die Push Benachrichtigung gedacht ist.
+Dafür wurden verschiedene Kollektionen angelegt in welchen die Device Tokens von jedem Gerät gespeichert wurden.
+Je nach dem zu welchem Zeitpunkt ein User die Regenwarnung erhalten möchte, wird sein Device Token in eine andere Kollektion gespeichert.
+Die Cloud Funktion liest also aus dem Dokument vom Server, welches alle Informationen zu der Push Benachrichtigung enthält, aus, wie langes
+es noch bis zu Regen dauert. Daraufhin liest es aus der Kollektion für den jeweiligen Zeitpunkt alle Device Tokens aus die nun benachrichtigt
+werden müssen und schickt die Push Benachrichtigung raus.
+Wenn der Benutzer den Zeitpunkt zu dem er benachrichtigt werden möchte verändert, wird sein Device Token aus der einen Kollektion gelöscht,
+und zu einer anderen hinzugefügt.
+
+\begin{figure}[H]
+ \centering
+ \includegraphics[width=0.8\textwidth,angle=0]{abb/funktionsweise_pushnachrichten_senden}
+ \caption[Funktionsweise von Pushbenachrichtigungen]{Funktionsweise des Prozesses zum senden von Push - Benachrichtigungen.}
+\label{fig:funktionsweise_pushnachrichten_senden}
+\end{figure}
+
+\subsubsection{Vorgehen bei Entwicklung}
+Da für die Entwicklung einer IOS App MacOS benötigt werden, wurde die komplette App unter Linux entwickelt und während dem Entwicklungsprozess nur auf
+Android Geräten getestet. Als die Grundfunktionalitäten verfügbar waren wurde die App mithilfe einer VirtualBox auf der MacOS installiert wurde auf einem
+IPhone installiert.\\
+Softwaretests \\
+Welche Tests und warum? \\
+
+
+
+
diff --git a/Documentation/src/kapitel/app_datenbank/firebase.tex b/Documentation/src/kapitel/app_datenbank/firebase.tex
new file mode 100644
index 0000000..4e93cbd
--- /dev/null
+++ b/Documentation/src/kapitel/app_datenbank/firebase.tex
@@ -0,0 +1,3 @@
+\subsection{Firebase}\label{firebase}
+Firebase ist eine Entwicklungsplattform für mobile Apps. Diese stellt verschiedene Services zur Verfügung welche es ermöglichen effizient Apps für IOS und Android zu entwickeln. Die Firebase ist ein zentraler Baustein der Komponente und wird in jeder Unterkomponente verwendet, weshalb hier einführend ein Überblick gegeben werden soll. Firebase eine Datenbank und einen Cloudspeicher zur Verfügung welcher genutzt wird um die Regendaten und Vorhersage PNGs auf den Geräten anzuzeigen und mit dem Server zu synchronisieren. Abgesehen von dem Datenbankservice übernimmt Firebase auch die Authentifizierung der einzelnen Geräte und es wäre möglich das Usermanagement zu handhaben, was in deepRain aber nicht benötigt wird. Des Weiteren werden die In-App Messaging dienste von Firebase verwendet um die Regenwarnungen in Form von Push Benachrichtigungen zu senden. Die genaue Funktionsweise wird in dem Kapitel “Push Nachrichten” beschrieben.
+Firebase ist bis zu einem gewissen Punkt der Verwendung komplett kostenlos. Wird dieser Punkt überschritten, sind die kosten von der tatsächlichen Nutzung abhängig. In der kostenlosen Version enthalten sind 1 GB Cloudspeicher, von welchem aktuell nur ein Bruchteil für die 20 PNGs verwendet wird. Des Weiteren können am Tag bis zu 20.000 Dokumente geschrieben werden, aktuell werden ca. 400 Dokumente geschrieben. Außerdem können 125.000 Dokumente gelesen werden, was ca. 2500 Appstarts am Tag entspricht und ca. 10.000 Push Benachrichtigungen im Monat versend werden.
\ No newline at end of file
diff --git a/Documentation/src/kapitel/app_datenbank/funktionen_der_app.tex b/Documentation/src/kapitel/app_datenbank/funktionen_der_app.tex
new file mode 100644
index 0000000..3064780
--- /dev/null
+++ b/Documentation/src/kapitel/app_datenbank/funktionen_der_app.tex
@@ -0,0 +1,4 @@
+\subsection{Funktionen der App}\label{funktionen der App}
+Die App soll die von den Netzen berechnete Vorhersagen visualisieren und dem Benutzer zur Verfügung stellen. Die Daten werden dabei sowohl in Tabellarischer als auch in Form einer Karte dargestellt. Dabei wird gewährleistet, dass immer die aktuellsten Daten zur Verfügung stehen. Außerdem wird der Benutzer benachrichtigt sobald es eine Regenwarnung gibt. Der Zeitpunkt der Regenwarnung kann eingestellt werden.
+
+
\ No newline at end of file
diff --git a/Documentation/src/kapitel/app_datenbank/server.tex b/Documentation/src/kapitel/app_datenbank/server.tex
new file mode 100644
index 0000000..a4d78e8
--- /dev/null
+++ b/Documentation/src/kapitel/app_datenbank/server.tex
@@ -0,0 +1,6 @@
+\subsection{Server}\label{server}
+Mit der Serverkomponente ist der Teil des Servers gemeint, der für die Kommunikation mit der Firebase verantwortlich ist. Dazu gehört das bereitstellen der aktuellsten Regendaten im Bildformat sowie das triggern von Push Benachrichtigungen.
+Da zu beginn des Projektes noch keine Vorhersagen von den Netzen zur Verfügung stand, wurde ein Programm entwickelt, dass den Server simuliert und zufällig generierte Regendaten in der Firebase speichert. Somit konnte die App unabhängig und parallel zu den Netzen entwickelt werden.
+Wenn die Netze eine neue Regenvorhersage getroffen haben, werden die daraus resultierenden Vorhersage Bilder in den Firestore hochgeladen.
+Um die Pushbenachrichtigungen auszulösen, muss für jede Region in der sich ein Nutzer befindet, der Pixel der Region berechnet werden.
+Dafür werden für alle vorhandenen Regionen, in denen Device Tokens gespeichert sind, es also Nutzer in der Region gibt, über den jeweiligen Breiten und Höhengrad der dazugehörige Pixel für die Region berechnet. Der Wert der jeweiligen Pixel wird ausgelesen. Liegt dieser Farb, oder auch Regenwert, über einem bestimmten Grenzwert, wird ein Dokument in der Kollektion RainWarningPushNotification gespeichert. Hierdurch wird eine Cloudfunktion getriggert, welche sich um das senden der Pushbenachrichtigungen kümmert.
\ No newline at end of file
diff --git a/Documentation/src/kapitel/daten/.die_daten.tex.swp b/Documentation/src/kapitel/daten/.die_daten.tex.swp
new file mode 100644
index 0000000..7cd0f64
Binary files /dev/null and b/Documentation/src/kapitel/daten/.die_daten.tex.swp differ
diff --git a/Documentation/src/kapitel/daten/die_daten.tex b/Documentation/src/kapitel/daten/die_daten.tex
new file mode 100644
index 0000000..7559ba1
--- /dev/null
+++ b/Documentation/src/kapitel/daten/die_daten.tex
@@ -0,0 +1,29 @@
+\section{Die Daten}\label{die daten}
+Die Datengrundlage für die Netze werden von dem DWD in Form des Radar Online Aneichungs verfahren (RADOLAN) zur Verfügung gestellt. Das RADOLAN verfahren kombiniert die Messungen der 18 Radarstation und den punktuellen Messungen von über 2000 Bodenniederschlagsstationen (https://www.dwd.de/DE/leistungen/radolan/radolan.html). Eine dieser Bodenniederschlagsstationen befindet sich in Konstanz.
+
+\begin{figure}[htb]
+ \centering
+ \includegraphics[width=0.6\textwidth,angle=0]{abb/daten_stationsuebersicht}
+ \caption[Stationen Übersicht]{Übersicht über alle Boden und Radarstationen}
+\label{fig:daten_stationsuebersicht}
+\end{figure}
+
+Um die Qualität der aus den RADAR Daten gewonnenen PNGs zu überprüfen, wurden die PNGs mit den Niederschlagsdaten von der Bodenstation in Konstanz verglichen. Die Daten der Station stehen in ein und zehn minütiger Auflösung zur Verfügung. Da sich herausstellte, dass bei der ein minütigen Auflösung Daten Fehlen, wurden die Daten der 10 minütigen Auflösung verwendet um die PNGs zu validieren.
+Die RADOLAN Daten für die Netze werden über den Opendata Server vom DWD zur Verfügung gestellt. Die Binärdaten werden je nach Jahr in Form eines 1100x900 oder 900x900 Pixel Gitter über Deutschland gelegt. Dabei entspricht jeder Pixel 1km x 1km. Jeder Pixel in dem Pixel Koordinatensystem hat dabei zugehörige Höhen und Breitengrad Koordinaten. In folgender Abbildung ist der Aufbau der Binärdaten zu sehen.
+
+\begin{figure}[h]
+ \centering
+ \includegraphics[width=0.8\textwidth,angle=0]{abb/radolan_koordinatensystem_aufbau}
+ \caption[Aufbau des Koordinatensystems von Binärdaten]{Der Aufbau des Koordinatensystems der Radar Daten}
+\label{fig:radolan_koordinatensystem_aufbau}
+\end{figure}
+
+Wie zu sehen ist, befinden sich der Pixel (0|0) in der Ecke unten links. Bei der Datenvorverarbeitung wird das Array mit den Pixeln jedoch von oben Links beginnend gefüllt, was bei dem entstehenden PNG zu einer Spiegelung von 90 grad um die vertikale Achse führt (Siehe Kapitel Datenaufbereitung).
+Des weiteren ist zu beachten, dass die Breitengrade in den Ecken nicht übereinstimmen. So hat die Ecke unten Links einen größeren Breitengrad als die Ecke oben Links. Das gleiche ist auch bei den Höhengraden zu beobachten. Die Ursache hierfür ist die Transformation der Daten von einer 3D Kugel auf eine 2D Karte. In Abbildung \ref{fig:karte_abdeckung_daten} ist das daraus resultierende Ergebnis abgebildet.
+
+\begin{figure}[H]
+ \centering
+ \includegraphics[width=0.6\textwidth,angle=0]{abb/karte_abdeckung_daten}
+ \caption[Von Daten abgedeckte Fläche]{Die von den Daten abgedeckte Fläche auf einer 2D Karte}
+\label{fig:karte_abdeckung_daten}
+\end{figure}
\ No newline at end of file
diff --git a/Documentation/src/kapitel/datenaufbereitung/die_datenaufbereitung.tex b/Documentation/src/kapitel/datenaufbereitung/die_datenaufbereitung.tex
new file mode 100644
index 0000000..b932df8
--- /dev/null
+++ b/Documentation/src/kapitel/datenaufbereitung/die_datenaufbereitung.tex
@@ -0,0 +1,75 @@
+\section{Die Datenaufbereitung}\label{die datenaufbereitung}
+Die vom Deutschen Wetterdienst (im Folgenden DWD abgekürzt) in fünf minütiger Auflösung bereitgestellten Radardaten, müssen für das Training der Netze und deren Vorhersage in ein Bildformat umgewandelt werden.
+Bei den bereits umgewandelten Bildern viel während der Entwicklung der Baseline auf, dass die Bilder weit weniger Regentage abbilden als es tatsächlich regnet. Daraufhin wurde das bisher vorgenommene Preprocessing evaluiert. Um die Radardaten in ein Bild umzuwandeln, muss jeder Radardatenpunkt in ein Pixelfarbwert transformiert werden. Bisher wurde dafür ein Sakalierungsfaktor berechnet mit dem jeder Radardatenpunkt multipliziert wurde. Der Faktor ergab sich aus dem zur Verfügung stehenden Wertebereich (0 bis 255), welcher durch den Maximalwert der Radardaten geteilt wurde. So erhält man transformierte Radarwerte in einem Bereich von 0 bis 255.
+Anschließend folgte eine Inspizierung der Daten. Hierfür wurde exemplarisch die Radardaten von Juni 2016 herangezogen.
+
+% \begin{figure}[htb]
+% \centering
+% \includesvg{abb/Radardatapoints_of_June_2016}
+% \caption[Datenaufbereitung]{Häufigkeitsverteilung der Regendaten}
+% \label{fig:datenaufbereitung}
+% \end{figure}
+
+Geplottet werden alle auftretenden Werte sowie dessen Häufigkeit. Hierbei stechen zwei Ausreißer hervor, welche sehr viel häufiger vorkommen als die restlichen Werte. Der Wert –9999 steht dabei dafür, dass keine Daten verfügbar sind und der zweite Ausreißer ist bei 0, was für “kein Regen” steht. In dem folgenden Plot werden die beiden Ausreißer gefiltert, da die relevanten Informationen in den restlichen Datenpunkten stecken.
+
+% \begin{figure}[H]
+% \centering
+% \includesvg[width=0.6\textwidth,angle=0]{abb/Radardatapoints_of_June_2016_larger0}
+% \caption[Datenaufbereitung]{Häufigkeitsverteilung der Regendaten größer null}
+% \label{fig:datenaufbereitung}
+% \end{figure}
+
+In diesem Plot dargestellt sind die Radardaten bei denen es regnet. Es wird deutlich, dass ein Großteil der Datenpunkte klein ist. Der Mittelwert liegt bei 0,1744 und zeigt das Problem der bestehenden preprocessing Methode: Radardatenpunkte deren Wert auch nach der Multiplikation mit dem berechneten Skalierungsfaktor kleiner eins sind werden zu null. Aufgrund der vorliegenden Datenverteilung führt das zu einem erheblichen Fehler weshalb eine andere Methode entwickelt werden muss.
+Die beiden folgenden Plots zeigen verschiedene Perzentile und machen so die Datenverteilung deutlich.
+
+% \begin{figure}[H]
+% \centering
+% \includesvg[width=0.6\textwidth,angle=0]{abb/Radardatapoints_of_June_2016_larger0_percentiles}
+% \caption[Datenaufbereitung]{Häufigkeitsverteilung der Regendaten mit Perzentilen}
+% \label{fig:datenaufbereitung}
+% \end{figure}
+
+% \begin{figure}[H]
+% \centering
+% \includesvg[width=0.6\textwidth,angle=0]{abb/Radardatapoints_of_June_2016_larger0_99percentile}
+% \caption[Datenaufbereitung]{Häufigkeitsverteilung der Regendaten mit 99% Perzentil}
+% \label{fig:datenaufbereitung}
+% \end{figure}
+
+Das 99 Prozent-Perzentil beinhaltet 138 verschiedene Werte. Wenn jedem dieser Werte ein Farbwert zugeordnet wird, werden 99 Prozent der daten bereits abgebildet und es verbleit ein Wertebereich von 117 mit welchem das letzte Prozent der Daten dargestellt werden kann.
+Der folgende Plot zeigt die Verteilung der noch verbleibenden Daten.
+
+% \begin{figure}[H]
+% \centering
+% \includegraphics[width=0.6\textwidth,angle=0]{abb/Radardatapoints_of_June_2016_RemainingData}
+% \caption[Datenaufbereitung]{Regendaten außerhalb des 99% Perzentils}
+% \label{fig:datenaufbereitung}
+% \end{figure}
+
+Noch immer befindet sich der größte Teil der Datenpunkte im kleinem Wertebereich. Da für die verbleibenden Daten eine lineare Transformation ähnlich dem bereits bestehenden preprocessing Vorgang eingesetzt wird, entstehen Rundungsfehler. Da für die Berechnung des Skalierungsfaktors auch nicht der tatsächliche Maximalwert genutzt wird werden Werte die nach der Transformation über 255 sind auf 255 gesetzt. Diese Fehler sind verkraftbar, da es zum einen wichtiger ist alle Datenpunkte abzubilden und zum anderen die Auflösung der verschiedenen Regenstärken immer noch höher ist, als die der menschlichen Wahrnehmung.
+Radardaten welche transformiert werden müssen:
+
+% \begin{figure}[H]
+% \centering
+% \includegraphics[width=0.6\textwidth,angle=0]{abb/Radardatapoints_of_June_2016_larger0}
+% \caption[Datenaufbereitung]{Häufigkeitsverteilung der Regendaten größer null vor der Transformation}
+% \label{fig:datenaufbereitung}
+% \end{figure}
+
+Die transformierten Daten befinden sich in einem Wertebereich von 0 bis 255.
+
+% \begin{figure}[H]
+% \centering
+% \includegraphics[width=0.6\textwidth,angle=0]{abb/Radardatapoints_of_June_2016_TransformedToPNG}
+% \caption[Datenaufbereitung]{Häufigkeitsverteilung der Regendaten größer null nach der Transformation}
+% \label{fig:datenaufbereitung}
+% \end{figure}
+
+Rekonstruiert man aus dem PNG Daten wieder die Radardaten ergibt sich der folgende Plot. Die quantitativ wiederhergestellte Anzahl der Datenpunkte beträgt 100%. Von den beschriebenen Fehlern macht sich im Plot vor allem letzterer im Plot bemerkbar. Werte größer als der für diesen Plot angenommenem Maximalwert von 21,39 wurden bei der Transformation auf 255 gesetzt und lassen sich daher nicht mehr konstruieren und erhalten deshalb den Wert 21,39.
+
+% \begin{figure}[H]
+% \centering
+% \includegraphics[width=0.6\textwidth,angle=0]{abb/Radardatapoints_of_June_2016_RecoveredData}
+% \caption[Datenaufbereitung]{Vergleich zwischen Ausgangsverteilung und Verteilung aus wiederhergestellten Daten}
+% \label{fig:datenaufbereitung}
+% \end{figure}
diff --git a/Documentation/src/kapitel/gesamtsystem/Gesamtsystem.tex b/Documentation/src/kapitel/gesamtsystem/Gesamtsystem.tex
new file mode 100644
index 0000000..88d6c40
--- /dev/null
+++ b/Documentation/src/kapitel/gesamtsystem/Gesamtsystem.tex
@@ -0,0 +1,21 @@
+\section{Gesamtsystem}\label{gesamtsystem}
+Die komplette Datenpipeline von dem Server des DWD bis zur Darstellung in der App sieht wie folgend aus.
+
+\begin{figure}[htb]
+ \centering
+ \includegraphics[width=0.6\textwidth,angle=0]{abb/Gesamtsystem}
+ \caption[Das Gesamtsystem]{Das Gesamtsystem}
+\label{fig:Beschreibung}
+\end{figure}
+
+Der DWD stellt alle fünf Minuten die neusten Regendaten für Deutschland im Binär Format zur Verfügung. Diese werden heruntergeladen und in der Datenaufbereitung
+verwendet um PNGs zu generieren (Siehe Kapitel “Datenaufbereitung”). Dieses PNGs werden im Anschluss verwendet um eine Regenvorhersage zu machen
+(Siehe Kapitel “Regenvorhersage / Netze”). Der Output der Regenvorhersage ist wieder ein PNG.
+Dieses PNG wird in der Firebase gespeichert und auf allen Geräten mit der installierten App angezeigt (Siehe Kapitel “App und Datenbank”).
+Der Übersichtlichkeit halber haben wir das gesamte Projekt in die drei Komponenten “Datenbeschaffung |\& Vorverarbeitung”, “Vorhersage” und
+“App |\& Datenbankhandling” aufgeteilt.
+Die Komponente “Datenbeschaffung |\& Vorverarbeitung” reicht vom Download der Binär - Daten beim DWD bis zu den daraus generierten PNG’s.
+In der Komponente “Vorhersage” werden die Regenvorhersage mithilfe von neuronalen Netzen gemacht. In der Komponente “App |\& Datenbankhandling”
+geht es um das Datenmanagement mit der Firebase, und um die App welche die Daten darstellt.
+(Hier sollten wir gegen Ende des Projektes eventuell noch ein bisschen genauer beschreiben wie das alles genau funktioniert.
+Das wird unseren Nachfolgern sehr stark helfen um sich schnell einzuarbeiten)
\ No newline at end of file
diff --git a/Documentation/src/kapitel/neuronale_netze/die_neuronalen_netze.tex b/Documentation/src/kapitel/neuronale_netze/die_neuronalen_netze.tex
new file mode 100644
index 0000000..61797e4
--- /dev/null
+++ b/Documentation/src/kapitel/neuronale_netze/die_neuronalen_netze.tex
@@ -0,0 +1,747 @@
+\newpage
+
+\section{Die neuronalen Netze}\label{die neuronalen netze}
+
+Die Regenvorhersage mit Hilfe von künstlichen neuronalen Netzen (KNN) möchten wir mit einem Zitat einführen.
+Der Nobelpreisträge Richard P. Feynman ist in einem Gespräch mit einem nicht namentlich erwähnten Laien wobei es um die Existenz fliegender Untertassen geht. Feynman trifft die Aussage, dass es sehr unwahrscheinlich ist, dass es fliegende Untertassen gibt. Der Laie antwortet darauf, dass das sehr unwissenschaftlich sei, worauf Feynman erwiedert:
+
+\begin{quote}{Richard P. Feynman}
+''...But that is the way that is scientific. It is scientific only to say what is more likely and what less likely, and not to be proving all the time the possible and impossible.''
+\end{quote}
+
+\noindent Treffend wird in dem Gespräch von Feynman erläutert, dass der wissenschaftliche Weg eine Wahrscheinlichkeit beinhaltet, die Auskunft über das Eintreten eines Ereignisses gibt. Wir werden für die Regenvorhersage also eine probabilistische Aussage treffen. Dies bedeutet insbesondere, dass eine Verteilung für die Regenvorhersage geschätzt wird, durch die eine Aussage über die Regenwahrscheinlichkeit und auch die Wahrscheinlichkeit der Intensität getroffen werden kann.\\
+
+\noindent Bei der Regenvorhersage via KNN bekommt das KNN als Input ein Set von Bildern, woraus ein Feld von Parametern geschätzt wird, wodurch in Kombination mit der zugehörigen Verteilung eine 30-minütige Vorhersage generiert werden kann. Dieser Vorgang ist in der nachfolgenden Abbildung skizziert.
+
+
+\begin{figure}[htb]
+ \centering
+ \includegraphics[width=1.0\textwidth,angle=0]{abb/skizzierung_regenvorhersage}
+ \caption{Skizzierung der Vorhersage}
+\label{fig:Vorhersage_skizze}
+\end{figure}
+
+\noindent Wie aus Abbildung \ref{fig:Vorhersage_skizze} hervorgeht, besteht der Ausgang des KNN aus einem Feld von Verteilungen. Diese Verteilungen nehmen wir als unabhängig an.
+Die zu schätzende Verteilung ist im vornherein nicht klar, weshalb wir eingangs drei Verteilungen begutachten.
+Wir schauen uns die Multinomiale, und die negativ Binomial Verteilung an.
+Die negativ Binomialverteilung wird allerdings mit der Multinomialen Verteilung gemischt, sodass wir die ''Zero Inflated negativ Binomial'' Verteilung (ZINB) erhalten.
+Dies kann so aufgefasst werden, dass wir eine Bernoulli-Verteilung für die binäre Entscheidung über Regen oder kein Regen erhalten. Für den Fall dass Regen vorhergesagt wird, greifen wir auf die Negativ Binomialverteilung zurück.
+\\
+
+\subsection{Netzwerk Topologie}
+
+\noindent Wir schauen uns zwei verschiedene Netzwerarchitekturen an. Hierbei passen wir uns den Beschränkungen der uns zur Verfügung stehenden Hardware an.
+Uns steht eine Geforce 2060 Super mit 8GB VRAM zur Verfügung. Die Netzwertopologie ist auf die Größe des VRAMS beschränkt, wir werden unser Netzwerk also auf diese Größe beschränken. Die Größe der Eingangsbilder setzen wir auf 96x96 Pixel fest und die Größe der Ausgangsbilder auf 64x64. Die Patches werden um den Pixel, der Konstanz repräsentiert ausgeschnitten.
+Alle Netzwerke die wir trainieren haben die Klassifikationsschicht gemeinsam, unterscheiden sich jedoch für die verschiedenen Verteilungen.\\
+
+\begin{figure}[h]
+ \centering
+\begin{tikzpicture}[inputnode/.style={circle, draw=black!60, fill=green!5, minimum size=10mm},
+input/.style={circle},
+outputnode/.style={circle},
+]
+
+
+\node[rectangle,
+dashed,
+draw=sublimedg,
+fill=gray,
+fill opacity=0.2,
+very thick,
+minimum width=40em,
+minimum height=20.0em] (duh) at (4, 3) {};
+
+\node[input] (x0) at (-3,3) {};
+
+\node[inputnode] (inputlayer) at (3,2) {};
+\node[input] (x4) at (3,3) {$\vdots$};
+\node[input] (x2_3) at (3.5,3) {256};
+\node[inputnode] (inputlayer_1) at (3,4) {};
+
+\node[outputnode] (outputlayer) at (6,2) {};
+\node[inputnode] (x1) at (0,5) {};
+\node[input] (x2) at (0,3) {$\vdots$};
+\node[input] (x2_2) at (0,3.5) {4096};
+\node[inputnode] (x3) at (0,1) {};
+
+
+\node[inputnode] (x5) at (6,5) {};
+\node[input] (x6) at (6,3) {$\vdots$};
+\node[input] (x2_1) at (6,3.5) {4096 x $n$};
+\node[inputnode] (x7) at (6,1) {};
+%\node[inputnode] (x9) at (10,3) {};
+
+\node[cascaded,
+ minimum width=4em,
+ minimum height=4em] (x9) at (10,3) {64x64};
+
+\draw[-latex] (x1.east) -- node[above] {} (inputlayer.west);
+\draw[-latex] (x3.east) -- node[above] {} (inputlayer.west);
+\draw[-latex] (x1.east) -- node[above] {} (inputlayer_1.west);
+\draw[-latex] (x3.east) -- node[above] {} (inputlayer_1.west);
+
+\draw[-latex] (inputlayer.east) -- node[above] {} (x5.west);
+\draw[-latex] (inputlayer.east) -- node[above] {} (x7.west);
+
+\draw[-latex] (inputlayer_1.east) -- node[above] {} (x5.west);
+\draw[-latex] (inputlayer_1.east) -- node[above] {} (x7.west);
+
+\draw[-latex] (x0.east) -- node[above] {Flatten} (x2.west);
+\draw[-latex] (x6.east) -- node[above] {64x64x$n$} (x9.west);
+
+\end{tikzpicture}
+ \caption{Klassifikationsschicht, $n$ variiert hierbei je nach Verteilung. Für die Zero-Inflated Poisson Verteilung ist $n$ gleich 2, für die Zero-Inflated Negativ Binomial Verteilung ist $n$ gleich 3, und für die Multinomiale Verteilung ist $n$ gleich 7 }
+\label{fig:classification_layer}
+\end{figure}
+
+\newpage
+\noindent Wir verwenden zum einen die Unet-Architektur, wie sie von unseren Vorgängern verwendet wird. Diese Architektur ist in der folgenden Abbildung zu sehen.
+
+
+
+\begin{figure}[h]
+ \centering
+\begin{tikzpicture}[thick,scale=0.5, every node/.style={scale=0.5},inputnode/.style={circle, draw=black!60, fill=green!5, minimum size=10mm},
+input/.style={circle},
+outputnode/.style={circle},]
+
+
+ % Schicht 1
+ \node[input,rotate=90] (top1_txt) at (0.5,-1) {64x64};
+ \node[slimconv] (top1) at (1, 1) {5} ;
+ \node[slimconv] (top2) at (2.0, 1) {20} ;
+ \node[slimconv] (top3) at (3.0, 1) {20};
+ \draw[-stealth, very thick] (top1.east) -- (top2);
+ \draw[-stealth, very thick] (top2.east) -- (top3);
+
+
+ % Schicht 2
+ \node[input,rotate=90] (top1_txt) at (2.5,-4.25) {32x32};
+ \node[slimconv,
+ minimum height=6em] (top1_1) at (3.0, -3.5) {25};
+ \node[slimconv,
+ minimum width=1.5em,
+ minimum height=6em] (top2_1) at (4.0, -3.5) {25};
+ \node[slimconv,
+ minimum width=1.5em,
+ minimum height=6em] (top3_1) at (5.125, -3.5) {25};
+ \draw[-stealth, very thick] (top1_1.east) -- (top2_1);
+ \draw[-stealth, very thick] (top2_1.east) -- (top3_1);
+ \draw[-stealth, very thick,red] (top3.south) -- (top1_1.north);
+
+
+ % Schicht 3
+ \node[input,rotate=90] (top1_txt) at (4.5,-6.125) {16x16};
+ \node[slimconv,
+ minimum width=2em,
+ minimum height=3em] (top1_2) at (5.125, -6.0) {25};
+ \node[slimconv,
+ minimum width=2.5em,
+ minimum height=3em] (top2_2) at (6.75, -6.0) {25};
+ \node[slimconv,
+ minimum width=2.5em,
+ minimum height=3em] (top3_2) at (8.5, -6.0) {25};
+
+ \draw[-stealth, very thick] (top1_2.east) -- (top2_2);
+ \draw[-stealth, very thick] (top2_2.east) -- (top3_2);
+ \draw[-stealth, very thick,red] (top3_1.south) -- (top1_2.north);
+
+
+ % Schicht 4
+ \node[input,rotate=90] (top1_txt) at (7.825,-7.75) {8x8};
+ \node[slimconv,
+ minimum width=2em,
+ minimum height=2em] (top1_3) at (8.5, -7.75) {25};
+ \node[slimconv,
+ minimum width=3.5em,
+ minimum height=2em] (top2_3) at (10.25, -7.75) {25};
+ \node[slimconv,
+ minimum width=3.5em,
+ minimum height=2em] (top3_3) at (12.25, -7.75) {25};
+
+ \draw[-stealth, very thick] (top1_3.east) -- (top2_3);
+ \draw[-stealth, very thick] (top2_3.east) -- (top3_3);
+ \draw[-stealth, very thick,red] (top3_2.south) -- (top1_3.north);
+
+
+
+ % Schicht 5
+ \node[input,rotate=90] (top1_txt) at (11.25,-9.25) {4x4};
+ \node[slimconv,
+ minimum width=3.5em,
+ minimum height=1.5em] (top1_4) at (12.25, -9.25) {25};
+ \node[slimconv,
+ minimum width=3.5em,
+ minimum height=1.5em] (top3_4) at (16.75, -9.25) {25};
+
+ %\draw[-stealth, very thick] (top1_4.east) -- (top3_4) ;
+ \draw[-stealth, very thick] (top1_4.east) -- (top3_4);
+ \draw[-stealth, very thick,red] (top3_3.south) -- (top1_4.north);
+
+ % Schicht 4 ( UP )
+
+ \node[slimconv,
+ minimum width=2em,
+ fill=white,
+ minimum height=2em] (top4_30) at (15.6, -7.75) {};
+ \node[slimconv,
+ minimum width=3.5em,
+ minimum height=2em] (top4_31) at (16.75, -7.75) {50};
+ \node[slimconv,
+ minimum width=3.5em,
+ minimum height=2em] (top5_3) at (19.25, -7.75) {50};
+ \node[slimconv,
+ minimum width=3.5em,
+ minimum height=2em] (top6_3) at (21.25, -7.75) {50};
+
+
+
+ \draw[-stealth, very thick,opacity=0.5] (top3_3.east) -- (top4_30.west);
+ \draw[-stealth, very thick] (top4_31.east) -- (top5_3);
+ \draw[-stealth, very thick] (top5_3.east) -- (top6_3);
+ \draw[-stealth, very thick,green] (top3_4.north) -- (top4_31.south);
+
+
+ % Schicht 3 (UP)
+ \node[slimconv,
+ minimum width=2em,
+ fill=white,
+ minimum height=3em] (top4_20) at (20.125, -6.0) {};
+ \node[slimconv,
+ minimum width=3.5em,
+ minimum height=3em] (top4_21) at (21.25, -6.0) {75};
+ \node[slimconv,
+ minimum width=2.5em,
+ minimum height=3em] (top5_2) at (23.25, -6.0) {75};
+ \node[slimconv,
+ minimum width=2.5em,
+ minimum height=3em] (top6_2) at (25, -6.0) {75};
+
+
+ \draw[-stealth, very thick,opacity=0.5] (top3_2.east) -- (top4_20.west);
+ \draw[-stealth, very thick] (top4_21.east) -- (top5_2);
+ \draw[-stealth, very thick] (top5_2.east) -- (top6_2);
+ \draw[-stealth, very thick,green] (top6_3.north) -- (top4_21.south);
+
+ % Schicht 2
+ \node[slimconv,
+ minimum width=1.5em,
+ fill=white,
+ minimum height=6em] (top4_10) at (24.18, -3.5) {};
+ \node[slimconv,
+ minimum width=2.5em,
+ minimum height=6em] (top4_11) at (25.0, -3.5) {100};
+ \node[slimconv,
+ minimum width=1.5em,
+ minimum height=6em] (top5_1) at (26.5, -3.5) {100};
+ \node[slimconv,
+ minimum width=1.5em,
+ minimum height=6em] (top6_1) at (27.75, -3.5) {100};
+
+ \draw[-stealth, very thick,opacity=0.5] (top3_1.east) -- (top4_10.west);
+ \draw[-stealth, very thick] (top4_11.east) -- (top5_1);
+ \draw[-stealth, very thick] (top5_1.east) -- (top6_1);
+ \draw[-stealth, very thick,green] (top6_2.north) -- (top4_11.south);
+
+
+
+
+ \node[slimconv,fill=white,] (top4_0) at (27.125, 1) {};
+ \node[slimconv] (top4_1) at (27.75, 1) {120};
+ \node[slimconv] (top5) at (29, 1) {n};
+% \node[slimconv] (top6) at (29.75, 1) {};
+
+ \draw[-stealth, very thick,opacity=0.5] (top3.east) -- (top4_0.west);
+ \draw[-stealth, very thick] (top4_1.east) -- (top5);
+% \draw[-stealth, very thick] (top5.east) -- (top6);
+ \draw[-stealth, very thick,green] (top6_1.north) -- (top4_1.south);
+
+
+
+
+
+ \node[input] (A1) at (27.75, -8) {};
+ \node[input] (A2) at (27.75, -9.5) {};
+ \draw[-stealth, very thick,green] (A2.north) -- node[right,opacity=1.0,black] {Up-Sampling} (A1.south);
+
+
+ \node[input] (A3) at (27.75, -6) {};
+ \node[input] (A4) at (27.75, -7.5) {};
+ \draw[-stealth, very thick,red] (A3.south) -- node[right,opacity=1.0,black] {Pooling} (A4.north);
+
+
+
+ \node[input] (A5) at (27.75, -7.75) {};
+ \node[input] (A6) at (30.0, -7.75) {Conv 3x3};
+ \draw[-stealth, very thick,black] (A5.east) -- (A6.west);
+
+
+
+ \node[input] (A7) at (25.75, -7.75) {};
+ \node[input] (A8) at (27.25, -7.75) {};
+ \draw[-stealth, very thick,gray] (A7.east) --node[above,opacity=1.0,black]{Skipping} (A8.west);
+
+
+\node[rectangle,
+dashed,
+draw=sublimedg,
+fill=gray,
+fill opacity=0.4,
+very thick,
+minimum width=5em,
+minimum height=5em] (kl) at (31, 1) {Kl-Schicht};
+ \draw[-stealth, very thick] (top5.east) -- (kl.west);
+
+\end{tikzpicture}
+ \caption{Abgespekte Version des Unets }
+\label{fig:Unet1}
+\end{figure}
+
+\noindent Die abgespekte Version des Unets hat im Gegensatz zur originalen Architektur wesentlich weniger Gewichte.
+Hier sind es ca 10 000 trainierbare Gewichte. Hierbei liegt der Hauptteil der Gewichte in der Klassifikationsschicht (Kl-Schicht in Bild \ref{fig:Unet1}).\\
+
+
+\noindent Eine weitere Architektur die wir begutachten ist ein Mix aus Inception-Layer und CNN-LSTM-Layer. Die Regenvorhersage in unserem Setup wird für gewöhnlich auch als Next-Frame prediction bezeichnet. Aus einem Set aufeinander folgender eingehender Bilder wird eine plausible vorhersage für das nächste Bild erzeugt.
+
+
+%\begin{wrapfigure}{R}{0.5\textwidth}
+\begin{figure}[h]
+ \centering
+\begin{tikzpicture}[thick,scale=0.8, every node/.style={scale=0.8}]
+
+\node[rectangle,
+dashed,
+draw=sublimedg,
+fill=gray,
+fill opacity=0.2,
+very thick,
+minimum width=20em,
+minimum height=21.0em] (duh) at (2.75, -7.25) {};
+
+
+\node[cascaded,
+ minimum width=4em,
+ minimum height=4em] (conv1) at (1, -10) {1x1};
+
+\node[cascaded,
+ minimum width=4em,
+ minimum height=4em] (conv3x3) at (3, -10) {3x3};
+
+\node[cascaded,
+ minimum width=4em,
+ minimum height=4em] (conv3x3_1) at (5, -10) {3x3};
+
+\node[cascaded,
+ minimum width=4em,
+ minimum height=4em] (conv3x3_2) at (4.5, -7.5) {3x3};
+
+
+\node[cascaded,
+ minimum width=4em,
+ minimum height=4em] (conv3x3_2) at (3, -5.0) {stack};
+
+%\draw[very thick, sublimedg, dashed]
+
+\node[rectangle, dashed, draw=sublimedg, fill=white, fill opacity=0.5,very thick, minimum width=1.0em, minimum height=1.0em] (R0) at (1.5, -9.5) {};
+
+\node[rectangle, dashed, draw=sublimedg, fill=white, fill opacity=0.5,very thick, minimum width=1.0em, minimum height=1.0em] (R1) at (3.5, -9.5) {};
+
+\node[rectangle, dashed, draw=sublimedg, fill=white, fill opacity=0.5,very thick, minimum width=1.0em, minimum height=1.0em] (R2) at (5.5, -9.5) {};
+
+\node[rectangle, dashed, draw=sublimedg, fill=white, fill opacity=0.5,very thick, minimum width=1.0em, minimum height=1.0em] (R3) at (5.0, -7.0) {};
+
+
+\node[circle, inner sep = 0.1em, fill=sublimedg] (C0) at (2.5, -5.5) {};
+\node[circle, inner sep = 0.1em, fill=sublimedg] (C1) at (2.75, -5.5) {};
+\node[circle, inner sep = 0.1em, fill=sublimedg] (C2) at (5, -8.0) {};
+\node[circle, inner sep = 0.1em, fill=sublimedg] (C3) at (3, -5.5) {};
+
+
+
+\draw[very thick, sublimedg, dashed] (R0.north east) -- (C0);
+\draw[very thick, sublimedg, dashed] (R0.north west) -- (C0);
+\draw[very thick, sublimedg, dashed] (R0.south west) -- (C0);
+\draw[very thick, sublimedg, dashed] (R0.south east) -- (C0);
+
+\draw[very thick, sublimedg, dashed] (R1.north east) -- (C1);
+\draw[very thick, sublimedg, dashed] (R1.north west) -- (C1);
+\draw[very thick, sublimedg, dashed] (R1.south west) -- (C1);
+\draw[very thick, sublimedg, dashed] (R1.south east) -- (C1);
+
+
+\draw[very thick, sublimedg, dashed] (R2.north east) -- (C2);
+\draw[very thick, sublimedg, dashed] (R2.north west) -- (C2);
+\draw[very thick, sublimedg, dashed] (R2.south west) -- (C2);
+\draw[very thick, sublimedg, dashed] (R2.south east) -- (C2);
+
+\draw[very thick, sublimedg, dashed] (R3.north east) -- (C3);
+\draw[very thick, sublimedg, dashed] (R3.north west) -- (C3);
+\draw[very thick, sublimedg, dashed] (R3.south west) -- (C3);
+\draw[very thick, sublimedg, dashed] (R3.south east) -- (C3);
+
+
+
+
+
+%\draw[very thick, sublimedg, dashed] (R1C.north east) -- (C1C);
+\end{tikzpicture}
+ \caption{Aufbau der von uns verwendeten Inception Layer, angelehnt an die inception Layer im Paper }
+\label{fig:inception v2}
+\end{figure}
+
+\newpage
+
+\noindent In der nachfolgenden Abbildung ist die von uns verwendete Architektur zu sehen. Diese Architektur ist angelehnt an die Inception-LSTM Layer des Papers ''Inception-inspired LSTM for Next-frame Video Prediction'' von \cite{hosseini2019inceptioninspired}. Wie Eingangs erwähnt beschränkt die Hardware (und auch die größe der Bilder) unsere Architektur und aus diesem Grund werden nicht mehr LSTM-Layer gestackt, wie im Paper beschrieben.
+\begin{figure}[h]
+ \centering
+\begin{tikzpicture}[thick,scale=0.8, every node/.style={scale=0.8},->,>=stealth',shorten >=1pt,auto,node distance=2cm,
+ thick,main node/.style={circle,fill=blue!30,draw,
+ font=\sffamily\Large\bfseries,minimum size=15mm}]
+
+
+
+\node[rectangle,
+dashed,
+draw=sublimedg,
+fill=gray,
+fill opacity=0.4,
+very thick,
+minimum width=5em,
+minimum height=5em] (inc1) at (1, 1) {Inception Layer};
+
+
+\node[main node,font=\sffamily\small] (LSTM_1) at (6,1) {CNN-LSTM}
+ (LSTM_1) edge [loop right] (LSTM_1);
+
+\node[main node,font=\sffamily\small] (LSTM_2) at (6,-2.5) {CNN-LSTM}
+ (LSTM_2) edge [loop right] (LSTM_2);
+
+\node[main node,font=\sffamily\small] (LSTM_3) at (6,-6) {CNN-LSTM};
+
+
+\draw[very thick, sublimedg] (LSTM_1.south) -- (LSTM_2.north);
+\draw[very thick, sublimedg] (LSTM_2.south) -- (LSTM_3.north);
+
+\draw[very thick, sublimedg] (inc1.east) -- (LSTM_1.west);
+
+
+
+
+\node[rectangle,
+dashed,
+draw=sublimedg,
+fill=gray,
+fill opacity=0.4,
+very thick,
+minimum width=5em,
+minimum height=5em] (inc2) at (1, -2.5) {Inception Layer};
+
+
+
+\node[rectangle,
+dashed,
+draw=sublimedg,
+fill=gray,
+fill opacity=0.4,
+very thick,
+minimum width=5em,
+minimum height=5em] (inc3) at (1, -6) {Inception Layer};
+
+
+\node[rectangle,
+dashed,
+draw=sublimedg,
+fill=gray,
+fill opacity=0.4,
+very thick,
+minimum width=5em,
+minimum height=5em] (inc4) at (1, -9.5) {Inception Layer};
+
+
+
+\node[rectangle,
+dashed,
+draw=sublimedg,
+fill=gray,
+fill opacity=0.4,
+very thick,
+minimum width=5em,
+minimum height=5em] (inc5) at (3, -13) {Inception Layer};
+
+\draw[very thick, sublimedg] (inc1.south) -- (inc2.north);
+\draw[very thick, sublimedg] (inc2.south) -- (inc3.north);
+\draw[very thick, sublimedg] (inc3.south) -- (inc4.north);
+\draw[very thick, sublimedg] (inc4.south) -- (inc5.north);
+\draw[very thick, sublimedg] (LSTM_3.south) -- (inc5.north);
+
+
+\node[cascaded,
+ minimum width=4em,
+ minimum height=4em] (conv1) at (6.5, -13) {7x7};
+
+
+\node[cascaded,
+ minimum width=4em,
+ minimum height=4em] (conv2) at (9.5, -13) {7x7};
+
+
+
+\node[rectangle,
+dashed,
+draw=sublimedg,
+fill=gray,
+fill opacity=0.4,
+very thick,
+minimum width=5em,
+minimum height=5em] (kl) at (12.5, -13) {Kl-Schicht};
+
+
+
+\draw[very thick, sublimedg] (inc5.east) -- (conv1.west);
+\draw[very thick, sublimedg] (conv1.east) -- (conv2.west);
+\draw[very thick, sublimedg] (conv2.east) -- (kl.west);
+
+\end{tikzpicture}
+ \caption{LSTM Architektur}
+\label{fig:LSTM-CNN}
+\end{figure}
+
+\noindent Unsere Architektur unterscheidet sich jedoch von der im Paper vorgestellten Architektur insofern, als dass die Inception-Layer nicht in das LSTM-Modul eingebaut sind.
+Wir verwenden hierbei herkömmliche Convolution-LSTM Layer. Die Inception-Layer sind hierbei lediglich vor oder nach den Convolution-LSTM Layern zu finden.
+Der Vorteil von Inception-Layer ist, dass diese in die Breite und nicht so sehr in die Tiefe gehen. Das hat zum Vorteil, dass beim aktualisieren der Gewichte der Gradient nicht so weit in das Netzwerk durchgereicht werden muss. Dadurch soll das Auftreten des vanishing Gradients vermindert werden und das aktualisieren der Gewichte bzw. das lernen verbessert werden.\\
+
+\subsection{Training}
+Beide Architekturen werden mindestens 35 Epochen trainiert, wobei die Architektur mit den LSTM-Layern 1:30 Stunden benötigt, das Unet hingegen benötigt ca. 10 Minuten pro Epoche.
+Für das Training nutzen wir alle Daten der Jahre 2008 bis einschließlich 2017. Das entspricht insgesamt ca. 1 051 200 Zeitschritten. Hierbei werden 75\% der Daten für das Training und 25\% der Daten für das Testset verwendet.
+Da der Hauptteil der Regendaten Null ist, also kein Regen vorhanden ist, liegt der Mittelwert der Daten schon nahe Null. Das bedeutet, dass der Mittelwert nicht (wie üblich) auf Null normiert wird.
+Die Standardabweichung ist ebenfalls nahe Null, weshalb die Standardabweichung der Daten nicht auf Eins normieren (Dies würde zur Folge haben, dass Werte wesentlich größer als 1 sein können).
+Die Eingangsdaten werden allerdings auf den Bereich zwischen Null und Eins normiert.\\
+
+\noindent Für den Ausgang der Netzwerke beschränkten wir uns auf einen 64x64 großen Pixelbereich, bei dem Konstanz in der Mitte liegt. Die Eingangsbilder bestehen aus einem 96x96 großen Pixelbereich um Konstanz. Regenfreie Bilder werden aussortiert, da diese Daten keinerlei Informationen beinhalten und das vorhandene Klassenungleichgewicht verstärken. Als Regularisierungsmaßnahme werden die Trainingsdaten pro Epoche um wenige Pixel verschoben, was zur Folge hat, dass das Netzwerk in jeder Epoche auf etwas unterschiedliche Daten trainiert. Als Kostenfunktion verwenden wir die Negative Loglikelihood.
+\\
+
+\noindent In der Nachfolgenden Abbildung sind die Trainingskurve für die beiden Architekturen zu sehen. Die hierfür Verwendete Verteilung ist die ZINB.
+
+\begin{figure}[htb]
+ \centering
+ \includegraphics[width=0.9\textwidth,angle=0]{abb/Loss_zinfBinom.png}
+ \caption{Trainingskurven für ZINB}
+\label{fig:Inception-Conv-LSTM}
+\end{figure}
+
+\noindent Zu sehen ist, dass die Unet-Architektur schlechtere Performance als die LSTM-Architektur liefert. In dieser Abbildung scheint der Overfitting bereich noch nicht erreicht worden zu sein.
+Tatsächlich verbessern sich beide Architekturen noch marginal nach weiteren Epochen, aus Darstellungsgründen wurde die X-Achse auf 35 Epochen beschnitten.\\
+
+\noindent Zusätzlich zur ZINB wurden beide Architekturen mit einer weiteren Verteilung trainiert. Hierfür verwenden wir die Multinomiale Verteilung, woebei wir die Daten in Sieben Klassen einteilen. Die geschieht durch logarithmisches skalieren der Daten. Dadurch soll zusätzlich dem Klassenungleichgewicht entgegengesteuert werden (Regenwerte im höheren Bereich kommen seltener vor).
+
+\begin{figure}[htb]
+ \centering
+ \includegraphics[width=0.9\textwidth,angle=0]{abb/Categorical.png}
+ \caption{Multinomiale Verteilung}
+\label{fig:multinomialeVerteilung}
+\end{figure}
+
+\noindent In der obigen Abbildung sind die Trainingskurven der beiden Architekturen zu sehen. Auch hier ist zu sehen, dass die LSTM-Architektur der Unet-Architektur überlegen ist und dies eine bessere Performance liefert. Vergleicht man die Trainingskurven für beide Verteilungen sieht man, dass der NLL für die Multinomiale Verteilung etwa die Hälfte der ZINB entspricht.
+
+\newpage
+\subsection{Auswertung}
+
+Wir beschränken uns zuerst auf die Auswertung der binären Klassifikation von Regen und kein Regen. Später werden wir für die verschiedenen Architekturen und Verteilungen die Klassifikation für die Regenvorhersage begutachten.
+
+%\subsubsection{Baseline}
+%TODO:
+
+\subsubsection{Auswertung der binären Regenvorhersage}
+Die folgende Abbildung zeigt einen zufälligen Ausschnitt der Regenvorhersage für sieben aufeinanderfolgende Zeitschritte.\\
+
+\begin{figure}[h]
+\begin{tabular}{lllllll}
+\includegraphics[width=20mm]{abb/prediction/100_maxCont}&
+\includegraphics[width=20mm]{abb/prediction/101_maxCont}&
+\includegraphics[width=20mm]{abb/prediction/102_maxCont}&
+\includegraphics[width=20mm]{abb/prediction/103_maxCont}&
+\includegraphics[width=20mm]{abb/prediction/104_maxCont}&
+\includegraphics[width=20mm]{abb/prediction/105_maxCont}&
+\includegraphics[width=20mm]{abb/prediction/106_maxCont}
+\end{tabular}
+\caption{Vorhersage in Abständen von fünf Minuten für die ZINB. Die erste Zeile entspricht dem momentanen Regen. Zeile zwei entspricht dem tatsächlichen Regen in 30 Minuten. Zeile drei ist die 30 Minuten Vorhersage des Unets. Zeile vier ist die 30 Minuten Vorhersage der LSTM-Architektur. Für die Vorhersage wurde der Mittelwert der Verteilung berechnet. Die Bilder sind kontrastmaximiert dargestellt. Die letzten beiden Zeilen stellen die korrekte bzw. inkorrekte Regenvorhersage für die Unet- und die LSTM-Architektur (letzte Zeile) dar.
+Hierbei entspricht true positiv der Farbe Grün, false positiv Rot, false negativ Blau und true negativ Schwarz .\label{fig:predNegBin}}
+\end{figure}
+
+\noindent Anhand der Abbildung \ref{fig:predNegBin} ist zu sehen, dass für beide Architekturen tendenziell zu viel Regen vorhergesagt wird. Anhand der Bilder ist zudem zu sehen, dass Form der Regenfront nicht korrekt vorhergesagt wird. Des weiteren ist zu erkennen, dass false negativ (Blau) einen geringeren Teil der Vorhersage ausmachen. Durch die Kontrastmaximierte Darstellung der Vorhersage, sehen die Bilder so aus, als würden die maximalen Werte der Vorhersage in etwa der maximalen Werte des tatsächlichen Wetters entsprechen. Tatsächlich wird im allgemeinen die Regenmenge unterschätzt. Dies wird in einem späteren Teil der Auswertung dargelegt.\\
+
+
+
+\begin{figure}[h]
+\begin{tabular}{lllllll}
+\includegraphics[width=20mm]{abb/prediction/100_cat_maxCont}&
+\includegraphics[width=20mm]{abb/prediction/101_cat_maxCont}&
+\includegraphics[width=20mm]{abb/prediction/102_cat_maxCont}&
+\includegraphics[width=20mm]{abb/prediction/103_cat_maxCont}&
+\includegraphics[width=20mm]{abb/prediction/104_cat_maxCont}&
+\includegraphics[width=20mm]{abb/prediction/105_cat_maxCont}&
+\includegraphics[width=20mm]{abb/prediction/106_cat_maxCont}
+\end{tabular}
+\caption{Vorhersage in Abständen von fünf Minuten für die Multinomialeverteilung. Hier sind die Zeilen wie in \ref{fig:predNegBin} dargestellt. Alle Bilder bis auf die Bilder der ersten Zeile sind in sieben Klassen dargestellt.\label{fig:predCat}}
+\end{figure}
+
+
+\noindent Auch bei der Multinomialenverteilung wird tendenziell zu viel Regen vorhergesagt. Für die Vorhersage wird das Label mit der größten Wahrscheinlichkeit herangezogen. Es ist erkennbar, dass die Form der Regenfront nicht korrekt vorhergesagt. Zudem scheint die Anzahl der false negative (Blau) Vorhersagen höher als bei der ZINB. Zusammenfassend ist für die Ausschnitte der Vorhersagen zu sagen, dass die true positive vorhersagen die false negative und false positiv überwiegen. Um eine generelle Aussage treffen zu können wir im weiteren Verlauf die ''receiver operating characteristic'' auch \textbf{ROC} herangezogen.
+
+
+\noindent In der folgenden Abbildung ist die ROC für beide Architekturen und Verteilungen zu sehen. Die Kurven entstehen indem wir für verschiedene Schwellwerte die binäre Regenvorhersage treffen. Das bedeutet konkret, dass die Wahrscheinlichkeit für kein Regen berechnet wird. Ist diese Wahrscheinlichkeit größer als der Schwellwert so wird auch kein Regen vorhergesagt.
+Die Schwellwerte liegen gleichmäßig verteilt zwischen Null und Eins.
+
+
+\begin{figure}[h]
+\begin{tabular}{cc}
+\includegraphics[width=70mm]{abb/ROC_ZINFBINOM.png}&
+\includegraphics[width=70mm]{abb/ROC_Categorical.png}
+\end{tabular}
+\caption{ROC/AUR für beide Architekturen und beide Verteilungen. Links für die ZINB und rechts für die Multinomialeverteilung.
+Die Auserwertung erfolgt für 20 verschiedene Schwellwerte. \label{fig:anomerz}}
+\end{figure}
+
+\noindent Wie Anhand der Kurven zu erkennen ist, ist die ROC für die Multinomialeverteilung gleichmäßiger als die für die ZINB.
+Auch die Fläche unter der Kurve (''area under curve'' \textbf{AUC}) ist für die Multinomialeverteilung marginal größer. Interessanterweise ist die Performance des Unets bei beiden Verteilungen besser (auch hier nur marginal) als für die LSTM-Architektur.\\
+
+\noindent Für den Schwellwert 0.5 erhalten wir in beiden Fällen ein relativ gutes Verhältnis von true positiv zu false positiv. In den Nachfolgenden Abbildungen ist die Confusionmatrix für diesen Schwellwert zu sehen.
+
+
+
+\begin{figure}[h]
+\begin{tabular}{ccc}
+\includegraphics[width=45mm]{abb/simpleBaseLine.png}&
+\includegraphics[width=45mm]{abb/znBinomConfusion_LSTM.png}&
+\includegraphics[width=45mm]{abb/znBinomConfusion_UNET.png}
+\end{tabular}
+\caption{Confusionmatrix für die ZINB und dem Schwellwert 0.5. Links die einfache Baseline, mittig für die LSTM-Architektur und rechts für die Unet-Architektur. \label{fig:confusionmatrix_binom}}
+\end{figure}
+
+\noindent Anhand der Confusionmatrix ist zu sehen, dass die Netzwerke in beiden Fällen eine bessere Vorhersage liefern als die einfache Baseline.
+Anhand der Confusionmatrix wird das ungleichgewicht zwischen Regen und kein Regen deutlich.
+
+\begin{figure}[h]
+\begin{tabular}{ccc}
+\includegraphics[width=45mm]{abb/simpleBaseLine.png}&
+\includegraphics[width=45mm]{abb/categoricalConfusion_LSTM.png}&
+\includegraphics[width=45mm]{abb/categoricalConfusion_UNET.png}
+\end{tabular}
+\caption{Confusionmatrix für die Multinomialeverteilung und dem Schwellwert 0.5. Links die einfache Baseline, mittig für die LSTM-Architektur und rechts für die Unet-Architektur. \label{fig:confusionmatrix_cat}}
+\end{figure}
+
+\noindent Auch für die Multinomialeverteilung erhalten wir eine bessere Vorhersage als mit der einfachen Baseline.
+Vergleichen wir die Confusionmatrix beider Verteilungen, so lässt sich feststellen, dass die Verteilungen in verschiedenen Bereichen andere Vorteile aufweisen.
+So ist die Regenvorhersage für die Multinomialeverteilung etwas besser als für die ZINB. Letztere (insbesondere die Unet-Variante) produziert mehr true negative und weniger false positiv Vorhersagen als die Multinomialeverteilung.\\
+
+\noindent Für die tatsächliche Regenvorhersage ist jedoch interessant, in wie vielen Fällen eine Person Nass wird obwohl kein Regen vorhergesagt wird.
+Dazu wird die untere Zeile der Confusionmatrix mit einem Faktor multipliziert, sodass deren Summe 100 ergibt.\\
+\begin{table}[h]
+\begin{tabular}[h]{l|c|c}
+Verteilung & Person wird Nass & Person wird nicht Nass \\
+\hline
+Multinomialeverteilung & \textbf{39,9} \% & \textbf{60,1} \% \\
+ZINB &43,0 \% & 57,0 \% \\
+Einfache Baseline & 44,8 \% & 55,2 \%
+\end{tabular}
+\caption{Wahrscheinlichkeit trocken zu bleiben\label{tab:nass}}
+\end{table}
+
+\noindent Aus der Tabelle \ref{tab:nass} hervorgeht, wird die Person die sich auf die Vorhersage verlässt mit einer Wahrscheinlichkeit von 39,1 (im besten Fall) \% Nass.
+Dies ist zwar nicht überragend, es ist jedoch besser als würde sich die Person darauf verlassen, dass das Wetter so bleibt wie es ist.
+
+\newpage
+\subsubsection{Auswertung der Regenvorhersage}
+\noindent Ein weiterer interessanter Aspekt ist die Genauigkeit der Vorhersage für den Regenfall. Hierfür betrachten wir zuerst die ZINB.
+Hierfür berechnen wir das Konfidenzintervall der Verteilung welches 97,5\% der Daten umschließt. Daraufhin zählen wir wie oft der wahre Wert innerhalb des Konfidenzintervalls liegt.
+In der folgenden Abbildung sind die zwei 97,5 \% Konfidenzintervalle für die beiden Architekturen zu sehen.\\
+
+\begin{figure}[h]
+\centering
+\begin{tabular}{c}
+\includegraphics[width=120mm]{abb/quantile_LSTM.png}\\
+(a) \small{LSTM-Architektur}\\
+\includegraphics[width=120mm]{abb/quantile_UNET.png}\\
+(b) \small{UNET}
+\end{tabular}
+\caption{Konfidenzintervall für die ZINB, Oben für die LSTM-Architektur, unten für das UNET. \label{fig:konfidenzintervall}}
+\end{figure}
+
+\noindent Die Konfidenzintervalle sind hierbei über eine Sequenz eines zufälligen Ausschnitts eines Pixels berechnet. Sie sind deshalb nicht aussagekräftig für die Vorhersage, sondern sollen lediglich die Erklärung für das Vorgehen vereinfachen. Anhand der Abbildungen ist zu sehen, dass die Konfidenzintervalle in etwa dem ''wahren'' Wert folgen. Allerdings ist auch zu sehen, dass Extremwerte meist außerhalb des Intervalls liegen. Zählen wir nun die Anzahl der Vorhersagen, bei denen der wahre Wert im Konfidenzintervall liegt, so ergibt sich folgendes Histogramm.\\
+
+
+\begin{figure}[h]
+\centering
+\begin{tabular}{cc}
+\includegraphics[width=80mm]{abb/dist_LSTM.png}&
+\includegraphics[width=80mm]{abb/dist_UNET.png}\\
+(a) \small{LSTM-Architektur} & (b) \small{UNET}
+\end{tabular}
+\caption{Relative Anzahl der ground truth im Konfidenzintervall. \label{fig:dist}}
+\end{figure}
+
+\noindent Anhand der Diagramme ist zu sehen, dass der ''wahre'' Wert in den meisten Fällen von der Verteilung umschlossen wird. Für die Diagramme wurde der Balken der kein Regen repräsentiert weggelassen. Für größere Regenwerte sieht man hingegen, dass der ''wahre'' Wert außerhalb der Konfidenzintervalle liegt. Das bedeutet, dass für die extremen Werte (die auch seltener vorkommen)
+die Vorhersage ungenauer wird.
+
+
+\begin{table}[h]
+\centering
+\begin{tabular}[h]{l|c|c|c}
+Architektur & inklusive Regen & exklusive Regen & Konfidenzintervall \\
+\hline
+UNET & \textbf{93,0} \% & \textbf{73,0} \% & 97,5 \%\\
+ & 88,0 \% & 43,0 \% & 95 \% \\
+ & 86,0 \% & 35,0 \% & 90 \% \\
+ \hline
+LSTM &92,0 \% & 71,0 \% & 97,5 \% \\
+ &\textbf{89,0} \% & \textbf{45,0} \% & 95 \% \\
+ &\textbf{87,0} \% & \textbf{40,0} \% & 90 \% \\
+
+\end{tabular}
+\caption{ Relative Anzahl der wahren Werte im Konfidenzintervall für verschiedene Intervalle und Architekturen\label{tab:konv}}
+\end{table}
+
+\noindent In Tabelle \ref{tab:konv} ist zu erkennen, dass je kleiner das Konfidenzintervall gewählt wird, desto seltener liegt die ground truth im Konvidenzintervall.
+Für die Spalte ''inklusive Regen'' ist der Unterschied nur marginal. Für die Spalte ''exklusive Regen'' ist ein großer Sprung zwischen dem 97,5 \% und dem 95 \% Konvidenzintervall zu sehen.
+Dies kann so interpretiert werden, dass die ground truth für diese Fälle nicht im ''Zentrum'' des Konfidenzintervalls liegt (bzw. weiter entfernt vom Zentrum). Der Mittelwert ist für diese Fälle eine schlechte Schätzung für die ground truth.\\
+
+\noindent Schauen wir uns nun die Multinomialeverteilung an. Wir gehen ähnlich vor wie bei der ZINB vor und stellen die Anzahl der korrekten Vorhersagen gegenüber der Anzahl der ground truth (pro label). Um dies mit der ZINB vergleichen zu können, skalieren wir die Vorhersage der ZINB logarithmisch und stellen dies ebenfalls als Histogramm dar. Die folgende Abbildung zeigt das Ergebnis dieser Vorgehensweise.\\
+
+\begin{figure}[h]
+\centering
+\begin{tabular}{c|c}
+\small{LSTM} & \small{UNET}\\
+\includegraphics[width=80mm]{abb/LSTM_LOGBIN.png}&
+\includegraphics[width=80mm]{abb/UNET_LOGBIN.png}\\
+\hline
+\includegraphics[width=80mm]{abb/dist_cat_lstm.png}&
+\includegraphics[width=80mm]{abb/dist_cat_unet.png}\\
+\end{tabular}
+\caption{Histogramm der Vorhersagen für beide Verteilungen und Architekturen. Die erste Zeile entspricht der ZINB, die letzte der Multinomialverteilung \label{fig:logDist}}
+\end{figure}
+
+\noindent Anhand des Histogramms ist zu erkennen, dass die ZINB eine leicht bessere Vorhersage liefert. Das Histogramm wurde in Richtung y-achse bei 0.2 begrenzt um eine bessere Darstellung zu erreichen. Stellt man die Beziehung in einer Tabelle dar, so kommt man zu folgendem Ergebnis.\\
+
+\begin{table}[h]
+\centering
+\begin{tabular}[h]{|l|c|c|c|c|}
+\hline
+&\multicolumn{2}{c}{exklusive Regen} &
+\multicolumn{2}{c|}{inklusive Regen} \\
+\hline
+& LSTM & UNET & LSTM & UNET \% \\
+\hline
+ZINB & 26 \% & 27 \% & 78 \% & 78 \% \\
+Multinom & 21 \% & 22 \% & 88 \% & 88 \% \\
+\hline
+\end{tabular}
+\caption{Relative Anzahl der korrekt vorhergesagten Regenwerte\label{tab:raintable}}
+\end{table}
+
+\noindent Anhand der Tabelle \ref{tab:raintable} ist ersichtlich, dass die ZINB eine bessere Vorhersage für die Regenstärke liefert. Die Multinomialeverteilung hingegen liefert eine bessere Vorhersage im allgemeinen.
+
+\subsubsection{Fazit der Auswertung}
+
+Für die binäre Regenvorhersage ist Multinomialverteilung die Verteilung welche die besten Resultate liefert. Laut Tabelle \ref{tab:nass} bleibt eine Person zu 60,1 \% trocken, wenn sie sich auf die Vorhersage verlässt. Hierbei spielt es keine Rolle ob die UNET oder die LSTM-Architektur verwendet wird. Da der Loss für die LSTM-Architektur besser als für die Unet-Architektur ist(siehe Abbildung \ref{fig:multinomialeVerteilung}), bevorzugen wir hier die LSTM-Architektur. Für die Klassifikation der Regenvorhersage liefert die Verteilung der ZINB die besten Resultate (siehe Tabelle \ref{tab:raintable}). Hier ist laut Tabelle \ref{tab:raintable} die Unet-Architektur marginal besser. Jedoch ist der Loss der LSTM-Architektur besser (siehe Abbildung \ref{fig:Inception-Conv-LSTM}). Zudem liegt laut Tabelle \ref{tab:konv} die ground truth für kleinere Konfidenzintervalle öfters in eben diesen Intervallen. Daraus schließen wir, dass der Mittelwert näher an der ground truth liegt und dieser dadurch eine bessere Vorhersage liefert. Für unsere Vorhersage wäre es optimal, wenn wir für die binäre Regenvorhersage die Multinomialverteilung und für die Regenklassifikation die ZINB in Kombination mit der LSTM-Architektur verwenden. Da dies nicht praktisch ist verwenden wir für die Vorhersage die LSTM-Architektur mit der ZINB.
+
+
diff --git a/Documentation/src/kapitel/neuronale_netze/imgs/Loss_zinfBinom.png b/Documentation/src/kapitel/neuronale_netze/imgs/Loss_zinfBinom.png
new file mode 100644
index 0000000..209a4d3
Binary files /dev/null and b/Documentation/src/kapitel/neuronale_netze/imgs/Loss_zinfBinom.png differ
diff --git a/Documentation/src/kapitel/neuronale_netze/imgs/skizzierung_regenvorhersage.png b/Documentation/src/kapitel/neuronale_netze/imgs/skizzierung_regenvorhersage.png
new file mode 100644
index 0000000..1b0f8df
Binary files /dev/null and b/Documentation/src/kapitel/neuronale_netze/imgs/skizzierung_regenvorhersage.png differ
diff --git a/Documentation/src/latex_einstellungen/abkuezungen/abkuerzungen.tex b/Documentation/src/latex_einstellungen/abkuezungen/abkuerzungen.tex
new file mode 100755
index 0000000..b52e17a
--- /dev/null
+++ b/Documentation/src/latex_einstellungen/abkuezungen/abkuerzungen.tex
@@ -0,0 +1,23 @@
+\nomenclature{UGC}{User Generated Content}
+\nomenclature{CSS}{Cascading Style Sheets}
+\nomenclature{JS}{JavaScript}
+\nomenclature{SQL}{Structured Query Language}
+\nomenclature{GPL}{GNU General Public License}
+\nomenclature{GNU}{GNU is not Unix}
+\nomenclature{LGPL}{GNU Lesser General Public License}
+\nomenclature{XMPP}{Extensible Messaging and Presence Protocol}
+\nomenclature{IM}{Instant Message}
+\nomenclature{CMS}{Content Management System}
+\nomenclature{RSS}{Really Simple Syndication}
+\nomenclature{JSON}{JavaScript Object Notation}
+\nomenclature{HTML}{Hypertext Markup Language}
+\nomenclature{TDD}{Test-driven development}
+\nomenclature{GUI}{Graphical User Interface}
+\nomenclature{KPI}{Key Performance Indicator}
+\nomenclature{WWW}{World Wide Web}
+\nomenclature{OCR}{Optical Character Recognition}
+\nomenclature{ERM}{Entity Relationship Modell}
+
+
+
+\nomenclature{KNN} {Künstliches neuronales Netz}
\ No newline at end of file
diff --git a/Documentation/src/latex_einstellungen/abkuezungen/nomencl.ist b/Documentation/src/latex_einstellungen/abkuezungen/nomencl.ist
new file mode 100644
index 0000000..1495cf5
--- /dev/null
+++ b/Documentation/src/latex_einstellungen/abkuezungen/nomencl.ist
@@ -0,0 +1,75 @@
+%%
+%% This is file `nomencl.ist',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% nomencl.dtx (with options: `idxstyle')
+%%
+%% Copyright 1996 Boris Veytsman
+%% Copyright 1999-2001 Bernd Schandl
+%% www http://sarovar.org/projects/nomencl
+%%
+%% This file can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License distributed from CTAN
+%% archives in the directory macros/latex/base/lppl.txt; either
+%% version 1.2 of the license, or (at your option) any later version.
+%%
+%%
+%% Nomenclature style file for MAKEINDEX.
+%% For nomencl v2.5 (and later)
+%%
+%% Formats glossary entries to show, e.g. nomenclature of equations.
+%%
+%% Written by Boris Veytsman boris@plmsc.psu.edu
+%% Changed by Bernd Schandl schandl@gmx.net (starting 1999/02/20)
+%% Changed by Lee Netherton ltn100@users.sourceforge.net
+%% (starting 2005/03/31)
+%%
+%% Changes:
+%% 2005/04/27. Updates to the documentation, including support for hyperref (LN)
+%% 2005/04/20. Improvements to Italian option, and minor documentation
+%% changes (LN)
+%% 2005/03/31. Made more compatible with other glossary packages. (LN)
+%% Added option to include nomenclature in TOC. (LN)
+%% 1996/11/25. Change quote character to % (BV)
+%% 1999/02/20. Removed setting of actual to its default value
+%% Removed setting of quote to '%' to get its default '"' instead
+%% Changed group_skip to do nothing; user should use \nomgroup
+%% Changed spacing in gls file
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%% ---- for input file ----
+keyword "\\nomenclatureentry"
+%% Germans might want to change this and delete the two %%
+%% quote '"'
+%% ---- for output file ----
+preamble "\\begin{thenomenclature} \n"%
+postamble "\n\n\\end{thenomenclature}\n" group_skip "\n"
+delim_0 ""
+delim_1 ""
+delim_2 ""
+%% The next lines will produce some warnings when
+%% running Makeindex as they try to cover two different
+%% versions of the program:
+lethead_prefix "\n \\nomgroup{"
+lethead_suffix "}\n"
+lethead_flag 1
+heading_prefix "\n \\nomgroup{"
+heading_suffix "}\n"
+headings_flag 1
diff --git a/Documentation/src/latex_einstellungen/deckblatt.pdf b/Documentation/src/latex_einstellungen/deckblatt.pdf
new file mode 100644
index 0000000..7640135
Binary files /dev/null and b/Documentation/src/latex_einstellungen/deckblatt.pdf differ
diff --git a/Documentation/src/latex_einstellungen/deckblatt.tex b/Documentation/src/latex_einstellungen/deckblatt.tex
new file mode 100755
index 0000000..ea3632d
--- /dev/null
+++ b/Documentation/src/latex_einstellungen/deckblatt.tex
@@ -0,0 +1,59 @@
+\thispagestyle{empty}
+
+
+\begin{figure}[t]
+ \centering
+ \includegraphics[width=0.2\textwidth]{abb/regenschirm}
+\end{figure}
+
+
+\begin{verbatim}
+
+
+\end{verbatim}
+
+\begin{center}
+\Large{HTWG Konstanz}\\
+\end{center}
+
+\begin{center}
+\Large{Fakultät für Informatik}
+\end{center}
+\begin{verbatim}
+
+
+
+
+\end{verbatim}
+\begin{center}
+\textbf{\LARGE{DeepRain}} \\
+\vspace{1cm}
+\doublespacing
+\textbf{\LARGE{\titleDocument}}\\
+\singlespacing
+\begin{verbatim}
+
+\end{verbatim}
+\textbf{{~\subjectDocument}}
+\end{center}
+\begin{verbatim}
+
+\end{verbatim}
+\begin{center}
+
+\end{center}
+\begin{verbatim}
+
+
+\end{verbatim}
+\begin{flushleft}
+\begin{tabular}{llll}
+\textbf{Autoren:} & & Simon Christofzik& \\
+& & Paul Sutter& \\
+& & Till Reitlinger \\
+& & \\
+\textbf{Version vom:} & & \today &\\
+& & \\
+\textbf{Betreuer:} & & Prof. Dr. Oliver Dürr &\\
+\end{tabular}
+\end{flushleft}
diff --git a/Documentation/src/latex_einstellungen/trennung.tex b/Documentation/src/latex_einstellungen/trennung.tex
new file mode 100755
index 0000000..0ea5e8a
--- /dev/null
+++ b/Documentation/src/latex_einstellungen/trennung.tex
@@ -0,0 +1,7 @@
+%hier müssen alle Wörter rein, welche Latex von sich auch nicht korrekt trennt bzw. bei denen man die genaue Trennung vorgeben möchte
+\hyphenation{
+Film-pro-du-zen-ten
+Lux-em-burg
+Soft-ware-bau-steins
+zeit-in-ten-siv
+}
diff --git a/Documentation/src/latex_einstellungen/variablen.tex b/Documentation/src/latex_einstellungen/variablen.tex
new file mode 100755
index 0000000..ad4f4dc
--- /dev/null
+++ b/Documentation/src/latex_einstellungen/variablen.tex
@@ -0,0 +1,3 @@
+%Variablen welche innerhalb der gesamten Arbeit zur Verfügung stehen sollen
+\newcommand{\titleDocument}{Regenvorhersage mit Neuronalen Netzen und die Visualisierung dieser in einer App}
+\newcommand{\subjectDocument}{MSI AS - Master Informatik, Autonome Systeme}
diff --git a/Documentation/src/sperrvermerk.tex b/Documentation/src/sperrvermerk.tex
new file mode 100755
index 0000000..5ba3f18
--- /dev/null
+++ b/Documentation/src/sperrvermerk.tex
@@ -0,0 +1,7 @@
+\section*{Sperrvermerk}
+\textcolor{red}{
+Die vorliegende Arbeit beinhaltet interne und vertrauliche Informationen der Firma .
+Die Weitergabe des Inhalts der Arbeit im Gesamten oder in Teilen sowie das Anfertigen
+von Kopien oder Abschriften - auch in digitaler Form - sind grundsätzlich untersagt.
+Ausnahmen bedürfen der schriftlichen Genehmigung der Firma .
+}