diff --git a/.gitea/workflows/convert.yaml b/.gitea/workflows/convert.yaml new file mode 100644 index 0000000..898a979 --- /dev/null +++ b/.gitea/workflows/convert.yaml @@ -0,0 +1,55 @@ +name: Convert BeST addresses +run-name: Convert BeST addresses to csv (${{ gitea.ref_name }}) + +on: + push: + branches: + - '**' + tags: + - '**' + workflow_dispatch: + +env: + GPKG: ca0fd5c0-8146-11e9-9012-482ae30f98d9_geopackage+sqlite3_3812.gpkg + SOURCE_URL: https://ac.ngi.be/remoteclient-open/GeoBePartners-open/BOSA/ca0fd5c0-8146-11e9-9012-482ae30f98d9_geopackage+sqlite3_3812.zip + SELECT: SELECT shape AS geom, id, best_id, coalesce(streetname_fr, streetname_nl, streetname_de) AS streetname, postal_info_objectid, municipality_objectid, COALESCE(municipality_fr, municipality_nl, municipality_de) AS municipality, housenumber, boxnumber + +jobs: + convert: + runs-on: ubuntu-latest + steps: + - name: install dependencies + run: | + apt-get update + DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gdal-bin unzip curl ca-certificates + ogr2ogr --version + + - name: download + run: curl --fail --location --silent --show-error --output bestaddresses.zip "$SOURCE_URL" + + - name: convert + run: | + set -eu + unzip -o bestaddresses.zip + rm bestaddresses.zip + ogrinfo "$GPKG" -sql "CREATE INDEX idx_postal_code ON addresses_complete (postal_info_objectid) WHERE status NOT LIKE 'retired'" + ogr2ogr -sql "select St_Centroid(St_Envelope(St_Collect(shape))) AS center, COALESCE(municipality_fr, municipality_nl, municipality_de) AS municipality_name, postal_info_objectid, municipality_objectid FROM addresses_complete where fid % 10 = 1 AND status NOT LIKE 'retired' GROUP BY COALESCE(municipality_fr, municipality_nl, municipality_de), postal_info_objectid, municipality_objectid" -lco GEOMETRY=AS_XY postals.fr.csv "$GPKG" + ogr2ogr -sql "$SELECT FROM addresses_complete WHERE status NOT LIKE 'retired' LIMIT 10000" -lco GEOMETRY=AS_XY addresses-extract.fr.csv "$GPKG" + ogr2ogr -sql "$SELECT FROM addresses_complete WHERE status NOT LIKE 'retired'" -lco GEOMETRY=AS_XY addresses-full.fr.csv "$GPKG" + for i in 1 2 3 4 5 6 7 8 9; do + ogr2ogr -sql "$SELECT FROM addresses_complete WHERE postal_info_objectid LIKE '${i}%' AND status NOT LIKE 'retired'" -lco GEOMETRY=AS_XY "addresses-${i}xxx.fr.csv" "$GPKG" + done + rm "$GPKG" + gzip -9 *.csv + ls -lh *.fr.csv.gz + + - name: gitea release + if: gitea.ref_type == 'tag' + uses: https://github.com/akkuman/gitea-release-action@v1 + with: + server_url: https://gitea.champs-libres.be + token: ${{ secrets.GITEA_TOKEN }} + name: ${{ gitea.ref_name }} + tag_name: ${{ gitea.ref_name }} + files: |- + *.fr.csv.gz