Skip to content

🇧🇪 Flanders, Belgium #299

🇧🇪 Flanders, Belgium

🇧🇪 Flanders, Belgium #299

name: 🇧🇪 Flanders, Belgium
on:
workflow_dispatch:
# Run every Sunday at 12:00 UTC
schedule:
- cron: "0 12 * * 0"
push:
paths:
- ".github/workflows/belgium-flanders.yml"
- ".github/actions/*/action.yml"
- "script/**/*.ts"
- "data/belgium/flanders/convert.json"
- "data/belgium/flanders/filter.sql"
pull_request:
paths:
- ".github/workflows/belgium-flanders.yml"
- ".github/actions/*/action.yml"
- "script/**/*.ts"
- "data/belgium/flanders/convert.json"
- "data/belgium/flanders/filter.sql"
# Allow one concurrent deployment
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
MAPROULETTE_CHALLENGE_ID: 24090
jobs:
diff:
name: Generate difference for Flanders, Belgium
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install GDAL
run: |
sudo apt-add-repository ppa:ubuntugis/ubuntugis-unstable
sudo apt update
sudo apt install gdal-bin
- name: Install Tippecanoe
uses: ./.github/actions/install-tippecanoe
- name: Install dependencies
run: npm install
working-directory: script
- name: Build
run: npm run build
working-directory: script
- name: Generate OpenStreetMap buffers
uses: ./.github/actions/openstreetmap-buffers
with:
country: europe/belgium
- name: Download & Unzip Wegenregister data
run: |
wget --content-disposition "https://download.vlaanderen.be/bff/v1/Orders/248409/download/7fae9d05-e147-48d3-8dfa-d66de16a2fb6"
unzip -j "Wegenregister_SHAPE_20240620.zip" "Shapefile/Wegsegment.*"
- name: Convert (and filter) Wegenregister to GeoJSON
run: |
ogr2ogr -f "GeoJSON" -progress \
--config SHAPE_ENCODING "ISO-8859-1" \
-s_srs "EPSG:31370" -t_srs "EPSG:4326" \
-sql "@data/belgium/flanders/filter.sql" \
-lco COORDINATE_PRECISION=6 \
-fieldTypeToString "All" \
"Wegsegment.geojson" \
"Wegsegment.shp"
- name: Convert Wegenregister fields to OpenStreetMap tags
run: node "script/convert-tags.js" -c "data/belgium/flanders/convert.json" "Wegsegment.geojson" "WegsegmentTagged.geojson"
- name: Generate Wegenregister vector tiles
run: |
tippecanoe --force --no-feature-limit --no-tile-size-limit \
--buffer=0 \
--maximum-zoom=14 --minimum-zoom=14 \
--layer="roads" \
--output="WegsegmentTagged.mbtiles" "WegsegmentTagged.geojson"
- name: Generate MapRoulette buffers
uses: ./.github/actions/maproulette-buffers
with:
challenge-id: ${{ env.MAPROULETTE_CHALLENGE_ID }}
- name: Upload MapRoulette false positive
uses: actions/upload-artifact@v4
with:
name: MapRoulette-FalsePositive
path: maproulette.geojson
- name: Merge MapRoulette buffers to OpenStreetMap buffers and generate vector tiles
run: |
tippecanoe --force --no-feature-limit --no-tile-size-limit \
--maximum-zoom=14 --minimum-zoom=14 \
--layer="buffers" \
--output="belgium-buffers.mbtiles" \
"openstreetmap-lines-buffers.geojson" "openstreetmap-polygons-buffers.geojson" "maproulette-buffers.geojson"
- name: Difference
run: node "script/difference.js" --output-dir="data/belgium/flanders/difference" "WegsegmentTagged.mbtiles" "belgium-buffers.mbtiles"
- name: Upload difference
uses: actions/upload-artifact@v4
with:
name: Flanders-Difference
path: data/belgium/flanders/difference/diff.geojson
- name: Upload statistics
uses: actions/upload-artifact@v4
with:
name: Flanders-Statistics
path: data/belgium/flanders/difference/stats.json
commit:
name: Commit & Push changes
needs: diff
if: ${{ github.event_name != 'pull_request' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: Flanders-Difference
path: data/belgium/flanders/difference
- uses: actions/download-artifact@v4
with:
name: Flanders-Statistics
path: data/belgium/flanders/difference
- name: Commit & Push
run: |
git config user.name github-actions[bot]
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
git pull
git add data/belgium/flanders/difference/diff.geojson
git add data/belgium/flanders/difference/stats.json
git commit -m "🗃 Update difference for Flanders, Belgium"
git push
mr-rebuild:
name: Rebuild MapRoulette challenge
needs: commit
runs-on: ubuntu-latest
steps:
- name: Call MapRoulette API
run: |
curl -X "PUT" "https://maproulette.org/api/v2/challenge/${{ env.MAPROULETTE_CHALLENGE_ID }}/rebuild?removeUnmatched=true&skipSnapshot=false" \
-H "Accept: application/json" \
-H "apiKey: ${{ secrets.MAPROULETTE_API_KEY }}"