Wang–Müller algorithm in PostGIS
This is a work-in-progress implementation following "Line generalization based on analysis of shape characteristics" by Wang and Müller, 1998 paper.
Structure
Detailed implementation description: mj-msc.tex. It is describing in detail
what is implemented and what isn't, and why.
Algorithm itself: wm.sql. This is the main file you probably want to look at.
Synthetic tests are in tests.sql. They are exercising various pieces of the
algorithm and asserting the results are what expect them to be.
Tests with real rivers are in test-rivers.sql.
Makefile glues everything together.
Executing the algorithm
$ make help
mj-msc-full.pdf Thesis for publishing
test Unit tests (fast)
test-rivers Rivers tests (slow)
clean Clean the current working directory
clean-tables Remove tables created during unit or rivers tests
help Print this help message
wc Character and page count
refresh-rivers Refresh rivers.sql from Open Street Maps
To execute the algorithm, run:
make testfor tests with synthetic data.make test-riversfor tests with real rivers. You may adjust the rivers and data source (e.g. use a different country instead of Lithuania) by changing theMakefileand the test files.
Building the paper (pdf)
$ make -j$(nproc) mj-msc-full.pdf
mj-msc.tex results in mj-msc-full.pdf, which will be at some point
published. It needs quite a few dependencies, including a functioning Docker
environment.
License
GPL 2.0 or later. Same as QGIS and PostGIS.