2020-05-25 15:21:43 +03:00
|
|
|
\documentclass[a4paper]{article}
|
2020-05-21 11:25:14 +03:00
|
|
|
\usepackage[L7x,T1]{fontenc}
|
|
|
|
\usepackage[utf8]{inputenc}
|
2020-05-21 22:01:57 +03:00
|
|
|
\usepackage{a4wide}
|
2020-05-21 11:25:14 +03:00
|
|
|
\usepackage{csquotes}
|
|
|
|
\usepackage[english]{babel}
|
|
|
|
\usepackage[maxbibnames=99,style=authoryear]{biblatex}
|
2020-05-25 15:21:43 +03:00
|
|
|
\usepackage[pdfusetitle]{hyperref}
|
2020-05-25 17:37:58 +03:00
|
|
|
\usepackage{enumitem}
|
2020-05-21 11:25:14 +03:00
|
|
|
\addbibresource{bib.bib}
|
|
|
|
\usepackage{caption}
|
|
|
|
\usepackage{subcaption}
|
|
|
|
\usepackage{gensymb}
|
|
|
|
\usepackage{varwidth}
|
2020-05-25 12:32:45 +03:00
|
|
|
\usepackage{tabularx}
|
2020-05-21 11:25:14 +03:00
|
|
|
\usepackage{tikz}
|
|
|
|
\usetikzlibrary{er,positioning}
|
2020-05-22 10:19:17 +03:00
|
|
|
\input{version}
|
2020-05-21 11:25:14 +03:00
|
|
|
|
2020-05-25 17:37:58 +03:00
|
|
|
\newcommand{\DP}{Douglas \& Peucker}
|
2020-05-25 18:02:48 +03:00
|
|
|
\newcommand{\VW}{Visvalingam--Whyatt}
|
2020-05-25 17:37:58 +03:00
|
|
|
|
2020-05-21 11:25:14 +03:00
|
|
|
\title{
|
2020-05-21 11:40:20 +03:00
|
|
|
Cartografic Generalization of Lines \\
|
|
|
|
(example of rivers) \\ \vspace{4mm}
|
2020-05-21 11:25:14 +03:00
|
|
|
}
|
|
|
|
|
2020-05-21 22:01:57 +03:00
|
|
|
\iffalse
|
2020-05-25 11:40:16 +03:00
|
|
|
https://bost.ocks.org/mike/simplify/
|
2020-05-25 14:52:38 +03:00
|
|
|
http://bl.ocks.org/msbarry/9152218
|
2020-05-25 11:40:16 +03:00
|
|
|
|
2020-05-22 10:19:17 +03:00
|
|
|
small scale: 1:XXXXXX
|
|
|
|
large scale: 1:XXX
|
|
|
|
|
2020-05-21 22:01:57 +03:00
|
|
|
a4: 210x297mm
|
|
|
|
a6: 105x148xmm
|
|
|
|
a7: 74x105mm
|
|
|
|
a8: 52x74mm
|
2020-05-22 10:19:17 +03:00
|
|
|
|
|
|
|
connect rivers first to a single polylines:
|
|
|
|
- some algs can preserve connectivity, some not.
|
|
|
|
|
|
|
|
ideal hypothesis: mueller algorithm + topology may fully realize cartographic generalization tasks.
|
|
|
|
|
|
|
|
what scales and what distances?
|
2020-05-21 22:01:57 +03:00
|
|
|
\fi
|
|
|
|
|
2020-05-21 11:25:14 +03:00
|
|
|
\author{Motiejus Jakštys}
|
|
|
|
|
2020-05-22 10:19:17 +03:00
|
|
|
\date{
|
|
|
|
\vspace{10mm}
|
|
|
|
Version: \VCDescribe \\ \vspace{4mm}
|
|
|
|
Generated At: \GeneratedAt
|
|
|
|
}
|
2020-05-21 11:25:14 +03:00
|
|
|
|
|
|
|
\begin{document}
|
|
|
|
\maketitle
|
|
|
|
|
|
|
|
\newpage
|
|
|
|
|
|
|
|
\section{Abstract}
|
|
|
|
\label{sec:abstract}
|
|
|
|
|
2020-05-21 16:41:29 +03:00
|
|
|
Current open-source line generalization solutions have their roots in
|
|
|
|
mathematics and geometry, thus emit poor cartographic output. Therefore, if one
|
2020-05-25 11:40:16 +03:00
|
|
|
is using open-source technology to create a small-scale map, downscaled lines
|
2020-05-21 16:41:29 +03:00
|
|
|
(e.g. rivers) will not be professionally scale-adjusted. This paper explores
|
|
|
|
line generalization algorithms and suggests one for an avid GIS developer to
|
|
|
|
implement. Once it is usable from within open-source GIS software (e.g. QGIS or
|
2020-05-25 11:40:16 +03:00
|
|
|
PostGIS), rivers on these small-scale maps will look professionally downscaled.
|
2020-05-21 11:40:20 +03:00
|
|
|
|
2020-05-21 11:25:14 +03:00
|
|
|
\section{Introduction}
|
|
|
|
\label{sec:introduction}
|
|
|
|
|
2020-05-25 11:40:16 +03:00
|
|
|
Cartographic generalization is one of the key processes of creating small-scale
|
2020-05-21 13:31:18 +03:00
|
|
|
maps: how can one approximate object features, without losing its main
|
2020-05-21 16:41:29 +03:00
|
|
|
cartographic properties? The problem is universally challenging across many
|
|
|
|
geographical entities (\cite{muller1991generalization},
|
|
|
|
\cite{mcmaster1992generalization}). This paper focuses on line generalization,
|
|
|
|
using natural rivers as examples.
|
2020-05-21 13:31:18 +03:00
|
|
|
|
2020-05-21 16:41:29 +03:00
|
|
|
Line generalization algorithms are well studied, tested and implemented, but
|
|
|
|
they expose deficiencies in large-scale reduction (\cite{monmonier1986toward},
|
|
|
|
\cite{mcmaster1993spatial}). Most of these techniques are based on mathematical
|
|
|
|
shape representation, rather than cartographic characteristics of the line.
|
2020-05-21 13:31:18 +03:00
|
|
|
|
2020-05-25 11:40:16 +03:00
|
|
|
A number of cartographic line generalization algorithms have been researched,
|
|
|
|
which claim to better process cartographic objects like lines. These fall into
|
|
|
|
two rough categories:
|
|
|
|
\begin{itemize}
|
|
|
|
\item Cartographic knowledge was encoded to an algorithm (bottom-up
|
|
|
|
approach). One among these are \cite{wang1998line}.
|
|
|
|
\item Mathematical shape transformation which yields a more
|
|
|
|
cartographically suitable down-scaling. E.g. \cite{jiang2003line},
|
|
|
|
\cite{dyken2009simultaneous}, \cite{mustafa2006dynamic},
|
|
|
|
\cite{nollenburg2008morphing}.
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
During research, code has been written for all of the algorithms above,
|
|
|
|
however, it is nowhere to be found completely, or in a usable form. There is
|
|
|
|
one exception: \cite{wang1998line} is available for general use in a commercial
|
|
|
|
product, but the author of this paper does not have means to try it.
|
|
|
|
|
|
|
|
Therefore, this paper will be comparing algorithms that readily available for
|
|
|
|
general public:
|
|
|
|
\begin{itemize}
|
|
|
|
\item \cite{douglas1973algorithms} via
|
|
|
|
\href{https://postgis.net/docs/ST_Simplify.html}{PostGIS Simplify}.
|
|
|
|
|
|
|
|
\item \cite{visvalingam1993line} via
|
|
|
|
\href{https://postgis.net/docs/ST_SimplifyVW.html}{PostGIS SimplifyVW}.
|
|
|
|
\end{itemize}
|
2020-05-21 13:31:18 +03:00
|
|
|
|
2020-05-25 18:02:48 +03:00
|
|
|
This article will be using Lakaja and large part of Žeimena (see
|
|
|
|
figure~\ref{fig:zeimena} on page~\pageref{fig:zeimena}). This location was
|
2020-05-25 17:37:58 +03:00
|
|
|
chosen because the river exhibits both both straight and curved shape, is a
|
2020-05-22 19:44:21 +03:00
|
|
|
combination of two curly rivers, and author's familiarity with the location.
|
2020-05-21 16:41:29 +03:00
|
|
|
|
2020-05-25 18:02:48 +03:00
|
|
|
\begin{figure}[h]
|
2020-05-21 16:41:29 +03:00
|
|
|
\centering
|
2020-05-22 10:19:17 +03:00
|
|
|
\includegraphics[width=148mm]{zeimena-pretty}
|
2020-05-22 19:44:21 +03:00
|
|
|
\caption{Lakaja and Žeimena}
|
2020-05-21 18:20:44 +03:00
|
|
|
\label{fig:zeimena}
|
2020-05-21 16:41:29 +03:00
|
|
|
\end{figure}
|
|
|
|
|
2020-05-25 18:02:48 +03:00
|
|
|
\section{Visually comparing {\DP} and {\VW}}
|
2020-05-21 16:41:29 +03:00
|
|
|
|
2020-05-25 18:02:48 +03:00
|
|
|
To visually evaluate the Žeimena sample, a few examples for {\DP} and {\VW}
|
|
|
|
were created using the following parameters:
|
2020-05-25 17:37:58 +03:00
|
|
|
|
|
|
|
\begin{enumerate}[label=(\Roman*)]
|
|
|
|
\item {\DP} tolerance: $tolerance := 125 * 2^n, n = 0,1,...,5$.
|
|
|
|
\item {\VW} tolerance: $vwtolerance = tolerance ^ 2$\label{itm:2}.
|
|
|
|
\end{enumerate}
|
|
|
|
|
|
|
|
Item~\ref{itm:2} requires explanation. Tolerance for {\DP} is specified in
|
|
|
|
linear units, in this case, meters. Tolerance for {\VW} is specified in areal
|
2020-05-25 18:02:48 +03:00
|
|
|
units, in this case, $m^2$. As author was not able to locate formal comparisons
|
|
|
|
between the two (i.e. how to calculate one tolerance value from the other, so
|
|
|
|
the results are comparable?), {\DP} tolerance was arbitrarily squared and fed
|
|
|
|
to {\VW}. To author's eye, this provides comparable and reasonable results,
|
|
|
|
though could be researched.
|
|
|
|
|
|
|
|
As can be observed in table~\ref{tab:dp-vs-vw} on page~\pageref{tab:dp-vs-vw},
|
|
|
|
both simplication algorithms convert bends to chopped lines. This is especially
|
|
|
|
visible in tolerances 250 and 500. In a more robust simplification algorithm,
|
|
|
|
the larger tolerance, the larger the bends on the original map should be
|
|
|
|
retained.
|
|
|
|
|
|
|
|
\begin{figure}[h]
|
|
|
|
\renewcommand{\tabularxcolumn}[1]{>{\center\small}m{#1}}
|
|
|
|
\begin{tabularx}{\textwidth}{ p{1.5cm} | X | X | }
|
|
|
|
Tolerance &
|
|
|
|
Douglas \& Peucker &
|
|
|
|
Visvalingam-Whyatt \tabularnewline \hline
|
|
|
|
|
|
|
|
125 &
|
|
|
|
\includegraphics[width=\linewidth]{douglas-125} &
|
|
|
|
\includegraphics[width=\linewidth]{visvalingam-125} \tabularnewline \hline
|
|
|
|
|
|
|
|
250 &
|
|
|
|
\includegraphics[width=.5\linewidth]{douglas-250} &
|
|
|
|
\includegraphics[width=.5\linewidth]{visvalingam-250} \tabularnewline \hline
|
|
|
|
|
|
|
|
500 &
|
|
|
|
\includegraphics[width=.25\linewidth]{douglas-500} &
|
|
|
|
\includegraphics[width=.25\linewidth]{visvalingam-500} \tabularnewline \hline
|
|
|
|
|
|
|
|
1000 &
|
|
|
|
\includegraphics[width=.125\linewidth]{douglas-1000} &
|
|
|
|
\includegraphics[width=.125\linewidth]{visvalingam-1000} \tabularnewline \hline
|
|
|
|
|
|
|
|
2000 &
|
|
|
|
\includegraphics[width=.0625\linewidth]{douglas-2000} &
|
|
|
|
\includegraphics[width=.0625\linewidth]{visvalingam-2000} \tabularnewline \hline
|
|
|
|
|
|
|
|
4000 &
|
|
|
|
\includegraphics[width=.0625\linewidth]{douglas-4000} &
|
|
|
|
\includegraphics[width=.0625\linewidth]{visvalingam-4000} \tabularnewline \hline
|
|
|
|
\end{tabularx}
|
|
|
|
\label{tab:dp-vs-vw}
|
|
|
|
\caption{{\DP} and {\VW} side-by-side visual comparison.}
|
|
|
|
\end{figure}
|
2020-05-25 12:32:45 +03:00
|
|
|
|
2020-05-25 18:09:44 +03:00
|
|
|
\section{Suggested alternative}
|
2020-05-21 11:25:14 +03:00
|
|
|
\label{sec:my_idea}
|
|
|
|
|
2020-05-25 18:09:44 +03:00
|
|
|
\section{Related Work and future suggestions}
|
2020-05-21 11:25:14 +03:00
|
|
|
\label{sec:related_work}
|
|
|
|
|
2020-05-21 16:41:29 +03:00
|
|
|
\cite{stanislawski2012automated} studied different types of metric assessments,
|
|
|
|
such as Hausdorff distance, segment length, vector shift, surface displacement,
|
2020-05-25 11:40:16 +03:00
|
|
|
and tortuosity for the generalization of linear geographic elements. This
|
2020-05-21 16:41:29 +03:00
|
|
|
research can provide references to the appropriate settings of the line
|
|
|
|
generalization parameters for the maps at various scales.
|
|
|
|
|
2020-05-25 18:09:44 +03:00
|
|
|
As noted in item~\ref{itm:2} on page~\pageref{itm:2}, it would be useful to
|
|
|
|
have a formula mapping {\DP} tolerance to {\VW}. That way, visual comparisons
|
|
|
|
between line simplification algorithms could be more objective.
|
|
|
|
|
2020-05-21 11:25:14 +03:00
|
|
|
\section{Conclusions and Further Work}
|
|
|
|
\label{sec:conclusions_and_further_work}
|
|
|
|
|
|
|
|
\printbibliography
|
|
|
|
|
|
|
|
\end{document}
|