From 3b02e4c16533ec18fbc29b134aea78e405232a92 Mon Sep 17 00:00:00 2001 From: konggdev Date: Thu, 14 May 2026 00:00:40 +0200 Subject: [PATCH] Fancy path system --- build.sh | 245 ++++++++++++++++++----- defs/README.md | 1 - defs/regions/.europe.txt.kate-swp | Bin 321442 -> 0 bytes defs/regions/planet.txt | 8 - defs/regions/roots/africa.txt | 55 ----- defs/regions/roots/asia.txt | 38 ---- defs/regions/roots/australia-oceania.txt | 23 --- defs/regions/roots/central-america.txt | 11 - defs/regions/roots/europe.txt | 52 ----- defs/regions/roots/north-america.txt | 9 - defs/regions/roots/south-america.txt | 12 -- schema.yml | 20 +- 12 files changed, 207 insertions(+), 267 deletions(-) delete mode 100644 defs/README.md delete mode 100644 defs/regions/.europe.txt.kate-swp delete mode 100644 defs/regions/planet.txt delete mode 100644 defs/regions/roots/africa.txt delete mode 100644 defs/regions/roots/asia.txt delete mode 100644 defs/regions/roots/australia-oceania.txt delete mode 100644 defs/regions/roots/central-america.txt delete mode 100644 defs/regions/roots/europe.txt delete mode 100644 defs/regions/roots/north-america.txt delete mode 100644 defs/regions/roots/south-america.txt diff --git a/build.sh b/build.sh index d91f4c5..4b37b21 100755 --- a/build.sh +++ b/build.sh @@ -1,73 +1,228 @@ #!/usr/bin/env bash -if [ "$#" -ne 3 ]; then - echo "Usage: $0 " +# Set defaults +MEMORY="${MEMORY:-$(($(getconf _PHYS_PAGES) * $(getconf PAGE_SIZE) / 1024 / 1024 / 2))M}" + +# Fetch args +while [[ $# -gt 0 ]]; do + case "$1" in + -m|--memory) + MEMORY="$2" + shift 2 + ;; + -m=*|--memory=*) + MEMORY="${1#*=}" + shift + ;; + -d|--max-depth) + MAX_DEPTH="$2" + shift 2 + ;; + -d=*|--max-depth=*) + MAX_DEPTH="${1#*=}" + shift + ;; + -e|--exclude) + EXCLUDE="$2" + shift 2 + ;; + -e=*|--exclude=*) + EXCLUDE="${1#*=}" + shift + ;; + -t|--test) + TEST=1 + shift + ;; + -*) + echo "Unknown option: $1" + exit 1 + ;; + *) + if [[ -z "$PATH_ARG" ]]; then + PATH_ARG="$1" + elif [[ -z "$MODE" ]]; then + MODE="$1" + else + echo "Unexpected argument: $1" + exit 1 + fi + shift + ;; + esac +done + +# Validate args +if [[ -z "$PATH_ARG" || -z "$MODE" ]]; then + cat < [options] + +Modes: + single Process path as single region + recursive Process all sub-regions under path recursively + +Options: + -m, --memory + RAM allocation given to Planetiler + Default: system RAM / 2 + + -d, --max-depth + Maximum recursion depth (only recursive mode) + + -e, --exclude + Semicolon-separated list of full region paths to exclude from processing + + -t, --test + Dry run mode. Prints all regions that would be processed without generating any output. + +EOF exit 1 fi -#Define functions +case "$MODE" in + single|recursive) + ;; + *) + echo "Error: invalid mode '$MODE'" + echo "Valid modes are: single, subreg, recursive" + exit 1 + ;; +esac + +if [[ -n "$MAX_DEPTH" ]]; then + if ! [[ "$MAX_DEPTH" =~ ^[0-9]+$ ]]; then + echo "Error: --max-depth must be a non-negative integer" + exit 1 + fi +fi + +if [[ -n "$MAX_DEPTH" && "$MODE" != "recursive" ]]; then + echo "Warning: --max-depth can only work with recursive, ignoring..." +fi + +echo "Processing path '$PATH_ARG' in $MODE mode with $MEMORY memory allocated..." + +# Define functions +should_skip() { + local path="$1" + + [[ -z "$EXCLUDE" ]] && return 1 + + IFS=';' read -ra EXCL <<< "$EXCLUDE" + for ex in "${EXCL[@]}"; do + [[ "$path" == *"$ex"* ]] && return 0 + done + + return 1 +} + generate_region() { - local REGION="$1" - local REGION_ROOT="$2" - local MEMORY="${3:-8g}" + local PATH_ARG="$1" + local MEMORY="$2" - local POLY_FILE="${REGION}.poly" + PATH_ARG="${PATH_ARG%/}" - mkdir -p work - wget -O "work/$POLY_FILE" \ - "https://download.geofabrik.de/${REGION_ROOT}/${REGION}.poly" + if should_skip "$PATH_ARG"; then + echo "Skipping excluded region: $PATH_ARG" + return 0 + fi - mkdir -p "work/contours/$REGION_ROOT/$REGION" + echo "Generating region: $PATH_ARG" + if [[ "$TEST" == "1" ]]; then + return 0 + fi + + mkdir -p "./work/poly/${PATH_ARG%/*}" + wget "https://download.geofabrik.de/$PATH_ARG.poly" -O "./work/poly/$PATH_ARG.poly" + + mkdir -p "./work/contours/${PATH_ARG%/*}" pyhgtmap \ - --polygon="work/$POLY_FILE" \ - --step=75 \ + --polygon="./work/poly/$PATH_ARG.poly" \ + --step=100 \ --hgtdir=work/hgt \ --sources=view1,view3 \ --simplifyContoursEpsilon=0.001 \ -j16 \ --max-nodes-per-tile=0 \ - --output-prefix="work/contours/$REGION_ROOT/$REGION/con" - - rm -f work/contours.osm + --output-prefix="./work/contours/$PATH_ARG/con" + mkdir -p "./work/tmp" # max-nodes-per-tile=0 SHOULD generate only one file - mv "work/contours/$REGION_ROOT/$REGION"/con* work/contours.osm + # still very much wonky though + mv "work/contours/$PATH_ARG"/con* work/tmp/contours.osm - rm -f data/contours.geojson - - osmium export work/contours.osm \ - -o data/contours.geojson \ + mkdir -p "./data/contours/${PATH_ARG%/*}" + osmium export work/tmp/contours.osm \ + -o data/contours/${PATH_ARG}.geojson \ --overwrite - rm -f work/contours.osm + rm -f work/tmp/contours.osm - mkdir -p "./out/$REGION_ROOT" + mkdir -p "./out/${PATH_ARG%/*}" + + mkdir -p "./data/osm/${PATH_ARG%/*}" + wget "https://download.geofabrik.de/${PATH_ARG%/*}/$( + curl -s "https://download.geofabrik.de/${PATH_ARG%/*}/" | + grep -oP 'href="\K[^"]+' | + grep -vE '^\?C=|/icons/|Parent Directory|^/?$' | + sed 's|/$||' | + grep '\.osm\.pbf$' | + grep -v '\.md5$' | + grep "${PATH_ARG##*/}" | + sort | + tail -n 1 + )" -O "./data/osm/${PATH_ARG}.osm.pbf" java -Xmx"$MEMORY" \ -jar ./bin/planetiler.jar schema.yml \ --download \ - --area="${REGION}" \ - --output="./out/${REGION_ROOT}/${REGION}.mbtiles" \ + --osm_file="./data/osm/${PATH_ARG}.osm.pbf" \ + --contour_file="./data/contours/${PATH_ARG}.geojson" \ + --output="./out/${PATH_ARG}.mbtiles" \ --no-simplify \ --simplify-tolerance-at-max-zoom=0 \ --no-feature-merge \ --simplify-tolerance=0 } -generate_root() { - local REGION_ROOT="$1" - local REGION="$2" - if [[ "$REGION" == "each" ]]; then - while IFS= read -r REGION; do - generate_region "$REGION" "$REGION_ROOT" "$MEMORY" - done < "defs/regions/roots/${REGION_ROOT}.txt" +fetch_path() { + local PATH_ARG="$1" + curl -s "https://download.geofabrik.de/$PATH_ARG/" | + grep -oP 'href="\K[^"]+' | + grep -vE '^\?C=|/icons/|Parent Directory|^/?$' | + sed 's|/$||' | + grep ".poly" | + sed 's/\.poly$//' +} + +all_path() { + local PATH_ARG="$1" + if [ "$PATH_ARG" = "planet" ]; then + PATH_ARG="" + SUBS=$'africa\nantarctica\nasia\naustralia-oceania\ncentral-america\neurope\nnorth-america\nsouth-america' else - generate_region "$REGION" "$REGION_ROOT" "$MEMORY" + SUBS=$(fetch_path "$PATH_ARG") + fi + + if [ -z "$SUBS" ]; then + while IFS= read -r REG; do + generate_region "$PATH_ARG" "$MEMORY" + done <<< "$SUBS" + else + while IFS= read -r REG; do + if [[ -n "$PATH_ARG" ]]; then + all_path "$PATH_ARG/$REG" + else + all_path "$REG" + fi + done <<< "$SUBS" fi } -#Prepare environment +# Prepare environment if [ ! -f ./bin/planetiler.jar ]; then mkdir -p ./bin wget -O ./bin/planetiler.jar https://github.com/onthegomap/planetiler/releases/latest/download/planetiler.jar @@ -84,19 +239,13 @@ else source "$VENV_DIR/bin/activate" fi -REGION_ROOT="$1" -REGION="$2" -MEMORY="$3" - -#Generate -if [ "$REGION_ROOT" == "each" ]; then - if [ "$REGION" != "each" ]; then - echo "Cannot generate 'each' root region for non-each region, exiting..." - exit 1 +# Generate +if [ "$MODE" == "single" ]; then + if [ "$PATH_ARG" = "planet" ]; then + echo "TODO" fi - while IFS= read -r REGION_ROOT; do - generate_root "$REGION_ROOT" "each" "$MEMORY" - done < "defs/regions/planet.txt" -else - generate_root "$REGION_ROOT" "$REGION" "$MEMORY" + generate_region "$PATH_ARG" "$MEMORY" + exit 0 +elif [[ "$MODE" == "recursive" ]]; then + all_path "$PATH_ARG" fi diff --git a/defs/README.md b/defs/README.md deleted file mode 100644 index 47c3059..0000000 --- a/defs/README.md +++ /dev/null @@ -1 +0,0 @@ -Local definitions diff --git a/defs/regions/.europe.txt.kate-swp b/defs/regions/.europe.txt.kate-swp deleted file mode 100644 index bd506a917396aaece9e2a8d014778dc49e61563f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 321442 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/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 diff --git a/defs/regions/planet.txt b/defs/regions/planet.txt deleted file mode 100644 index 8caa993..0000000 --- a/defs/regions/planet.txt +++ /dev/null @@ -1,8 +0,0 @@ -africa -antarctica -asia -australia-oceania -central-america -europe -north-america -south-america diff --git a/defs/regions/roots/africa.txt b/defs/regions/roots/africa.txt deleted file mode 100644 index bc37157..0000000 --- a/defs/regions/roots/africa.txt +++ /dev/null @@ -1,55 +0,0 @@ -algeria -angola -benin -botswana -burkina-faso -burundi -cameroon -canary-islands -cape-verde -central-african-republic -chad -comores -congo-brazzaville -congo-democratic-republic -djibouti -egypt -equatorial-guinea -eritrea -ethiopia -gabon -ghana -guinea -guinea-bissau -ivory-coast -kenya -lesotho -liberia -libya -madagascar -malawi -mali -mauritania -mauritius -morocco -mozambique -namibia -niger -nigeria -rwanda -saint-helena-ascension-and-tristan-da-cunha -sao-tome-and-principe -senegal-and-gambia -seychelles -sierra-leone -somalia -south-africa -south-sudan -sudan -swaziland -tanzania -togo -tunisia -uganda -zambia -zimbabwe diff --git a/defs/regions/roots/asia.txt b/defs/regions/roots/asia.txt deleted file mode 100644 index 3b9ded8..0000000 --- a/defs/regions/roots/asia.txt +++ /dev/null @@ -1,38 +0,0 @@ -afghanistan -armenia -azerbaijan -bangladesh -bhutan -cambodia -china -east-timor -gcc-states -india -indonesia -iran -iraq -israel-and-palestine -japan -jordan -kazakhstan -kyrgyzstan -laos -lebanon -malaysia-singapore-brunei -maldives -mongolia -myanmar -nepal -north-korea -pakistan -philippines -south-korea -sri-lanka -syria -taiwan -tajikistan -thailand -turkmenistan -uzbekistan -vietnam -yemen diff --git a/defs/regions/roots/australia-oceania.txt b/defs/regions/roots/australia-oceania.txt deleted file mode 100644 index 16d41a0..0000000 --- a/defs/regions/roots/australia-oceania.txt +++ /dev/null @@ -1,23 +0,0 @@ -american-oceania -australia -cook-islands -fiji -ile-de-clipperton -kiribati -marshall-islands -micronesia -nauru -new-caledonia -new-zealand -niue -palau -papua-new-guinea -pitcairn-islands -polynesie-francaise -samoa -solomon-islands -tokelau -tonga -tuvalu -vanuatu -wallis-et-futuna diff --git a/defs/regions/roots/central-america.txt b/defs/regions/roots/central-america.txt deleted file mode 100644 index 5823b80..0000000 --- a/defs/regions/roots/central-america.txt +++ /dev/null @@ -1,11 +0,0 @@ -bahamas -belize -costa-rica -cuba -el-salvador -guatemala -haiti-and-domrep -honduras -jamaica -nicaragua -panama diff --git a/defs/regions/roots/europe.txt b/defs/regions/roots/europe.txt deleted file mode 100644 index 79b5ac4..0000000 --- a/defs/regions/roots/europe.txt +++ /dev/null @@ -1,52 +0,0 @@ -albania -andorra -austria -azores -belarus -belgium -bosnia-herzegovina -britain-and-ireland -bulgaria -croatia -cyprus -czech-republic -dach -denmark -estonia -faroe-islands -finland -france -georgia -germany -great-britain -greece -guernsey-jersey -hungary -iceland -ireland-and-northern-ireland -isle-of-man -italy -kosovo -latvia -liechtenstein -lithuania -luxembourg -macedonia -malta -moldova -monaco -montenegro -netherlands -norway -poland -portugal -romania -serbia -slovakia -slovenia -spain -sweden -switzerland -turkey -ukraine -united-kingdom diff --git a/defs/regions/roots/north-america.txt b/defs/regions/roots/north-america.txt deleted file mode 100644 index 3f5c46e..0000000 --- a/defs/regions/roots/north-america.txt +++ /dev/null @@ -1,9 +0,0 @@ -canada -greenland -mexico -us -us-midwest -us-northeast -us-pacific -us-south -us-west diff --git a/defs/regions/roots/south-america.txt b/defs/regions/roots/south-america.txt deleted file mode 100644 index d315893..0000000 --- a/defs/regions/roots/south-america.txt +++ /dev/null @@ -1,12 +0,0 @@ -argentina -bolivia -brazil -chile -colombia -ecuador -guyana -paraguay -peru -suriname -uruguay -venezuela diff --git a/schema.yml b/schema.yml index c96abfd..5e3c2b5 100755 --- a/schema.yml +++ b/schema.yml @@ -2,26 +2,26 @@ schema_name: StrikeMaps Tileschema schema_description: A tileschema for OpenStreetMap data developed by the Strike Maps project. attribution: © OpenStreetMap contributors, Natural Earth, NASA SRTM args: - area: - description: Geofabrik area to download - default: monaco - osm_url: - description: OSM URL to download - default: '${ args.area == "planet" ? "aws:latest" : ("geofabrik:" + args.area) }' + osm_file: + description: Source .osm.pbf file + default: ./source.osm.pbf + contour_file: + description: Contour data geojson + default: ./contours.geojson sources: + osm: + type: osm + local_path: '${ args.osm_file }' ocean: type: shapefile url: https://osmdata.openstreetmap.de/download/water-polygons-split-3857.zip - osm: - type: osm - url: '${ args.osm_url }' natural_earth: type: geopackage url: "https://naciscdn.org/naturalearth/packages/natural_earth_vector.gpkg.zip" projection: EPSG:4326 contour: type: geojson - local_path: ./data/contours.geojson + local_path: '${ args.contour_file }' hillshade_json: type: geojson url: "https://raw.githubusercontent.com/tinius/hillshade-json/refs/heads/master/hillshade.json"