Skip to content

Instantly share code, notes, and snippets.

View arbakker's full-sized avatar

Anton Bakker arbakker

  • Kadaster
  • Apeldoorn
View GitHub Profile
@arbakker
arbakker / 1-GEOHASH-GPKG.md
Last active October 12, 2021 14:35
Bash script to order features in GPGK by geohash using #spatialite, #bash, #sqlite3

Geohash GeoPackage

Bash script to reorder feature tables of GeoPackage based on Geohash. Requires sqlite3 and libsqlite3-mod-spatialite version => 5.0.1. To run in Docker:

wget https://service.pdok.nl/cbs/vk100/atom/v1_0/downloads/cbs_vk100_2020.zip
mkdir -p data
unzip cbs_vk100_2020.zip -d data && rm cbs_vk100_2020.zip
docker build . -t "spl" 
docker run -v $(pwd)/data:/data spl /geohash-gpkg /data/cbs_vk100_2020.gpkg /data/cbs_vk100_2020-geohash.gpkg
@arbakker
arbakker / scrape.js
Created October 5, 2021 14:14
Generate csv from webpage with JS
var myList = document.getElementById("tableTicketsList").getElementsByTagName("tr")
var result = ""
for (const item of myList) {
var ticketNrEl = item.getElementsByClassName("ticket-number")[0]
if (!ticketNrEl){
continue
}
var ticketNr = ticketNrEl.innerText
var ticketSubEl = item.getElementsByClassName("ticket-subject")[0]
@arbakker
arbakker / gen-viewer-config-wms.sh
Last active October 1, 2021 13:47
Generate pdok-viewer json config with xmlstarlet and jq #xmlstarlet #jq #pdok-viewer
#!/usr/bin/env bash
# author: https://github.com/arbakker
# script requirements:
# - curl
# - xmlstarlet
# - jq
PROGRAM_NAME=$(basename "$0")
URL=$1
@arbakker
arbakker / csw2json.sh
Last active September 30, 2021 12:27
Bash script for transforming metadata records from NGR with query-a-cat (qac) and iso19139-nl-reader
#!/usr/bin/env bash
set -euo pipefail
proces_record_b64() {
# convert base64 encoded record to:
# {"md_identifier":"XXX","service_url":"XXX"}
# records that are not of type WMS or WMTS will be converted to null
base64 --decode <<<"$1" |
jq -r '.md_record' |
base64 --decode | # decodes the .md_record field which is also base64 encoded
@arbakker
arbakker / README.md
Last active May 15, 2024 08:07
Minimal lighttpd proxy configuration to run in Docker

README

Minimal lighttpd configuration example which proxies all HTTP traffic on localhost:80 to localhost:3333. To run in a Docker container execute:

sudo docker run --rm -t -v "$(pwd)/lighttpd.conf:/etc/lighttpd/lighttpd.conf" -p 80:80 sebp/lighttpd
@arbakker
arbakker / script.sh
Created September 27, 2021 21:29
Bash script to generate routes with openrouteservice and a GeoPackage (with Dutch postal code area's)
#!/usr/bin/env bash
function gen_routes(){
# shellcheck disable=SC1091
if [ -z "$API_KEY" ]; then
echo "ERROR: environmental variable API_KEY for openrouteservice is unset or empty"
exit 1
fi
QUERY="select load_extension('mod_spatialite');SELECT ST_AsText(ST_Centroid(GeomFromGPB(locaties.geom))) as locatie_geom, ST_AsText(ST_Centroid(GeomFromGPB(klanten.geom))) as klanten_geom, klanten.postcode as klant_postcode, locaties.postcode as locatie_postcode FROM locaties, klanten;"
@arbakker
arbakker / script.sh
Last active September 27, 2021 20:42
Add property to item in array where condition jq
#!/usr/bin/env bash
test='[
{"foo": "parrot"},
{"foo": "fjords"}
]'
jq "[.[] | select(.foo != \"parrot\")] + [.[] | select(.foo == \"parrot\") + {bar: \"ex-parrot\"}]" <<< $test
@arbakker
arbakker / csw-client.sh
Last active March 22, 2023 13:04
CRUD CLI tool to update metadata with CSW - #geonetwork #bash #NGR #CSW #metadata
#!/usr/bin/env bash
PROGRAM_NAME=$(basename "$0")
function usage {
echo "Medata CRUD CLI tool for CSW services (Catalogue Service for the Web)"
echo ""
echo "usage: $PROGRAM_NAME [options]"
echo " - -o <operation>: allowed values: GET, DELETE, UPSERT"
echo " - -f <md-file-path>: path to metadata file, required when OPERATION=upsert"
echo " - -i <md-identifier>: metadata identifier, required when OPERATION=DELETE|GET"
@arbakker
arbakker / generate-jwt.sh
Last active March 23, 2022 13:51
Bash script to generate JWT token for use with PDOK delivery services
#!/usr/bin/env bash
PROGRAM_NAME=$(basename "$0")
DATASET_OWNER="$1"
PEM="$2"
EXPIRY="$3"
function usage {
echo "Generate JWT token for use with PDOK delivery services"
echo ""
echo "usage: $PROGRAM_NAME <dataset-owner> <pem> <expiry>"
@arbakker
arbakker / README.md
Last active September 24, 2021 11:52
Calculate distance between two groups of geometries with GeoPackage/SQLite

README

First download and unzip CBS Postcode4 GeoPackage and then open with sqlite3:

wget https://service.pdok.nl/cbs/pc4/atom/v1_0/downloads/cbs_pc4_2020.gpkg.zip
unzip cbs_pc4_2020.gpkg.zip
sqlite3 cbs_pc4_2020.gpkg