Created
January 28, 2023 01:18
-
-
Save vilhelmen/556f002088504f6e5d47c8fb37c83d55 to your computer and use it in GitHub Desktop.
GADM 4.1 importer
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/bash | |
# You probably don't care about States, cities, counties, etc. | |
cat <<EOF | |
BEGIN; | |
DROP TABLE IF EXISTS gadm.adm_1; | |
DROP TABLE IF EXISTS gadm.adm_2; | |
DROP TABLE IF EXISTS gadm.adm_3; | |
DROP TABLE IF EXISTS gadm.adm_4; | |
DROP TABLE IF EXISTS gadm.adm_5; | |
COMMIT; | |
EOF |
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/bash | |
if [ "$#" -ne 1 ]; then | |
echo "BAD PARAM COUNT! Usage: ${0} /path/to/gadm-levels.gpkg | psql ..." | |
fi | |
# SCREAMING ogr2ogr won't take a gpkg from stdin because it's missing a "conformat extension" | |
# Or because it can't skip tp the end of stdin. Idk. Or both. | |
ogr2ogr -f PGDump --config PG_USE_COPY YES -lco SCHEMA=gadm '/vsistdout/' "$1" | |
cat <<EOF | |
BEGIN; | |
\echo Indexng adm_0 | |
CREATE INDEX ON gadm.adm_0 (gid_0); | |
CREATE INDEX ON gadm.adm_0 (country); | |
COMMIT; | |
BEGIN; | |
\echo Building gadm.country_borders | |
-- GO AWAY CASPIAN SEA WHO INVITED YOU YOU'RE NOT EVEN A COUNTRY | |
-- We also now have some mystery shapes for China, India, and Pakistan | |
CREATE MATERIALIZED VIEW gadm.country_borders AS SELECT gid_0 AS iso3, country AS name, geom FROM gadm.adm_0 WHERE gid_0 NOT IN ('XCA', 'Z01', 'Z02', 'Z03', 'Z04', 'Z05', 'Z06', 'Z07', 'Z08', 'Z09') WITH DATA; | |
CREATE INDEX ON gadm.country_borders (name); | |
CREATE INDEX ON gadm.country_borders (iso3); | |
CREATE INDEX ON gadm.country_borders USING gist(geom); | |
COMMIT; | |
EOF |
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/bash | |
cat <<EOF | |
BEGIN; | |
\echo Indexng adm_1 | |
CREATE INDEX ON gadm.adm_1 (gid_0); | |
CREATE INDEX ON gadm.adm_1 (country); | |
CREATE INDEX ON gadm.adm_1 (gid_1); | |
CREATE INDEX ON gadm.adm_1 (name_1); | |
CREATE INDEX ON gadm.adm_1 (iso_1); | |
\echo Indexng adm_2 | |
CREATE INDEX ON gadm.adm_2 (gid_0); | |
CREATE INDEX ON gadm.adm_2 (country); | |
CREATE INDEX ON gadm.adm_2 (gid_1); | |
CREATE INDEX ON gadm.adm_2 (name_1); | |
CREATE INDEX ON gadm.adm_2 (gid_2); | |
CREATE INDEX ON gadm.adm_2 (name_2); | |
\echo Indexng adm_3 | |
CREATE INDEX ON gadm.adm_3 (gid_0); | |
CREATE INDEX ON gadm.adm_3 (country); | |
CREATE INDEX ON gadm.adm_3 (gid_1); | |
CREATE INDEX ON gadm.adm_3 (name_1); | |
CREATE INDEX ON gadm.adm_3 (gid_2); | |
CREATE INDEX ON gadm.adm_3 (name_2); | |
CREATE INDEX ON gadm.adm_3 (gid_3); | |
CREATE INDEX ON gadm.adm_3 (name_3); | |
\echo Indexng adm_4 | |
CREATE INDEX ON gadm.adm_4 (gid_0); | |
CREATE INDEX ON gadm.adm_4 (country); | |
CREATE INDEX ON gadm.adm_4 (gid_1); | |
CREATE INDEX ON gadm.adm_4 (name_1); | |
CREATE INDEX ON gadm.adm_4 (gid_2); | |
CREATE INDEX ON gadm.adm_4 (name_2); | |
CREATE INDEX ON gadm.adm_4 (gid_3); | |
CREATE INDEX ON gadm.adm_4 (name_3); | |
CREATE INDEX ON gadm.adm_4 (gid_4); | |
CREATE INDEX ON gadm.adm_4 (name_4); | |
\echo Indexng adm_5 | |
CREATE INDEX ON gadm.adm_5 (gid_0); | |
CREATE INDEX ON gadm.adm_5 (country); | |
CREATE INDEX ON gadm.adm_5 (gid_1); | |
CREATE INDEX ON gadm.adm_5 (name_1); | |
CREATE INDEX ON gadm.adm_5 (gid_2); | |
CREATE INDEX ON gadm.adm_5 (name_2); | |
CREATE INDEX ON gadm.adm_5 (gid_3); | |
CREATE INDEX ON gadm.adm_5 (name_3); | |
CREATE INDEX ON gadm.adm_5 (gid_4); | |
CREATE INDEX ON gadm.adm_5 (name_4); | |
CREATE INDEX ON gadm.adm_5 (gid_5); | |
CREATE INDEX ON gadm.adm_5 (name_5); | |
COMMIT; | |
EOF |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment