Last active
October 30, 2017 14:32
-
-
Save oskarlin/fc5c421f6e6d3c6a3091428097f98ea5 to your computer and use it in GitHub Desktop.
Skapar punktobjekt för tunnlars början och slut i Lantmäteriets produkter.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# kan köras på både väg-, översikt- och terrängkartan. | |
for name in "jl" "vl" | |
do | |
# välj ut linjer som är tunnlar (gäller vl och jl) | |
ogr2ogr -sql "SELECT * FROM $name WHERE KKOD IN (5811, 5812, 5816, 5817, 5821, 5822, 5824, 5825, 5828, 5829, 5832, 5833, 5834, 5836, 5840, 5844, 5845, 5851, 5856, 5858, 5861, 5871, 5882, 5891, 291, 286, 292, 293, 294, 295, 296, 299, 5552, 5432, 5332, 5322, 5312, 5232, 5222, 5212, 5112, 5012, 5612, 5613, 5622, 5623, 5632, 5642, 5643)" ${name}_underfart.shp $name.shp | |
# lägg till kolumn för vinkel | |
ogrinfo ${name}_underfart.shp -sql "ALTER TABLE ${name}_underfart ADD COLUMN angle integer(3)" | |
# lägg till vinkeln mellan noderna i vinkel-kolumnen | |
ogrinfo ${name}_underfart.shp -dialect SQLite -sql "UPDATE ${name}_underfart SET angle = (atan((ST_X(ST_StartPoint(geometry))-ST_X(ST_EndPoint(geometry)))/(ST_Y(ST_StartPoint(geometry))-ST_Y(ST_EndPoint(geometry))))) * 180/3.14159 + (180 *(((ST_Y(ST_StartPoint(geometry))-ST_Y(ST_EndPoint(geometry))) < 0) + (((ST_X(ST_StartPoint(geometry))-ST_X(ST_EndPoint(geometry))) < 0 AND (ST_Y(ST_StartPoint(geometry)) - ST_Y(ST_EndPoint(geometry))) >0)*2)))" | |
# skapa ett punktlager för början och slutet. | |
ogr2ogr -f "ESRI Shapefile" -dialect sqlite ${name}_underfart_end.shp -sql "select ST_EndPoint(geometry), KKOD, angle from ${name}_underfart" ${name}_underfart.shp | |
ogr2ogr -f "ESRI Shapefile" -dialect sqlite ${name}_underfart_start.shp -sql "select ST_StartPoint(geometry), KKOD, angle from ${name}_underfart" ${name}_underfart.shp | |
ogrinfo ${name}_underfart_end.shp -dialect SQLite -sql "UPDATE ${name}_underfart_end SET angle = (angle + 180)" | |
# slå ihop | |
ogr2ogr ${name}_underfart_point.shp ${name}_underfart_start.shp | |
ogr2ogr -update -append ${name}_underfart_point.shp ${name}_underfart_end.shp | |
# rensa onödiga filer | |
rm ${name}_underfart_end.* | |
rm ${name}_underfart_start.* | |
rm ${name}_underfart.* | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment