Skip to content

🇳🇱 Netherlands #210

🇳🇱 Netherlands

🇳🇱 Netherlands #210

Workflow file for this run

name: 🇳🇱 Netherlands
on:
workflow_dispatch:
# Run every Sunday at 12:00 UTC
schedule:
- cron: "0 12 * * 0"
push:
paths:
- ".github/workflows/netherlands.yml"
- ".github/actions/*/action.yml"
- "script/**/*.ts"
- "data/netherlands/convert.json"
- "data/netherlands/filter.sql"
pull_request:
paths:
- ".github/workflows/netherlands.yml"
- ".github/actions/*/action.yml"
- "script/**/*.ts"
- "data/netherlands/convert.json"
- "data/netherlands/filter.sql"
# Allow one concurrent deployment
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
MAPROULETTE_CHALLENGE_ID: 17332
jobs:
diff:
name: Generate difference for Netherlands
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/netherlands
- name: Download & Unzip NWB data
run: |
wget --no-check-certificate "https://downloads.rijkswaterstaatdata.nl/nwb-wegen/geogegevens/shapefile/Nederland_totaal/01-12-2022.zip"
unzip -j "01-12-2022.zip" "01-12-2022/Wegvakken/Wegvakken.*"
- name: Convert (and filter) NWB to GeoJSON
run: |
ogr2ogr -f "GeoJSON" -progress \
--config SHAPE_ENCODING "ISO-8859-1" \
-s_srs "EPSG:28992" -t_srs "EPSG:4326" \
-sql "@data/netherlands/filter.sql" \
-lco COORDINATE_PRECISION=6 \
-fieldTypeToString "All" \
"Wegvakken.geojson" \
"Wegvakken.shp"
- name: Convert NWB fields to OpenStreetMap tags
run: node "script/convert-tags.js" -c "data/netherlands/convert.json" "Wegvakken.geojson" "WegvakkenTagged.geojson"
- name: Generate NWB vector tiles
run: |
tippecanoe --force --no-feature-limit --no-tile-size-limit \
--buffer=0 \
--maximum-zoom=14 --minimum-zoom=14 \
--layer="roads" \
--output="WegvakkenTagged.mbtiles" "WegvakkenTagged.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@v3
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="netherlands-buffers.mbtiles" \
"openstreetmap-lines-buffers.geojson" "openstreetmap-polygons-buffers.geojson" "maproulette-buffers.geojson"
- name: Difference
run: node "script/difference.js" --output-dir="data/netherlands/difference" "WegvakkenTagged.mbtiles" "netherlands-buffers.mbtiles"
- name: Upload difference
uses: actions/upload-artifact@v3
with:
name: Netherlands-Difference
path: data/netherlands/difference/diff.geojson
- name: Upload statistics
uses: actions/upload-artifact@v3
with:
name: Netherlands-Statistics
path: data/netherlands/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@v3
with:
name: Netherlands-Difference
path: data/netherlands/difference
- uses: actions/download-artifact@v3
with:
name: Netherlands-Statistics
path: data/netherlands/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/netherlands/difference/diff.geojson
git add data/netherlands/difference/stats.json
git commit -m "🗃 Update difference for Netherlands"
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 }}"