Commit a3b9442069558b6be54060b966bda1014b3d5129

Authored by Grizonnet Manuel (CNES)
1 parent 6b1ef554
Exists in develop

DOC: add tex file which describe the pass 1.5 algorithm to remove cold cloud

Showing 1 changed file with 142 additions and 0 deletions   Show diff stats
doc/atbd/ATBD_Cold_Cloud_Removal.tex 0 → 100644
... ... @@ -0,0 +1,142 @@
  1 +% Created 2018-12-06
  2 +\documentclass[a4paper]{article}
  3 +\usepackage[utf8]{inputenc}
  4 +\usepackage[T1]{fontenc}
  5 + \usepackage{lmodern}
  6 +\usepackage{fixltx2e}
  7 +\usepackage{graphicx}
  8 +\usepackage{longtable}
  9 +\usepackage{float}
  10 +\usepackage{wrapfig}
  11 +\usepackage{rotating}
  12 +\usepackage[normalem]{ulem}
  13 +\usepackage{amsmath}
  14 +\usepackage{textcomp}
  15 +\usepackage{marvosym}
  16 +\usepackage{wasysym}
  17 +\usepackage{amssymb}
  18 +\usepackage{hyperref}
  19 +\hypersetup{
  20 +colorlinks=true,
  21 +linkcolor=blue,
  22 +pdfauthor=Germain Salgues,
  23 +pdftitle=Algorithm theoretical basis documentation for the cold cloud removal in
  24 +the snow cover product (Let-it-snow)}
  25 +
  26 +\tolerance=1000
  27 +\usepackage{amsfonts,bm}
  28 +\usepackage{color}
  29 +\usepackage[usenames,dvipsnames]{xcolor}
  30 +\usepackage[margin=2.5cm,a4paper]{geometry}
  31 +\usepackage{enumitem}
  32 +\usepackage{fancyhdr}
  33 +\usepackage{tabularx}
  34 +
  35 +\usepackage{algorithm}
  36 +\usepackage[noend]{algpseudocode}
  37 +
  38 +\makeatletter
  39 +\def\BState{\State\hskip-\ALG@thistlm}
  40 +\makeatother
  41 +
  42 +\renewcommand{\maketitle}{}
  43 +\date{\today}
  44 +% \title{ATBD CES surface enneigée}
  45 +% \hypersetup{
  46 +% pdfkeywords={},
  47 +% pdfsubject={},
  48 +% pdfcreator={Emacs 24.3.1 (Org mode 8.2.4)}}
  49 +\begin{document}
  50 +
  51 +\maketitle
  52 +\pagestyle{fancy}
  53 +% \providecommand{\alert}[1]{\textbf{#1}}
  54 +% \setlist[itemize,1]{label=$\diamond$}
  55 +% \setlist[itemize,2]{label=$\ast$}
  56 +% \setlist[itemize,3]{label=$\star$}
  57 +% \setlist[itemize,4]{label=$\bullet$}
  58 +% \setlist[itemize,5]{label=$\circ$}
  59 +% \setlist[itemize,6]{label=$-$}
  60 +% \setlist[itemize,7]{label=$\cdot$}
  61 +% \setlist[itemize,8]{label=$\cdot$}
  62 +% \setlist[itemize,9]{label=$\cdot$}
  63 +% \renewlist{itemize}{itemize}{9}
  64 +\lhead[]{\includegraphics[width=0.1\textwidth]{./images/logo_cesbio.png}}
  65 +\rhead[]{\thepage}
  66 +% \cfoot{\textcolor{PineGreen}{copyright?}}
  67 +
  68 +\begin{titlepage}
  69 +\includegraphics[width=0.3\textwidth]{./images/logo_cesbio.png}
  70 +\hspace{5cm}
  71 +\includegraphics[width=0.3\textwidth]{./images/Theia_en.png}
  72 +
  73 +\vspace{3cm}
  74 +
  75 +
  76 +
  77 +\textcolor{PineGreen}{ \huge \bfseries Theia Land Data Centre\\ }
  78 +% \vspace{0.5cm}
  79 +\rule{\linewidth}{0.5mm}
  80 +\begin{center}
  81 +{ \huge \bfseries Algorithm theoretical basis documentation for the cold cloud removal in
  82 +the snow cover product (Let-it-snow)\\}
  83 +\rule{\linewidth}{0.5mm}
  84 +{ \large \bfseries Simon Gascoin (CNRS/CESBIO), Manuel Grizonnet (CNES), Germain Salgues (Magellium) \\ }
  85 +{ \large \bfseries V1.0 (Updated for LIS 1.5) - \today \\ }
  86 +
  87 +% \vspace{3cm}
  88 +% \includegraphics[width=1\textwidth]{./Images/Theia_en.png}
  89 +
  90 +
  91 +\end{center}
  92 +\end{titlepage}
  93 +
  94 +
  95 +\section{Description}\label{par:desc}
  96 +
  97 +This document describes the algorithm of this intermediate processing related to
  98 +the special case where high cold clouds are detected as snow area during the
  99 +first pass of the snow detection algorithm. The assumption is that only the
  100 +central area of the high cold cloud is flagged as snow because of their lower
  101 +temperature. In consequences, these miss detected areas will always be
  102 +surrounded by clouds.
  103 +
  104 +The following algorithm aims at detecting snow areas that are totally or
  105 +partially surrounded by clouds and correcting them.
  106 +
  107 +Please note that in few cases snow area surrounded by clouds may not be a miss
  108 +classification. For example, some mountain summits may actually be snow covered
  109 +while lower clouds surround them.
  110 +
  111 +
  112 +\section{Algorithm}\label{par:algo}
  113 +
  114 +\begin{algorithm}
  115 +\caption{Cold Cloud removal}\label{cold_cloud}
  116 +\begin{algorithmic}[1]
  117 +\Procedure{pass1.5(snow\_polygons)}{}
  118 +\If {\textit{rm\_snow\_inside\_cloud} is True}
  119 +\State \For{\textbf{each} $snow\_polygon$ in $snow\_polygons$}
  120 +\State \If {$area(snow\_polygon) > rm\_snow\_inside\_cloud\_min\_area$}
  121 +\State \State $dilatation(snow\_polygon,rm\_snow\_inside\_cloud\_dilation\_radius)$
  122 +\State \State \Comment{A dilation of rm\_snow\_inside\_cloud\_dilation\_radius pixels is
  123 + applied onto the current snow area.}
  124 +\State \State \Comment{The crown surrounding the current snow area is obtained by the subtraction of the newly dilated snow area and the initial snow area.}
  125 +\State \State \Comment{The crown pixel are compared to the cloud mask obtain during the
  126 +first pass, to obtain the percentage of cloud pixels surrounding the current
  127 +snow area ($cloud\_percent$).}
  128 +\State \State \If {$cloud\_percent > rm\_snow\_inside\_cloud\_threshold$}
  129 +\State \State \State $snow\_polygon = 0$ \Comment{The snow mask is updated to remove}
  130 +the current snow area
  131 +\State \State \State $cloud\_mask=1$ \Comment{The cloud mask is updated to add the current snow area as a new cloud area}
  132 +\State \State \EndIf
  133 +\State \EndIf
  134 +\State \EndFor
  135 +\State \Comment{The updated masks (both snow and cloud) are then used as inputs
  136 + for the next snow detection stet (pass 2).}
  137 +\EndIf
  138 +\EndProcedure
  139 +\end{algorithmic}
  140 +\end{algorithm}
  141 +
  142 +\end{document}
... ...