Initial Watermaps import
This commit is contained in:
Executable
+67
@@ -0,0 +1,67 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
if ! command -v osmium >/dev/null 2>&1; then
|
||||
echo "osmium is required for filtering OSM PBF files." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v psql >/dev/null 2>&1; then
|
||||
echo "psql is required for preparing the PostGIS schema." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v node >/dev/null 2>&1; then
|
||||
echo "node is required for loading filtered OSM features into PostGIS." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PBF_PATH="${1:-}"
|
||||
DATABASE_URL="${DATABASE_URL:-postgres://seacompass:seacompass@localhost:55432/seacompass}"
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
|
||||
if [[ -z "$PBF_PATH" || ! -f "$PBF_PATH" ]]; then
|
||||
echo "Usage: DATABASE_URL=postgres://... ./scripts/import-geofabrik.sh /path/to/europe-latest.osm.pbf" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
WORKDIR="$(mktemp -d)"
|
||||
trap 'rm -rf "$WORKDIR"' EXIT
|
||||
|
||||
osmium tags-filter "$PBF_PATH" \
|
||||
nwr/seamark:type \
|
||||
nwr/lock=yes \
|
||||
nwr/water=lock \
|
||||
nwr/waterway=lock \
|
||||
nwr/waterway=lock_gate \
|
||||
nwr/obstacle=lock \
|
||||
nwr/leisure=marina \
|
||||
nwr/harbour \
|
||||
nwr/industrial=port \
|
||||
nwr/landuse=harbour \
|
||||
nwr/landuse=port \
|
||||
nwr/waterway=dock \
|
||||
w/waterway=fairway \
|
||||
w/waterway=canal \
|
||||
w/waterway=river \
|
||||
w/route=ferry \
|
||||
w/natural=water \
|
||||
w/water=lake \
|
||||
w/boat=yes \
|
||||
w/ship=yes \
|
||||
nwr/bridge \
|
||||
r/natural=water \
|
||||
r/water=lake \
|
||||
r/route=ferry \
|
||||
-o "$WORKDIR/marine.osm.pbf" \
|
||||
--overwrite
|
||||
|
||||
osmium export "$WORKDIR/marine.osm.pbf" \
|
||||
--format geojsonseq \
|
||||
--add-unique-id type_id \
|
||||
--attributes type,id \
|
||||
-o "$WORKDIR/marine.geojsonseq" \
|
||||
--overwrite
|
||||
|
||||
psql "$DATABASE_URL" -f "$ROOT_DIR/database/schema.sql"
|
||||
DATABASE_URL="$DATABASE_URL" WATERMAPS_IMPORT_SOURCE="$(basename "$PBF_PATH" .osm.pbf)" node "$ROOT_DIR/scripts/load-osm-fairways.mjs" "$WORKDIR/marine.geojsonseq"
|
||||
Reference in New Issue
Block a user