🇳🇱 Netherlands #212
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }}" |