Drop outside limit of boundary
This commit is contained in:
parent
1ce5eb8f69
commit
4c62da548b
64
etl/drop_outside_limit.sh
Executable file
64
etl/drop_outside_limit.sh
Executable file
@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
#
|
||||
# Load boundary and filter geometries
|
||||
# - boundary MUST be epsg:3857
|
||||
# use: ogr2ogr -t_srs EPSG:3857 boundary.3857.shp boundary.shp
|
||||
#
|
||||
: ${1?"Usage: $0 ./path/to/boundary"}
|
||||
boundary_file=$1
|
||||
|
||||
# Load boundary
|
||||
psql -c "DROP TABLE IF EXISTS boundary"
|
||||
shp2pgsql -s 3857 $boundary_file boundary | psql
|
||||
|
||||
# Remove restrictions on deleting linked geometries
|
||||
psql -c "ALTER TABLE ONLY buildings
|
||||
DROP CONSTRAINT buildings_geometry_id_fkey;
|
||||
|
||||
ALTER TABLE ONLY buildings
|
||||
ADD CONSTRAINT buildings_geometry_id_fkey
|
||||
FOREIGN KEY (geometry_id) REFERENCES geometries(geometry_id) ON DELETE CASCADE;
|
||||
|
||||
ALTER TABLE ONLY building_properties
|
||||
DROP CONSTRAINT building_properties_building_id_fkey;
|
||||
|
||||
ALTER TABLE ONLY building_properties
|
||||
ADD CONSTRAINT building_properties_building_id_fkey
|
||||
FOREIGN KEY (building_id) REFERENCES buildings(building_id) ON DELETE CASCADE;
|
||||
|
||||
ALTER TABLE ONLY logs
|
||||
DROP CONSTRAINT logs_building_id_fkey;
|
||||
|
||||
ALTER TABLE ONLY logs
|
||||
ADD CONSTRAINT logs_building_id_fkey
|
||||
FOREIGN KEY (building_id) REFERENCES buildings(building_id) ON DELETE CASCADE;
|
||||
"
|
||||
|
||||
# Delete geometries (hence buildings, building_properties)
|
||||
psql -c "DELETE FROM geometries as g
|
||||
USING boundary as b
|
||||
WHERE b.gid = 1 AND NOT ST_ContainsProperly(b.geom, g.geometry_geom);"
|
||||
|
||||
# Put restrictions back
|
||||
psql -c "ALTER TABLE ONLY buildings
|
||||
DROP CONSTRAINT buildings_geometry_id_fkey;
|
||||
|
||||
ALTER TABLE ONLY buildings
|
||||
ADD CONSTRAINT buildings_geometry_id_fkey
|
||||
FOREIGN KEY (geometry_id) REFERENCES geometries(geometry_id) ON DELETE RESTRICT;
|
||||
|
||||
ALTER TABLE ONLY building_properties
|
||||
DROP CONSTRAINT building_properties_building_id_fkey;
|
||||
|
||||
ALTER TABLE ONLY building_properties
|
||||
ADD CONSTRAINT building_properties_building_id_fkey
|
||||
FOREIGN KEY (building_id) REFERENCES buildings(building_id) ON DELETE RESTRICT;
|
||||
|
||||
ALTER TABLE ONLY logs
|
||||
DROP CONSTRAINT logs_building_id_fkey;
|
||||
|
||||
ALTER TABLE ONLY logs
|
||||
ADD CONSTRAINT logs_building_id_fkey
|
||||
FOREIGN KEY (building_id) REFERENCES buildings(building_id) ON DELETE RESTRICT;
|
||||
"
|
Loading…
Reference in New Issue
Block a user