Update generate.
This commit is contained in:
parent
02ff4962b3
commit
5d642f288a
114
generate.sh
114
generate.sh
@ -2,9 +2,16 @@
|
|||||||
|
|
||||||
DEFAULT_OUTPUT_FOLDER=outputs
|
DEFAULT_OUTPUT_FOLDER=outputs
|
||||||
|
|
||||||
|
DEFAULT_WRITER=insa2018
|
||||||
|
|
||||||
bounding_box=
|
bounding_box=
|
||||||
|
bounding_poly=
|
||||||
|
map_id=
|
||||||
debug=false
|
debug=false
|
||||||
|
|
||||||
|
graph_only=false
|
||||||
|
mapsforge_only=false
|
||||||
|
|
||||||
input_file=
|
input_file=
|
||||||
output_name=
|
output_name=
|
||||||
|
|
||||||
@ -12,7 +19,7 @@ output_name=
|
|||||||
#
|
#
|
||||||
# Print short usage information.
|
# Print short usage information.
|
||||||
function help_short() {
|
function help_short() {
|
||||||
echo "Usage: $0 [-h|--help] [-d|--debug] [-b|--bounding-box] [-o|--output OUTPUT_NAME] INPUT_FILE"
|
echo "Usage: $0 [-h|--help] [-d|--debug] [-i|--id MAP_ID] [-b|--bounding-box FILE|BBOX] [-g|--graph-only] [-f|--mapsforge-only] [-p|--bounding-polygon FILE] [-o|--output OUTPUT_NAME] INPUT_FILE"
|
||||||
}
|
}
|
||||||
|
|
||||||
# FUNCTION help_long()
|
# FUNCTION help_long()
|
||||||
@ -21,7 +28,9 @@ function help_short() {
|
|||||||
function help_long() {
|
function help_long() {
|
||||||
help_short
|
help_short
|
||||||
printf "\t-d,--debug\tEnable debug mode.\n"
|
printf "\t-d,--debug\tEnable debug mode.\n"
|
||||||
|
printf "\t-i,--id\tMap ID.\n"
|
||||||
printf "\t-b,--bounding-box\tSpecify a bounding-box, either via a string or a file.\n"
|
printf "\t-b,--bounding-box\tSpecify a bounding-box, either via a string or a file.\n"
|
||||||
|
printf "\t-p,--bounding-polygon\tSpecify a bounding-polygon, only used for OSM2Graph.\n"
|
||||||
printf "\t-h,--help\tPrint this help.\n"
|
printf "\t-h,--help\tPrint this help.\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,7 +38,7 @@ function help_long() {
|
|||||||
#
|
#
|
||||||
# Print error composed of arguments, then exit.
|
# Print error composed of arguments, then exit.
|
||||||
function error() {
|
function error() {
|
||||||
echo "$0: $*" >> /dev/stderr
|
echo "ERROR: $0: $*" >> /dev/stderr
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -37,7 +46,7 @@ function error() {
|
|||||||
#
|
#
|
||||||
# Print error composed of arguments, followed by help, then exit.
|
# Print error composed of arguments, followed by help, then exit.
|
||||||
function error_and_usage() {
|
function error_and_usage() {
|
||||||
echo "$0: $*" >> /dev/stderr
|
echo "ERROR: $0: $*" >> /dev/stderr
|
||||||
help_short
|
help_short
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
@ -46,9 +55,18 @@ function error_and_usage() {
|
|||||||
#
|
#
|
||||||
# Print warning / information composed of arguments.
|
# Print warning / information composed of arguments.
|
||||||
function warning() {
|
function warning() {
|
||||||
echo "$0: $*" >> /dev/stderr
|
echo "WARNING: $0: $*" >> /dev/stderr
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# FUNCTION warning(...)
|
||||||
|
#
|
||||||
|
# Print information composed of arguments.
|
||||||
|
function info() {
|
||||||
|
echo "INFO: $0: $*" >> /dev/stderr
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# FUNCTION run(...)
|
# FUNCTION run(...)
|
||||||
#
|
#
|
||||||
# Execute given command if debug mode is disabled, otherwize
|
# Execute given command if debug mode is disabled, otherwize
|
||||||
@ -61,7 +79,7 @@ function run() {
|
|||||||
# FUNCTION check_input_file()
|
# FUNCTION check_input_file()
|
||||||
#
|
#
|
||||||
# Check if input file exists and has read access.
|
# Check if input file exists and has read access.
|
||||||
function() check_input_file() {
|
function check_input_file() {
|
||||||
|
|
||||||
if [ -z "${input_file}" ]; then
|
if [ -z "${input_file}" ]; then
|
||||||
error_and_usage "Missing input file."
|
error_and_usage "Missing input file."
|
||||||
@ -84,11 +102,11 @@ function() check_input_file() {
|
|||||||
# FUNCTION check_output_file()
|
# FUNCTION check_output_file()
|
||||||
#
|
#
|
||||||
# Check output file.
|
# Check output file.
|
||||||
function() check_input_file() {
|
function check_output_file() {
|
||||||
|
|
||||||
if [ -z "${output_file}" ]; then
|
if [ -z "${output_file}" ]; then
|
||||||
output_file=${DEFAULT_OUTPUT_FOLDER}/$(basename -s .pbf ${input_file})
|
output_file=${DEFAULT_OUTPUT_FOLDER}/$(basename -s .pbf ${input_file})
|
||||||
warning "No output file specific, switching to ${output_file}."
|
info "No output file specific, switching to ${output_file}."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -104,6 +122,20 @@ do
|
|||||||
bounding_box="$2"
|
bounding_box="$2"
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
-p|--bounding-polygon)
|
||||||
|
bounding_poly="$2"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-f|--mapsforge-only)
|
||||||
|
mapsforge_only=true
|
||||||
|
;;
|
||||||
|
-g|--graph-only)
|
||||||
|
graph_only=true
|
||||||
|
;;
|
||||||
|
-i|--id)
|
||||||
|
map_id="$2"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
-d|--debug)
|
-d|--debug)
|
||||||
debug=true
|
debug=true
|
||||||
;;
|
;;
|
||||||
@ -124,3 +156,71 @@ done
|
|||||||
|
|
||||||
check_input_file
|
check_input_file
|
||||||
check_output_file
|
check_output_file
|
||||||
|
|
||||||
|
if [ -z "${map_id}" ]; then
|
||||||
|
error_and_usage "No map ID specified."
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -z "${bounding_box}" ] && [ -e "${bounding_box}" ]; then
|
||||||
|
bounding_box=$(cat ${bounding_box})
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "${bounding_box}" ] && echo ${input_file} | grep "merge"; then
|
||||||
|
error_and_usage "Using a merged file (_merge) without bounding box is not possible."
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ${graph_only}; then
|
||||||
|
info "Skipping mapsforge generation... "
|
||||||
|
else
|
||||||
|
CMD_MF="bin/osmosis --rb ${input_file} --lp --mapfile-writer file=${output_file}.mapfg threads=4"
|
||||||
|
|
||||||
|
if [ ! -z "${bounding_box}" ]; then
|
||||||
|
CMD_MF="${CMD_MF} bbox=${bounding_box}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
nohup ${CMD_MF} > nohup_mf_$(basename ${output_file}).out &
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ${mapsforge_only}; then
|
||||||
|
info "Skipping graph generation... "
|
||||||
|
else
|
||||||
|
|
||||||
|
# Merge file as input...
|
||||||
|
if echo ${input_file} | grep "merge"; then
|
||||||
|
|
||||||
|
# Try to find the originl (.osm.pbf)...
|
||||||
|
input_file=$(echo ${input_file} | sed 's/_merge.pbf/.osm.pbf/')
|
||||||
|
|
||||||
|
# ...or a generated .pbf...
|
||||||
|
if [ ! -e ${input_file} ]; then
|
||||||
|
input_file=$(echo ${input_file} | sed 's/.osm//')
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If nothing is found, warn the user...
|
||||||
|
if [ ! -e ${input_file} ]; then
|
||||||
|
warning "Merge file specified but the original file was not found, the graph file may not be generated correctly from the merged file."
|
||||||
|
else
|
||||||
|
info "Merge file detected, original file was found: ${input_file}."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
CMD_GR="bin/osmosis --rb ${input_file} --lp"
|
||||||
|
|
||||||
|
if [ ! -z "${bounding_polygon}" ]; then
|
||||||
|
CMD_GR="${CMD_GR} --bounding-polygon file=${bounding_polygon} completeWays=yes --lp"
|
||||||
|
else
|
||||||
|
if [ ! -z "${bounding_box}" ]; then
|
||||||
|
osmbbox=$(echo ${bounding_box} | \
|
||||||
|
tr "," " " | \
|
||||||
|
xargs printf "bottom=%f left=%f top=%f right=%f")
|
||||||
|
CMD_GR="${CMD_GR} --bounding-box ${osmbbox} completeWays=yes --lp"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
CMD_GR="${CMD_GR} --tf reject-relations"
|
||||||
|
CMD_GR="${CMD_GR} --tf accept-ways highway=$(cat inputs/highway-filter.cmd) natural=coastline junction=roundabout"
|
||||||
|
CMD_GR="${CMD_GR} --used-node --osm2graph writer=${DEFAULT_WRITER} file=${output_file}.mapgr map-id=${map_id}"
|
||||||
|
|
||||||
|
nohup ${CMD_GR} > nohup_gr_$(basename ${output_file}).out &
|
||||||
|
fi
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit af6bad663a1aa316343e3586d8a9925c4bc83d44
|
Subproject commit 6f57841e814010848722f1df28b10d0f3ad0dc25
|
Loading…
Reference in New Issue
Block a user