This commit is contained in:
Motiejus Jakštys 2020-12-16 08:52:18 +02:00
parent 7b5a6e0311
commit 4aa3ce35dd
3 changed files with 30 additions and 18 deletions

View File

@ -1,7 +1,7 @@
include config.mk include config.mk
OUTSIZE = $(shell awk $(addprefix -v ,$(BOUNDS)) 'BEGIN{print ymax-ymin" "xmax-xmin}' /dev/null) OUTSIZE = $(shell awk $(addprefix -v ,$(BOUNDS)) 'BEGIN{print ymax-ymin" "xmax-xmin}' /dev/null)
XYZ = $(patsubst %.zip,%.xyz,$(wildcard 6*.zip)) XYZ = $(patsubst %.zip,%.xyz,$(wildcard *.zip))
SORT = sort -n -k2 -k1 -t, SORT = sort -n -k2 -k1 -t,
.PHONY: all .PHONY: all
@ -34,7 +34,7 @@ all.tif: all.vrt all.xyz
-outsize $(OUTSIZE) -outsize $(OUTSIZE)
else else
ifeq ($(VARIANT),2017) ifeq ($(VARIANT),2017)
all.tif: all.vrt all.xyz all.tif: all.xyz
gdal_translate $< $@ \ gdal_translate $< $@ \
-ot Float32 -a_srs EPSG:3346 \ -ot Float32 -a_srs EPSG:3346 \
-co COMPRESS=DEFLATE -co PREDICTOR=2 -co COMPRESS=DEFLATE -co PREDICTOR=2
@ -50,7 +50,7 @@ all.xyz: $(XYZ)
.INTERMEDIATE: $(XYZ) .INTERMEDIATE: $(XYZ)
%.xyz: %.zip %.xyz: %.zip
unzip -qq -c $< $@ | \ unzip -qq -c $< $@ | \
./clip-2009.awk $(addprefix -v ,$(BOUNDS)) | \ ./clip-$(VARIANT).awk $(addprefix -v ,$(BOUNDS)) | \
$(SORT) > $@ $(SORT) > $@
db/.ready: managedb db/.ready: managedb

View File

@ -1,27 +1,39 @@
Countour line generator from LIDAR data Countour line generator from LIDAR data
--------------------------------------- ---------------------------------------
This accepts two kinds of contour data:
*2009 variant*: x, y, z, separated by one or more spaces:
```
501991.670 6150000.000 57.689
```
*Non-gridded*, therefore significantly slower (`gdal_grid` must be used before making contours, which is slow).
*2017*: y, x, z, separated by commas:
```
6062999.75,584000.75,88.07
```
This is *gridded*, so quite fast.
Usage: Usage:
1. Download contour lines in format `6062999.75,584000.75,88.07`: coordinate 1. Download contour lines to zip files in this directory.
pair and height (in meters) to `DTM_XX_YY_N.zip` files. 2. Adjust `BOUNDS` and `VARIANT` in `config.mk`.
2. Adjust `BOUNDS` in the Makefile.
3. Run `make -j$(nproc) smooth_<X>.gpkg`. This will output a geo-package with 3. Run `make -j$(nproc) smooth_<X>.gpkg`. This will output a geo-package with
contour lines every `X` meters. X can be fractional (e.g. contour lines every `X` meters. X can be fractional (e.g.
`smooth_2.5.gpkg`). `smooth_2.5.gpkg`).
4. Optional: you may generate a raster image with `layer2img.py`. 4. Optional: you may generate a raster image with `layer2img.py`.
Dependencies: Dependencies for a Linux system:
- postgis - docker
- psql (client only)
- gdal-bin - gdal-bin
- unzip - unzip
- awk
TODO:
1. Replace `managedb` stack with postgis-over-docker. This will lead to a less
fragile postgis setup.
2. Accept `BOUNDS` in a way that does not require to change the Makefile.
Example Example
------- -------

View File

@ -1,8 +1,8 @@
#krekenava #krekenava
#BOUNDS = xmin=504440 ymin=6154741 xmax=507410 ymax=6158941 #BOUNDS = xmin=504440 ymin=6154741 xmax=507410 ymax=6158941
BOUNDS = xmin=493674 ymin=6146103 xmax=518869 ymax=6171741 #BOUNDS = xmin=493674 ymin=6146103 xmax=518869 ymax=6171741
VARIANT = 2009 #VARIANT = 2009
#uzupis #uzupis
#BOUNDS = xmin=582700 ymin=6060750 xmax=584830 ymax=6062750 BOUNDS = xmin=582700 ymin=6060750 xmax=584830 ymax=6062750
#VARIANT=2017 VARIANT = 2017