From 7d7ca7f47a17261d05d9848fbdf6d29451294366 Mon Sep 17 00:00:00 2001 From: ImreSamu Date: Thu, 10 Nov 2016 03:09:43 +0100 Subject: [PATCH] add etldoc to layer_place --- gen_etl_graph_place.sh | 27 +++++++++++++++++++++++++++ layers/place/city.sql | 17 +++++++++++++++++ layers/place/country.sql | 2 ++ layers/place/mapping.yaml | 6 ++++++ layers/place/merge_city_rank.sql | 4 ++++ layers/place/merge_country_rank.sql | 3 +++ layers/place/merge_state_rank.sql | 3 +++ layers/place/place.sql | 5 +++++ layers/place/state.sql | 3 +++ 9 files changed, 70 insertions(+) create mode 100755 gen_etl_graph_place.sh diff --git a/gen_etl_graph_place.sh b/gen_etl_graph_place.sh new file mode 100755 index 0000000..5056cfa --- /dev/null +++ b/gen_etl_graph_place.sh @@ -0,0 +1,27 @@ + + +DOT=place.dot + +echo "digraph G +{ +rankdir=LR; +" > $DOT + +cat ./layers/place/mapping.yaml | grep "# etldoc:" | sed 's/# etldoc://g' >>$DOT + +cat ./layers/place/types.sql | grep "\-\- etldoc:" | sed 's/-- etldoc://g' >>$DOT +cat ./layers/place/city.sql | grep "\-\- etldoc:" | sed 's/-- etldoc://g' >>$DOT +cat ./layers/place/country.sql | grep "\-\- etldoc:" | sed 's/-- etldoc://g' >>$DOT +cat ./layers/place/state.sql | grep "\-\- etldoc:" | sed 's/-- etldoc://g' >>$DOT +cat ./layers/place/merge_country_rank.sql | grep "\-\- etldoc:" | sed 's/-- etldoc://g' >>$DOT +cat ./layers/place/merge_city_rank.sql | grep "\-\- etldoc:" | sed 's/-- etldoc://g' >>$DOT +cat ./layers/place/merge_state_rank.sql | grep "\-\- etldoc:" | sed 's/-- etldoc://g' >>$DOT +cat ./layers/place/place.sql | grep "\-\- etldoc:" | sed 's/-- etldoc://g' >>$DOT + +echo " +} +" >> $DOT + +cat $DOT + +dot -Tpng $DOT > layer_place_etl.png diff --git a/layers/place/city.sql b/layers/place/city.sql index d64b0cc..6b3faec 100644 --- a/layers/place/city.sql +++ b/layers/place/city.sql @@ -1,5 +1,15 @@ + +-- etldoc: layer_city[shape=record fillcolor=lightpink, style="rounded,filled", +-- etldoc: label="layer_city | z2 | z3 | z4 | z5| z6 | z7 | z8 | z9 | z10 | z11 | z12| z13| z14_" ] ; + CREATE OR REPLACE FUNCTION layer_city(bbox geometry, zoom_level int, pixel_width numeric) RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, class city_class, "rank" int) AS $$ + -- etldoc: osm_city_point -> layer_city:z2 + -- etldoc: osm_city_point -> layer_city:z3 + -- etldoc: osm_city_point -> layer_city:z4 + -- etldoc: osm_city_point -> layer_city:z5 + -- etldoc: osm_city_point -> layer_city:z6 + -- etldoc: osm_city_point -> layer_city:z7 SELECT osm_id, geometry, name, COALESCE(NULLIF(name_en, ''), name) AS name_en, place AS class, "rank" FROM osm_city_point WHERE geometry && bbox @@ -20,6 +30,13 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, class c population DESC NULLS LAST, length(name) ASC )::int AS gridrank + -- etldoc: osm_city_point -> layer_city:z8 + -- etldoc: osm_city_point -> layer_city:z9 + -- etldoc: osm_city_point -> layer_city:z10 + -- etldoc: osm_city_point -> layer_city:z11 + -- etldoc: osm_city_point -> layer_city:z12 + -- etldoc: osm_city_point -> layer_city:z13 + -- etldoc: osm_city_point -> layer_city:z14_ FROM osm_city_point WHERE geometry && bbox AND ((zoom_level = 8 AND place <= 'town'::city_class) diff --git a/layers/place/country.sql b/layers/place/country.sql index 896e38e..092aed2 100644 --- a/layers/place/country.sql +++ b/layers/place/country.sql @@ -1,3 +1,5 @@ + +-- etldoc: osm_country_point -> layer_country CREATE OR REPLACE FUNCTION layer_country(bbox geometry, zoom_level int) RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, "rank" int) AS $$ SELECT osm_id, geometry, name, COALESCE(NULLIF(name_en, ''), name) AS name_en, "rank" FROM osm_country_point diff --git a/layers/place/mapping.yaml b/layers/place/mapping.yaml index 6f6264a..2e34232 100644 --- a/layers/place/mapping.yaml +++ b/layers/place/mapping.yaml @@ -11,6 +11,8 @@ rank_field: &rank key: rank type: integer tables: + + # etldoc: imposm3 -> osm_country_point country_point: type: point fields: @@ -27,6 +29,8 @@ tables: mapping: place: - country + + # etldoc: imposm3 -> osm_state_point state_point: type: point fields: @@ -52,6 +56,8 @@ tables: mapping: place: - state + + # etldoc: imposm3 -> osm_city_point city_point: type: point fields: diff --git a/layers/place/merge_city_rank.sql b/layers/place/merge_city_rank.sql index 8a08b5d..025f058 100644 --- a/layers/place/merge_city_rank.sql +++ b/layers/place/merge_city_rank.sql @@ -1,3 +1,7 @@ + +-- etldoc: ne_10m_populated_places -> osm_city_point +-- etldoc: osm_city_point -> osm_city_point + WITH important_city_point AS ( SELECT osm.geometry, osm.osm_id, osm.name, osm.name_en, ne.scalerank, ne.labelrank FROM ne_10m_populated_places AS ne, osm_city_point AS osm diff --git a/layers/place/merge_country_rank.sql b/layers/place/merge_country_rank.sql index 40e905e..adf0027 100644 --- a/layers/place/merge_country_rank.sql +++ b/layers/place/merge_country_rank.sql @@ -1,5 +1,8 @@ ALTER TABLE osm_country_point DROP CONSTRAINT IF EXISTS osm_country_point_rank_constraint; +-- etldoc: ne_10m_admin_0_countries -> osm_country_point +-- etldoc: osm_country_point -> osm_country_point + WITH important_country_point AS ( SELECT osm.geometry, osm.osm_id, osm.name, COALESCE(NULLIF(osm.name_en, ''), ne.name) AS name_en, ne.scalerank, ne.labelrank FROM ne_10m_admin_0_countries AS ne, osm_country_point AS osm diff --git a/layers/place/merge_state_rank.sql b/layers/place/merge_state_rank.sql index 0e2a8b4..e297ae9 100644 --- a/layers/place/merge_state_rank.sql +++ b/layers/place/merge_state_rank.sql @@ -1,5 +1,8 @@ ALTER TABLE osm_state_point DROP CONSTRAINT IF EXISTS osm_state_point_rank_constraint; +-- etldoc: ne_10m_admin_1_states_provinces_shp -> osm_state_point +-- etldoc: osm_state_point -> osm_state_point + WITH important_state_point AS ( SELECT osm.geometry, osm.osm_id, osm.name, COALESCE(NULLIF(osm.name_en, ''), ne.name) AS name_en, ne.scalerank, ne.labelrank, ne.datarank FROM ne_10m_admin_1_states_provinces_shp AS ne, osm_state_point AS osm diff --git a/layers/place/place.sql b/layers/place/place.sql index af3f404..320dbfa 100644 --- a/layers/place/place.sql +++ b/layers/place/place.sql @@ -1,3 +1,8 @@ + +-- etldoc: layer_country -> layer_place +-- etldoc: layer_state -> layer_place +-- etldoc: layer_city -> layer_place + CREATE OR REPLACE FUNCTION layer_place(bbox geometry, zoom_level int, pixel_width numeric) RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, class text, "rank" int) AS $$ SELECT osm_id, geometry, name, name_en, 'country' AS class, "rank" FROM layer_country(bbox, zoom_level) diff --git a/layers/place/state.sql b/layers/place/state.sql index d4ba508..64037f9 100644 --- a/layers/place/state.sql +++ b/layers/place/state.sql @@ -1,3 +1,6 @@ + +-- etldoc: osm_state_point -> layer_state + CREATE OR REPLACE FUNCTION layer_state(bbox geometry, zoom_level int) RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, "rank" int) AS $$ SELECT osm_id, geometry, name, COALESCE(NULLIF(name_en, ''), name) AS name_en, "rank"