Created
August 6, 2021 21:06
-
-
Save TheFGFSEagle/001fdcc2d0277e41dfab6f558b3ecff8 to your computer and use it in GitHub Desktop.
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 | |
OGR_DECODE=ogr-decode | |
PROJECT_DIR=/mnt/DATEN/blender-2.83.0-linux64/2.83/datafiles/colormanagement/filmic/BrockenSceneryWorkspace | |
DATA_DIR="$PROJECT_DIR/data" | |
WORK_DIR="$PROJECT_DIR/work" | |
EXTENTS="10.5 51.75 10.75 51.875" | |
while [ "$1" != "" ]; do | |
case $1 in | |
-d | --ogr-decode ) | |
shift | |
OGR_DECODE="$1" | |
shift | |
;; | |
-p | --project-dir ) | |
shift | |
PROECT_DIR="$1" | |
shift | |
;; | |
-d | --data-dir ) | |
shift | |
DATA_DIR="$1" | |
shift | |
;; | |
-w | --work-dir ) | |
shift | |
WORKDIR="$1" | |
shift | |
;; | |
-e | --extents ) | |
shift | |
EXTENTS="$1" | |
shift | |
;; | |
esac | |
done | |
echo "ogr-decode: $OGR_DECODE" | |
echo "project dir: $PROJECT_DIR" | |
echo "data dir: $DATA_DIR" | |
echo "work dir: $WORK_DIR" | |
echo "extents: $EXTENTS" | |
decode_polygon() { | |
# ogr-decode accepts empty where queries | |
errors=$("$OGR_DECODE" --where "$3" --spat $EXTENTS --all-threads --area-type $1 "$WORK_DIR/$1" "$DATA_DIR/shapefiles/$2/$2.shp" 2>&1 > /dev/null) | |
if [ $? -gt 0 ]; then | |
echo "$errors" | |
exit 1 | |
fi | |
} | |
decode_line() { | |
# ogr-decode accepts empty where queries | |
errors=$("$OGR_DECODE" --where "$4" --spat "$EXTENTS" --line-width "$3" --all-threads --area-type $1 "$WORK_DIR/$1" "$DATA_DIR/shapefiles/$2/$2.shp" 2>&1 > /dev/null) | |
if [ $? -gt 0 ]; then | |
echo "$errors" | |
exit 1 | |
fi | |
} | |
decode_point() { | |
# ogr-decode accepts empty where queries | |
errors=$("$OGR_DECODE" --where "$4" --spat "$EXTENTS" --point-width "$3" --all-threads --area-type $1 "$WORK_DIR/$1" "$DATA_DIR/shapefiles/$2/$2.shp" 2>&1 > /dev/null) | |
if [ $? -gt 0 ]; then | |
echo "$errors" | |
exit 1 | |
fi | |
} | |
decode_line_column() { | |
# ogr-decode accepts empty where queries | |
errors=$("$OGR_DECODE" --where "$4" --spat "$EXTENTS" --line-width-column "$3" --all-threads --area-type $1 "$WORK_DIR/$1" "$DATA_DIR/shapefiles/$2/$2.shp" 2>&1 > /dev/null) | |
if [ $? -gt 0 ]; then | |
echo "$errors" | |
exit 1 | |
fi | |
} | |
decode_point_column() { | |
# ogr-decode accepts empty where queries, so we do not need to check if the last argument is empty | |
errors=$("$OGR_DECODE" --where "$4" --spat "$EXTENTS" --point-width-column "$3" --all-threads --area-type $1 "$WORK_DIR/$1" "$DATA_DIR/shapefiles/$2/$2.shp" 2>&1 > /dev/null) | |
if [ $? -gt 0 ]; then | |
echo "$errors" | |
exit 1 | |
fi | |
} | |
# landmass | |
printf "%s" "Decoding landmass … 0%" | |
decode_polygon Default osm_landmass | |
printf "\r%s\n" "Decoding landmass … 100%" | |
# landuse | |
printf "%s" "Decoding landuse … 0%" | |
decode_polygon Cemetery osm_landuse_a "fclass in ('cemetery')" | |
printf "\r%s" "Decoding landuse … 6%" | |
decode_polygon EvergreenForest osm_landuse_a "fclass in ('national_park')" | |
printf "\r%s" "Decoding landuse … 12%" | |
decode_polygon GrassCover osm_landuse_a "fclass in ('park', 'meadow', 'allotments', 'nature_reserve', 'recreation_ground', 'grass')" | |
printf "\r%s" "Decoding landuse … 18%" | |
decode_polygon Heath osm_landuse_a "fclass in ('heath')" | |
printf "\r%s" "Decoding landuse … 25%" | |
decode_polygon Industrial osm_landuse_a "fclass in ('industrial')" | |
printf "\r%s" "Decoding landuse … 31%" | |
decode_polygon MixedCrop osm_landuse_a "fclass in ('farmland')" | |
printf "\r%s" "Decoding landuse … 37%" | |
decode_polygon MixedForest osm_landuse_a "fclass in ('forest')" | |
printf "\r%s" "Decoding landuse … 43%" | |
decode_polygon NaturalCrop osm_landuse_a "fclass in ('military')" | |
printf "\r%s" "Decoding landuse … 50%" | |
decode_polygon OpenMining osm_landuse_a "fclass in ('quarry')" | |
printf "\r%s" "Decoding landuse … 56%" | |
decode_polygon Orchard osm_landuse_a "fclass in ('orchard')" | |
printf "\r%s" "Decoding landuse … 62%" | |
decode_polygon Sand osm_landuse_a "fclass in ('farmyard')" | |
printf "\r%s" "Decoding landuse … 68%" | |
decode_polygon Scrub osm_landuse_a "fclass in ('scrub')" | |
printf "\r%s" "Decoding landuse … 75%" | |
decode_polygon SubUrban osm_landuse_a "fclass in ('commercial', 'retail')" | |
printf "\r%s" "Decoding landuse … 81%" | |
decode_polygon Town osm_landuse_a "fclass in ('residential')" | |
printf "\r%s" "Decoding landuse … 87%" | |
decode_polygon Town osm_landuse_a "fclass in ('residential')" | |
printf "\r%s" "Decoding landuse … 93%" | |
decode_polygon Vineyard osm_landuse_a "fclass in ('vineyard')" | |
printf "\r%s\n" "Decoding landuse … 100%" | |
# natural areas (forests, beaches, etc.) | |
printf "%s" "Decoding natural areas … 0%" | |
decode_polygon Sand osm_natural_a "fclass in ('beach')" | |
printf "\r%s" "Decoding natural areas … 12%" | |
decode_polygon MixedForest osm_natural_a "fclass in ('tree')" | |
printf "\r%s" "Decoding natural areas … 25%" | |
decode_polygon Glacier osm_natural_a "fclass in ('glacier')" | |
printf "\r%s" "Decoding natural areas … 37%" | |
decode_polygon OpenMining osm_natural_a "fclass in ('mine')" | |
printf "\r%s" "Decoding natural areas … 50%" | |
decode_point OpenMining osm_natural 100 "fclass in ('mine')" | |
printf "\r%s" "Decoding natural areas … 63%" | |
decode_point Glacier osm_natural 100 "fclass in ('glacier')" | |
printf "\r%s" "Decoding natural areas … 75%" | |
decode_point Sand osm_natural 50 "fclass in ('beach')" | |
printf "\r%s" "Decoding natural areas … 88%" | |
decode_point MixedForest osm_natural 5 "fclass in ('tree')" | |
printf "\r%s\n" "Decoding natural areas … 100%" | |
# water (lakes, big rivers, etc.) | |
printf "%s" "Decoding lakes … 0%" | |
decode_polygon Lake osm_water_a "fclass in ('water')" | |
printf "\r%s" "Decoding lakes … 16%" | |
decode_polygon River osm_water_a "fclass in ('river')" | |
printf "\r%s" "Decoding lakes … 33%" | |
decode_polygon Glacier osm_water_a "fclass in ('glacier')" | |
printf "\r%s" "Decoding lakes … 50%" | |
decode_polygon Reservoir osm_water_a "fclass in ('reservoir')" | |
printf "\r%s" "Decoding lakes … 67%" | |
decode_polygon Port osm_water_a "fclass in ('dock')" | |
printf "\r%s" "Decoding lakes … 83%" | |
decode_polygon Marsh osm_water_a "fclass in ('wetland')" | |
printf "\r%s\n" "Decoding lakes … 100%" | |
# waterways (streams, rivers, canals, etc.) | |
printf "%s" "Decoding waterways … 0%" | |
decode_line Stream osm_waterways 2 "fclass in ('stream') and width = 0" | |
printf "\r%s" "Decoding waterways … 25%" | |
decode_line Canal osm_waterways 5 "fclass in ('canal') and width = 0" | |
printf "\r%s" "Decoding waterways … 50%" | |
decode_line River osm_waterways 10 "fclass in ('river') and width = 0" | |
printf "\r%s" "Decoding waterways … 75%" | |
decode_line Stream osm_waterways 1 "fclass in ('drain') and width = 0" | |
#printf "\r%s" "Decoding waterways … 50%" | |
#decode_line_column Stream osm_waterways "width" "fclass in ('stream') and width > 0" | |
#printf "\r%s" "Decoding waterways … 63%" | |
#decode_line_column Canal osm_waterways "width" "fclass in ('canal') and width > 0" | |
#printf "\r%s" "Decoding waterways … 75%" | |
#decode_line_column River osm_waterways "width" "fclass in ('river') and width > 0" | |
#printf "\r%s" "Decoding waterways … 88%" | |
#decode_line_column Stream osm_waterways "width" "fclass in ('drain') and width > 0" | |
printf "\r%s\n" "Decoding waterways … 100%" | |
# roads (roads, highways, streets, footways, etc.) | |
printf "%s" "Decoding roads … 0%" | |
decode_line Road-Motorway osm_roads 12 "fclass in ('motorway', 'motorway_link', 'motorway_junction')" | |
printf "\r%s" "Decoding roads … 5%" | |
decode_line Road-Trunk osm_roads 10 "fclass in ('trunk', 'trunk_link')" | |
printf "\r%s" "Decoding roads … 17%" | |
decode_line Road-Primary osm_roads 8 "fclass in ('primary', 'primary_link')" | |
printf "\r%s" "Decoding roads … 23%" | |
decode_line Road-Secondary osm_roads 7 "fclass in ('secondary', 'secondary_link')" | |
printf "\r%s" "Decoding roads … 29%" | |
decode_line Road-Tertiary osm_roads 6 "fclass in ('tertiary', 'tertiary_link')" | |
printf "\r%s" "Decoding roads … 35%" | |
decode_line Road-Residential osm_roads 4 "fclass in ('residential', 'living_street')" | |
printf "\r%s" "Decoding roads … 41%" | |
decode_line Road-Pedestrian osm_roads 3 "fclass in ('pedestrian')" | |
printf "\r%s" "Decoding roads … 47%" | |
decode_line Road-Service osm_roads 3 "fclass in ('service', 'track_grade1')" | |
printf "\r%s" "Decoding roads … 52%" | |
decode_line Road-Unclassified osm_roads 3 "fclass in ('unknown', 'unclassified')" | |
printf "\r%s" "Decoding roads … 57%" | |
decode_line Gravel osm_roads 3 "fclass in ('track', 'track_grade2')" | |
printf "\r%s" "Decoding roads … 63%" | |
decode_line Sand osm_roads 3 "fclass in ('track_grade3', 'track_grade4')" | |
printf "\r%s" "Decoding roads … 68%" | |
decode_line Grass osm_roads 1 "fclass in ('track_grade4')" | |
printf "\r%s" "Decoding roads … 74%" | |
decode_line Dirt osm_roads 2 "fclass in ('track_grade5')" | |
printf "\r%s" "Decoding roads … 79%" | |
decode_line Dirt osm_roads 1 "fclass in ('bridleway', 'path')" | |
printf "\r%s" "Decoding roads … 84%" | |
decode_line Asphalt osm_roads 1 "fclass in ('cycleway', 'footway')" | |
printf "\r%s" "Decoding roads … 90%" | |
decode_polygon Road osm_traffic_a "fclass in ('turning_circle', 'fuel')" | |
printf "\r%s" "Decoding roads … 95%" | |
decode_polygon Asphalt osm_traffic_a "fclass in ('parking', 'parking_site', 'parking_bicycle')" | |
printf "\r%s\n" "Decoding roads … 100%" | |
# urban areas and airports | |
printf "%s" "Decoding towns … 0%" | |
decode_polygon Airport osm_transport_a "fclass in ('airport', 'airfield', 'helipad', 'apron')" | |
printf "\r%s" "Decoding towns … 16%" | |
decode_polygon Urban osm_buildings_a | |
printf "\r%s" "Decoding towns … 33%" | |
decode_polygon Urban osm_places_a | |
printf "\r%s" "Decoding towns … 50%" | |
decode_point Urban osm_places 10 | |
printf "\r%s" "Decoding towns … 67%" | |
decode_polygon Town osm_pofw_a | |
printf "\r%s" "Decoding towns … 83%" | |
decode_point Town osm_pofw 10 | |
printf "\r%s\n" "Decoding towns … 100%" | |
# railroads | |
printf "%s" "Decoding Railroads … 0%" | |
decode_line Railroad osm_railways 1 "fclass in ('rail', 'rack', 'tram', 'monorail', 'funicular', 'cable_car', 'light_rail', 'narrow_gauge')" | |
printf "\r%s\n" "Decoding Railroads … 100%" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment