-
Notifications
You must be signed in to change notification settings - Fork 3
140 lines (133 loc) · 5.12 KB
/
belgium-brussels.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
name: 🇧🇪 Brussels, Belgium
on:
workflow_dispatch:
# Run every Sunday at 12:00 UTC
schedule:
- cron: "0 12 * * 0"
push:
paths:
- ".github/workflows/belgium-brussels.yml"
- ".github/actions/*/action.yml"
- "script/**/*.ts"
- "data/belgium/brussels/convert.json"
- "data/belgium/brussels/filter.sql"
pull_request:
paths:
- ".github/workflows/belgium-brussels.yml"
- ".github/actions/*/action.yml"
- "script/**/*.ts"
- "data/belgium/brussels/convert.json"
- "data/belgium/brussels/filter.sql"
# Allow one concurrent deployment
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
MAPROULETTE_CHALLENGE_ID: 14675
jobs:
diff:
name: Generate difference for Brussels, 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 UrbIS data
run: |
wget --no-check-certificate "https://urbisdownload.datastore.brussels/UrbIS/Vector/M7/2D/UrbAdm/Daily/SHP_LITE/UrbAdm_SHP.zip"
unzip "UrbAdm_SHP.zip" "shp/UrbAdm_STREET_AXIS.*"
- name: Convert (and filter) UrbIS to GeoJSON
run: |
ogr2ogr -f "GeoJSON" -progress \
-s_srs "EPSG:31370" -t_srs "EPSG:4326" \
-sql "@data/belgium/brussels/filter.sql" \
-lco COORDINATE_PRECISION=6 \
-fieldTypeToString "All" \
"UrbAdm_STREET_AXIS.geojson" \
"shp/UrbAdm_STREET_AXIS.shp"
- name: Convert UrbIS fields to OpenStreetMap tags
run: node "script/convert-tags.js" -c "data/belgium/brussels/convert.json" "UrbAdm_STREET_AXIS.geojson" "UrbAdm_STREET_AXISTagged.geojson"
- name: Generate UrbIS vector tiles
run: |
tippecanoe --force --no-feature-limit --no-tile-size-limit \
--buffer=0 \
--maximum-zoom=14 --minimum-zoom=14 \
--layer="roads" \
--output="UrbAdm_STREET_AXISTagged.mbtiles" "UrbAdm_STREET_AXISTagged.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/brussels/difference" "UrbAdm_STREET_AXISTagged.mbtiles" "belgium-buffers.mbtiles"
- name: Upload difference
uses: actions/upload-artifact@v4
with:
name: Brussels-Difference
path: data/belgium/brussels/difference/diff.geojson
- name: Upload statistics
uses: actions/upload-artifact@v4
with:
name: Brussels-Statistics
path: data/belgium/brussels/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: Brussels-Difference
path: data/belgium/brussels/difference
- uses: actions/download-artifact@v3
with:
name: Brussels-Statistics
path: data/belgium/brussels/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/brussels/difference/diff.geojson
git add data/belgium/brussels/difference/stats.json
git commit -m "🗃 Update difference for Brussels, 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 }}"