Skip to content

Instantly share code, notes, and snippets.

@TheFGFSEagle
Created August 6, 2021 21:06
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save TheFGFSEagle/001fdcc2d0277e41dfab6f558b3ecff8 to your computer and use it in GitHub Desktop.
Save TheFGFSEagle/001fdcc2d0277e41dfab6f558b3ecff8 to your computer and use it in GitHub Desktop.
#!/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