Skip to content

Instantly share code, notes, and snippets.

@typebrook
Last active April 22, 2021 07:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save typebrook/be929b4ab5918bcd7dcd589d41a751ce to your computer and use it in GitHub Desktop.
Save typebrook/be929b4ab5918bcd7dcd589d41a751ce to your computer and use it in GitHub Desktop.
[taipower-data] Compare Taipower street light data with geojson file #gdal
#.PHONY: road.[^g]*
BUFFER = 10
all: overlapped.geojson
taiwan-latest.osm.pbf:
curl -o $@ http://download.geofabrik.de/asia/taiwan-latest.osm.pbf
clean:
find . -type f -not -name 'taiwan-latest.osm.pbf' -delete
road.geojson: taiwan-latest.osm.pbf
ogr2ogr $@ $< -dialect sqlite -sql "SELECT * FROM lines WHERE name = '中正路佳安段' OR name = '中正路上華段' OR name = '中正路三林段'"
road.buffer.geojson: road.geojson
ogr2ogr $@ $< -dialect sqlite -sql "\
SELECT ST_Transform(\
ST_Buffer(ST_Transform(geometry, 3857), $(BUFFER)), 4326)\
FROM 'SELECT'"
foo.zip:
curl -o $@ http://data.taipower.com.tw/opendata/apply/file/d077006/台灣電力公司_電桿桿號及座標資料.zip
taipower.onroad.geojson: taipower.geojson road.buffer.geojson
#rm -f $@
ogr2ogr $@ $< -dialect sqlite -sql "SELECT taipower.geometry FROM taipower, 'road.buffer.geojson'.'SELECT' road WHERE ST_Intersects(taipower.geometry, road.geometry)"
detected.onroad.geojson: detected.geojson road.buffer.geojson
#rm -f $@
ogr2ogr $@ $< -dialect sqlite -sql "SELECT detected.geometry FROM detected, 'road.buffer.geojson'.'SELECT' road WHERE ST_Intersects(detected.geometry, road.geometry)"
count-taipower: taipower.onroad.geojson
jq '.features[]' -c $< | wc -l
count-detected: detected.onroad.geojson
jq '.features[]' -c $< | wc -l
overlapped.geojson: detected.onroad.geojson taipower.onroad.geojson
ogr2ogr -f GEOJSON /vsistdout/ $< -dialect sqlite -sql "\
SELECT detected.geometry \
FROM 'SELECT' detected, '$(word 2,$^)'.'SELECT' taipower\
WHERE ST_Distance(\
ST_Transform(detected.geometry, 3857),\
ST_Transform(taipower.geometry, 3857)\
) <= 23" |\
jq '.features=(.features|unique)' | ogr2ogr $@ -f GEOJSON /vsistdin/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment