-
Notifications
You must be signed in to change notification settings - Fork 3
141 lines (134 loc) · 5.07 KB
/
netherlands.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
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@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="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@v4
with:
name: Netherlands-Difference
path: data/netherlands/difference/diff.geojson
- name: Upload statistics
uses: actions/upload-artifact@v4
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@v4
with:
name: Netherlands-Difference
path: data/netherlands/difference
- uses: actions/download-artifact@v4
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 }}"