Writing
This commit is contained in:
parent
28f8fd2192
commit
75ada5520c
@ -1,94 +1,92 @@
|
||||
|
||||
\subsection{Polyline simplification}
|
||||
|
||||
\subsubsection{Heuristics}
|
||||
In this chapter several algorithms for polyline simplification will be explained. For each algorithm a short summary of the routine and the runtime complexity will. At the end a comparison will be drawn to determine the method used for benchmarking.
|
||||
|
||||
\paragraph{Positional errors}
|
||||
%In this chapter the history behind polyline simplification is shown. Several algorithm in the chronological order of their creation will be explained. At the end comparison will be drawn to determine the method used for benchmarking.
|
||||
|
||||
\paragraph{Length errors}
|
||||
\paragraph{n-th point algorithm} This algorithm is fairly simplistic. It was described in 1966 by Tobler. The routine is to select every n-th coordinate of the polyline to retain. The larger the value of n is, the greater the simplification will be.
|
||||
|
||||
\paragraph{Area Errors}
|
||||
%\begin{figure}
|
||||
% \centering
|
||||
% \includegraphics[width=.7\linewidth]{./images/shi-np.png}
|
||||
% \caption{Nth point algorithm}
|
||||
% \label{fig:algo-np}
|
||||
%\end{figure}
|
||||
|
||||
\subsubsection{Algorithms}
|
||||
Compression algorithms.
|
||||
\paragraph{The Random-point routine} is derived from the n-th point algorithm. It sections the line into parts containing n consecutive positions. From each section a random point is chosen to construnct the simplified line. \todo{O(n)}
|
||||
|
||||
\paragraph{n-th point algorithm}
|
||||
\paragraph{Radial distance algorithm} Another simple algorithm to reduce points clustered too closely together. The algorithm will sequentially go through the line and eliminate all points whose distance to the current key is shorter than a given tolerance limit. As soon as a point with greater distance is found, it becomes the new key. \todo{O(n)}
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=.7\linewidth]{./images/shi-np.png}
|
||||
\caption{Nth point algorithm}
|
||||
\label{fig:algo-np}
|
||||
\end{figure}
|
||||
|
||||
\paragraph{Random-point routine}
|
||||
|
||||
\paragraph{Radial distance algorithm}
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=.7\linewidth]{../lib/psimpl_v7_src/doc/psimpl_rd.png}
|
||||
\caption{Radial distance algorithm}
|
||||
\label{fig:algo-rd}
|
||||
\end{figure}
|
||||
%\begin{figure}
|
||||
% \centering
|
||||
% \includegraphics[width=.7\linewidth]{../lib/psimpl_v7_src/doc/psimpl_rd.png}
|
||||
% \caption{Radial distance algorithm}
|
||||
% \label{fig:algo-rd}
|
||||
%\end{figure}
|
||||
|
||||
|
||||
\paragraph{Perpendicular distance algorithm}
|
||||
\paragraph{Perpendicular distance algorithm} Again a tolerance limit is given. The measure to check against is the perpendicular distance of a point to the line connecting its two neighbors. All points that exceed this limit are retained. \todo{O(n)}
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=.7\linewidth]{../lib/psimpl_v7_src/doc/psimpl_pd.png}
|
||||
\caption{Perpendicular distance algorithm}
|
||||
\label{fig:algo-pd}
|
||||
\end{figure}
|
||||
%\begin{figure}
|
||||
% \centering
|
||||
% \includegraphics[width=.7\linewidth]{../lib/psimpl_v7_src/doc/psimpl_pd.png}
|
||||
% \caption{Perpendicular distance algorithm}
|
||||
% \label{fig:algo-pd}
|
||||
%\end{figure}
|
||||
|
||||
|
||||
\paragraph{Reumann-Witkam simplification}
|
||||
\paragraph{Reumann-Witkam simplification} As the name implies this algorithm was developed by Reumann and Witkam. In 1974 they described the routine that constructs a "corridor/search area" by placing two parallels line in the direction of its initial tangent. The distance from this segment is user specified. Then the successive points will be checked until a point outside of this area is found. Its predecessor becomes a key and the two points mark the new tangent for the search area. This procedure is repeated until the last point is reached. \todo{O(n)}
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=.7\linewidth]{../lib/psimpl_v7_src/doc/psimpl_rw.png}
|
||||
\caption{Reuman-Witkam algorithm}
|
||||
\label{fig:algo-rw}
|
||||
\end{figure}
|
||||
%\begin{figure}
|
||||
% \centering
|
||||
% \includegraphics[width=.7\linewidth]{../lib/psimpl_v7_src/doc/psimpl_rw.png}
|
||||
% \caption{Reuman-Witkam algorithm}
|
||||
% \label{fig:algo-rw}
|
||||
%\end{figure}
|
||||
|
||||
|
||||
\paragraph{Opheim simplification}
|
||||
\paragraph{The Opheim simplification} Opheim extends the Reumann-Witkam algorithm in 1982 by constraining the search area. To do that two parameters \textsf{dmin} and \textsf{dmax} are given. From the key point on the last point inside a radial distance search region defined by \textsf{dmin} is taken to form the direction of the search corridor. If there is no point inside this region the subsequent point is taken. Then the process from the Reumann-Witkam algorithm is applied with the corridor constrained to a maximum distance of \textsf{dmax}. \todo{O(n)}
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=.7\linewidth]{../lib/psimpl_v7_src/doc/psimpl_op.png}
|
||||
\caption{Opheim algorithm}
|
||||
\label{fig:algo-op}
|
||||
\end{figure}
|
||||
%\begin{figure}
|
||||
% \centering
|
||||
% \includegraphics[width=.7\linewidth]{../lib/psimpl_v7_src/doc/psimpl_op.png}
|
||||
% \caption{Opheim algorithm}
|
||||
% \label{fig:algo-op}
|
||||
%\end{figure}
|
||||
|
||||
|
||||
\paragraph{Lang simplification}
|
||||
\paragraph{Lang simplification} Lang described this algorithm in 1969. The search area is defined by a specified number of points too look ahead of the key point. A line is constructed from the key point to the last point in the search area. If the perpendicular distance of all intermediate points to this line is below a tolerance limit, they will be removed and the last point is the new key. Otherwise the search area is shrunk by excluding this last point until the requirement is met or there are no more intermediate points. \todo{O(??) maybe $O(m^n)$}
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=.7\linewidth]{../lib/psimpl_v7_src/doc/psimpl_la.png}
|
||||
\caption{Lang algorithm}
|
||||
\label{fig:algo-la}
|
||||
\end{figure}
|
||||
%\begin{figure}
|
||||
% \centering
|
||||
% \includegraphics[width=.7\linewidth]{../lib/psimpl_v7_src/doc/psimpl_la.png}
|
||||
% \caption{Lang algorithm}
|
||||
% \label{fig:algo-la}
|
||||
%\end{figure}
|
||||
|
||||
%\paragraph{Jenks simplification}
|
||||
|
||||
\paragraph{Douglas-Peucker simplification} \todo{O(n*m)}
|
||||
|
||||
%\begin{figure}
|
||||
% \centering
|
||||
% \includegraphics[width=.7\linewidth]{../lib/psimpl_v7_src/doc/psimpl_dp.png}
|
||||
% \caption{Douglas Peucker algorithm}
|
||||
% \label{fig:algo-dp}
|
||||
%\end{figure}
|
||||
|
||||
|
||||
\paragraph{Douglas-Peucker simplification}
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=.7\linewidth]{../lib/psimpl_v7_src/doc/psimpl_dp.png}
|
||||
\caption{Douglas Peucker algorithm}
|
||||
\label{fig:algo-dp}
|
||||
\end{figure}
|
||||
\paragraph{with reduction parameter} \todo{O(n*m)}
|
||||
|
||||
|
||||
\paragraph{with reduction parameter}
|
||||
|
||||
\paragraph{Jenks simplification}
|
||||
|
||||
\paragraph{Visvalingam-Whyatt simplification}
|
||||
|
||||
\paragraph{Zhao-Saalfeld simplification}
|
||||
|
||||
\subsubsection{Summary}
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1,27 +0,0 @@
|
||||
\contentsline {figure}{\numberline {1}{\ignorespaces Nth point algorithm}}{7}{figure.1}%
|
||||
\contentsline {figure}{\numberline {2}{\ignorespaces Radial distance algorithm}}{8}{figure.2}%
|
||||
\contentsline {figure}{\numberline {3}{\ignorespaces Perpendicular distance algorithm}}{9}{figure.3}%
|
||||
\contentsline {figure}{\numberline {4}{\ignorespaces Reuman-Witkam algorithm}}{9}{figure.4}%
|
||||
\contentsline {figure}{\numberline {5}{\ignorespaces Opheim algorithm}}{10}{figure.5}%
|
||||
\contentsline {figure}{\numberline {6}{\ignorespaces Lang algorithm}}{10}{figure.6}%
|
||||
\contentsline {figure}{\numberline {7}{\ignorespaces Douglas Peucker algorithm}}{11}{figure.7}%
|
||||
\contentsline {figure}{\numberline {8}{\ignorespaces UML diagram of the benchmarking application}}{21}{figure.8}%
|
||||
\contentsline {figure}{\numberline {9}{\ignorespaces The user interface for benchmarking application. (not final)}}{23}{figure.9}%
|
||||
\contentsline {figure}{\numberline {10}{\ignorespaces The state model of the application}}{28}{figure.10}%
|
||||
\contentsline {figure}{\numberline {11}{\ignorespaces The user interface for the algorithm comparison. (not final)}}{29}{figure.11}%
|
||||
\contentsline {figure}{\numberline {12}{\ignorespaces Simplify.wasm vs. Simplify.js benchmark result of Windows device with Chrome browser on dataset "Simplify.js example" without high quality mode.}}{32}{figure.12}%
|
||||
\contentsline {figure}{\numberline {13}{\ignorespaces Simplify.wasm vs. Simplify.js benchmark result of Windows device with Firefox browser on dataset "Simplify.js example" without high quality mode.}}{32}{figure.13}%
|
||||
\contentsline {figure}{\numberline {14}{\ignorespaces Simplify.wasm vs. Simplify.js benchmark result of Windows device with Edge browser on dataset "Simplify.js example" without high quality mode.}}{33}{figure.14}%
|
||||
\contentsline {figure}{\numberline {15}{\ignorespaces Simplify.wasm vs. Simplify.js benchmark result of Windows device with Chrome browser on dataset "Simplify.js example" with high quality mode.}}{33}{figure.15}%
|
||||
\contentsline {figure}{\numberline {16}{\ignorespaces Simplify.wasm vs. Simplify.js benchmark result of Windows device with Firefox browser on dataset "Simplify.js example" with high quality mode.}}{34}{figure.16}%
|
||||
\contentsline {figure}{\numberline {17}{\ignorespaces Simplify.wasm vs. Simplify.js benchmark result of Windows device with Edge browser on dataset "Simplify.js example" with high quality mode.}}{34}{figure.17}%
|
||||
\contentsline {figure}{\numberline {18}{\ignorespaces Simplify.wasm runtime analysis benchmark result of Windows device with Edge browser on dataset "Simplify.js example" without high quality mode.}}{35}{figure.18}%
|
||||
\contentsline {figure}{\numberline {19}{\ignorespaces Simplify.wasm runtime analysis benchmark result of Windows device with Edge browser on dataset "Simplify.js example" with high quality mode.}}{35}{figure.19}%
|
||||
\contentsline {figure}{\numberline {20}{\ignorespaces Simplify.wasm vs. Simplify.js benchmark result of MacBook Pro device with Safari browser on dataset "Bavaria outline" without high quality mode.}}{36}{figure.20}%
|
||||
\contentsline {figure}{\numberline {21}{\ignorespaces Simplify.wasm vs. Simplify.js benchmark result of MacBook Pro device with Firefox browser on dataset "Bavaria outline" without high quality mode.}}{36}{figure.21}%
|
||||
\contentsline {figure}{\numberline {22}{\ignorespaces Simplify.wasm vs. Simplify.js benchmark result of MacBook Pro device with Safari browser on dataset "Bavaria outline" with high quality mode.}}{37}{figure.22}%
|
||||
\contentsline {figure}{\numberline {23}{\ignorespaces Simplify.wasm vs. Simplify.js benchmark result of MacBook Pro device with Firefox browser on dataset "Bavaria outline" with high quality mode.}}{37}{figure.23}%
|
||||
\contentsline {figure}{\numberline {24}{\ignorespaces Simplify.wasm vs. Simplify.js benchmark result of Ubuntu device with Firefox browser on dataset "Bavaria outline" without high quality mode.}}{38}{figure.24}%
|
||||
\contentsline {figure}{\numberline {25}{\ignorespaces Turf.js simplify benchmark result of Ubuntu device with Firefox browser on dataset "Bavaria outline" without high quality mode.}}{38}{figure.25}%
|
||||
\contentsline {figure}{\numberline {26}{\ignorespaces Simplify.wasm vs. Simplify.js benchmark result of Ubuntu device with Firefox browser on dataset "Bavaria outline" with high quality mode.}}{39}{figure.26}%
|
||||
\contentsline {figure}{\numberline {27}{\ignorespaces Turf.js simplify benchmark result of Ubuntu device with Firefox browser on dataset "Bavaria outline" with high quality mode.}}{39}{figure.27}%
|
BIN
thesis/main.pdf
BIN
thesis/main.pdf
Binary file not shown.
Loading…
Reference in New Issue
Block a user