abstreet/importer/actdev_site.sh
2021-09-17 18:29:23 -07:00

43 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
# This script imports a site from
# https://github.com/cyipt/actdev/tree/main/data-small as a new city.
set -e
# This should be a directory name from https://github.com/cyipt/actdev/tree/main/data-small
SITE=$1
if [ "$SITE" == "" ]; then
echo Missing args;
exit 1;
fi
CITY=`echo $SITE | sed -r 's/-/_/g'`
# Follow https://a-b-street.github.io/docs/user/new_city.html and import as a new city.
cp -Rv importer/config/gb/leeds importer/config/gb/$CITY
rm -fv importer/config/gb/$CITY/*.poly
wget https://raw.githubusercontent.com/cyipt/actdev/main/data-small/$SITE/small-study-area.geojson
cargo run --bin cli -- geojson-to-osmosis small-study-area.geojson
rm -fv small-study-area.geojson
mv boundary0.poly importer/config/gb/$CITY/center.poly
GEOFABRIK=`cargo run --bin pick_geofabrik importer/config/gb/$CITY/center.poly`
echo "Geofabrik URL is $GEOFABRIK"
perl -pi -e "s#\"osm_url\": \".*\"#\"osm_url\": \"$GEOFABRIK\"#" importer/config/gb/$CITY/cfg.json
wget https://raw.githubusercontent.com/cyipt/actdev/main/data-small/$SITE/site.geojson -O data/system/study_areas/$SITE.geojson
./import.sh --raw --map --city=gb/$CITY
# Procedurally generate houses, if needed
if cargo run --release --bin cli -- generate-houses --map=data/system/gb/$CITY/maps/center.bin --num_required=1000 --rng_seed=42 --out=data/input/gb/$CITY/procgen_houses.json; then
# Update the importer config, and import again
perl -pi -e "s#\"extra_buildings\": null#\"extra_buildings\": \"data/input/gb/$CITY/procgen_houses.json\"#" importer/config/gb/$CITY/cfg.json
./import.sh --raw --map --city=gb/$CITY
else
echo "$CITY already had enough houses"
fi
./importer/actdev_scenario.sh $CITY
echo "You have to manually update .gitignore, map_gui/src/tools/mod.rs, release/deploy_actdev.sh"
echo "And after uploading, probably want to: cargo run --bin updater -- --opt-into-all > data/player/data.json"