extend source by adding algorithm

This commit is contained in:
Motiejus Jakštys 2020-05-26 12:11:41 +03:00
parent 6d9897652f
commit 996b03fb93
5 changed files with 36 additions and 32 deletions

View File

@ -1,27 +1,31 @@
TOLERANCES = 100 125 250 500 1000 2000 4000 TOLERANCES = 100 125 250 500 1000 2000 4000
GEN = $(addsuffix .pdf, \ GEN = $(addsuffix .pdf, \
$(addprefix douglas-,$(TOLERANCES)) \ $(addprefix zeimena-douglas-,$(TOLERANCES)) \
$(addprefix visvalingam-,$(TOLERANCES))) $(addprefix zeimena-visvalingam-,$(TOLERANCES)))
mj-referatas.pdf: mj-referatas.tex version.tex bib.bib zeimena-pretty.pdf $(GEN) mj-referatas.pdf: mj-referatas.tex version.tex bib.bib zeimena-pretty.pdf $(GEN)
latexmk -g -pdf $< latexmk -g -pdf $<
define algo2img define algo2img
db/.faux_$(1)-$(2): $(1).sql db/.faux_ready db/.faux_$(1)-$(2)-$(3): $(2).sql db/.faux_ready
./managedb -- --echo-all -v ON_ERROR_STOP=1 -v tolerance=$(2) -f $(1).sql ./managedb -- --echo-all -v ON_ERROR_STOP=1 -v src=$(1) -v tolerance=$(3) -v tbl=$(1)_$(2)_$(3) -f $(2).sql
touch db/.faux_$(1)-$(2) touch $$@
$(1)-$(2).pdf: layer2img.py db/.faux_$(1)-$(2) $(1)-$(2)-$(3).pdf: layer2img.py db/.faux_$(1)-$(2)-$(3)
./layer2img.py --table=$(1)_$(2) --size=52x74 --outfile $(1)-$(2).pdf ./layer2img.py --table=$(1)_$(2)_$(3) --size=52x74 --outfile $(1)-$(2)-$(3).pdf
endef endef
$(foreach t,$(TOLERANCES),$(eval $(call algo2img,douglas,$(t)))) $(foreach t,$(TOLERANCES),$(eval $(call algo2img,zeimena,douglas,$(t))))
$(foreach t,$(TOLERANCES),$(eval $(call algo2img,visvalingam,$(t)))) $(foreach t,$(TOLERANCES),$(eval $(call algo2img,zeimena,visvalingam,$(t))))
db/.faux_ready: zeimena.gpkg managedb sinewave.json: sinewave.py
./sinewave.py
db/.faux_ready: zeimena.gpkg sinewave.json managedb
-./managedb stop; rm -fr db -./managedb stop; rm -fr db
./managedb init ./managedb init
ogr2ogr -f PostgreSQL "PG:host=127.0.0.1 user=osm dbname=osm" $< ogr2ogr -f PostgreSQL "PG:host=127.0.0.1 user=osm dbname=osm" zeimena.gpkg
ogr2ogr -f PostgreSQL "PG:host=127.0.0.1 user=osm dbname=osm" sinewave.json
touch $@ touch $@
REF = $(shell git describe --tags) REF = $(shell git describe --tags)

View File

@ -1,14 +1,14 @@
DROP TABLE IF EXISTS douglas_:tolerance; DROP TABLE IF EXISTS :tbl;
CREATE TABLE douglas_:tolerance ( CREATE TABLE :tbl (
fid serial NOT NULL, fid serial NOT NULL,
geom geometry(MULTILINESTRING, 3346) geom geometry(MULTILINESTRING, 3346)
); );
INSERT INTO douglas_:tolerance (geom) ( INSERT INTO :tbl (geom) (
SELECT SELECT
ST_Simplify (ST_LineMerge (ST_Union (geom)), ST_Simplify (ST_LineMerge (ST_Union (geom)),
:tolerance) AS geoms :tolerance) AS geoms
FROM FROM
zeimena); :src);

View File

@ -173,28 +173,28 @@ retained.
Visvalingam-Whyatt \tabularnewline \hline Visvalingam-Whyatt \tabularnewline \hline
125 & 125 &
\includegraphics[width=\linewidth]{douglas-125} & \includegraphics[width=\linewidth]{zeimena-douglas-125} &
\includegraphics[width=\linewidth]{visvalingam-125} \tabularnewline \hline \includegraphics[width=\linewidth]{zeimena-visvalingam-125} \tabularnewline \hline
250 & 250 &
\includegraphics[width=.5\linewidth]{douglas-250} & \includegraphics[width=.5\linewidth]{zeimena-douglas-250} &
\includegraphics[width=.5\linewidth]{visvalingam-250} \tabularnewline \hline \includegraphics[width=.5\linewidth]{zeimena-visvalingam-250} \tabularnewline \hline
500 & 500 &
\includegraphics[width=.25\linewidth]{douglas-500} & \includegraphics[width=.25\linewidth]{zeimena-douglas-500} &
\includegraphics[width=.25\linewidth]{visvalingam-500} \tabularnewline \hline \includegraphics[width=.25\linewidth]{zeimena-visvalingam-500} \tabularnewline \hline
1000 & 1000 &
\includegraphics[width=.125\linewidth]{douglas-1000} & \includegraphics[width=.125\linewidth]{zeimena-douglas-1000} &
\includegraphics[width=.125\linewidth]{visvalingam-1000} \tabularnewline \hline \includegraphics[width=.125\linewidth]{zeimena-visvalingam-1000} \tabularnewline \hline
2000 & 2000 &
\includegraphics[width=.0625\linewidth]{douglas-2000} & \includegraphics[width=.0625\linewidth]{zeimena-douglas-2000} &
\includegraphics[width=.0625\linewidth]{visvalingam-2000} \tabularnewline \hline \includegraphics[width=.0625\linewidth]{zeimena-visvalingam-2000} \tabularnewline \hline
4000 & 4000 &
\includegraphics[width=.0625\linewidth]{douglas-4000} & \includegraphics[width=.0625\linewidth]{zeimena-douglas-4000} &
\includegraphics[width=.0625\linewidth]{visvalingam-4000} \tabularnewline \hline \includegraphics[width=.0625\linewidth]{zeimena-visvalingam-4000} \tabularnewline \hline
\end{tabularx} \end{tabularx}
\caption{{\DP} and {\VW} side-by-side visual comparison} \caption{{\DP} and {\VW} side-by-side visual comparison}
\label{tab:dp-vs-vw} \label{tab:dp-vs-vw}

View File

@ -14,7 +14,7 @@ TAILS = np.zeros(int(TAIL_LEN / INTERVAL))
def main(): def main():
sin_range = np.arange(-pi/4, SINE_LEN, INTERVAL) sin_range = np.arange(-pi/4, SINE_LEN, INTERVAL)
amplitude = np.sin(sin_range * pi / 2) + 1 amplitude = (np.sin(sin_range * pi / 2) + 1)*2
y = np.concatenate([TAILS, amplitude, TAILS]) y = np.concatenate([TAILS, amplitude, TAILS])
x = np.arange(-TAIL_LEN - pi/4, SINE_LEN + TAIL_LEN, INTERVAL) x = np.arange(-TAIL_LEN - pi/4, SINE_LEN + TAIL_LEN, INTERVAL)
geom = LineString(zip(x, y)) geom = LineString(zip(x, y))

View File

@ -1,14 +1,14 @@
DROP TABLE IF EXISTS visvalingam_:tolerance; DROP TABLE IF EXISTS :tbl;
CREATE TABLE visvalingam_:tolerance ( CREATE TABLE :tbl (
fid serial NOT NULL, fid serial NOT NULL,
geom geometry(MULTILINESTRING, 3346) geom geometry(MULTILINESTRING, 3346)
); );
INSERT INTO visvalingam_:tolerance (geom) ( INSERT INTO :tbl (geom) (
SELECT SELECT
ST_SimplifyVW (ST_LineMerge (ST_Union (geom)), ST_SimplifyVW (ST_LineMerge (ST_Union (geom)),
:tolerance * :tolerance) AS geoms :tolerance * :tolerance) AS geoms
FROM FROM
zeimena); :src);