more problematic
This commit is contained in:
parent
2d9242287b
commit
b671eab5ce
129
mj-msc.tex
129
mj-msc.tex
@ -124,28 +124,27 @@ is more tricky with natural features that have many bends, like coastlines,
|
|||||||
rivers or forest boundaries.
|
rivers or forest boundaries.
|
||||||
|
|
||||||
To create a small-scale map from a large-scale data source, features need to be
|
To create a small-scale map from a large-scale data source, features need to be
|
||||||
generalized, i.e. detail should be reduced. While performing the generalization, it
|
simplified, i.e., detail should be reduced. While performing the
|
||||||
is important to retain the "defining" shape of the original feature. Otherwise,
|
simplification, it is important to retain the "defining" shape of the original
|
||||||
if the generalized feature looks too different than the original, the result
|
feature. Otherwise, if the simplified feature looks too different than the
|
||||||
will look unrealistic.
|
original, the result will look unrealistic.
|
||||||
|
|
||||||
For example, if a river is nearly straight, it should be nearly straight after
|
For example, if a river is nearly straight, it should remain such after
|
||||||
generalization. A too straightened river will look like a canal, and the other
|
simplification. An overly straightened river will look like a canal, and the
|
||||||
way around --- too curvy would not reflect the natural shape. Conversely, if
|
other way around --- too curvy would not reflect the natural shape. Conversely,
|
||||||
the river is highly wiggly, the number of bends should be reduced, but not
|
if the river originally is highly wiggly, the number of bends should be
|
||||||
removed altogether.
|
reduced, but not removed altogether.
|
||||||
|
|
||||||
Generalization problem for other objects can often be solved by other
|
Simplification problem for other objects can often be solved by other
|
||||||
non-geometric means:
|
non-geometric means:
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Towns and cities can be filtered and generalized by number of
|
\item Towns and cities can be filtered by number of inhabitants.
|
||||||
inhabitants.
|
|
||||||
\item Roads can be eliminated by the road length, number of lanes, or
|
\item Roads can be eliminated by the road length, number of lanes, or
|
||||||
classification of the road (local, regional, international).
|
classification of the road (local, regional, international).
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
To sum up, natural line generalization problem can be viewed as a task of
|
To sum up, natural line simplification problem can be viewed as a task of
|
||||||
finding a delicate balance between two competing goals:
|
finding a delicate balance between two competing goals:
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
@ -153,13 +152,71 @@ finding a delicate balance between two competing goals:
|
|||||||
\item Retain enough detail, so the original is still recognize-able.
|
\item Retain enough detail, so the original is still recognize-able.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
Given the discussed complexities, a fine line between under-generalization
|
Given the discussed complexities, a fine line between under-simplification
|
||||||
(leaving object as-is) and over-generalization (making a straight line) needs
|
(leaving object as-is) and over-simplification (making a straight line) needs
|
||||||
to be found. Therein lies the complexity of generalization algorithms: all have
|
to be found. Therein lies the complexity of simplification algorithms: all have
|
||||||
different trade-offs.
|
different trade-offs.
|
||||||
|
|
||||||
\section{Literature review and problematic}
|
\section{Literature Review and Problematic}
|
||||||
\label{sec:literature-review}
|
\label{sec:literature-review-problematic}
|
||||||
|
|
||||||
|
\subsection{Simplification, Cartographic Simplification and Generalization}
|
||||||
|
|
||||||
|
It is important to note the distinction between simplification, line
|
||||||
|
generalization and cartographic generalization.
|
||||||
|
|
||||||
|
Simplification reduces object's detail in isolation, not taking object's
|
||||||
|
natural properties or surrounding objects into account. For example, if a
|
||||||
|
river is simplified, it may have an approximate shape of the original river,
|
||||||
|
but lose some shapes that define it. For example:
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
|
||||||
|
\item Low-water rivers in slender slopes have many small bends next to each
|
||||||
|
other. A non-cartographic line simplification may remove all of them, thus
|
||||||
|
losing an important river's characteristic feature.
|
||||||
|
|
||||||
|
\item Insignificant river bend river over a long distance differs
|
||||||
|
significantly from a completely straight canal. Non-cartographic line
|
||||||
|
simplification may replace a long and small bend with a straight line,
|
||||||
|
making the river more similar to a canal than a river.
|
||||||
|
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
In other words, simplification simplifies the line ignoring its cartographic
|
||||||
|
features. It is works well when the features are man-made (e.g., roads,
|
||||||
|
administrative boundaries, buildings)
|
||||||
|
|
||||||
|
|
||||||
|
Line simplification solves a
|
||||||
|
|
||||||
|
Simplification is most frequently used when the topology
|
||||||
|
mismatches are invisible or not a concern (huge scale maps), or when creating,
|
||||||
|
for example, river-only maps.
|
||||||
|
|
||||||
|
Conversely, cartographic generalization takes into account the surrounding
|
||||||
|
object's topology. That way, when a river is generalized, objects around it are
|
||||||
|
generalized with it. Keeping the river as an example:
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
|
||||||
|
\item "Minor" bridges will be removed. Important bridges will be generalized
|
||||||
|
together with the river and remain on the river. Roads or railways that
|
||||||
|
cross the bridge will be generalized together, and will make sense (a
|
||||||
|
railway will be relatively straight when crossing the river).
|
||||||
|
|
||||||
|
\item Towns will either disappear (if they are too small for the given
|
||||||
|
scale), or retain in the correct river side.
|
||||||
|
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
"Cartographic Line Generalization" is in the middle: it accepts
|
||||||
|
|
||||||
|
In essence, cartographic generalization cannot be done in isolation. However,
|
||||||
|
full automatic feature generalization is not yet a solved problem <TODO:
|
||||||
|
Reference needed>. This paper examines {\WM}'s \titlecite{wang1998line}, which
|
||||||
|
has "generalization" in its title, but is a simplification following the rules
|
||||||
|
above.
|
||||||
|
|
||||||
A number of cartographic line generalization algorithms have been researched.
|
A number of cartographic line generalization algorithms have been researched.
|
||||||
The "classical" ones are {\DP}\cite{douglas1973algorithms} and
|
The "classical" ones are {\DP}\cite{douglas1973algorithms} and
|
||||||
@ -172,13 +229,15 @@ which only theorize, but do not provide an implementation.
|
|||||||
|
|
||||||
\subsection{Available algorithms}
|
\subsection{Available algorithms}
|
||||||
|
|
||||||
|
\subsection{Simplification requirements}
|
||||||
|
|
||||||
\subsubsection{{\DP}, {\VW} and Chaikin's}
|
\subsubsection{{\DP}, {\VW} and Chaikin's}
|
||||||
|
|
||||||
{\DP}\cite{douglas1973algorithms} and {\VW}\cite{visvalingam1993line} are
|
{\DP}\cite{douglas1973algorithms} and {\VW}\cite{visvalingam1993line} are
|
||||||
"classical" line generalization computer graphics algorithms. They are
|
"classical" line simplification computer graphics algorithms. They are
|
||||||
relatively simple to implement, require few runtime resources. Both of them
|
relatively simple to implement, require few runtime resources. Both of them
|
||||||
accept only a single parameter, based on desired scale of the map, which makes
|
accept a single parameter, based on desired scale of the map, which makes them
|
||||||
them straightforward to adjust for different scales.
|
straightforward to adjust for different scales.
|
||||||
|
|
||||||
Both algorithms are part of PostGIS, a free-software GIS suite:
|
Both algorithms are part of PostGIS, a free-software GIS suite:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
@ -194,12 +253,11 @@ line smoothing algorithm\cite{chaikin1974algorithm} via
|
|||||||
\href{https://postgis.net/docs/ST_ChaikinSmoothing.html}{PostGIS
|
\href{https://postgis.net/docs/ST_ChaikinSmoothing.html}{PostGIS
|
||||||
\texttt{ST\_ChaikinSmoothing}}.
|
\texttt{ST\_ChaikinSmoothing}}.
|
||||||
|
|
||||||
To use in generalization examples, we will use two rivers: Šalčia and Visinčia.
|
To use in generalization examples, we will use two rivers: Šalčia and Visinčia
|
||||||
Figure~\ref{fig:salvis-25} illustrates the original two rivers without any
|
(Visinčia flows into Šalčia). These rivers were chosen, because they have both
|
||||||
processing.
|
large and small bends, and thus convenient to analyze for both small and large
|
||||||
|
scale generalization. Figure~\ref{fig:salvis-25} illustrates the original two
|
||||||
These rivers were chosen, because they have both large and small bends, and
|
rivers without any simplification.
|
||||||
thus convenient to analyze for both small and large scale generalization.
|
|
||||||
|
|
||||||
\begin{figure}[h]
|
\begin{figure}[h]
|
||||||
\centering
|
\centering
|
||||||
@ -224,11 +282,12 @@ thus convenient to analyze for both small and large scale generalization.
|
|||||||
\label{fig:salvis-50-250}
|
\label{fig:salvis-50-250}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
Same rivers, unprocessed, but with higher density (scales 1:\numprint{50000}
|
Same rivers, unprocessed, but in higher scales (1:\numprint{50000} and
|
||||||
and 1:\numprint{250000}) are depicted in figure~\onpage{fig:salvis-50-250}.
|
1:\numprint{250000}) are depicted in figure~\onpage{fig:salvis-50-250}. Some
|
||||||
Some river features are so compact that a reasonably thin line depicting the
|
river features are so compact that a reasonably thin line depicting the river
|
||||||
river is touching itself, creating a thicker line. As a result, generalization
|
is touching itself, creating a thicker line. We can assume that some
|
||||||
for this river for a smaller scale is worthy.
|
simplification for scale 1:\numprint{50000} and especially for
|
||||||
|
1:\numprint{250000} are worthwhile.
|
||||||
|
|
||||||
\begin{figure}[h]
|
\begin{figure}[h]
|
||||||
\centering
|
\centering
|
||||||
@ -246,7 +305,7 @@ for this river for a smaller scale is worthy.
|
|||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
Figure~\onpage{fig:salvis-generalized-50k} illustrates the same river bend, but
|
Figure~\onpage{fig:salvis-generalized-50k} illustrates the same river bend, but
|
||||||
generalized using {\DP} and {\VW} algorithms. The resulting lines are jagged,
|
simplified using {\DP} and {\VW} algorithms. The resulting lines are jagged,
|
||||||
thus the resulting line looks unlike a real river. To smoothen the jaggedness,
|
thus the resulting line looks unlike a real river. To smoothen the jaggedness,
|
||||||
traditionally, Chaikin's\cite{chaikin1974algorithm} is applied after
|
traditionally, Chaikin's\cite{chaikin1974algorithm} is applied after
|
||||||
generalization, illustrated in
|
generalization, illustrated in
|
||||||
@ -284,7 +343,7 @@ figure~\onpage{fig:salvis-generalized-chaikin-50k}.
|
|||||||
|
|
||||||
The resulting generalized and smoothened example
|
The resulting generalized and smoothened example
|
||||||
(figure~\onpage{fig:salvis-generalized-chaikin-50k}) yields a more
|
(figure~\onpage{fig:salvis-generalized-chaikin-50k}) yields a more
|
||||||
aesthetically pleasant result, however, it obscures natural river features.
|
aesthetically pleasing result, however, it obscures natural river features.
|
||||||
Given the absence of rocks, the only natural features that influence the river
|
Given the absence of rocks, the only natural features that influence the river
|
||||||
direction are topographic:
|
direction are topographic:
|
||||||
|
|
||||||
@ -340,7 +399,7 @@ have emerged. These modern replacements fall into roughly two categories:
|
|||||||
as {\WM}'s algorithm.
|
as {\WM}'s algorithm.
|
||||||
|
|
||||||
\item Mathematical shape transformation which yields a more cartographic
|
\item Mathematical shape transformation which yields a more cartographic
|
||||||
result. E.g. \titlecite{jiang2003line},
|
result. E.g., \titlecite{jiang2003line},
|
||||||
\titlecite{dyken2009simultaneous}, \titlecite{mustafa2006dynamic},
|
\titlecite{dyken2009simultaneous}, \titlecite{mustafa2006dynamic},
|
||||||
\titlecite{nollenburg2008morphing}.
|
\titlecite{nollenburg2008morphing}.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user