\chapter{Flug "uber das H"ohenmodell }
\label{fly_over_dem_de}
\subsubsection{Aufgabenstellung}
Im folgenden werden zwei verschiedene Arten von Flügen über ein
H"ohen bzw. Landschaftsmodell besprochen. Einmal die direkte
interaktive Bewegung über das Modell in "`Echtzeit"\ und das
Berechnen einer im voraus festgelegten Route über ein Modell,
um z.B. eine Animation daraus zu erzeugen.

\subsubsection{Beispieldaten}
Für die Bearbeitung mit GRASS werden die in Kapitel \ref{georeferencing_de} Seite
\pageref{georeferencing_de:grass} importierten Daten verwendet.\newline
VTP Enviro kann die DEM Daten des USGS Crater Lake Data 
Clearinghouse\footnote{http://craterlake.wr.usgs.gov/dem.html} direkt importieren. 

%\subsubsection{Weitere Verwendung der Beispieldaten}

\section{L"osung mit VTP Enviro} 
\label{fly_over_dem_de:vtpenviro}
Es wurde VTP Enviro auf einer Windows 2000 Installation verwendet.\\

 Das Programm VTP Enviro geh"ort
 wie VTBuilder und BExtractor  zu dem Virtual Terrain Projekt (VTP).
 VTP Enviro bietet die M"oglichkeit, die mit VTBuilder und BExtractor
 bearbeiteten Projekte anzuzeigen und sich virtuell in ihnen zu
 bewegen. Wie schon in Abschnitt \ref{import_usgs_dem_de} Seite
 \pageref{import_usgs_dem_de:vtbuilder} ff beschrieben wird ein DEM in VTBuilder mit
 {\em Layer/Import Data} und der Auswahl {\em Elevation} eingelesen.
 Um diese Daten nun in VTP Enviro zu übernehmen, werden sie als .bt
 (Binary Terrain)\footnote{www.vterrain.org/Implementation/BT.html}
 Datei durch {\em Elevation/Merge and Export Elevation} in dem
 Ordner "`Elevation"\ im Instalationspfad von VTP Enviro gepeichert.
 Um den "`Bildausschnitt"\ und die Aufl"osung zu justieren, kann mit
 {\em Export Area/Set to Extents} das gesamte DEM ausgew"ahlt
 werden, mit {\em Numeric Values} gibt man die Ausdehnung
 durch entsprechende Koordinatenwerte ein. Die Schaltfläche {\em Set
 Export Area} erm"oglicht das Aufziehen eines
 Ausgaberechteckes direkt in der Bildschirmanzeige des DEMs.
 In dem nächsten Auswahlmen"u  k"onnen die Aufl"osung und Ausdehnung
 der BT-Datei gewählt werden. Um sie aufeinander anzupassen sollten
 die Schaltflächen \begin{math}\ll \end{math} und
 \begin{math}\gg \end{math} genutzt werden.
\nomenclature{BT Datei}{leer} 
 
        \begin{figure}[h]
        \centering
        \includegraphics[width=6cm]{flight-through-dem/enviro-1.eps}
        \caption[Screenshoot VTP Enviro Auswahl Anzeigeparameter]{\label{enviro_1}Auswahl der Anzeigeparameter in VTP Enviro}
        \end{figure}


 
 \paragraph{Aufruf von VTP Enviro}Nach dem Aufruf von VTP Enviro
  wird das {\em Enviro Startup} Men"u gestartet. Mit {\em
  Select/Generic Terrain} erhält man die M"oglichkeit, nicht
  vordefinierte DEMs anzuzeigen. Die Auswahl des DEM 
  geschieht durch {\em Edit Properties/Terrain Filename}.
  weiter sollten als Anzeigeparameter gesetzt sein: {\em Dynamic LOD
  Terrain} und {\em Texture/Derive texture from elevation}.
  Nach der Best"atigung {\em OK} dieser Einstellungen startet VTP
  Enviro. Grunds"atzlich gibt es zwei Anzeigemodi: {\em Earth}
   (Abb. \ref{enviro_3}) und
  {\em Terrain} (Abb. \ref{enviro_2}). {\em Earth} "offnet eine Globusansicht der Erde mit
  Markierungen für vorhandenen anw"ahlbare {\em Terrain}-Ansichten
  wie z.B. das importierte DEM. Mit gedr"uckter mittlerer Maustaste
  l"asst sich der Globus rotieren und ein Linksklick auf eine
  Markierung "offnet die entsprechende {\em Terrain}-Ansicht. 
  \paragraph{Steuerung des Fluges}Die Navigation erfolgt mittels der
  Maus. Bei gedrückter linker Maustaste k"onnen Bewegungen nach
  vorne und rückwärts sowie seitliche Drehungen ausgeführt werden.
  Die linke Maustaste kontrolliert die Flugh"ohe und Bewegungen nach
  Rechts und Links. Werden beide Maustasten gedr"uckt kann eine
  Loopingartige Bewegung ausgeführt werden. Das farbige Achsenkreuz
  dient zur Orientierung und als Cursor um Bildinformationen
  abzufragen. Die "`Zickzacklinie"\ im linken unteren Bildrand ist
  eine Visualisierung der momentan ausgegebenen frames per second
  (fps), also die Bildwiederholfrequenz von VTP Enviro.
  Die M"oglichkeit einer Aufzeichnung des Fluges besteht momentan
  noch nicht (Abb. \ref{enviro_3}).
 
      
        \begin{figure}[h]
        \centering
        \includegraphics[width=8cm]{flight-through-dem/enviro-2.eps}
        \caption[Screenshoot VTP Enviro Erdansicht]{\label{enviro_2}VTP Enviro im 
	Earth-Modus}
        \end{figure}


        \begin{figure}[h]
        \centering
        \includegraphics[width=8cm]{flight-through-dem/enviro-3.eps}
        \caption[Screenshoot VTP Enviro Flugansicht]{\label{enviro_3}VTP Enviro im Terrain-Modus beim Flug
	"uber das USGS-DEM Craterlake}
        \end{figure}

 


\section{Lösung mit GRASS}
\label{fly_over_dem_de:grass}
   Es wurde GRASS 5.0pre1 unter einer Red Hat GNU/Linux
    Installation verwendet.\\

    
    Der Befehl {\em nviz2.2} \index{nviz2.2} mit den Parametern {\em
    el=} für die Rasterdatei mit H"oheninformationen, {\em ve=} für
    Vektordateien, z.B. H"ohenlinien und {\em si=} f"ur Punktdateien
    "offnet eine GUI "`Graphische Benutzer Oberfl"ache" \  mit der
    das Programm bedient wird.\\ Diese GUI erm"oglicht es dem
    Benutzer, den Beobachtungspunkt "`Projektionszentrum", den
    "Uberh"ohungsfaktor {\em zexag} und das Blickfeld {\em
    perspective} dynamisch zu ver"andern. Mit dem Men"upunkt {\em
    Panel/Surface} wird das "`Oberfl"achen Schaltpult"\ aufgerufen,
    in welchem mit der Schaltfl"ache {\em color} georeferenzierte
    Rasterdateien als Texturen auf die 3D-Oberfl"ache gelegt werden
    k"onnen. Nach dem Ausw"ahlen und Akzeptieren einer Rasterdatei
    wird das 3D-Modell durch Anklicken der {\em Surface}
    Schaltfl"ache aktualisiert.\\
    Vektordaten, zum Beispiel H"ohenlinien
    k"onnen mittels {\em Panel/Vectors} in {\em
    nviz2.2} "ubernommen werden. Mit der Schaltfl"ache {\em New}
    wird eine Vektordatei ausgew"ahlt und mit {\em Accept}
    eingelesen. Ein Klicken auf die Schaltfl"ache {\em Vectors}
    zeichnet die Monitorausgabe neu.\\ Einen "Uberflug definiert man
    mit dem Men"upunkt {\em Panel/Animation}. Hier sollten unter
    {\em total frames} f"ur eine 10 Sekunden lange Animation ca. 300
    frames "`Bilder, Rahmen"\ eingestellt werden. Man w"ahlt nun
    Projektionszentrum, Blickfeld u.s.w. f"ur den Anfangspunkt des
    Fluges aus. Mit dem Schieberegler {\em Key Frames} legt man den
    Zeitpunkt f"ur weitere Stationen des Fluges fest.  Die Anzahl
    der Frames zwischen den Key Frames ergibt die Dauer der
    einzelnen "`Einstellungen".  Die "`Kamerafahrten"\ von einem Key
    Frame zum n"achsten k"onnen {\em linear}, d.h. auf einer Geraden
    liegen, oder als {\em spline}, also als Aneinanderreihung von
    Kurvensegmenten, die die  Projektionszentren bestm"oglichst
    verbinden, definiert werden. \index{Spline}
    \nomenclature{Spline}{leer} Mit dem {\em tension-Schieber} kann der Grad
    der "`Anschmiegung"\ an die definierten Projektionszentren des
    Fluges beeinflusst werden.\\ Die Schaltfl"ache
    {\em run and save Images} "offnet
    ein Fenster in dem Pfad und Dateiname der Flugsequenz {\em Enter
    a base name} angegeben werden, weiter wird die Art der Datei
    {\em IrisRGB, PPM} oder {\em TIFF} definiert und es besteht die
    M"oglichkeit, sich den Flug als Drahtgittermodell {\em
    Wireframe} oder mit berechneter Oberfläche {\em Full Rendering}
    \nomenclature{Rendering}{leer} erstellen zu lassen. Die gespeicherten
    Bilder m"ussen jetzt noch mit einem geeigneten Programm z.B.
    ppmtompeg oder sampeg zu einer MPEG-Datei zusammengefasst
    werden.\\

\begin{kommando}
\begin{verbatim}

GRASS:~ > nviz2.2 el=rasterdata ve=hlinien si=data

\end{verbatim}
\end{kommando}\\


    \paragraph{Tipps:}
    \begin{itemize}
    \item W"ahrend der Berechnung der einzelnen Frames sollte der
    Rechner nicht f"ur andere Arbeiten benutzt werden, da ansonsten
    "uber den nviz2.2 -Monitor gelegte Fenster in den Flug
    "ubernommen werden oder beim Arbeiten an anderen Konsolen nur
    noch ein schwarzes Bild produziert wird.
    \item Mit {\em File/Image Dump} k"onnen Einzelbilder gespeichert werden.
    \end{itemize}

\subsection{Zusammenfassen der Flugeinzelbilder zu einem Film}

   \subsubsection{Lösung mit Programm ppmtompeg} \index{ppmtompeg}
         \paragraph{Programmaufruf}
 Dem Programmaufruf {\em ppmtompeg} wird eine Parameterdatei übergeben die folgende
 Informationen enthält:\\

\begin{kommando}
\begin{verbatim}

bash-2.05$ cat parameterdatei
  

   PATTERN  IBBPBBPBBPBB
   OUTPUT /home/heiko/flug/flympeg1 
   INPUT\_DIR /tmp/flug/ 
   INPUT  
   fly*.ppm [00001-00349]  
   END\_INPUT  
   BASE\_FILE\_FORMAT PPM  
   INPUT\_CONVERT *  
   GOP\_SIZE 16  
   SLICES\_PER\_FRAME 1  
   PIXEL HALF  
   RANGE 10  
   PSEARCH\_ALG EXHAUSTIVE  
   BSEARCH\_ALG CROSS2  
   IQSCALE 8  
   PQSCALE 10  
   BQSCALE 25  
   REFERENCE\_FRAME DECODED 

\end{verbatim}
\end{kommando}\\


   Wichtig sind hierbei die korrekten Pfadangaben für Eingabe- {\em INPUT\_DIR /tmp/flug/}
   und Ausgabedateien {\em OUTPUT /home/heiko/flug/flympeg1}.\\
   Die in eckigen Klammern stehenden Zahlen geben die an {\em fly} anzuhägenden
   Dateibezeichnungen an.\\ 

\begin{kommando}
\begin{verbatim}

bash-2.05$ ppmtompeg parameterdatei

\end{verbatim}
\end{kommando}\\

   
   \subsubsection{Lösung mit Programm sampeg} \index{sampeg}
         \paragraph{Programmaufruf}
    Ein beispielhafter Programmaufruf zur Erzeugung einer MPEG-1 Datei w"are:\\
  
\begin{kommando}
\begin{verbatim}

bash-2.05$ sampeg-2 -1 -Y /tmp/flug/newfly\%05d.ppm
/home/test/flug/fly-2.1.mpg 

\end{verbatim}
\end{kommando}\\


   Dabei bestimmt {\em -1} das Format MPEG-1, {\em -Y} setzt als Eingabeformat PPM-Dateien.
   {\em /tmp/flug/newfly\%05d.ppm} bezeichnet den Eingangspfad, wobei {\em \%05d} ein
   Platzhalter für eine 5-stellige Dezimalzahl ist von der aus aufsteigend alle
   vorliegenden Frames abgearbeitet werden. Der Ausgabepfad ist in diesem Beispiel
   {\em ~/flug/fly-2.1.mpg} also im Heimatverzeichniss der Ordner {\em flug} und die
   Dateibezeichnung {\em fly-2.1.mpg}. 


