\chapter{Úvod}

V letectví, které je poměrně intenzivně legislativně zatíženo, je důležité přesně monitorovat a dodržovat životnostní omezení jednotlivých konstrukčních dílů letounu. Z tohoto důvodu je intuitivní analýza letových dat velmi přínosná, jelikož usnadní kontrolu letové způsobilosti letadla. Samotná životnost dílů je závislá na čase stráveném v různých manévrech, přičemž jednotlivé manévry způsobují různé namáhání letadla. Na zatáčející letadlo působí jiné výsledné silové zatížení než na~letadlo v přímočarém stoupání.  

Aplikace pro identifikaci manévrů z letových záznamů pomůže pilotům analyzovat a~vizualizovat svůj let. V případě dostupnosti mohou piloti současně nahrát, analyzovat a~porovnávat více letů současně, a to jak v trojrozměrném prostoru, tak v projekci do roviny, což jim může pomoci v plánování budoucích letů. Pomocí aplikace je možné vytvořit i statistiku s dobou trvání jednotlivých manévrů. 

Kapitola \hyperref[kap2]{Pohybové rovnice kluzáku} popisuje jednotlivé souřadné systémy a transformace mezi nimi. Obsahuje také rozbor 12 pohybových rovnic popisujících let kluzáku. Informace o zařízení pro zaznamenávaní letu, výstupní formát letu spolu s určením polohy pomocí globálního navigačního satelitního systému jsou uvedeny v kapitole \hyperref[2]{Technologie pro záznam letových dat}. Pro vhodnou identifikaci letových manévrů je nutné zavést definici jednotlivých manévrů. Ty jsou definované v kapitole \hyperref[3]{Návrh identifikace letových manévrů}. V této části práce jsou rozebrány i jednotlivé identifikované metody. V kapitole \hyperref[4]{Implementace aplikace} jsou popsány technologie pro vizualizaci, hlavní tělo programu a implementace jednotlivých metod pro identifikaci manévrů. Implementované metody jsou navzájem porovnané v kapitole \hyperref[5]{Vyhodnocení výsledků a možné zlepšení} pomocí matice záměn a statistických údajů.






\chapter{Pohybové rovnice kluzáku} \label{1}\label{kap2}
Pohyb letadla je definován pomocí pohybových rovnic, které zohledňují transformace mezi jednotlivými souřadnými systémy \cite{DaněkVladimír2019MlIL}. Souřadný systém Země je~dostatečným přiblížením inerciálního souřadného systému pro letící kluzák. Inerciální systém je referenční soustava s konstantní rychlostí, která nerotuje. V tomto systému platí Newtonovy zákony \cite{CookMichaelV2008Fdp}.   

\section{Souřadné systémy}

Pro orientaci těles v prostoru se  používají vztažné soustavy se třemi vzájemně na sebe kolmými osami, takzvané souřadné systémy. Pohyb letadla si můžeme představit jako pohyb tuhého tělesa, pro popis kterého využíváme souřadný systém Země, normálovou zemskou souřadnou soustavu, letadlový souřadný systém a aerodynamický souřadný systém \cite{Keller2013}. 
\addtocontents{toc}{\protect\setcounter{tocdepth}{1}}

\subsection{Zemská souřadná soustava a geodetické systémy}
Zemská souřadná soustava (ECEF) je systém se středem v těžišti Země, který rotuje okolo své osy $z_e$. Jedná se o neinerciální systém. Osa $x_e$ protíná povrch Země na 0$^\circ$ zeměpisné délky a~0$^\circ$~zeměpisné šířky, osa $z_e$ směřuje ze středu na severní pól a osa $y_e$ protíná povrch na 90$^\circ$ východní délky a 0$^\circ$ zeměpisné šířky  \cite{CaiGuowei2011Urs}. Systém \Gls{ECEF} je~zobrazen na obrázku~\ref{Lokalni system}.



Pro přesnější určení polohy vůči Zemi je nutné specifikovat vhodný model. Země je rotující nepravidelné těleso. Pro zobrazení tohoto tělesa se využívá takzvaný geoid. Geoid představuje model povrchu Země vztažený ke střední hladině oceánů. V některých případech se~pro~zjednodušení používá rotační elipsoid, který je zobrazen na obrázku \ref{rozdilsystem} níže~\cite{Keller2013}.
Rotační elipsoid je v našem případě tvořen elipsou, která rotuje okolo svislé osy a ve směru roviny rovníku je~delší než ve směru roviny poledníku. Pro~určitou část Země byly vypočteny referenční elipsoidy. Například Besselův z~roku 1841 pro~střední Evropu, Hayfordův z~roku 1924 pro~Spojené státy americké a~západní Evropu.\label{WGS84} V dnešní době se využívá Světový geodetický systém (\Gls{WGS84}) z~roku 1984, který je stanovený pro celý svět. Poloha v tomto modelu je~definovaná pomocí zeměpisných souřadnic, a to konkrétně zeměpisné šířky, zeměpisné délky a výšky. Mezinárodní organizace pro civilní letectví (ICAO) akceptuje tento nejrozšířenější model. Na~model WGS84 přešly jednotlivé země z požadavku celosvětové jednotnosti údajů o poloze~\cite{Keller2013}.



\begin{itemize}
  \item Referenční elipsoid -- je definován jako povrch se stejným tíhovým potenciálem~\cite{KSLUIS1991}.
  \item Geoid -- je matematicky definován jako vzdálenost \texttt{N} k referenčnímu elipsoidu. Všeobecně je to model povrchu Země vztažený ke střední hladině oceánů~\cite{KSLUIS1991}.
  
\end{itemize}


\noindent Vztah pro přepočet mezi modely zemského povrchu je uveden v rovnici \ref{rozdil} \cite{national2000department}. 

\begin{equation}     \label{rozdil}
    h = H - N 
\end{equation}

Výška \texttt{H} je vztažená k referenčnímu elipsoidu, \texttt{N} je výška geoidu v závislosti na~elipsoidu a výška nad geoidem \texttt{h} je vyjádřena pomocí vztahu \ref{rozdil}. Jednotlivé vzdálenosti a proměnné jsou zobrazeny na následujícím obrázku \ref{rozdilsystem}~\cite{national2000department}. 



\begin{figure}[H]  \label{rozdilsystem}
    \begin{center}

        \includegraphics[width=0.7\linewidth]{obrazky-figures/kapitola2/modely.pdf}
        \caption {Srovnání modelů s topografií Země \cite{Hanagan2021}.}
    \end{center}
\end{figure}

Hodnotu \texttt{N} je možné dopočítat pomocí vzorců, či vyčíst z již vypočítaných hodnot. V~České republice se hodnoty \texttt{N} pohybují v rozmezí 43 až 47 metrů nad elipsoidem~\cite{KSLUIS1991}.

 



\subsection{Zemské osy a póly}

Zemské osy jsou zobrazené na obrázku přiloženém v příloze \ref{Zemskeosy} 
Osa rotace Země prochází středem Země a její povrch protíná v zeměpisných pólech.  
\cite{Keller2013}. 

Proložíme-li elipsoid rovinou, která bude procházet osou $z_e$, bude průsečnice zemského povrchu a dané roviny tvořit poledník. Nultý poledník, poledník s číslem 0,  prochází londýnskou hvězdárnou ve čtvrti Greenwich. Další poledníky se číslují od nultého poledníku. Značí se v rozmezí od 0° do 180° východní a západní délky.
Rovnoběžky jsou kolmé na~zemskou osu. Nejdelší rovnoběžka, rovník, prochází středem Země a zároveň je kolmá na osu $z_e$. 
Pomocí poledníků a rovnoběžek je možné definovat každý bod na povrchu Země \cite{Keller2013}.




\subsection{Normálový zemský souřadný systém}
K popisu letu kluzáku je využita také normálová zemská souřadná soustava (\Gls{NED}), která je situována vůči Zemi. Počátek systému je zvolen do těžiště kluzáku, případně může být zvolen podle potřeby. Je~to pravotočivý, inerciální a kartézský souřadný systém. Osa $x_n$ směřuje na zeměpisný sever, osa $y_n$ směřuje na východ a osa $z_n$ je lokální normálou povrchu. Normálový zemský souřadný systém je znázorněný na obrázku v příloze \ref{Lokalni system} \cite{1993V1PF, Slavetinsky20100425}.

\subsection{Letadlový souřadný systém}
Letadlový souřadný systém (BFF) je pevně svázán s kluzákem a jeho počátek se nachází v těžišti \texttt{$c_g$}.  Osa \texttt{$x_b$} směřuje před kluzák (ve směru osy trupu). Osa \texttt{$y_b$} směřuje ve směru pravého křídla a osa \texttt{$z_b$} je kolmá na osu \texttt{$x_b$} i \texttt{$y_b$} a směřuje směrem pod kluzák~\cite{1993V1PF, Slavetinsky20100425}. Letadlový souřadný systém je znázorněn na~obrázku~\ref{Letadlový souřadný systém}.

\begin{figure}[H]
    \begin{center}
        \includegraphics[width=0.6\linewidth]{obrazky-figures/kapitola2/systemy/letadlovy.pdf}
        \caption {Letadlový souřadný systém.}
        \label{Letadlový souřadný systém}
    \end{center}
\end{figure}

\section{Transformace souřadných systémů}
Pro porozumění pohybovým rovnicím je vhodné uvést převod mezi letadlovým a NED souřadným systémem \ref{rotacekomplet}. Pomocí tohoto převodu je možné trnsformovat veličiny mezi danými systémy, například vektor rychlosti. 

\subsection{Transformace z letadlového do normálového zemského souřadného systému}
K převodu z letadlového souřadného systému do normálového zemského souřadného systému jsou využity Eulerovy úhly. Pomocí Eulerových úhlů je možné přesně definovat natočení tuhého tělesa v prostoru, tedy i kluzáku \ref{euler-uhly}  \cite{1993V1PF, Reichl26092010}.
\begin{figure}[H]
    \begin{center}
        \includegraphics[width=0.6\linewidth]{obrazky-figures/kapitola2/systemy/letadlovynormal.pdf}
        \caption {Znázornění rotačních transformací.}
        \label{euler-uhly}
    \end{center}
\end{figure}

\noindent Pro transformaci z \Gls{NED} do letadlového systému \Gls{BFF} je využita trojice transformačních matic. Transformace musí být provedena v určitém pořadí, protože násobení rotačních matic není komutativní. Nejdříve je provedena rotace okolo osy~\texttt{$z_b$} o~úhel~$\psi$~pomocí transformační matice \ref{rotacez2}. V dalším kroku probíhá rotace okolo~\texttt{$y_b$}~o~úhel~$\theta$~pomocí matice \ref{rotacey2}. Pro dokončení transformace rotuje těleso nakonec okolo osy \texttt{$x_b$} o úhel $\phi$, který zobrazuje transformační matice \ref{rotacex2}.  Matice $R_1$ znázorňuje vybočení kluzáku, matice $R_2$ klopení kluzáku a matice $R_3$ klonění.

\begin{equation} \label{rotacez2}
    \mathbf{R_1}= \left [ 
        \begin{array}{ccc}  \cos \psi   & \sin \psi & 0     \\
                            -\sin \psi  & \cos \psi & 0     \\
                            0           & 0         & 1       
        \end{array}
    \right]
\end{equation}
\begin{equation} \label{rotacey2}
    \mathbf{R_2}= \left [ 
        \begin{array}{ccc}  \cos \theta & 0 & -\sin \theta  \\
                            0           & 1 & 0             \\
                            \sin \theta & 0 & \cos \theta      
        \end{array}
    \right]
\end{equation}
\begin{equation} \label{rotacex2}
    \mathbf{R_3}= \left [ 
        \begin{array}{ccc}  1 & 0           & 0         \\
                            0 &  \cos \phi  & \sin \phi \\
                            0 & -\sin \phi  & \cos \phi      
        \end{array}
    \right]
\end{equation}

\noindent Pro zjednodušení je násobením jednotlivých matic v pořadí uvedeném v rovnici \ref{eq:vyslednamatice3} vytvořena jedna složená transformační matice $R_{BN}$ \cite{1993V1PF}.
\begin{equation} \label{eq:vyslednamatice3}
    \mathbf{R_{BN}} = \mathbf{R_3}\mathbf{R_2}\mathbf{R_1}
\end{equation}  
\begin{equation} \label{rotacekomplet}
    \mathbf{R_{BN}}= \left [ 
        \begin{array}{ccc}  \cos \theta \cos \psi & \cos \theta\cos \psi           & -\sin \theta         \\
                            \sin \phi \sin \theta \cos \psi - \cos \theta \sin \psi&  \sin \phi \sin \theta \sin \psi + \cos \theta \cos \psi  & \sin \phi \cos \theta \\
                             \cos \phi \sin \theta \cos \psi + \cos \theta \sin \psi&  \cos \phi \sin \theta \sin \psi - \sin \theta \cos \psi  & \cos \phi \cos \theta       
        \end{array}
    \right]
\end{equation}
Pomocí transformační matice $R_{BN}$ \ref{rotacekomplet} lze vektor z \Gls{NED} transponovat do letadlového souřadného systému (BFF). Případně pomocí matice \texttt{$[R_{NB}]$} \ref{rotacekomplettransponovana}, která má vlastnosti transponované matice \texttt{$[R_{BN}]^T$}, je možné transformovat vektor z letadlového souřadného systému (BFF) do \Gls{NED}.  

\begin{equation} \label{rotacekomplettransponovana}
    \mathbf{R_{NB}}= \left [ 
        \begin{array}{ccc}  \cos \theta \cos \psi & \sin \phi \sin \theta \cos \psi - \cos \theta \sin \psi  &  \cos \phi \sin \theta \cos \psi + \cos \theta \sin \psi         \\
                            \cos \theta\cos \psi  & \sin \phi \sin \theta \sin \psi + \cos \theta \cos \psi  & \cos \phi \sin \theta \sin \psi - \sin \theta \cos \psi \\
                            -\sin \theta          & \sin \phi \cos \theta                                    & \cos \phi \cos \theta 
                        
        \end{array}
    \right]
\end{equation}

\newpage
\section{Pohybové rovnice kluzáku}
Stav kluzáku je možné popsat v šesti stupních volnosti \ref{6stupnu}. Cílem pohybových rovnic je popsat každý tento stupeň volnosti. 

\begin{figure}[H]
    \begin{center}
        \includegraphics[scale=0.7]{obrazky-figures/kapitola2/systemy/Euler.pdf}
        \caption {Stav kluzáku v šesti stupních volnosti.}
        \label{6stupnu}
    \end{center}
\end{figure}

U pohybových rovnic je~nutné zavést předpoklady. Kluzák aproximujeme pomocí předpokladu tuhého tělesa s konstantní hmotností a předpokládáme, že souřadný systém Země je nerotující. Toho můžeme využít, jelikož cestovní rychlost kluzáku je oproti nadzvukovým letadlům malá \cite{Vlk2020}. 

\subsection{Silové rovnice}
Silové rovnice vycházejí z druhého Newtonova zákona. Druhý Newtonův zákon říká, že: zrychlení tělesa je nepřímo úměrné hmotnosti tělesa a přímo úměrné velikosti výslednice sil působících na hmotný bod \ref{Newton2} \cite{Halliday}.
\begin{eqnarray}\label{Newton2}
    \vec{a}  =  \frac{\vec{F}}m
\end{eqnarray}

\noindent Rovnice pro jednotlivé složky síly $F_x$ \ref{silove}, $F_y$ \ref{silove2} a $F_z$ \ref{silove3} jsou odvozeny z jednotlivých složek zrychlení $a_x$ \ref{zrychleni}, $a_y$ \ref{zrychleni2} a $a_z$ \ref{zrychleni3} a druhého Newtonova zákonu \ref{Newton2}~\cite{CookMichaelV2008Fdp}.
\begin{equation} \label{zrychleni}
    a_x = \dot{u} - rv + qw 
\end{equation}
\begin{equation} \label{zrychleni2}
    a_y = \dot{v} - pw + ru 
\end{equation}
\begin{equation} \label{zrychleni3}
    a_z = \dot{w} - qu + pv 
\end{equation}

\noindent Kde $u$ je podélná rychlost letadla, $v$ je boční a $w$ je vertikální rychlost letadla v BFF. Úhlová rychlost pro klonění je označena $p$, pro klopení $q$ a bočení je $r$. Složky vektoru změny rychlosti jsou podélné $\dot{u}$, boční $\dot{v}$ a vertikální $\dot{w}$. Hmotnost kluzáku je označována jako~$m$~\cite{CookMichaelV2008Fdp}.

\begin{equation}     \label{silove}
    F_x = m(\dot{u} - rv + qw) 
\end{equation}
\begin{equation}    \label{silove2}
    F_y = m(\dot{v} - pw + ru) 
\end{equation}     
\begin{equation}    \label{silove3}
    F_z = m(\dot{w} - qu + pv) 
\end{equation}



\noindent Při zohlednění gravitačních sil a aerodynamických sil, tah motoru u kluzáku není brán v~potaz, dostaneme tvar pro složky vektoru změny rychlosti $\dot{u}$ \ref{zrychlenisila},  $\dot{v}$ \ref{zrychlenisila2} a $\dot{w}$ \ref{zrychlenisila3}~\cite{StevensBrianL2015ACaS}.
\begin{align}
        \label{zrychlenisila}
    \dot{u} &= rv - qw - g \sin \theta + \frac{(X_a)_b}m\\
    \label{zrychlenisila2}
    \dot{v} &= pw - ru + g \sin \phi \cos \theta + \frac{(Y_a)_b}m \\   
    \label{zrychlenisila3}
    \dot{w} &= qu - pv - g \cos \phi \cos \theta + \frac{(Z_a)_b}m    
\end{align}

\noindent $(X_a)_b$, $(Y_a)_b$ a $(Z_a)_b$ jsou komponenty aerodynamické síly v letadlovém souřadném systému.



\subsection{Momentové rovnice}
Momentové rovnice jsou odvozeny z druhého Newtonova zákonu a platí pro tuhé těleso, konkrétně pro zjednodušený model kluzáku. Popisují pohyb okolo os, které se vztahují k~těžišti kluzáku. Předpokládáme, že kluzák je symetrický a hmotnost je rovnoměrně rozložena, z~toho tedy plyne: $I_{xy} = I_{yz} = I_{xy} = I_{yz} = 0$. Pro zjednodušení je u kluzáku počítáno pouze s~aerodynamickým momentem. Symetrický kluzák s konstantní hmotností lze popsat pomocí aerodynamických momentů \texttt{$L_a$} \ref{momentove1}, \texttt{$M_a$} \ref{momentove2} a \texttt{$N_a$} \ref{momentove3} \cite{CookMichaelV2008Fdp}. Momenty setrvačnosti působící v~těžišti letadla jsou znázorněny v matici $I_{BB}$ \ref{maticemoment} \cite{Vlk2020}.
\begin{equation} \label{maticemoment}
    I_{BB}= \left [ 
        \begin{array}{ccc}  I_{xx} & -I_{xy} & I_{xz} \\
                            -I_{xy} & I_{yy} & -I_{yz}             \\
                            -I_{xz} & -I_{yz} & I_{zz}      
        \end{array}
    \right]
\end{equation}


\begin{align} \label{momentove1} 
   L_a &= I_{xx}\dot{p} - (I_{yy} - I_{zz})qr - I_{xz}(pq + \dot{r}) \\
    M_a &= I_{yy}\dot{q} + (I_{xx} - I_{zz})pr + I_{xz}(p^2 - r^2)  \label{momentove2} \\ 
   N_a &= I_{zz}\dot{r} - (I_{xx} - I_{yy})pq + I_{xz}(qr - \dot{p})  \label{momentove3}
\end{align}

\noindent Případně je možné popsat pomocí složek vektoru změny úhlové rychlost $\dot{p}$ \ref{momentove4}, $\dot{q}$~\ref{momentove5}, 
 a~$\dot{r}$~\ref{momentove6}~\cite{Vlk2020}.

\begin{align} \label{momentove4}
    \dot{p} &= \frac{I_{zz}L_a + I_{xz}N_a}{I_{xx} - I_{zz} -I_{xz}^2} +\frac{ I_{xz}(I_{xx} - I_{yy} + I_{zz})pq - (I_{zz}^2-I_{zz}I_{yy}+I_{xz}^2)qr}{I_{xx} - I_{zz} -I_{xz}^2} \\
    \dot{q} &= \frac{M_a}{I_{yy}} + \frac{I_{xz}(r^2 - p^2) - (I_{xx} - I_{zz})pr}{I_{yy}}   \label{momentove5} \\
    \dot{r} &= \frac{I_{xz}L_a + I_{xx}N_a}{I_{xx}-I_{zz} - I_{xz}^2}+\frac{(I_{xz}^2-I_{xx}I_{yy} + I_{xx}^2)pq - I_{xz}(I_{xx}-I_{yy}+I_{zz})qr}{I_{xx}-I_{zz} - I_{xz}^2} \label{momentove6}
\end{align}
\subsection{Diferenciální rovnice otočení}
V letadlovém souřadném systému slouží k popisu natočení letadla Eulerovy úhly. Pro výpočet změny těchto úhlů slouží následující soustava rovnic \ref{rotacelelo} \cite{Vlk2020}. 


\begin{equation} \label{rotacelelo}
        \left [
        \begin{array}{c}    \dot{\phi}  \\
                            \dot{\theta}  \\
                            \dot{\psi}
        \end{array} \right]
        = \left[ 
        \begin{array}{ccc}  1 & \sin \phi \tan \theta  & \cos \phi \tan \theta        \\
                            0 &  \cos \phi  & -\sin \phi \\
                            0 & \frac{\sin{\phi}}{\cos \theta}  & \frac{\cos{\phi}}{\cos \theta}      
        \end{array}
    \right]
    \left [
        \begin{array}{c}    p  \\
                            q  \\
                            r
        \end{array} \right]
\end{equation}

\subsection{Diferenciální rovnice pozice}

Při analýze dat z letového zařízení je důležitý vztah mezi zemskou souřadnou soustavou a \Gls{NED}. K určení přesné pozice kluzáku slouží zeměpisná šířka, zeměpisná délka a nadmořská výška ($\lambda, \varphi, h$). Vztahy pro vyjádření pozice kluzáku v zemské souřadné soustavě jsou pro~zeměpisnou šířku, zeměpisnou délku a nadmořskou výšku uvedeny v rovnicích \ref{rovnicesouradnice}~--~\ref{rovnicesouradnice3} \cite{CaiGuowei2011Urs},

\begin{align}
    \label{rovnicesouradnice}
    \dot{\lambda} &= \frac{v_k}{\frac{r_e}{\sqrt{(1-e^2sin^2\varphi)}}\cos{\varphi}}, \\
    \dot{\varphi} &= \frac{u_k}{\frac{r_e(1-e^2)}{(1-e^2sin^2\varphi)^{3/2}}+h}, \label{rovnicesouradnice2}\\   
    \dot{h} &= -w_k, \label{rovnicesouradnice3}
\end{align}

\noindent kde konstanty $r_e$ a $e$ mají níže uvedené hodnoty,
\begin{itemize}
  \item $r_e$ -- poloměr Země je 6 378 137  metrů,
  \item $e$ -- faktor zploštění je 0,08181919 \cite{CaiGuowei2011Urs}.
\end{itemize}

\noindent V souřadném systému NED je specifikován vektor rychlosti $V_{NED}$ ve formátu uvedeném níže \ref{RychlostNED}. Jeho složky jsou $v_N$,~$u_E$~a~$w_D$ \cite{CaiGuowei2011Urs}.

\begin{equation} \label{RychlostNED}
    V_{NED}= \left [ 
        \begin{array}{ccc}  v_N  \\
                            u_E           \\
                            w_D      
        \end{array}
    \right]
\end{equation}

\noindent Vektor rychlosti v NED je možné řešit transformací z letadlového souřadného systému se složkami rychlostí $v$, $u$ a $w$ pomocí vztahu \ref{prevodrychlost}, kde $R_{NB}$ představuje transformační matici \ref{rotacekomplettransponovana} uvedenou v předchozí kapitole.

\begin{equation} \label{prevodrychlost}
    \left [
    \begin{array}{c}  v_N  \\
                            u_E           \\
                            w_D      
        \end{array} \right]
        = R_{NB}\left [ 
        \begin{array}{c}  v  \\
                            u           \\
                            w      
        \end{array}
    \right]
\end{equation}
\chapter{Technologie pro záznam letových dat} \label{2} \label{kap3}\label{Letové data}
Zaznamenávání letových dat je důležitou oblastí leteckého výzkumu a vývoje. Vývoj zařízení pro zaznamenávání letu prošel různými iteracemi, od barografu, přes první jednoduché přístroje pro záznam letu z minulého století až po současná zařízení. Součástí této kapitoly je také analýza zdrojového IGC souboru a specifikace jeho jednotlivých častí. U jednotlivých zkoumaných zařízení je~definováno, které zařízení obsahuje jaký typ záznamu. V poslední části je popsáno, jakým způsobem je realizované určování polohy pomocí globálního navigačního satelitního systému (GNSS), a to  konkrétně na~globálním polohovém systému (GPS).


\section{Historický vývoj zařízení pro kluzáky}
Dnes se k zaznamenávání letu používají uživatelsky přívětivá zařízení. Není možné srovnávat tato zařízení s tím, co bylo využíváno ještě koncem devadesátých let minulého století, když se pro záznam výšky letu běžně používal barograf, který je znázorněný na obrázku \ref{barograf}. Před každým letem se musel proužek papíru otočného válce načernit pomocí sazí z~kahanu. „Zapisovátko“ pak během letu vyškrábalo záznam na otočný válec s papírem. Po každém letu bylo nutné záznam zafixovat lakem. Teprve pak bylo možné let vyhodnotit. Při plachtařských přeletech se na každém letišti vytyčoval znak, nejčastěji písmeno (Z, F, E, V), které plachtař při otočce zaznamenal. Po~přeletu si~nechal tento znak na příslušném letišti potvrdit na korespondenční lístek. Po~roce 1989 bylo možné otočné body vyfotografovat s~křídlem kluzáku. 

\begin{figure}[H]
    \begin{center}
        \includegraphics[scale = 0.12]{obrazky-figures/kapitola3/Barograf.jpg}
        \caption {Barograf pro záznam letové výšky kluzáku.}
        \label{barograf}
    \end{center}
\end{figure}
Uznávanou společností na konci minulého století, která začala již v roce 1975 s vývojem elektrických variometrů (bez možnosti záznamu letu), je slovinská firma LX navigation. Jedno z prvních přenosných záznamových zařízení nese název LX 20. Tento přístroj vznikl v~roce 1994 \cite{LX} a~v~dnešní době se přesto stále najdou nadšenci, kteří tento přístroj používají. 
První vestavěný přístroj s možností IGC záznamu je LX 5000 IGC, který se vyráběl od~roku 1995 \cite{LX}. I~tento přístroj je stále používán převážně ve starších letadlech. Výstupní formáty těchto přístrojů stále odpovídají standardům Mezinárodní letecké federace (FAI) a~záznamy je možné s určitým omezením analyzovat. U většiny letů je zaznamenáván jen jeden fix za~5 až~20 sekund. Dalšími důležitými výrobci byli německý Peschges \cite{PnWaRxqHZrkrt9Rg} nebo Zander \cite{gUjwA57NiPssufUB}, kteří již~nevyrábí nová záznamová zařízení. Jejich rozšířenější přístroje s možností IGC záznamu jsou Peschges VP~9 z roku 1998 \ref{VP9} nebo Zander 940D \ref{VP9}. U~těchto přístrojů je v~dnešní době problém se stáhnutím záznamu, případně propojením se současnými počítači. 

\begin{figure}[H]
	\begin{center}
        
	\includegraphics[scale=0.07]{obrazky-figures/kapitola3/VP9b.jpg}
 \includegraphics[scale=0.795]{obrazky-figures/kapitola3/Zander2.png}
	\caption{Záznamový přístroj Peschges VP9 (vlevo) a přístroj Zander SR 940 (vpravo).}
	\label{VP9}
        \end{center}
\end{figure}





\section{Současná zařízení využívaná pro záznam letu}

V České republice se využívají převážně certifikované přístroje od firem LX navigation \cite{LfVQL1ev8GVE8J5l}, LX~nav \cite{LXnav}, Naviter \cite{5cOLyU1wHgcxnhSQ} a české firmy IMI \cite{Svorcc2012}. Záznamová zařízení jsou buď vestavěná nebo přenosná. Další dělení může být na primární a sekundární záznamová zařízení. Vestavěné zařízení je~zabudované v~palubní desce, je napojené na pitot-statický systém a zároveň slouží jako navigace. Další možností je využít antikolizní zařízení Flarm s validním záznamem letu. Nejrozšířenější přístroje jsou od firmy LX nav, a to ze série LX~90XX a~LX~80XX. U~těchto přístrojů je u rozšíření HAWK do~záznamu letových dat ukládán i směr, síla větru. Nejnovější zkoumané hardwarové zařízení bylo LX 10K z roku 2021, které je zobrazeno na~obrázku \ref{LX10000}. 

\begin{figure}[H]
	\centering
	\includegraphics[width=0.62\textwidth]{obrazky-figures/kapitola3/LX10000.jpg}
	\caption{Záznamový přístroj LX 10K.}
	\label{LX10000}
\end{figure}
Na světových závodech jsou využívané především přístroje od firmy LX nav ze série LX 9000. Přístroj LX 9000 je zobrazen na obrázku \ref{LX9000}. Jako záložní zařízení se převážně používají zařízení LX Nano 4 a Colibri 2. 


\begin{figure}[H]
	\centering
	\includegraphics[width=0.41\textwidth]{obrazky-figures/kapitola3/LX9000c.jpg}
	\caption{Výpis letů ze záznamového zařízení LX 9000.}
	\label{LX9000}
\end{figure}

\subsection{Zapojení záznamových zařízení na pitot-statický systém}

Pro získávání barometrických dat, jako je pravá vzdušná rychlost, musí být přístroj připojen k pitot-statickému systému kluzáku. To znamená, že záznamové zařízení musí být připojeno na okruh celkového a statického tlaku~\cite{Keller2013}. Schéma zapojení je zobrazeno na obrázku \ref{zapojeni}. 

\begin{figure}[H]
    \label{zapojeni}
    \begin{center}
        \includegraphics[scale=0.7]{obrazky-figures/kapitola2/zapojeni.pdf}
        \caption {Zapojeni záznamového zařízení na pitot-statický systém kluzáku \cite{Waibel1989}.}
    \end{center}
\end{figure}



\section{Formát souboru záznamového zařízení a porovnání přístrojů}

Let je zapisován pomocí letového zapisovače s výstupem do IGC souboru. Tento soubor splňuje formu a požadavky FAI \cite{FAI2022}. Každý záznam v sobě nese určité minimální množství informací o letu. Toto minimální množství je definováno organizací FAI. Každý záznam se skládá ze záznamů \texttt{A}, \texttt{H}, \texttt{B}, \texttt{I}, \texttt{J}, \texttt{K}, \texttt{C}. Tyto jednotlivé záznamy obsahují následující informace:
\begin{itemize}
\label{hzaznam2}
\itemsep0em
\item \verb|A záznam| -- identifikuje zařízení (kód).
\item \verb|H záznam| -- obsahuje informace o pilotovi, letadlu, použitý model Země atd. 
\item \verb|C záznam| -- obsahuje deklaraci letu.
\item \verb|B záznam| -- obsahuje data, jako je zeměpisná šířka, délka, nadmořská výška a data definovaná v \texttt{I}, \texttt{J}, \texttt{K} záznamu, jednotlivých zaznamenaných poloh.
\item \verb|G záznam| -- slouží pro zjištění, zda data  nebyla neoprávně změněna.
\item \verb|E záznam| -- obsahuje čas posledního startu pomocí Pilot Event Marker (PEV).
\item \verb|I, J, K záznam| -- obsahuje doplňující informace o \texttt{B} záznamu \cite{FAI2022}.
\end{itemize}

Část rozebraného záznamu je uveden v příloze \ref{hzaznam}.


\subsection{Hlavička pro I, J a K záznam}
\label{zaznam_IJK}
Pro upřesnění dat z každého záznamu o letadle se využívají hlavičky záznamů \texttt{I}, \texttt{J} a \texttt{K}. Záznam \texttt{I} definuje u nejpřesnějších přístrojů pozice v jednotlivých záznamech, například pro~naměřený hluk, pravou vzdušnou rychlost, rychlost letu vůči Zemi, kompenzovaný variometr. V \texttt{I} záznamu je pro analýzu letu důležitá pravá vzdušná rychlost (\Gls{TAS}) a rychlost vůči Zemi (\Gls{GSP}), tento záznam používají jen některé přístroje. Pravá vzdušná rychlost může být udávaná jen u~přístrojů, které jsou napojeny alespoň na celkový a statický tlak. Záznam \texttt{I} je ve formátu: \texttt{I113638FXA3941ENL4246TAS4751GSP5254TRT}~\dots, kde je vždy nejdříve definované, na jaké pozici jsou jaká data, například úroveň hluku (\Gls{ENL}) je na~pozicích 39~až~41 v \texttt{B} záznamu. 


U nejnovějších zařízení je zaznamenáván i směr a síla větru, a to pomocí \texttt{J} a \texttt{K} záznamu. V \texttt{K} záznamu jsou definovány pozice dat uložených v \texttt{J} záznamu. Formát \texttt{J} záznamu je \texttt{J020810WDI1115WVE}, kde hodnota směru větru je na osmé až desáté pozici v \texttt{K} záznamu a~rychlost větru je zapsána v K záznamu na jedenácté až patnácté pozici \cite{FAI2022}. U záznamu \texttt{K} je následující formát: \texttt{K10185606101594}, kde hodnotou času je 10.18:56, směr větru je 061$^\circ$ a síla větru je 15,94  km/h \cite{FAI2022}.

Data jsou analyzovaná ze čtyř typů zařízení. První zařízení Erixx patří mezi nejstarší analyzovaná zařízení. U tohoto zařízení jsou ukládána jen základní informace o letu (poloha). Druhé vyhodnocované zařízení je přenosné zařízení \texttt{Nano 4}, které není připojené na~pitot-statický systém, tedy záznam neobsahuje data o pravé vzdušné rychlosti. Zkoumaný záznam z LX 10K je připojený na pitot-statický systém, ale i přesto neukládá hodnoty o~pravé vzdušné rychlosti do IGC záznamu. Čtvrtý přístroj LX 9000 ukládá nejvíce dat o~letadle. Jednotlivá ukládaná data jsou přiložena v tabulce \ref{datazaznam}.
\begin{table}[H] \label{datazaznam}
    \begin{center}
        \caption{Obsah záznamu jednotlivých fixů.}
        \begin{tabular}{|l|c|c|c|c|c|}
            \hline        
            \textbf{Záznam} & \textbf{LX s HAWK} & \textbf{LX 9000} &\textbf{LX 10K} & \textbf{Nano 4} & \textbf{Erixx} \\\hline
            \textbf{\Gls{FXA}} & ANO & ANO & ANO & ANO  & ANO \\\hline
            \textbf{\Gls{ENL}} & ANO & ANO & ANO & ANO  & NE\\\hline
            \textbf{\Gls{TAS}} & ANO & ANO & NE & NE  & NE\\\hline
            \textbf{\Gls{GSP}} & ANO & ANO & ANO & ANO   & NE\\\hline
            \textbf{\Gls{TRT}} & ANO & ANO & NE & ANO  & NE\\\hline
            \textbf{\Gls{VAT}} & ANO & ANO & NE & NE  & NE\\\hline
            \textbf{\Gls{OAT}} & ANO & ANO & NE & NE  & NE\\\hline
            \textbf{\Gls{SIU}} & NE & NE & ANO & NE   & ANO\\\hline
            \textbf{\Gls{WDI}} & ANO & NE & NE &  NE   & NE\\\hline
            \textbf{\Gls{WVE}} & ANO &  NE &  NE & NE   & NE\\\hline
        \end{tabular}
    \end{center}
\end{table}

\subsection{Jednotlivé záznamy polohy letu -- B záznam}

Data o pozici kluzáku jsou zaznamenávána v určitých intervalech. Momentálně se na světových závodech pořádaných FAI používá interval 1 sekunda. Pozice kluzáku je stanovena v souřadném systému Země. Tato data mohou být dále doplněna o záznam \texttt{I}, \texttt{K} \ref{zaznam_IJK}. 

\texttt{B}~záznam je ve formátu: \texttt{
B0926314923668N01441847E0032200475 + I záznam}
\begin{itemize}
    \item Čas: 092631 -- zde je uveden čas 09 hodin 26 minut 31 sekund.
    \item Severní šířka 4923668N -- 49 stupňů a 23,668 minut severní šířky.
    \item Východní délka 1441847E -- 14 stupňů 41,847 minut východní délky.
    \item Výška 00322 -- výška v metrech z tlakového čidla ke standardnímu tlaku 1013.25.
    \item GPS výška 00475 --  vypočtená výška v metrech \cite{FAI2022}.
\end{itemize}
\noindent U novějších zařízení bývá pod B záznamem zapsán i K záznam každou sekundu.

\subsection{Deklarace letu -- C záznam}
Záznam \texttt{C} se využívá pro deklaraci před letem a k uznání rekordů. V záznamu je~nutné mít správně vyplněnou hlavičku souboru \ref{hzaznam2} a správně předem definovanou trať. Trať se na~závodech skládá ze startovní pásky, otočných bodů a doletového kruhu. Nejdůležitější části \texttt{C} záznamu jsou: 
\begin{itemize}
    \item C070822090948000000000205 -- datum (07/08/22) a čas (09.09:49) uložení deklarace, datum plánovaného letu (00/00/00) -- zde nevyplněno, id tratě (0002) a počet otočných bodů (05).
    \item C4937900N01554217E586DARKO -- definice jednotlivých bodů plánované tratě, kde jsou nejdříve definované souřadnice bodu a následně může být definovaný název bodu. 
    \item Definice pozorovaných sektorů --  je definovaný rozměr, tvar a směr definované oblasti. 
\end{itemize}

\section{Určování polohy}
Současná záznamová zařízení využívají k určení přesné polohy globální navigační satelitní systémy \Gls{GNSS}. Konkrétně jsou data u použitých záznamových zařízení zaznamenávána pomocí globálního polohového systému \Gls{GPS}. Další významné funkční globální družicové systémy jsou evropský Galileo, čínský BeiDou a ruský Glonass. Podrobně je rozebrána funkčnost a části globálního polohového systému (GPS). Ostatní systémy pracují obdobným způsobem \cite{Rapant2002, Stroner2022}.    




\subsection{Globální polohový systém -- GPS}
Globální polohový systém \Gls{GPS} je satelitní navigační systém, který vlastní a spravuje americké ministerstvo obrany. Pomocí GPS systému je možné zaznamenávat zeměpisnou délku, zeměpisnou šířku, nadmořskou výšku s určitou přesností v řádu jednotek metrů a čas. Tato služba využívá k určení polohy 32 satelitů, které obíhají okolo Země, a několik kontrolních stanic. Navigační systémy se dělí na aktivní a pasivní. Záznamová zařízení pro let jsou vždy pasivní. Pasivní systémy jsou takové, kde vysílají informace pouze družice a koncový uživatel se záznamovým zařízením (přijímač) jen přijímá data a neposílá žádná data družici. Družice vysílá signály společně s časovými značkami a informacemi o oběžné dráze družice (výška a úhel, který svírá s rovníkem) \cite{Stroner2022}.  
Přesnost určení polohy je dána použitým GPS přijímačem, počtem přijímaných satelitů a oblastí měření. Zařízení pro určení prostorové polohy potřebuje přijímat signál alespoň ze 4 satelitů současně. Při zpracování informací z~více satelitů je poloha přesnější. GPS se skládá ze tří hlavních segmentů a to z kosmického segmentu (satelity), řídícího segmentu a uživatelského segmentu, jež jsou znázorněné na obrázku \ref{controlsegment} \cite{Stroner2022}. 


\begin{figure}[H]
    \label{controlsegment}
    \begin{center}
        \includegraphics[width=0.45\linewidth]{obrazky-figures/kapitola3/GNSS/strukturagps.pdf}
        \caption {Struktura GPS systému \cite{article}.}
    \end{center}
\end{figure}

Uživatelský segment pouze přijímá informace od satelitů, je pasivní a z přijatých dat vypočítá polohu. K uživatelské části se řadí zařízení pro určení polohy, například záznamové zařízení letu, mobilní telefon, nebo navigace \cite{Stroner2022}. 

Řídící segment je prvek, který se stará o správný chod celého systému. Přijímá informace od satelitů o jejich poloze a posílá zpět informace pro korekci směru letu satelitů. Na~Zemi je 18 monitorovacích stanic, které mají za úkol přijímat data od satelitů. Monitorovací stanice sbírají data o poloze satelitů (vzdálenost satelitů, deklinaci satelitů, čas satelitů a~rychlost satelitů). Tato data jsou poslána hlavní stanici, která je na Zemi jen jedna v~Coloradu. Případně do jedné záložní stanice v Kalifornii. Hlavní stanice spravuje kosmický segment. Pomocí hlavní stanice je zjištěno, zda jsou data (poloha) družice správná. Pokud je nalezena chyba, tak je opravena pomocí hlavní stanice a poslána zprávou satelitu přes pozemní antény. Následně je zkorigována u satelitu na oběžné dráze odchylka od plánované polohy~\cite{Stroner2022}.    

Kosmický segment u GPS se skládá ze satelitů. Od roku 2011 je aktivně využíváno minimálně 27 satelitů, dalších 5 satelitů je na oběžných drahách pro případ údržby nebo výpadku používaného satelitu. Satelity obíhají po šesti oběžných drahách ve výškách okolo 20 tisíc kilometrů nad zemských povrchem. Oběžné dráhy svírají úhel 55 stupňů s~rovníkem. Na každé oběžné dráze jsou minimálně čtyři satelity a oběh satelitu okolo Země trvá 11~hodin a 58 minut. Rychlost letu satelitu je~okolo 3,8 km/s \cite{Stroner2022}.      

\begin{figure}[H]
    \label{satelit}
    \begin{center}
        \includegraphics[width=0.38\linewidth]{obrazky-figures/kapitola3/GNSS/satelity.png}
        \caption {Trajektorie satelitů GPS \cite{Rapant2002}.}
    \end{center}
\end{figure}

\subsubsection{Určení polohy pomocí GPS}

Poloha uživatele je dopočítaná z pozic družic a vzdálenosti uživatele od družice.
K určení polohy na povrchu Země (v 0 metrech nad Zemí) pomocí GPS je zapotřebí alespoň tří družic. Pro zaznamenání letu jsou potřeba minimálně čtyři družice. Čím je využito více družic, tím je určení polohy přesnější \cite{Rapant2002}.

Uživatel obdrží údaje o poloze satelitu a čas, ve kterém byly informace odeslány, z těchto údajů je dopočítána vzdálenost od satelitu. Obdobným způsobem jsou dopočítané údaje z dalších satelitů. Vypočítané vzdálenosti je možné si představit jako poloměry koulí. Dva povrchy nesoustředných koulí mají až nekonečně mnoho průniků (kružnice). Tři povrchy nesoustředných koulí mají až 2 společné body. Pro nalezení maximálně jednoho průniku je~zapotřebí minimálně čtyř satelitů (povrchů koulí). Výpočet vzdálenosti od satelitu (poloměr koule) je vypočítán z následujících vztahů, kde poloměry $r_1$, $r_2$, $r_3$ a $r_4$ jsou vyjádřeny rovnicemi \ref{vzdalenost}--\ref{vzdalenost4}~\cite{Rapant2002}.

\begin{equation} \label{vzdalenost}
    r_1 = \sqrt{(X - x_1)^2 + (Y - y_1)^2 + (Z - z_1)^2} - c\Delta T
\end{equation}
\begin{equation} \label{vzdalenost2}
    r_2 = \sqrt{(X - x_2)^2 + (Y - y_2)^2 + (Z - z_2)^2} - c\Delta T
\end{equation}
\begin{equation} \label{vzdalenost3}
    r_3 = \sqrt{(X - x_3)^2 + (Y - y_3)^2 + (Z - z_3)^2} - c\Delta T
\end{equation}
\begin{equation} \label{vzdalenost4}
    r_4 = \sqrt{(X - x_4)^2 + (Y - y_4)^2 + (Z - z_4)^2} - c\Delta T
\end{equation}

Parametry \texttt{$r_1$} až $r_4$ jsou vzdálenosti mezi přijímačem a satelitem, $x_i$, $y_i$ a $z_i$ jsou souřadnice vysílajících družic, $X$, $Y$ a $Z$ jsou souřadnice přijímače, $\Delta T$ je časový posun, a $c$ je rychlost světla~\cite{Rapant2002}. 



\subsubsection{Způsobené odchylky -- chybovost}

Během průchodu signálu ionosférou dochází ke změně směru signálu, tedy signál (informace) nedorazí nejkratší cestou až k příjemci. Vzdálenost je vypočítaná ze soustavy rovnic \ref{vzdalenost}--\ref{vzdalenost4}, tedy při zakřivení signálu vyjde, že uživatel je dál od satelitu. Další odchylka je způsobena odrazem přijímaného signálu od budovy, nebo terénu, což znamená prodloužení vzdálenosti. Tato odchylka by se neměla projevit v naměřených letových datech. Velký vliv na přesnost naměřených dat má i vzdálenost satelitů od sebe (geometrické uspořádání družic). Ideální rozložení družic je následující: jedna přímo nad přijímačem a~tři 15° až 20° nad obzorem a~navzájem od sebe po 120°. Pokud jsou satelity blízko u sebe, tak vzniká větší chyba. Další z možných chyb je odchýlení satelitu od předpokládané trajektorie \cite{Rapant2002}.      

\chapter{Návrh identifikace letových manévrů}  \label{3}

Letové manévry jsou popsané v leteckých předpisech, případně v literatuře \cite{DaněkVladimír2019MlIL}. Ze záznamu letu jsou vybrána důležitá data pro další zpracování. Tato data jsou uložena ve formátu \Gls{JSON}. Naměřená data mají určitou přesnost, která je daná přesností snímačů v záznamovém zařízení a metodou zaznamenávání dat. Jednotlivé manévry je možné identifikovat pomocí metod. V následující kapitole je rozebraná identifikace pomocí pravidel, shlukové metody K-means a Skrytého Markovova modelu. 


\section{Identifikované manévry} \label{udalosti}

Pro identifikaci manévrů je důležité znát konkrétní čas záznamu polohy (fixu), souřadnice letadla, nadmořskou výšku a směru letu. První manévr letu je vzlet. Následuje část, kdy letoun stoupá. Po nastoupání do bezpečné výšky letoun letí například v horizontálním letu. Při~tomto letu udržuje výšku letu. Další manévr je klesání, což znamená snižování výšky letu. Změna směru letu je provedena pomocí zatáčky. Před přistáním letadlo klesá do požadované výšky. Při běžném provedení letu je let ukončen přistáním. Jednotlivé identifikované manévry jsou podrobně rozebrány v dalších odstavcích. Shrnuti podmínek jednotlivých manévrů je uvedeno v tabulce \ref{udalostitabulka}, obarvení jednotlivých manévrů, které jsou použity následně v aplikaci je v tabulce \ref{udalostitabulka1}.

\begin{table}[H]
    \label{udalostitabulka}
	\vskip6pt
	\caption{Podmínky pro identifikaci manévrů pomocí pravidel.} 
    \vskip6pt
	\centering
	\begin{tabular}{lr}
		\toprule

		Název manévru & Podmínky \\
		\midrule
            pozemní část vzletu         & výška menší než $10,7$\,m a rychlost nižší než $90$\,km/h\\
		  vzdušná část vzletu         & výška menší než $10,7$\,m a rychlost vyšší než $90$\,km/h\\
            levá zatáčka                & změna kurzu je menší nebo rovna $-2$° po dobu min. $3$ záznamů \\
            pravá zatáčka               & změna kurzu je větší nebo rovna $2$° po dobu min. $3$ záznamů \\
            přímočarý let               & nejsou splněny podmínky pro zatáčku     \\
            horizontální let               & změna výšky maximálně $\pm 0.5$\,m po dobu min. $5$ záznamů     \\
            stoupavý let               & nesplnění podmínek pro horizontální a nezáporná změna výšky     \\
            klesavý let               & nesplnění podmínek pro horizontální a záporná změna výšky     \\
            
            vzdušná část přistání       & výška menší než $15,2$\,m a rychlost vyšší než $90$\,km/h         \\
            pozemní část přistání       & výška menší než $15,2$\,m a rychlost nižší než $90$\,km/h         \\
            
		\bottomrule
	\end{tabular}
\end{table}

\begin{table}[H]
    \label{udalostitabulka1}
	\vskip6pt
	\caption{Legenda letových manévrů.} 
    \vskip6pt
	\centering
	\begin{tabular}{lrr}
		\toprule

		Název manévru a zobrazení & Výplň & Okraj  \\
		\midrule
            pozemní část vzletu            \begin{minipage}{.3\textwidth }
      \includegraphics[width=0.45\linewidth, height=4mm]{obrazky-figures/kapitola4/manevr/start.png}
    \end{minipage}  & hnědá     & bez \\
		  vzdušná část vzletu          \begin{minipage}{.3\textwidth}
      \includegraphics[width=0.45\linewidth, height=4mm]{obrazky-figures/kapitola4/manevr/start2.png} 
    \end{minipage} & olivová   & bez \\
            levá stoupavá zatáčka \begin{minipage}{.3\textwidth}
      \includegraphics[width=0.45\linewidth, height=4mm]{obrazky-figures/kapitola4/manevr/leva.png}
    \end{minipage} & zelená & bílý \\
            levá horizontální zatáčka \begin{minipage}{.3\textwidth} \includegraphics[width=0.45\linewidth, height=4mm]{obrazky-figures/kapitola4/manevr/horleva.png}
    \end{minipage} & modrá     & bílý \\
            levá klesavá zatáčka \begin{minipage}{.3\textwidth} \includegraphics[width=0.45\linewidth, height=4mm]{obrazky-figures/kapitola4/manevr/kleleva.png} 
    \end{minipage} & červená   & bílý \\
            přímočarý stoupavý let \begin{minipage}{.3\textwidth} \includegraphics[width=0.45\linewidth, height=4mm]{obrazky-figures/kapitola4/manevr/leva.png} 
    \end{minipage} & zelená & bez \\
            přímočarý horizontální let    \begin{minipage}{.3\textwidth} \includegraphics[width=0.45\linewidth, height=4mm]{obrazky-figures/kapitola4/manevr/primocary.png} 
    \end{minipage} & modrá     & bez\\
            přímočarý klesavý let       \begin{minipage}{.3\textwidth} \includegraphics[width=0.45\linewidth, height=4mm]{obrazky-figures/kapitola4/manevr/klesani.png}
    \end{minipage}  & červená   & bez \\
            pravá stoupavá zatáčka \begin{minipage}{.3\textwidth} \includegraphics[width=0.45\linewidth, height=4mm]{obrazky-figures/kapitola4/manevr/zatacka2.png}
    \end{minipage} & zelená    & černý\\
            pravá horizontální zatáčka  \begin{minipage}{.3\textwidth} \includegraphics[width=0.45\linewidth, height=4mm]{obrazky-figures/kapitola4/manevr/horpra.png}
    \end{minipage}  & modrá     & černý \\
            pravá klesavá zatáčka  \begin{minipage}{.3\textwidth} \includegraphics[width=0.45\linewidth, height=4mm]{obrazky-figures/kapitola4/manevr/klepra.png}
    \end{minipage} & červená   & černý \\
            vzdušná část přistání \begin{minipage}{.3\textwidth} \includegraphics[width=0.45\linewidth, height=4mm]{obrazky-figures/kapitola4/manevr/pristani1.png}
    \end{minipage}  & oranžová        & bez  \\
            pozemní část přistání \begin{minipage}{.3\textwidth} \includegraphics[width=0.45\linewidth, height=4mm]{obrazky-figures/kapitola4/manevr/pristani2.png}
    \end{minipage} & fialová         & bez \\
            
		\bottomrule
	\end{tabular}
\end{table}



\subsection{Vzlet}

Každý let začíná vzletem. Během vzletu letoun zrychluje z nulové rychlosti alespoň na~rychlost bezpečného vzletu. Vzlet končí po nastoupání do výšky 10,7\,m (35\,ft) nad úrovní vzletové dráhy. Tato výška je definovaná v leteckém předpisu \cite{DaněkVladimír2019MlIL}.   
Vzlet je rozdělen na dvě základní části, a to konkrétně na pozemní část vzletu a vzdušnou část vzletu. Pozemní část vzletu je dokud letoun jede po vzletové dráze a nedosáhne minimální rychlosti pro~bezpečné odlepení \cite{DaněkVladimír2019MlIL}. Vzdušná část vzletu je od okamžiku odlepení do výšky 10,7 metru.
Pro účel práce je rozjezd definovaný, dokud letadlo nedosáhne bezpečné rychlosti pro vzlet, která je definována na 90\,km/h. Tato rychlost byla určena podle změny naměřené hlučnosti v kabině kluzáku. U bezmotorového kluzáku, jedoucího po travnaté vzletové dráze, byla naměřena výrazně větší hlučnost něž u již letícího kluzáku. V programu je vzlet rozdělen na~pozemní a vzdušnou část jen u přístrojů, které zaznamenávají pravou vzdušnou rychlost. U~ostatních přístrojů je vzlet definován do výšky 10,7\,metru nad místem rozjezdu.    



\begin{figure}[H]
	\begin{center}
        
	\includegraphics[width=0.95\linewidth]{obrazky-figures/kapitola4/Udalosti/vzlet.png}
	\caption{Fáze vzletu a přistání.}
	\label{vzlet}
        \end{center}
\end{figure}

\subsection{Zatáčka}

Pomocí zatáčky mění letoun směr letu. Horizontální zatáčka je křivočarý let v horizontální rovině \cite{DaněkVladimír2019MlIL}. Zatáčky jsou v práci rozděleny na klesavé, horizontální a stoupavé. Levé zatáčky jsou pro účel práce definované následovně: změna kurzu je menší nebo rovna $-2$° po~dobu minimálně 3 bodů záznamů. Pravé zatáčky jsou definované podobně: pokud změna kurzu je~větší nebo rovna $2$° po dobu minimálně 3 bodů záznamů. Identifikace zatáček je \mbox{optimalizovaná} na periodu zaznamenávání jedna sekunda. Zatáčky jsou znázorněny, jak je znázorněno na obrázku \ref{zatacky} a vymezeno legendou v tabulce \ref{udalostitabulka1}, pomocí obrysu čáry, která spojuje jednotlivé záznamy a pomocí obrysu bodů.
\begin{figure}[H]
	\begin{center}
        
	\includegraphics[scale=0.75]{obrazky-figures/kapitola4/Udalosti/zatacky2.png}
	\caption{Vizualizace pravé stoupavé a levé klesavé zatáčky.}
	\label{zatacky}
        \end{center}
\end{figure}


\subsection{Přímočarý let}
Přímočarý let je část letu, kdy letoun letí rovně a nezmění se kurz o více než $\pm 1$°. Pro~účely práce je přímočarý let definován podmínkami z tabulky \ref{udalostitabulka}. Spojnice bodů a body nemají na rozdíl od zatáček nastavené barevné okraje, přímočarý horizontální let je zobrazen na~obrázku~\ref{horizontalni}.  

\subsection{Horizontální let}

Horizontální let je v konstantní výšce nad vztažným bodem, v našem případě Zemí. Všeobecně je to pohyb po ortodromě. Lety jsou zkoumány na malém území. Vzhledem k~tomuto předpokladu je horizontální let definován jako přímočarý let v konstantní výšce~\cite{DaněkVladimír2019MlIL}. Pro~účely práce je horizontální let definován podmínkou, kdy kluzák minimálně pěti po sobě jdoucích bodů záznamů nestoupá nebo neklesá více než $0,5$ m/s. Tento manévr je zobrazen na obrázku \ref{horizontalni}. 

\begin{figure}[H]
	\begin{center}
        
	\includegraphics[width=0.95\linewidth]{obrazky-figures/kapitola4/Udalosti/horizontalni.png}
	\caption{Příklad přímočarého horizontálního letu.}
	\label{horizontalni}
        \end{center}
\end{figure}


\subsection{Stoupavý let}

Během stoupavého letu se zvětšuje výška letu. Letadlo získává polohovou energii \cite{DaněkVladimír2019MlIL}. U~implementace je definováno, že letadlo stoupá, pokud nesplňuje podmínky pro horizontální let a pokud je jeho aktuální změna výšky větší nebo rovna nule. Změna výšky letu se vypočítá, jako rozdíl nadmořské výšky v aktuálním bodě a nadmořské výšky v předchozím bodě. Přechod ze stoupavého letu (zelená) do klesavého letu (červená) je zobrazen na obrázku~\ref{stoupat_klesat}.

\subsection{Klesavý let}
Během klesavého letu se snižuje výška letu. Letadlo ztrácí polohovou energii \cite{DaněkVladimír2019MlIL}. V programu je definované klesání jako let, který nesplňuje podmínky horizontálního letu a zároveň pokud je změna výšky menší než nula. Výpočet změny výšky je proveden obdobně jako u~stoupavého letu. Zobrazení klesavého letu (červená) a stoupavého letu (zelená) je na~následujícím obrázku \ref{stoupat_klesat}.    

\begin{figure}[H]
	\begin{center}
        
	\includegraphics[width=0.95\linewidth]{obrazky-figures/kapitola4/Udalosti/stoupani_klesani.png}
	\caption{Přechod letu ze stoupavého letu na klesavý let.}
	\label{stoupat_klesat}
        \end{center}
\end{figure}

\subsection{Přistání}
Během přistání letoun zpomaluje z rychlosti pro přiblížení na nulovou rychlost. Přistání je~rozděleno na dvě části, a to na vzdušnou část a dojezd. Vzdušná část přistání začíná ve~výšce 15,2\,m (50\,ft) nad přistávací dráhou a končí při dotyku kol s přistávací dráhou tzv.~dosednutím. Po dosednutí začíná fáze dojezd \cite{DaněkVladimír2019MlIL}. V programu je tato část implementovaná tak, že letadlo je ve vzdušné části přistání, pokud je ve výšce pod 15,2 metru a pokud nezpomalí pod přistávací rychlost 90\,km/h. Pokud zpomalí letadlo pod rychlost 90\,km/h, tak nastane část dojezd. Přistání je obdobně rozděleno jen u přístrojů s pravou vzdušnou rychlostí, u ostatních přístrojů je identifikována vzdušná část i dojezd dohromady. Přistávající kluzák je zobrazen na obrázku \ref{pristani}. 

\begin{figure}[H]
	\begin{center}
        
	\includegraphics[width=0.95\linewidth]{obrazky-figures/kapitola4/Udalosti/pristani2.png}
	\caption{Detailní pohled na fazi přistání.}
	\label{pristani}
        \end{center}
\end{figure}


\section{Identifikace manévrů pomocí shlukové metody K-means} \label{Kmeansnadpis}

Manévry typu zatáčení, stoupání a klesání je možné identifikovat pomocí technik strojového učení, například shlukovou metodou K-means. Cílem strojového učení je optimalizace vykonávání stejných nebo podobných činností \cite{IBM2023, Stepankova2018}. Strojové učení lze rozdělit do tří základních skupin. A to konkretně na učení s učitelem, učení bez učitele a posilované učení. Cílem učení bez učitele je například nalezení shluků nebo redukce rozměrů bez vstupních podpůrných informací o množině. Princip učení bez učitele je v získání spojitosti vstupních vektorů trénovací množiny. Pomocí shlukové analýzy jsou seskupená neoznačená data na~základě podobností. Vstupní data jsou v podobě surových nezařazených datových objektů~\cite{IBM2023, Zboril2022}.

Metoda K-means patří k často používaným algoritmům shlukové analýzy. Vstupní body jsou rozděleny do \texttt{k} skupin. Z každé skupiny je vypočítané těžiště. Čím větší je \texttt{k}, tím vznikne více malých skupin. Body, které jsou nejblíže vypočítanému těžišti jsou zařazeny do daného shluku \cite{Stepankova2018}. Celý algoritmus K-means je možné shrnout v několika krocích \cite{Zboril2022}: 

\begin{enumerate}
   \item Je vybráno náhodně \texttt{k} prototypů z trénovací množiny.
   \item Všechny vstupní body jsou přiřazeny k nejbližším prototypům -- z těchto bodů vzniknou shluky.
   \item Každý shluk vypočítá nový prototyp -- s vlastností těžiště podle všech bodů obsažených ve skupině.
   \item Všechny vstupní body jsou přiřazeny k nejbližšímu prototypu, pokud žádný bod není přeřazen, algoritmus je ukončen. V případě, že je alespoň jeden bod přeřazen k jinému prototypu (shluku), je pokračováno na bod dvě \cite{Zboril2022}. 
 

\end{enumerate}

K vybrání optimálního počtu shluků se používá například srovnání hodnoty účelové funkce. Hodnota účelové funkce je suma vzdáleností jednotlivých bodů k jejich nejbližšímu centroidu \cite{Hubertc20072023}. Tyto jednotlivé hodnoty jsou zaneseny do grafu a následně je v grafu hledaná prudká změna na spojnici bodů (loketní metoda), podle které je nastaven počet shluků \cite{Stepankova2018}.







\section{Markovův model a Skrytý Markovův model } \label{HMMnadpis}

Markovův model je odborné veřejnosti známý již po desetiletí. Na konci šedesátých let minulého století byl využit ke zpracování řeči a dnes nachází uplatnění v rozpoznávání vzorů v~informatice, chemii či biologii~\cite{FITPUB12757}. 
Markovův model je stochastický model, kde aktuální stav závisí pouze na předchozím stavu. Skrytý Markovův model (HMM) je rozšířený oproti Markovově modelu o sadu pozorovaných stavů. Sada skrytých stavů s pozorovanými manévry jsou vzájemně propojené \cite{1165342}. Skryté stavy jsou definované podle pravidel definovaných v kapitole \hyperref[udalosti]{
Identifikované manévry}. Dále jsou vhodně zvoleny sady pozorovaných manévrů. Pro~výpočet optimální posloupnosti výstupních stavů je využit Viterbiho algoritmus~\cite{Zboril2022}.  

\subsection{Viterbiho algoritmus}
Viterbiho algoritmus hledá nejpravděpodobnější posloupnost skrytých stavů, která vede k~posloupnosti pozorovaných stavových veličin. 
Nejdřív vezme hodnoty (sloupec) z pravděpodobnostní matice pro odpovídající pozorovanou hodnotu. Poté vybere řádek v přechodové matici, který odpovídá předchozímu stavu. Pravděpodobnostní hodnoty pro stejné stavy jsou vynásobeny mezi sebou. Tímto jsou vypočítány pravděpodobnosti přechodů do dalších stavů a z těchto pravděpodobností je vybrána největší pravděpodobnost pro  následující stav. Tento děj se opakuje pro všechny pozorované proměnné~\cite{Zboril2022}. 



\subsection{Klasifikace manévrů}\label{diagramhmm}

Pomocí Skrytého Markovova modelu je identifikován vertikální a stranový profil letu. Vertikální profil obsahuje manévry, klesavý let, horizontální let a stoupavý let. U stranového profilu jsou obsaženy levá zatáčka, přímočarý let a pravá zatáčka. Jednotlivé skryté stavy, přechodové pravděpodobnosti (plná šipka), emisní pravděpodobnosti (přerušovaná šipka) a~stavy pozorování jsou zobrazeny na přiloženém schématu na obrázku \ref{hmm1}. Rozmezí stavů pozorování je určeno pomocí matice záměn a pravděpodobnosti správné klasifikace daného manévru. Postupným dosazováním se dospělo na rozmezí stavů pozorování, které jsou znázorněné na obrázcích \ref{hmm1} a \ref{hmm2}. Pro další zpracování jsou přechodové a emisní pravděpodobnosti zapsané pomocí matic.

Matice přechodů je vytvořena z pravděpodobnostních přechodů z předešlého do aktuálního stavu. Konkrétně je závislost \texttt{$P_i$} mezi stavy \texttt{$S_j$} a \texttt{$S_i$} znázorněna pomocí rovnice~\ref{transeq}~\cite{18626}, kde \texttt{$q_t$} je skutečný stav v čase \texttt{$t$} a \texttt{$N$} je celkový počet odlišných stavů. Rozměry matice odpovídají počtu stavů (\texttt{$N$}) \cite{18626}. 
\begin{equation} \label{transeq}
    P_i = P(q_t = S_j|q_{t-1} = S_i), \quad \quad 1 \leq i,j \leq N
\end{equation}
Jednotlivé hodnoty pravděpodobnosti jsou v rozmezí od 0 do 1 a součet hodnot pravděpodobností v řádku matice dosahuje hodnoty 1.
Pro určení výstupu je nutné definovat i~emisní matici. Emisní pravděpodobnost \texttt{$P_{oi}$} je definována pomocí následující rovnice~\ref{transeq2}~\cite{18626}, kde $v_k$ značí stav pozorování v určitém čase. Hodnota \texttt{$M$}~je~počet rozdílných stavů pozorování. Počet sloupců matice odpovídá hodnotě \texttt{$M$} a počet řádků odpovídá hodnotě \texttt{$N$} \cite{18626}.
\begin{equation} \label{transeq2}
    P_{oi} = P(v_k~v~t |q_t = S_j), \quad 1 \leq j \leq N, \quad 1 \leq k \leq M
\end{equation}

Pro představu jsou znázorněné následující dva modely pomocí schématu, a to konkrétně model vertikálních manévrů na schématu \ref{hmm1} a model stranových manévrů na~schématu~\ref{hmm2}.  
\begin{figure}[H]
    \centering
        \includegraphics[width=0.9\linewidth]{obrazky-figures/kapitola6/graf/hmm1.pdf}
        \caption {Model vertikálních manévrů podle Skrytého Markovova modelu.}
        \label{hmm1}
\end{figure}



\begin{figure}[H]
    \centering
        \includegraphics[width=0.9\linewidth]{obrazky-figures/kapitola6/graf/hmm2.pdf}
        \caption {Model stranových manévrů podle Skrytého Markovova modelu.}
        \label{hmm2}
\end{figure}

Obdobným způsobem je navržen i model s 9 letovými manévry. Model se skládá z 9 skrytých stavů, 9 stavů pozorování, 81 přechodů mezi skrytými stavy a 81 pravděpodobnostních přechodů.

K vyhodnocení manévrů identifikovaných pomocí Skrytého Markovova modelu je využita matice záměn \cite{Stepankova2016}. Součet hodnot v řádcích odpovídá počtu konkrétních identifikovaných manévrů pomocí pravidel (experta). Popis hodnot v jednotlivých buňkách je znázorněn v~tabulce~\ref{zamentab}. 

\begin{table}[H] \label{zamentab}
\caption{Hodnoty matice záměn pro stranové manévry \cite{Hubertc200720232}.}
    \begin{center}
        
        \begin{tabular}{|p{0.58in}|p{1.5in}|p{1.6in}|p{1.6in}|}
            \hline        
             & \textbf{Levá zatáčka HMM} & \textbf{Přímočarý let HMM} &\textbf{Pravá zatáčka HMM}  \\\hline
            \textbf{Levá zatáčka expert} & Pravda -- levá zatáčka & Nepravda -- pomocí HMM  je levá zatáčka identifikovaná jako přímočarý let & Nepravda -- pomocí HMM  je levá zatáčka identifikovaná jako pravá zatáčka \\\hline
            \textbf{Přímo- čarý let expert} & Nepravda -- pomocí HMM je přímočarý let identifikovaný jako levá zatáčka & Pravda -- přímočarý let  &  Nepravda -- pomocí HMM  je přímočarý let identifikovaný jako pravá zatáčka \\\hline
            \textbf{Pravá zatáčka expert} & Nepravda -- pomocí HMM  je pravá zatáčka identifikovaná jako levá zatáčka & Nepravda -- pomocí HMM  je pravá zatáčka identifikovaná jako přímočarý let & Pravda -- pravá zatáčka \\\hline
        \end{tabular}
    \end{center}
\end{table}

Po vyhodnocení jednotlivých manévrů pomocí matice záměn je dopočítaná pravděpodobnost správné klasifikace pomocí Skrytého Markovova modelu (HMM), a to jako procentuální vyjádření správně identifikovaných manévrů pomocí HMM k celkovému počtu daných manévrů identifikovaných pomocí experta (součet hodnot řádku).  






\chapter{Implementace aplikace pro identifikaci letových manévrů} \label{4}
V následující kapitole je rozebraná implementace webové aplikace a jednotlivých identifikačních metod. Nástroj pro vizualizaci letu je vytvořen jako webová aplikace. Po načtení webové aplikace se zobrazí úvodní obrazovka. Na úvodní obrazovce je vizualizovaný mapový podklad Země a tlačítka pro možnost ovládání. Mezi tato tlačítka patří přidávání letu, odebrání letů, stáhnutí výstupního souboru s celkovou statistikou letu, výstupní soubor s~formátem JSON pro další zpracování  upravených dat. Let je vybrán uživatelem, následně je zobrazen na mapě. Každý přidaný let je synchronizovaný s časem, tedy uživatel může pustit simulaci, případně se posunout na určitý čas na časové ose. Časová osa a~ovládání simulace jsou zobrazeny mezi vizualizací letadla na mapovém podkladu a grafu s~nadmořskou výškou letu. Pro konkrétní čas z letu je zobrazen i aktuální identifikovaný manévr, který je vypsán uprostřed horní části obrazovky. Uživatel má dále možnost si zobrazit legendu grafického zobrazení manévrů, případně informace o letu. Pod mapou je zobrazen graf závislosti nadmořské výšky letu na čase. V tomto grafu může uživatel případně i vybrat jen určitou časovou podoblast. Výsledný formát aplikace a zobrazení více trajektorií letů je na~obrázku \ref{zobrazani}. 



\begin{figure}[H]
    \begin{center}
        \includegraphics[width=0.98\linewidth]{obrazky-figures/kapitola5/aplikace.png}
        \caption {Zobrazení letu pomocí webové aplikace.}
        \label{zobrazani}
    \end{center}
\end{figure}




\section{Technologie využité pro vizualizaci}

Finální aplikace je vytvořena jako HTML stránka s použitím kaskádových stylů a skriptovacího jazyka JavaScript. Pro zobrazení kluzáku ve 3D je využita volně dostupná knihovna CesiumJS, pro jazyk JavaScript. Pomocí CesiumJS je možné zobrazit letová data na určitém mapovém podkladu. K zobrazení dat na mapovém podkladu je využíván model WGS84~\ref{WGS84}. Tento model je použit i při zaznamenávání dat pomoci záznamových zařízení. CesiumJS je, kvůli výkonu, přesnosti a možnosti pracovat s velkým objemem dat, často využíváno pro vizualizaci v letectví \cite{Cesium2022}. 

V oblasti pod zobrazením letu na mapovém podkladu je vizualizován graf pomocí knihovny CanvasJS.  Knihovna CanvasJS byla vybrána, protože umožňuje zobrazit přehledně jen určitou část grafu, například jen několik málo minut. Dále bylo možné upravovat graf podle potřeby, a to změnit barvu spojnice podle toho, zda letadlo stoupá nebo klesá. Po najetí na určité místo v grafu je zobrazena nadmořská výška v určitý čas. 

\section{Implementace webové aplikace}

Po spuštění aplikace je zobrazena planeta Země a jednotlivá tlačítka pro možnost ovládání aplikace. V této fázi je možné zobrazit mapový podklad a posunout se na~určité místo na~mapě, případně měnit typ mapového podkladu. Následně je možné přidávat lety, jak je vidět na obrázku \ref{vstup}. Současná verze aplikace umožňuje přidat i více letů pro následnou identifikaci manévrů. Od uživatele je vyžadováno načtení souboru s~letem, který je ve~formátu IGC. 
\begin{figure}[H]
    \begin{center}
        \includegraphics[width=0.98\linewidth]{obrazky-figures/kapitola5/vstupniobrazovka.png}
        \caption {Vstupní obrazovka s mapovým podkladem.}
        \label{vstup}
    \end{center}
\end{figure}
Celkově je možné aplikaci shrnout pomocí následujícího schématu \ref{diagramsystem}. 

\begin{figure}[H]
    \begin{center}
        \includegraphics[width=0.9\linewidth]{obrazky-figures/kapitola5/implementace/diagram.pdf}
        \caption {Schéma částí aplikace a skriptů pro vyhodnocení letu.}
        \label{diagramsystem}
    \end{center}
\end{figure}
\subsection{Parsování dat}
Soubor s letem musí splňovat formát definovaný mezinárodní organizací FAI. Soubor je rozdělen podle typů záznamů. Záznam \texttt{B} je rozdělen podle záznamů \texttt{I} a \texttt{J} \ref{zaznam_IJK}. Celý soubor s~letem je procházen řádek po řádku. U každého řádku je prvním písmenem definována kategorie záznamu. Záznam \texttt{H} a \texttt{I} jsou před záznamem \texttt{B}, tedy data jsou zpracována sekvenčně. Jednotlivé názvy záznamů korespondují s prvním písmenem na řádcích vstupního souboru. Pro možnost definice údajů obsažených v \texttt{B} záznamu je nutné mít nejdříve zpracovaný \texttt{I}~záznam. Z \texttt{I} záznamu je zjištěno, na jaké pozici se nachází konkrétní údaj v~\texttt{B}~záznamu a dále je zjištěno, jaké použitelné hodnoty \texttt{B}~záznam obsahuje. Pokud \texttt{B}~záznam neobsahuje hodnotu pravé vzdušné rychlosti u některých zařízení, tak je její hodnota ve struktuře JSON nastavena na nulovou hodnotu. Obdobně je zpracována i rychlost a~kurz letu. Z \texttt{B} záznamu jsou jednotlivé údaje uloženy do~proměnných a po zpracování jednoho řádku vstupního souboru s letem uloženy na konec struktury s letovými daty, která je ve~formátu JSON. Obdobným způsobem je ze záznamu \texttt{C} vyčtena deklarace a uložena do~další struktury ve formátu JSON. Pro definici otočných bodu je vedeno ještě pole, kde jsou definovány poloměry otočných bodů. Pozice v poli odpovídá pořadí otočných bodů. Z~\texttt{H}~záznamu jsou obdobným způsobem vyčteny informace o letu letadla, a to konkrétně jméno pilota, rejstříková značka, startovní znak a datum letu.  Po zpracování souboru s letem a uložení do struktury jsou nad daty použity filtry \ref{filtr}, které změní hodnoty ve struktuře s letovými daty. 



\subsection{Předzpracování měřených dat} \label{filtr}

Při zpracování dat byly použity tři číslicové filtry, protože naměřená data mají vlastnosti diskrétního signálu. Výška je zaznamenávána s přesností jeden metr. Pro citlivější identifikaci změny výšky byla data s výškovou informací upravena pomocí dolnopropustního filtru s konečnou impulzní odezvou (\Gls{FIR}). Po~použití filtru je možné definovat přesněji vertikální změnu výšky letu kluzáku. Během analýzy letu bylo zjištěno, že změna ze stoupavého letu na klesavý let probíhá pozvolna, tedy byl použit filtr zapsaný pomocí diferenční rovnice ve~tvaru \ref{filtr1}, kde \texttt{h} značí nadmořskou výšku pro určitý čas a \texttt{y} je výstup filtru s upravenou hodnotou výšky.
\begin{align}
    \label{filtr1}
    y[n] &=  0,05h[n-2] + 0,2h[n-1] + 0,5h[n] + 0,2h[n+1] + 0,05h[n+2]
\end{align}
Pro vizualizaci dat je vhodné upravit nadmořskou výšku letu, která byla špatně nastavena před startem v záznamovém zařízení. Výška je korigována podle nadmořské výšky v místě desátého zaznamenaného bodu. 
Pro vyhlazení trajektorie letu byly použity dolnopropustní FIR filtry. Pro vyhlazení hodnot zeměpisné šířky a zeměpisné délky je použita rovnice \ref{filtr2}, kde u filtru pro výpočet zeměpisné šířky vstupují do filtru vzorky pro zeměpisnou šířku, následně je obdobným způsobem použit filtr pro zeměpisnou délku.  Tento filtr byl použit na let nesplňující podmínky zatáčky. 
\begin{align}
    \label{filtr2}
   y[n] &=  0,1x[n-2] + 0,2x[n-1] + 0,4x[n] + 0,2x[n+1] + 0,1x[n+2]
\end{align}

\begin{figure}[H]
	\begin{center}
        
	\includegraphics[scale=0.538]{obrazky-figures/kapitola4/filter/bezfiltru.png}
 \includegraphics[scale=0.46]{obrazky-figures/kapitola4/filter/filtr.png}
	\caption{Nefiltrovaná letová data (vlevo) a letová filtrovaná data (vpravo).}
	\label{filtr_obr}
        \end{center}
\end{figure}
Po použití filtrů se již entita s letovými daty nepřepisuje. Na obrázku lze pozorovat vliv použití filtrů na výslednou trajektorii. Filtry nejsou použity na první dva a poslední dva záznamy polohy. Rozdíl mezi trajektorií s filtrem a~trajektorií bez filtru je nejvíce patrný v~malých rychlostech, a to konkrétně během vzletu a~přistání \ref{filtr_obr}. Formát JSON je ve tvaru, kde je pro každý fix z letu uložena zeměpisná šířka, zeměpisná délka a nadmořská výška. Struktura je v následujícím tvaru:


        \begin{algorithmic}\label{JSON_format}
    
            \STATE [
            \STATE \hspace{0.8em} \{
            \STATE \hspace{2.5em} čas: "2022-08-09T10:00:59",
            \STATE \hspace{2.5em} zeměpisná délka: 16.7229,
            \STATE \hspace{2.5em} zeměpisná šířka: 49.53411,
            \STATE \hspace{2.5em} nadmořská výška: 1574,
            \STATE \hspace{2.5em} kurz: 134,
            \STATE \hspace{2.5em} rychlost vůči vzduchu: 105,3,
            \STATE \hspace{2.5em} rychlost vůči Zemi: 112,5,
            \STATE \hspace{2.5em} manévr: "levá stoupavá zatáčka"
            \STATE \hspace{0.8em} \},
            \STATE \hspace{0.8em} \{
            \STATE \hspace{2.5em} čas: "2022-08-09T10:01:00",
            \STATE \hspace{2.5em} následující \texttt{B} záznam a dopočítané informace v obdobném tvaru 
            \STATE \hspace{0.8em}\}
           \STATE  ]
        \end{algorithmic}
    

\lstdefinestyle{mystyle}{
  basicstyle=\ttfamily\footnotesize,
  breakatwhitespace=false,         
  breaklines=true,                 
  captionpos=top,                    
  keepspaces=true,                 
  numbers=left,                    
  numbersep=5pt,                  
  showspaces=false,                
  showstringspaces=false,
  showtabs=false,                  
  tabsize=2
}
\lstset{style=mystyle}





Po zpracování vstupních údajů je nastaven časovač a přidána entita s kluzákem, který je s tímto časem synchronizovaný. Simulace letu začíná v čase zaznamenaného letu, konkrétně vzletem. Dále je přidána entita s jednotlivými body letu, které jsou propojeny a obarveny podle identifikovaných manévrů. Čas ze simulace byl využit i pro zobrazení aktuálních manévrů v horní části obrazovky a udávaných informacích o letu. Dále je možné zobrazit simulaci i více kluzáků najednou \ref{dvojice}, a to tak, že na mapový podklad je načtena entita letu s každým novým přidaným letovým souborem. 
\begin{figure}[H]
    \begin{center}
        \includegraphics[width=0.9\linewidth]{obrazky-figures/kapitola5/implementace/dvojice5.png}
        \caption {Detailní pohled na dvojici kluzáků.}
        \label{dvojice}
    \end{center}
\end{figure}


Čas na ose a časovači je nastavený podle posledního přidaného letadla. Obdobně je zobrazen i graf závislosti výšky na čase. Některé údaje jako rychlost, nadmořská výška, údaje z variometru a kurz jsou zobrazené po kliknutí na tlačítko informace o letu. Formát údajů pro více letadel je znázorněn na obrázku \ref{info}.    

\begin{figure}[H]
    \begin{center}
        \includegraphics[width=0.32\linewidth]{obrazky-figures/kapitola5/implementace/udaje.pdf}
        \caption {Informace o aktuálním stavu kluzáku.}
        \label{info}
    \end{center}
\end{figure}
 
\subsection{Výpočet kurzu}
Pro identifikaci stranových manévrů je nutné znát změnu kurzu. Některá zařízení nezaznamenávají hodnotu kurzu, tedy je nutné kurz mezi jednotlivými záznamy dopočítat. Například přístroj vyrobený v roce 2021 firmou LX navigation nezaznamenává kurz letu. Kluzák letí většinou rychlostí letu v rozmezí 90 km/h až~225 km/h, tak za jednu sekundu urazí vzdálenost od 25 metrů až do 62,5 metrů. Vzhledem k tomuto faktu lze uvážit, že počáteční kurz ve výchozím bodě se během této vzdálenosti nezmění. To znamená, neprojeví se zde pravidlo, že počáteční a koncový kurz je v~různých částech spojnice závislý na zeměpisné šířce a zeměpisné délce \cite{Venessc20022022}. Výpočet kurzu spojnice bodů je realizován podle vztahu \ref{kurz}, kde $\lambda$ je zeměpisná délka $\varphi$ zeměpisná šířka, obě zeměpisné veličiny musí být zadané v~radiánech. Index $1$ a $2$ určuje, o který bod se jedná a $\Delta$ značí jejich rozdíl \cite{Venessc20022022}. Výsledný vypočítaný kurz je stanoven v radiánech a pro následovné zpracování musí být převeden na~stupně. Pro porovnání byly vypočítané hodnoty porovnány s hodnotami u~zařízení, které mají kurz naměřený a dosahovali téměř totožných výsledků.


\begin{align}
    \label{kurz}
    kurz &=  \atantwo( \sin \Delta \lambda \cos \varphi_2, \cos \varphi_1 \sin \varphi_2 - \sin \varphi_2 \cos \Delta \lambda)
\end{align}





\subsection{Mapové podklady}

Letadlo je zobrazeno na mapovém podkladu. Pomocí speciálního tokenu je možné mapové podklady přidat. Po vytvoření účtu u Cesia je vygenerován autorizační token. Pomocí tohoto tokenu je propojena aplikace s účtem Cesium. Pomocí účtu je možné nastavit, které mapové modely jsou podporovány. Mezi jednotlivými mapami je možné přepínat pomocí menu a vybrat z několika topografických či ortografických map, případně jejich kombinací. Detailně je nastaven mapový podklad od firmy Bing. Jednotlivé mapové podklady jsou načítány po~určitých blocích podle směru pohledu kamery. Čím blíže je zobrazena mapa, tím více se zaostří. Zaostření je docíleno tím, že podle stupně přiblížení (vzdálenosti pohledu kamery) jsou vykresleny jednotlivé ostřejší snímky. Pro pohled z větší vzdálenosti postačí méně kvalitní snímek s menší velikostí, zatímco kvalitnější snímky jsou vykresleny při detailnějším pohledu. Čím více je mapový podklad přiblížen, tím se stejná plocha skládá z~více přesnějších vzorků~\cite{Cesium2022c}.  

\subsection{Model letadla}

Pomocí účtu na stránce Cesium ion je načten kluzák ve formátu \texttt{glTF}. Je vybrán model kluzáku ASK 21. Model kluzáku je uložen a lze k němu přistupovat pomocí speciálního ID. Model kluzáku je převzat z repozitáře na githubu \cite{Chabanois2018}. Následně pomocí vestavěné funkce \texttt{Cesium.IonResource.fromAssetID} je načten kluzák do proměnné. Entita kluzáku je~zobrazena pomocí funkce \texttt{viewer.trackedEntity}. Pohled kamery je vždy nastaven na~poslední přidaný kluzák. Pro přehlednost a jednodušší rozeznání letadel při analýze více letů najednou je nad kluzákem při určitém přiblížení zobrazena rejstříková značka letadla, které je zobrazeno na obrázku níže \ref{detailletadloinfo}. 

\begin{figure}[H]
    \begin{center}
        \includegraphics[width=0.63\linewidth]{obrazky-figures/kapitola5/implementace/detail.png}
        \caption {Detailní pohled na kluzák.}
        \label{detailletadlo}
    \end{center}
\end{figure}

\newpage
Po kliknutí na letadlo se zobrazí box \ref{detailletadlo} s informacemi o letadle, jako je typ letadla, startovní znak, rejstříková značka a ikonka pro ovládání pohledu. Ikonka je v levém horním rohu a je ve tvaru kamery. Na obrázku je nastaven pohled na letadlo, který lze případně změnit pomocí tlačítka s kamerou na pohled na mapový podklad. 


\begin{figure}[H]
    \begin{center}
        \includegraphics[width=0.63\linewidth]{obrazky-figures/kapitola5/implementace/detailniInfo.png}
        \caption {Informace o kluzáku a ovládání pohledu.}
        \label{detailletadloinfo}
    \end{center}
\end{figure}

\subsection{Formát času a ovládání simulace}

Ve vizualizaci je používán čas v UTC formátu, který je používán v letectví z důvodu jednotnosti údajů. Například pro možnost zobrazení více letů a puštění simulace je nutné mít sjednocené časy letů pro možnost korektní identifikaci manévrů a korektní vizualizaci letu. Některé přístroje mají možnost definovat posun času. U těchto zařízení je uvedený posun v~\texttt{H}~záznamu. Tato možnost je až u novějších typů záznamových zařízení. Pokud je využito posunu, tak je čas záznamu převeden na UTC. Tento upravený čas je převeden do formátu \texttt{Iso8601}, který je vhodný pro práci s CesiumJS a CanvasJS.   

Simulaci letu je možné pomocí tlačítek pozastavit, zrychlit, zpomalit a pustit pozpátku. Případně je možné se posunout na časové ose na konkrétní čas. Na časové ose je nastaven začátek a konec podle začátku a konce posledního přidaného letu. Ovládání zobrazení simulace je na obrázku \ref{ovladani}. Pro nastavení rychlosti simulace slouží ovladač vlevo.
\begin{figure}[H]
    \begin{center}
        \includegraphics[width=0.9\linewidth]{obrazky-figures/kapitola5/implementace/ovladani.png}
        \caption {Ovládání časových údajů při zobrazení letu.}
        \label{ovladani}
    \end{center}
\end{figure}



\newpage
\subsection{Výstupní soubor se statistikou}

Po načtení letu je možné pomocí tlačítka \texttt{Soubor statistika} zobrazit souhrnné údaje o~letu, jako je například jméno pilota a informace o letadle. Následně jsou zobrazeny časy jednotlivých manévrů. Kompletní formát výstupního souboru je zobrazen na obrázku \ref{statistika}. Tento soubor slouží pro souhrnnou statistiku identifikovaných manévrů a je možné pomocí něho porovnat například výsledky z jednoho letu z více různých zařízení.

\begin{figure}[H]
    \begin{center}
        \includegraphics[width=0.75\linewidth]{obrazky-figures/kapitola5/statistika/statistika.png}
        \caption {Soubor se základní statistikou o letu.}
        \label{statistika}
    \end{center}
\end{figure}

 





\section{Implementace algoritmů pro identifikaci manévrů}

Jednotlivé manévry jsou identifikované na základě letových dat, a to pomocí tří metod. V~následující kapitole je popsaná implementace a nástroje pro identifikaci manévrů pomocí sady pravidel, K-means a Skrytého Markovova modelu. U~vizualizovaného letu pomocí webové aplikace jsou identifikovány manévry pomocí sady pravidel. Výstup Skryté Markovovy metody a metody K-means je formou pole, grafů a~statistiky. Nejdříve je vysvětlen program pro identifikaci manévrů pomocí sady pravidel.

\subsection{Implementace identifikace manévrů pomocí sady pravidel}

Let začíná vzletem a končí přistáním, pro vzlet a přistání je nutné znát nadmořskou výšku letu (QNH) a pravou vzdušnou rychlost. Rozhodovací algoritmus je znázorněný pomocí pseudokódu:


\newpage
%caption=Stranové manévry,%
\begin{lstlisting}[style=myStyle]
if (data[i].QNH <= data[i].QNH + 10,7 && vzlet == 0){
    if(data[i].TAS < 90){
        manevr = "rozjezd";
    } else {
        manevr = "vzlet - vzdusna cast";
    }
} else {
    vzlet = 1;
}
if (data[i].QNH <= data[data.delka - 3].QNH + 15,2 && vzlet == 1){
    if(data[i].TAS < 90){
        manevr = "dojezd";
    } else {
        manevr = "pristani - vzdusna cast"
    }
} else {
    vzlet = 1;
}

\end{lstlisting}


Následují letové manévry, které je možné rozdělit na vertikální a stranové. Vertikální manévry je možné identifikovat pomocí sady pravidel a hodnot změny nadmořské výšky mezi jednotlivými zaznamenanými body. Identifikační algoritmus je popsán pomocí pseudokódu:




%caption=Vertikální manévry,
\begin{lstlisting}[style=myStyle]
if (data[i].zmenaVysky < - 0,5){
    manevr = "klesavy let";
else if (data[i].zmenaVysky > 0,5){
    manevr = "stoupavy let";        
else
    for (j = 0; j < 5; j++){
        if(i + j + 3 < data.delka && i > 2){
            if(data[i + j].zmenaVysky >= -0,5 && data[i + j].zmenaVysky <= 0,5){
                horizontalni = horizontalni + 1
            }
        }                
    }
}
if(horizontalni >= 5 - data[i].delkaManevru && i < (data.delka - 1)){
    data[i + 1].delkaManevru = data[i].delkaManevru + 1;
    manevr = "horizontalni let";
else
    if(data[i].zmenaVysky < 0){
        manevr = "klesavy let"; 
    } else {
        manevr = "stoupavy let"; 
    }
    horizontalni = 0
}
\end{lstlisting}

Identifikace stranových manévrů je řešena podobným způsobem jako vertikální. Místo dopočítané změny výšky je využita změna kurzu. V následujícím kroku jsou tři stranové a tři vertikální manévry spojeny pomocí pravidel do 9 letových manévrů. Kompletně je tedy identifikováno pomocí pravidel 13 manévrů (pozemní část vzletu, vzdušná část vzletu, letové manévry, vzdušná část přistání a pozemní část přistání). Manévry jsou detailněji popsány v podkapitole \hyperref[udalosti]{Identifikované manévry}.

\subsection{K-means}

Shluková analýza je provedena v Jupyter Notebooku pomocí programovacího jazyku Python s využitím knihoven \texttt{pandas}, \texttt{numpy}, \texttt{matplotlib.pyplot} a \texttt{sklearn.cluster}. Soubor IGC je načten uživatelem do webové aplikace. Pomocí webové aplikace jsou dopočítaná chybějící data pro analýzu a následně jsou převedena data do potřebného formátu pro další zpracování. Tento formát je možné stáhnout pomocí tlačítka \texttt{Soubor JSON}. Tento soubor je stáhnutý do složky uložené soubory. Pro další zpracování je nutné přemístit tento soubor do složky se skriptem \texttt{K-means.ipynb}. Soubor se vstupními daty se musí jmenovat \texttt{vstup.txt}. Následně stačí spustit skript s programem, který provede shlukovou analýzu pomocí \mbox{K-means} a vykreslí grafy pro hodnoty účelové funkce, graf závislosti změny kurzu na~změně výšky, kde změna kurzu je nastavena pevně na 0°/s, graf závislosti změny výšky na změně kurzu, kde změna výšky je nastavena pevně na 0 m/s a graf závislosti změny výšky na~změně kurzu. Jednotlivé manévry mají jiný rozsah, než je popisovaný v kapitole identifikované manévry \ref{udalosti}. Rozsah manévrů není daný fixně, ale je daný vlastnostmi shluků. V~programu je pomocí knihovny \texttt{pandas} \cite{EDxxJ1wlvZc3UL3n} načtena struktura JSON a~převedena na objekt (pandas), pro další zpracování programem. Pro výpočet K-means je využita knihovna \texttt{sklearn.cluster} \cite{Hubertc20072023}, konkrétně program využívá funkci pro výpočet K-means \cite{Hubertc20072023}. Podrobnější vysvětlení principu K-means je v podkapitole \hyperref[Kmeansnadpis]{Identifikace manévrů pomocí K-means}. Pro~práci s~polem a aritmetickými operacemi je využita knihovna \texttt{numpy} \cite{NumPyDevelopersc20082022}. Na~vykreslování grafů je použita knihovna \texttt{matplotlib.pyplot} \cite{Hunterc20022012}.

Následující shluková analýza je provedena na letu ze dne 3. července 2022 ze záznamového zařízení LX 10K. Nejdříve byl let zpracován pomocí webové aplikace, kde byl předzpracován pro další analýzu a následně byl stáhnutý ve formátu JSON. Následně skript v jazyce Python provedl shlukovou analýzu pomocí K-means. V prvním kroku jsou zobrazeny hodnoty účelové funkce v závislosti na počtu shluků, jak je vidět na obrázku \ref{objektfunkce}. 

\begin{figure}[H]
    \begin{center}
        \includegraphics[width=0.6\linewidth]{obrazky-figures/kapitola5/kmeans/1.png}
        \caption {Hodnoty účelové funkce v závislosti na počtu vzorků.}
        \label{objektfunkce}
    \end{center}
\end{figure}

Z obrázku \ref{objektfunkce} je patrné, že prudká změna nastává u hodnot odpovídajícím dvou nebo třem shlukům. Vzhledem k tomuto faktu je optimální najít dva až tři shluky. Po vyzkoušení několika kombinací počtu shluků, byly vybrány tři shluky. Tyto tři shluky jsou oblasti stoupavého, horizontálního a klesavého letu. Na obrázku \ref{zmenavysky} jsou shluky identifikující vertikální manévry.



\begin{figure}[H]
    \begin{center}
        \includegraphics[width=0.8\linewidth]{obrazky-figures/kapitola5/kmeans/2.png}
        \caption {Graf závislosti změny kurzu na změně výšky.}
        \label{zmenavysky}
    \end{center}
\end{figure}

V další části jsou nalezeny shluky pro přímý let, levou a pravou zatáčku. Je~zavolána funkce pro výpočet účelové funkce, vypočítané hodnoty jsou zobrazeny v~grafu. Graf hodnot účelové funkce v těžištích na počet shluků má velmi podobný průběh jako graf zobrazený na obrázku \ref{objektfunkce}. Počet shluků je nastaven na hodnotu tři. Výsledný graf, na obrázku \ref{zmenakurzu}, závislosti změny kurzu na změně výšky, kde je změna výšky nastavena pevně na hodnotu 0, je zobrazen níže. Jednotlivé shluky je možné definovat jako levou zatáčku, přímočarý let a pravou zatáčku.


\begin{figure}[H]
    \begin{center}
        \includegraphics[width=0.8\linewidth]{obrazky-figures/kapitola5/kmeans/3.png}
        \caption {Graf závislosti změny výšky na změně kurzu.}
        \label{zmenakurzu}
    \end{center}
\end{figure}
Pomocí složení identifikovaných manévrů z předchozích dvou grafů, u kterých je jednou nastavena změna kurzu pevně na 0 a podruhé změna výšky nastavena pevně na nulu, je možné identifikovat kompletních 9 letových manévrů. Tyto definované manévry nemají pevně stanovené rozmezí a jsou závislé na vstupních datech. Data zobrazená na obrázku \ref{zmenakurzu} mají posunuté rozmezí změny kurzu v přímočarém letu na hodnotu $\pm 7$ °/s\ 

Obdobným způsobem je možné řešit i zobrazení a nalezení shluků bez nastavené jedné vstupní hodnoty na 0. Výsledný graf je zobrazen na obrázku \ref{zmenaoboje}. Z výše uvedených grafů je možné zjistit, že kluzák během letu stráví nejvíce času v přímočarém letu a levé, případně pravé stoupavé zatáčce. Z centroidů je možné například zjistit, jakým způsobem je využito stoupání během přímočarého letu, případně jak velké bylo stoupání nebo klesání během zatáčení. 
\begin{figure}[H]
    \begin{center}
        \includegraphics[width=0.55\linewidth]{obrazky-figures/kapitola5/kmeans/4.png}
        \caption {Graf závislosti změny výšky na změně kurzu (LX 10K).}
        \label{zmenaoboje}
    \end{center}
\end{figure}

Pomocí finálních těžišť (centroidů) jednotlivých shluků lze identifikovat typ počasí. Například, pokud jsou centroidy zatáček vzdálené dále od středu [0; 0], tak jsou zatáčky více ostré, než pokud jsou blíže ke středu. Pomocí tohoto je možné porovnat průměrnou změnu kurzu více letů stejného letadla, či porovnat změny kurzů pro více letadel a~zjistit poloměr stoupavých proudů. Ze středů těžišť lze zjistit i průměrnou sílu stoupavých proudů, protože během průměrného letu v kluzáku je většina času zatáčení využita k~točení ve stoupavých proudech. Ze zkoumaného letu 3. srpna 2022, během pěkného počasí a silných stoupavých proudů, byly vypočítány středy centroidů pro levou zatáčku [-13,7;~1,735], pro pravou zatáčku [13,65; 1,99] a pro přímočarý let [-0,13; -0,93]. Výsledný graf je zobrazen vlevo \ref{zmenaoboje2}. První číslo v poli značí souřadnici x pro změnu kurzu a druhé číslo značí souřadnici y pro změnu výšky za jednu sekundu. Z těchto dat plyne, že průměrná změna během zatáčení doleva je 13,7 °/s při stoupání 1,735 m/s a při pravé zatáčce je 13.65 °/s při stoupání 1,99~m/s. Obdobná data jsou analyzována i z letů za horšího počasí a zobrazena v pravém grafu \ref{zmenaoboje2}. Konkrétně ze dne 7. srpna 2021, kdy střed pro levou zatáčku byl [-13,23;~0,7], pro~pravou [12,97; 0,8] a pro přímočarý let [-0,19; -0,73]. Tyto středy centroidů odpovídají podobné změně směru, ale výrazně menšímu stoupání, což odpovídá i~průměrné rychlosti na letěné trati. Optimální pro porovnání údajů například na světových závodech by bylo porovnat středy centroidů jen v časovém intervalu po protnutí startovní pásky. 


\begin{figure}[H]
    \begin{center}
        \includegraphics[width=0.48\linewidth]{obrazky-figures/kapitola5/kmeans/5.png}
        \includegraphics[width=0.48\linewidth]{obrazky-figures/kapitola5/kmeans/6.png}
        \caption {Graf závislosti změny výšky na změně kurzu pro termicky silné (vlevo) a~slabé (vpravo) počasí.}
        \label{zmenaoboje2}
    \end{center}
\end{figure}

\subsection{Skrytý Markovův model}

Identifikace událostí pomocí Skrytého Markovova modelu je rozdělena do 3 skriptů v jazyce Python. Pro matematické výpočty, práci s polem a zobrazení dat v grafu jsou použity stejné knihovny jako u metody K-means. Nejdříve jsou načtena data pro vytvoření emisní přechodové matice. Poté jsou načtena data, ze kterých jsou identifikovány manévry. Z těchto dat jsou uloženy stavy pozorování do pole a je použita knihovní funkce z \texttt{hmmlearn} pro výpočet skrytých stavů (letových manévrů) \cite{th4rGyTSqA4dTAkb}. Princip algoritmu je popsaný v podkapitole \hyperref[HMMnadpis]{Markovův model a Skrytý Markovův model}. Pro optimální nastavení stavů pozorování a vyhodnocení identifikovaných událostí byla použita matice záměn. K výpočtu matice záměn je využita knihovna \texttt{sklearn.metrics}, konkrétně funkce \texttt{confusion\_matrix} \cite{Hubertc200720232}. K výsledné matici je doplněn řádek s hodnotami pravděpodobnosti správné klasifikace. Buňky ve výsledné matici jsou pro přehlednost obarveny pomocí knihovny \texttt{seaborn} \cite{Waskomc20122022}. Letové manévry je možné rozdělit na stranové a vertikální, obdobně jsou rozděleny skripty na \texttt{stranoveManevry.ipynb} a \texttt{vertikalniManevry.ipynb}. Po zjištění optimálních hodnot pro stavy pozorování u stranových a vertikálních modelů je vytvořeno i optimální rozmezí hodnot pro 9 letových manévrů. Skrytý Markovův model pro 9 letových manévrů (stranové a vertikální) je implementovaný ve skriptu \texttt{letoveManevry.ipynb}.    

Pro vertikální profil jsou vytvořeny matice přechodů a emisní matice. V trénovací části bylo vybráno téměř 3 miliony sekundových záznamů (55 hodin letu). Matice přechodů je ve~tvaru, kde první řádek i sloupec odpovídají klesání, druhý řádek i sloupec horizontálnímu letu a~třetí stoupavému letu. Výsledná matice s vypočítanými hodnotami je na obrázku~\ref{transmition1}.


\begin{figure}[H] \label{transmition1}
    \centering
        \includegraphics[width=0.65\linewidth]{obrazky-figures/kapitola6/graf/v1.png}
        \caption {Matice přechodů pro vertikální manévry.}
\end{figure}

U emisní matice odpovídá první řádek klesání, druhý řádek horizontálnímu letu a třetí stoupavému letu. První sloupec je pro hodnoty stoupání a klesání ($-\infty$ m/s; $0,5$ m/s), druhý sloupec pro hodnoty <$-0,5$ m/s; $0,5$ m/s> a třetí sloupec pro hodnoty ($0,5$~m/s;~$\infty$~m/s).
Emisní matice je ve tvaru znázorněném na obrázku \ref{emission2}: 

\begin{figure}[H] \label{emission1}
    \centering
        \includegraphics[width=0.65\linewidth]{obrazky-figures/kapitola6/graf/v2.png}
        \caption {Emisní matice pro vertikální manévry.}
\end{figure}

Výsledky získané pomocí Skrytého Markovova modelu jsou  zobrazeny v následujícím grafu společně s manévry určenými podle pravidel. 
\begin{figure}[H]
    \centering
        \includegraphics[width=0.9\linewidth]{obrazky-figures/kapitola6/graf/hmm4.png}
        \caption {Vertikální manévry identifikované pomocí Skrytého Markovova modelu a~pomocí pravidel.}
        \label{hmm1graf}
\end{figure}


\noindent Jsou vytvořené přechodové a emisní matice.
Přechodová matice je ve tvaru, kde první řádek i sloupec odpovídají levé zatáčce, druhý řádek i sloupec přímočarému letu a třetí pravé zatáčce. Výsledná matice s vypočítanými hodnotami je zobrazena na obrázku \ref{transmition3}.  


\begin{figure}[H] \label{transmition3}
    \centering
        \includegraphics[width=0.65\linewidth]{obrazky-figures/kapitola6/graf/s2.png}
        \caption {Matice přechodů pro stranové manévry.}

\end{figure}
U emisní matice \ref{emission2} odpovídají řádky hodnotám pro levou zatáčku, přímočarý let a~pravou zatáčku. Sloupce odpovídají stavům pozorování, které jsou zobrazeny na schématu~\ref{hmm2}.

\begin{figure}[H] \label{emission2}
    \centering
        \includegraphics[width=0.65\linewidth]{obrazky-figures/kapitola6/graf/s1.png}
        \caption {Emisní matice pro stranové manévry.}
\end{figure}

Podle těchto matic je pomocí Viterbiho algoritmu zjištěna nejpravděpodobnější posloupnost skrytých stavů. Tyto stavy jsou zobrazeny v následujícím grafu \ref{hmm2graf} společně s~manévry určenými podle pravidel.

\begin{figure}[H]
    \centering
        \includegraphics[width=0.9\linewidth]{obrazky-figures/kapitola6/graf/h2.png}
        \caption {Stranové manévry identifikované pomocí Skrytého Markovova modelu a pomocí pravidel.}
        \label{hmm2graf}
\end{figure}

V posledním porovnání bylo pomocí Skrytého Markovova modelu identifikováno všech 9~letových manévrů.
Model má 9 skrytých stavů, 9 stavů pozorování, 81 přechodů mezi skrytými stavy a~81~pravděpodobnostních přechodů mezi stavy pozorování a skrytými stavy. 
Emisní matice pro tento model je zobrazena pro přehlednost i s odstínem barev na obrázku \ref{c1}, kde hodnoty pro sloupce jsou zapsané ve dvourozměrném poli, přičemž první člen obsahuje vertikální změnu v m/s a~druhý člen obsahuje směrovou změnu ve~°/s. Rozmezí hodnot skrytých stavů byla optimalizována pomocí matice záměn. Postupně se dospělo k~následujícím hodnotám pro stranový profil ($-\infty$°/s; $-2$°/s>, ($-2$°/s; $2$°/s), <$2$°/s; $\infty$°/s> a~pro~vertikální profil: ($-\infty$~m/s;~$-0,6$~m/s), <$-0,6$ m/s; $0,6$~m/s>, ($0,6$~m/s;~$\infty$~m/s>. Emisní matice a~matice přechodů jsou zobrazeny na obrázcích \ref{c1} a \ref{c2}.

\begin{figure}[H]
    \begin{center}
        \includegraphics[width=0.8\linewidth]{obrazky-figures/kapitola6/graf/d1.png}
        \caption {Emisní matice pro 9 základních letových manévrů.}
        \label{c1}
    \end{center}
\end{figure}

\begin{figure}[H]
    \begin{center}
        \includegraphics[width=0.8\linewidth]{obrazky-figures/kapitola6/graf/d2.png}
        \caption {Matice přechodů pro 9 základních letových manévrů.}
        \label{c2}
    \end{center}
\end{figure}

\newpage
\noindent Rozdíl identifikovaných manévrů je pro ilustraci zobrazen na obrázku \ref{hmm3graf}.

\begin{figure}[H]
    \begin{center}
        \includegraphics[width=0.9\linewidth]{obrazky-figures/kapitola6/graf/3.png}
        \caption {Letové manévry identifikované pomocí Skrytého Markovova modelu a pomocí pravidel.}
        \label{hmm3graf}
    \end{center}
\end{figure}

\chapter{Vyhodnocení výsledků  a možná zlepšení} \label{5}
Identifikované manévry určené podle pravidel jsou porovnány s manévry, které jsou identifikované pomocí Skrytého Markovova modelu. Nejdříve jsou letové manévry vyhodnoceny podle pravidel, zobrazeny pomocí webové aplikace a uloženy i s číslem pro každý manévr.
Tyto manévry jsou definované jako správně vyhodnocené a následně jsou s nimi porovnány manévry vyhodnocené pomocí Skrytého Markovova modelu. Vyhodnocení výsledků proběhlo z více než padesáti hodin letu. Záznamy pocházejí z letů autora práce z období 2021 až~2022. 

\section{Vyhodnocení výsledků}

K vyhodnocení je nutné nejdříve znát datovou sadu. Datová sada se skládá z téměř 190~tisíc vzorků, což je více než 51 hodin letového záznamu. K tomuto účelu jsou vybrána letová data z~nejpřesnějších zařízení, a to konkrétně ze zařízení LX 9000 se zaznamenáním polohy po jedné sekundě. K~vyhodnocení byly použity lety z České republiky z klubové třídy z roku 2022 a lety ze standardní třídy z roku 2021 z České republiky a Litvy. Do klubové třídy se řadí starší kluzáky bez vodní přítěže. Do standardní třídy se řadí kluzáky s rozpětím maximálně 15 metrů, pevným křídlem a s možností vodní zátěže \cite{gESo6xWvDlWbSs6R}.
Nejdříve bylo porovnáno, kolik manévrů bylo vyhodnoceno pomocí Skrytého Markovova modelu jinak než pomocí pravidel. Délka záznamu manévru je jedna sekunda.

\begin{table}[H]
    \label{vyhodnoceni1}
	\vskip6pt
	\caption{Vyhodnocení identifikovaných manévrů pomocí Skrytého Markova modelu.} 
    \vskip6pt
	\centering
	\begin{tabular}{rrrrr}
		\toprule

		Manévry & Počet záznamů & Počet rozdílných & Procento rozdílných\\
		\midrule
        Stranové & 183164 & 37 & 0.02 $\%$\\
        Vertikální  & 183164 & 7773 & 4.24 $\%$\\
        Stranové i vertikální  & 183164 & 8099 & 4.42 $\%$\\
		\bottomrule
	\end{tabular}
\end{table}



 Pro podrobné vyhodnocení výsledků nestačí určité procento rozdílných záznamů, ale je vhodné podrobně znát, který manévr byl kolikrát chybně vyhodnocený. K tomuto vyhodnocení slouží matice záměn. Matice záměn byla použita pro porovnání identifikovaných manévrů pomocí pravidel a manévrů identifikovaných pomocí Skrytého Markovova modelu. Pro vertikální manévry je matice záměn zobrazena na obrázku~\ref{zamen1}. K vyhodnocení přesnosti metody slouží i pravděpodobnost správné klasifikace. 

 \begin{figure}[H]
    \begin{center}
        \includegraphics[width=0.66\linewidth]{obrazky-figures/kapitolavyhodnoceni/2.png}
        \caption {Matice záměn pro stranové manévry, doplněná o statistické údaje.}
        \label{zamen1}
    \end{center}
\end{figure}
Z matice záměn pro stranové manévry je zřejmé, že 25 záznamů pro přímočarý let je pomocí HMM chybně přiřazeno levé zatáčce a 12 záznamů k pravé zatáčce. Ostatní manévry jsou identifikovány správně. Na základě pravděpodobnosti správné klasifikace manévru, kde se hodnoty blíží ke 100~\%, je model považován za téměř bezchybný. Pro vertikální manévry je zobrazena matice záměn na obrázku \ref{zamen2}.
\begin{figure}[H]
    \begin{center}
        \includegraphics[width=0.66\linewidth]{obrazky-figures/kapitolavyhodnoceni/1.png}
        \caption {Matice záměn pro vertikální manévry, doplněná o statistické údaje.}
        \label{zamen2}
    \end{center}
\end{figure}

Z matice záměn pro horizontální let je patrné, že klesavý let je v 93027 případech pomocí HMM zařazen správně, v 518 případech je určen jako horizontální let a~v~6290 jako let stoupavý. U horizontálního letu jsou všechny události zařazené správně. Stoupavý let je v~80029 případech zařazen pomocí HMM správně, v 511 jako horizontální a v 454 jako stoupavý. Z~těchto údajů lze usuzovat, že Skrytý Markovův model je pro identifikaci vertikálních manévrů dostačující. Hodnoty pravděpodobnosti správné klasifikace dosahují minimálně 93 $\%$, tedy manévry jsou identifikovány poměrně přesně. Je možné s mírnou chybovostí považovat Skrytý Markovův model pro identifikaci vertikálních manévrů za validní. Nejméně přesná je klasifikace klesavého letu. 

Pro kompletní analýzu výsledků je vytvořena i matice záměn pro všech 9 letových manévrů. Tato matice je doplněna o pravděpodobnost správné klasifikace manévru. Celková správnost pro matici dosahuje hodnoty 95,6~\%. Matice záměn doplněná o statistiku pro~9~základních letových manévrů je zobrazena na obrázku \ref{zamen3}.

\begin{figure}[H]
    \begin{center}
        \includegraphics[width=0.95\linewidth]{obrazky-figures/kapitolavyhodnoceni/3.png}
        \caption {Matice záměn pro základní letové manévry.}
        \label{zamen3}
    \end{center}
\end{figure}


Hodnoty pravděpodobnosti správné klasifikace jsou v rozmezí od 92~\% do 98~\%. Pro~nejčastěji identifikovaný manévr a~to klesavý přímočarý let, dosahují hodnoty 95~\%, obdobné hodnoty dosahuje i stoupavá pravá a levá zatáčka. Z~výše uvedených matic záměn lze zjistit, že je možné využít Skrytý Markovův model pro identifikaci letových manévrů s určitou odchylkou. Tato odchylka je většinou v podobě pozdější identifikace změny manévru. 
\subsection{Výsledek}

Pro zjištěni, zda jsou data validní, bylo vybráno několik letů, ze kterých byla vypočítána přechodová a emisní matice. Celkově byly matice vypočítány z cca 55 hodin letu. Matice byly využity na ostatní lety (v čase cca 50 hodin) a bylo zjištěno, jaký je rozdíl u těchto letů mezi stavy identifikovanými pomocí pravidel a~identifikovanými pomocí Skrytého Markovova modelu. Manévry identifikované pomocí pravidel jsou validovány expertem. Manévry identifikované pomocí pravidel jsou totiž považovány za validní a~porovnány s manévry identifikovanými pomocí Skrytého Markovova modelu. Celkové rozdíly mezi modely jsou do 5 procent, pravděpodobnost správné klasifikace daného manévru je ve většině případů větší něž 92 \%, tedy se dají identifikované manévry pomocí Skrytého Markovova modelu považovat za poměrně přesné. Vzhledem k definovaným pravidlům pro identifikaci manévrů není možné pomocí Skrytého Markovova modelu identifikovat úplně všechny manévry stejně jako pomocí definovaných pravidel, ale i přesto je možné identifikovat většinu manévrů správně. 


\section{Možné vylepšení}
Aplikace identifikuje 13 manévrů. Pomocí těchto manévrů se dá popsat celý let. Události, jako je například zavření podvozku, otevření podvozku, pozice vztlakových klapek či brzdících klapek není možné ze současných dat přesně identifikovat. Případně by bylo možné rozšířit identifikaci o manévry typu průlet, let na zádech, vývrtka, spirála či jiné akrobatické manévry. Velmi přínosné pro identifikování dalších manévrů by byly hodnoty náklonu kluzáku z umělého horizontu, násobek působící na pilota a pozice vztlakových a brzdících klapek. Pro zlepšení přesnosti dat by bylo možné použít přístroj s vyšším vzorkováním a~přesnějším určením polohy. 
Současné záznamové zařízení a výstupní formát IGC byly vybrány, protože jsou celosvětově rozšířené a uznávané, tudíž je více než dostatečné množství záznamů pro testování a optimalizaci algoritmů.







\chapter{Závěr} 

Hlavním cílem práce bylo navrhnout a implementovat aplikaci pro identifikaci letových manévrů ze záznamu letových dat. Manévry byly identifikovány v prostoru s mapovým podkladem pomocí webové aplikace. K implementaci aplikace je vhodné znát pohybové rovnice, souřadné systémy a způsob zaznamenávání letových dat. Aplikace umožňuje uživateli snadnou a~přehlednou vizualizaci a analýzu letu. Trajektorie letu byla obarvena podle typu manévru. Webová aplikace umožňuje zobrazovat i informace v konkrétním čase letu v~přehledné textové podobě, jako je například identifikovaný manévr, pravá vzdušná rychlost, rychlost vůči Zemi, nadmořská výška atd. Pomocí aplikace je možné analyzovat a~vizualizovat i více letů naráz. Toto umožňuje porovnat například lety ze závodů, kde letí více letadel stejnou trať, či více záznamů z různých zařízení z jednoho stejného letu. 

Pro identifikování manévrů jsou použité i další algoritmy, a~to konkrétně K-means a~Skrytý Markovův model. Pomocí shlukové analýzy K-means je možné identifikovat letové manévry, které mají vlastnosti přiřazené skupiny -- mají posunuté hranice pro jednotlivé manévry. Pomocí Skrytého Markovova modelu je možné identifikovat letové manévry s~určitou přesností, která dosahuje 95,6 \%. Identifikované manévry pomocí Skrytého Markovova modelu jsou vyhodnoceny pomocí matice záměn. V matici záměn je možné pozorovat, pro~které manévry je Skrytý Markovův model vhodný, například identifikuje velice přesně levé a pravé klesavé zatáčky a stoupavý přímočarý let. 


