example bends generalized
This commit is contained in:
parent
94f0e54ea6
commit
6d1dd019d7
@ -4,7 +4,7 @@ GEN = $(addsuffix .pdf, \
|
|||||||
$(addprefix zeimena-visvalingam-,$(TOLERANCES)))
|
$(addprefix zeimena-visvalingam-,$(TOLERANCES)))
|
||||||
|
|
||||||
mj-referatas.pdf: mj-referatas.tex version.tex bib.bib zeimena-pretty.pdf \
|
mj-referatas.pdf: mj-referatas.tex version.tex bib.bib zeimena-pretty.pdf \
|
||||||
sinewave-douglas-100.pdf $(GEN)
|
sinewave.pdf sinewave-douglas-5.pdf $(GEN)
|
||||||
latexmk -g -pdf $<
|
latexmk -g -pdf $<
|
||||||
|
|
||||||
define algo2img
|
define algo2img
|
||||||
@ -16,13 +16,16 @@ $(1)-$(2)-$(3).pdf: layer2img.py db/.faux_$(1)-$(2)-$(3)
|
|||||||
./layer2img.py --table=$(1)_$(2)_$(3) --size=52x74 --outfile $(1)-$(2)-$(3).pdf
|
./layer2img.py --table=$(1)_$(2)_$(3) --size=52x74 --outfile $(1)-$(2)-$(3).pdf
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(call algo2img,sinewave,douglas,100))
|
$(eval $(call algo2img,sinewave,douglas,5))
|
||||||
$(foreach t,$(TOLERANCES),$(eval $(call algo2img,zeimena,douglas,$(t))))
|
$(foreach t,$(TOLERANCES),$(eval $(call algo2img,zeimena,douglas,$(t))))
|
||||||
$(foreach t,$(TOLERANCES),$(eval $(call algo2img,zeimena,visvalingam,$(t))))
|
$(foreach t,$(TOLERANCES),$(eval $(call algo2img,zeimena,visvalingam,$(t))))
|
||||||
|
|
||||||
sinewave.gpkg: sinewave.py
|
sinewave.gpkg: sinewave.py
|
||||||
./sinewave.py
|
./sinewave.py
|
||||||
|
|
||||||
|
sinewave.pdf: sinewave.gpkg
|
||||||
|
./layer2img.py --size=52x15 --infile=$< --outfile=$@
|
||||||
|
|
||||||
db/.faux_ready: zeimena.gpkg sinewave.gpkg managedb
|
db/.faux_ready: zeimena.gpkg sinewave.gpkg managedb
|
||||||
-./managedb stop; rm -fr db
|
-./managedb stop; rm -fr db
|
||||||
./managedb init
|
./managedb init
|
||||||
|
@ -45,6 +45,14 @@
|
|||||||
publisher={John Wiley and Sons}
|
publisher={John Wiley and Sons}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@article{miuller1995generalization,
|
||||||
|
title={Generalization-state of the art and issues},
|
||||||
|
author={Miuller, JC and Weibel, R and Lagrange, J and {\"E}alge, F},
|
||||||
|
journal={GIS and Generalisation: Methodology and Practice},
|
||||||
|
pages={3--17},
|
||||||
|
year={1995}
|
||||||
|
}
|
||||||
|
|
||||||
@inproceedings{mcmaster1992generalization,
|
@inproceedings{mcmaster1992generalization,
|
||||||
title={Generalization in digital cartography},
|
title={Generalization in digital cartography},
|
||||||
author={McMaster, Robert Brainerd and Shea, K Stuart},
|
author={McMaster, Robert Brainerd and Shea, K Stuart},
|
||||||
|
@ -52,6 +52,16 @@ connect rivers first to a single polylines:
|
|||||||
ideal hypothesis: mueller algorithm + topology may fully realize cartographic generalization tasks.
|
ideal hypothesis: mueller algorithm + topology may fully realize cartographic generalization tasks.
|
||||||
|
|
||||||
what scales and what distances?
|
what scales and what distances?
|
||||||
|
|
||||||
|
= Intro: Aktualumas
|
||||||
|
FOSS nėra realizuotas tinkamas kartografinio realizavimo algoritmas (2–3 sakiniai). Kad kartografai turėtų
|
||||||
|
įrankį upių generalizavimui.
|
||||||
|
|
||||||
|
Bazė: imame tai, ką dabar turi kartografai įrankių paletėj.
|
||||||
|
|
||||||
|
Imti mažus upės vingius. Paimti mažas atkarpėles ir palyginti su originalia.
|
||||||
|
Todėl, kad nėra kilpų.
|
||||||
|
|
||||||
\fi
|
\fi
|
||||||
|
|
||||||
\author{Motiejus Jakštys}
|
\author{Motiejus Jakštys}
|
||||||
@ -203,11 +213,11 @@ retained.
|
|||||||
To sum up, both {\VW} and {\DP} simplify the lines, but their cartographic
|
To sum up, both {\VW} and {\DP} simplify the lines, but their cartographic
|
||||||
output poorly represents lines and bends. Where to look for better output?
|
output poorly represents lines and bends. Where to look for better output?
|
||||||
|
|
||||||
\section{Suggested alternative}
|
\subsection{Combining bends}
|
||||||
\label{sec:suggested_alternative}
|
|
||||||
|
|
||||||
{\WM} observed how professional cartographers are simplifying rivers and encoded it
|
Consecutive small bends should be combined into larger bends, and that is one
|
||||||
to an algorithm which can be implemented by a computer.
|
of the least developed aspects of automatic line generalization, according to
|
||||||
|
\cite{miuller1995generalization}. {\WM} encoded this process to an algorithm.
|
||||||
|
|
||||||
Imagine there are two small bends close to each other, similar to
|
Imagine there are two small bends close to each other, similar to
|
||||||
figure~\ref{pic:example-bend} on page~\pageref{pic:example-bend}, and one needs
|
figure~\ref{pic:example-bend} on page~\pageref{pic:example-bend}, and one needs
|
||||||
@ -216,22 +226,20 @@ straight line, but too small to retain both and retain their complexity.
|
|||||||
|
|
||||||
\begin{figure}[h]
|
\begin{figure}[h]
|
||||||
\centering
|
\centering
|
||||||
\begin{tikzpicture}[xscale=.5]
|
\includegraphics[width=52mm]{sinewave}
|
||||||
\draw (-4,-1) -- (-1, -1);
|
|
||||||
\draw (-1,-1) cos (0,0) sin (1,1) cos (2,0) sin (3,-1) cos (4,0) sin (5,1) cos(6,0) sin (7,-1);
|
|
||||||
\draw (7,-1) -- (10, -1);
|
|
||||||
\end{tikzpicture}
|
|
||||||
\caption{Example river bend that should be generalized}
|
\caption{Example river bend that should be generalized}
|
||||||
\label{pic:example-bend}
|
\label{pic:sinewave}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
We would imagine
|
When one applies {\DP} to figure~\ref{pic:sinewave}, either both bends remain,
|
||||||
|
or become a straight line.
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{figure}[h]
|
||||||
\item Describe algorithm by {\WM}.
|
\centering
|
||||||
\item Explain how outputs will differ.
|
\includegraphics[width=52mm]{sinewave-douglas-5}
|
||||||
\item Explain implementation plan?
|
\caption{Example bend, generalized}
|
||||||
\end{itemize}
|
\label{pic:sinewave-douglas-5}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
\section{Related Work and future suggestions}
|
\section{Related Work and future suggestions}
|
||||||
\label{sec:related_work}
|
\label{sec:related_work}
|
||||||
|
@ -6,7 +6,7 @@ import geopandas as gpd
|
|||||||
from shapely.geometry import LineString, MultiLineString
|
from shapely.geometry import LineString, MultiLineString
|
||||||
|
|
||||||
INTERVAL = 0.1
|
INTERVAL = 0.1
|
||||||
TAIL_LEN = 4
|
TAIL_LEN = 10
|
||||||
SINE_LEN = 7
|
SINE_LEN = 7
|
||||||
|
|
||||||
TAILS = np.zeros(int(TAIL_LEN / INTERVAL))
|
TAILS = np.zeros(int(TAIL_LEN / INTERVAL))
|
||||||
|
Loading…
Reference in New Issue
Block a user