From 4f17c74b49aa9e77498ff42091c7a1be4b66dbeb Mon Sep 17 00:00:00 2001 From: lukasmartinelli Date: Fri, 12 Aug 2016 14:16:02 +0200 Subject: [PATCH] Use only OSM data for oceans #329 --- src/import-external/clean-natural-earth.sh | 3 ++ src/import-external/import-water.sh | 9 +++++- src/import-osm/mapping.yml | 2 +- src/import-osm/subdivide_polygons.sql | 33 ---------------------- src/import-sql/layers/water.sql | 18 ++++++------ 5 files changed, 21 insertions(+), 44 deletions(-) diff --git a/src/import-external/clean-natural-earth.sh b/src/import-external/clean-natural-earth.sh index 777f70b..9df34e5 100755 --- a/src/import-external/clean-natural-earth.sh +++ b/src/import-external/clean-natural-earth.sh @@ -15,6 +15,7 @@ function drop_table() { } function clean_natural_earth() { + drop_table 'ne_10m_ocean' drop_table 'ne_10m_admin_0_antarctic_claim_limit_lines' drop_table 'ne_10m_admin_0_antarctic_claims' drop_table 'ne_10m_admin_0_map_subunits' @@ -68,6 +69,7 @@ function clean_natural_earth() { drop_table 'ne_10m_urban_areas_landscan' drop_table 'ne_10m_admin_1_states_provinces_lakes_shp' drop_table 'ne_10m_admin_1_states_provinces_shp' + drop_table 'ne_50m_ocean' drop_table 'ne_50m_admin_0_boundary_lines_disputed_areas' drop_table 'ne_50m_admin_1_states_provinces_shp' drop_table 'ne_50m_admin_0_countries_lakes' @@ -106,6 +108,7 @@ function clean_natural_earth() { drop_table 'ne_10m_admin_1_seams' drop_table 'ne_10m_land' drop_table 'ne_10m_ocean_scale_rank' + drop_table 'ne_110m_ocean' drop_table 'ne_110m_admin_0_sovereignty' drop_table 'ne_110m_admin_0_tiny_countries' drop_table 'ne_110m_admin_1_states_provinces_lakes_shp' diff --git a/src/import-external/import-water.sh b/src/import-external/import-water.sh index 7278749..fac924f 100755 --- a/src/import-external/import-water.sh +++ b/src/import-external/import-water.sh @@ -15,15 +15,22 @@ function import_shp() { shp2pgsql -s 3857 -I -g geometry "$shp_file" "$table_name" | exec_psql | hide_inserts } +function generalize_water() { + echo 'CREATE TABLE osm_ocean_polygon_gen0 AS SELECT ST_Simplify(geometry, 30000) AS geometry FROM osm_ocean_polygon_gen1' | exec_psql + echo 'CREATE INDEX ON osm_ocean_polygon_gen0 USING gist (geometry)' | exec_psql + echo 'ANALYZE osm_ocean_polygon_gen0' | exec_psql +} + function import_water() { local table_name="osm_ocean_polygon" - local simplified_table_name="osm_ocean_polygon_gen0" + local simplified_table_name="osm_ocean_polygon_gen1" drop_table "$table_name" import_shp "$WATER_POLYGONS_FILE" "$table_name" drop_table "$simplified_table_name" import_shp "$SIMPLIFIED_WATER_POLYGONS_FILE" "$simplified_table_name" + } import_water diff --git a/src/import-osm/mapping.yml b/src/import-osm/mapping.yml index c3ddb95..72e2b02 100644 --- a/src/import-osm/mapping.yml +++ b/src/import-osm/mapping.yml @@ -8,7 +8,7 @@ generalized_tables: source: landuse_polygon sql_filter: area>50000.000000 tolerance: 50.0 - water_polygon_gen1: + water_polygon_gen0: source: water_polygon sql_filter: area>40000.000000 tolerance: 30.0 diff --git a/src/import-osm/subdivide_polygons.sql b/src/import-osm/subdivide_polygons.sql index 262504a..6658b9e 100644 --- a/src/import-osm/subdivide_polygons.sql +++ b/src/import-osm/subdivide_polygons.sql @@ -31,48 +31,16 @@ ANALYZE osm_landuse_polygon_subdivided; /* OSM Ocean Polygons */ DROP TABLE IF EXISTS osm_ocean_polygon_subdivided CASCADE; -DROP TABLE IF EXISTS osm_ocean_polygon_subdivided_gen0 CASCADE; CREATE TABLE osm_ocean_polygon_subdivided AS SELECT gid,fid,st_subdivide(geometry,1024) AS geometry FROM osm_ocean_polygon; -CREATE TABLE osm_ocean_polygon_subdivided_gen0 AS SELECT gid,fid,st_subdivide(geometry,1024) AS geometry FROM osm_ocean_polygon_gen0; -SELECT UpdateGeometrySRID('osm_ocean_polygon_subdivided_gen0','geometry',3857); SELECT UpdateGeometrySRID('osm_ocean_polygon_subdivided','geometry',3857); CREATE INDEX ON osm_ocean_polygon_subdivided USING btree (gid); -CREATE INDEX ON osm_ocean_polygon_subdivided_gen0 USING btree (gid); CREATE INDEX ON osm_ocean_polygon_subdivided USING gist (geometry); -CREATE INDEX ON osm_ocean_polygon_subdivided_gen0 USING gist (geometry); ANALYZE osm_ocean_polygon_subdivided; -ANALYZE osm_ocean_polygon_subdivided_gen0; - -/* Natural-Earth Ocean Polygons */ - -DROP TABLE IF EXISTS ne_110m_ocean_subdivided CASCADE; -DROP TABLE IF EXISTS ne_50m_ocean_subdivided CASCADE; -DROP TABLE IF EXISTS ne_10m_ocean_subdivided CASCADE; - -CREATE TABLE ne_110m_ocean_subdivided AS SELECT ogc_fid,st_subdivide(geom,1024) AS geom,scalerank,featurecla FROM ne_110m_ocean; -CREATE TABLE ne_50m_ocean_subdivided AS SELECT ogc_fid,st_subdivide(geom,1024) AS geom,scalerank,featurecla FROM ne_50m_ocean; -CREATE TABLE ne_10m_ocean_subdivided AS SELECT ogc_fid,st_subdivide(geom,1024) AS geom,featurecla,scalerank FROM ne_10m_ocean; - -SELECT UpdateGeometrySRID('ne_110m_ocean_subdivided','geom',3857); -SELECT UpdateGeometrySRID('ne_50m_ocean_subdivided','geom',3857); -SELECT UpdateGeometrySRID('ne_10m_ocean_subdivided','geom',3857); - -CREATE INDEX ON ne_110m_ocean_subdivided USING btree (ogc_fid); -CREATE INDEX ON ne_50m_ocean_subdivided USING btree (ogc_fid); -CREATE INDEX ON ne_10m_ocean_subdivided USING btree (ogc_fid); - -CREATE INDEX ON ne_110m_ocean_subdivided USING gist (geom); -CREATE INDEX ON ne_50m_ocean_subdivided USING gist (geom); -CREATE INDEX ON ne_10m_ocean_subdivided USING gist (geom); - -ANALYZE ne_110m_ocean_subdivided; -ANALYZE ne_50m_ocean_subdivided; -ANALYZE ne_10m_ocean_subdivided; /* Update SRID for lakes and water polygons */ @@ -82,4 +50,3 @@ SELECT UpdateGeometrySRID('ne_10m_lakes','geom',3857); SELECT UpdateGeometrySRID('osm_water_polygon','geometry',3857); SELECT UpdateGeometrySRID('osm_water_polygon_gen1','geometry',3857); - diff --git a/src/import-sql/layers/water.sql b/src/import-sql/layers/water.sql index c678897..76ee441 100644 --- a/src/import-sql/layers/water.sql +++ b/src/import-sql/layers/water.sql @@ -1,34 +1,34 @@ CREATE OR REPLACE VIEW water_z0 AS - SELECT 0 AS osm_id, geom AS geometry - FROM ne_110m_ocean_subdivided + SELECT 0 AS osm_id, geometry + FROM osm_ocean_polygon_gen0 UNION ALL SELECT 0 AS osm_id, geom AS geometry FROM ne_110m_lakes; CREATE OR REPLACE VIEW water_z1 AS - SELECT 0 AS osm_id, geom AS geometry - FROM ne_50m_ocean_subdivided + SELECT 0 AS osm_id, geometry + FROM osm_ocean_polygon_gen0 UNION ALL SELECT 0 AS osm_id, geom AS geometry FROM ne_110m_lakes; CREATE OR REPLACE VIEW water_z2toz3 AS - SELECT 0 AS osm_id, geom AS geometry - FROM ne_10m_ocean_subdivided + SELECT 0 AS osm_id, geometry + FROM osm_ocean_polygon_gen1 UNION ALL SELECT 0 AS osm_id, geom AS geometry FROM ne_50m_lakes; CREATE OR REPLACE VIEW water_z4 AS SELECT 0 AS osm_id, geometry - FROM osm_ocean_polygon_subdivided_gen0 + FROM osm_ocean_polygon_gen1 UNION ALL SELECT 0 AS osm_id, geom AS geometry FROM ne_10m_lakes; CREATE OR REPLACE VIEW water_z5toz7 AS SELECT 0 AS osm_id, geometry - FROM osm_ocean_polygon_subdivided_gen0 + FROM osm_ocean_polygon_gen1 UNION ALL SELECT id AS osm_id, geometry FROM osm_water_polygon_gen1; @@ -38,7 +38,7 @@ CREATE OR REPLACE VIEW water_z8toz10 AS FROM osm_ocean_polygon_subdivided UNION ALL SELECT id AS osm_id, geometry - FROM osm_water_polygon_gen1; + FROM osm_water_polygon_gen0; CREATE OR REPLACE VIEW water_z11toz12 AS SELECT 0 AS osm_id, geometry, 0 AS area