Overview of my professional life in 2019. Inspired by the concise bullet-point-style of Tom Kralidis’ Cheers to 2018, on which I based my previous Cheers to 2018. Highlights of living and working in the Open Source Geospatial and OSGeo(.nl|.org)-world in 2019. Organized by “Theme” i.s.o. by month.
TL;DR. My 2019 highlight was providing the GeoPython Workshop (“Doing Geospatial with Python”) at the FOSS4G in Bukarest. A really great team-effort: first remote collaboration to get the content done. Then at the spot, despite network failures, providing a hopefully inspiring workshop on modern GeoPython. Kudos to Tom, Angelos, Francesco, Jachym, Luis and Jorge!
My second highlight was joining the pygeoapi project. Had a love/hate relationship with WFS, but the new OpenAPI direction in OGC and the great team behind the pygeoapi project made me want to be part of this. BTW pygeoapi has just (Jan. 2020) received OGC Compliance Certification and Reference Implementation Status for OGC API – Features specification.
Geospatial Cloud Services
Main focus. Seriously moving into hosting Geospatial Cloud Services, both as a source of income and to support/strengthen underlying open source projects. Warning: shameless ads below.
- Throughout 2019 – expanded map5.nl, a subscription service for Dutch topographic, historical- and embellished hill-shade and arial maps I started to host in 2015.
- January – launched GeoQoS.com , a Cloud-hosted GeoHealthCheck (GHC) service on a subscription basis. GHC is is an uptime and QoS monitor for (OGC) web services. Customers get their own GHC instance. GeoQoS.com saves the burden of self-hosting GHC. Truly, I can’t do without GHC for any of my geospatial web-services (like map5.nl). Developed with Python Django and Stripe, deployed with Ansible (can’t do without) and off course Docker.
- Dec+ into 2020 – something big – more to be announced.
As my focus is more and more on providing “Geospatial Cloud Services” (see above), not too much contract work in 2019, though I am always open for offerings!
- For the European Commission Joint Research Center (Ispra, Italy) -deployed five AirSensEUR air-quality sensor-stations (NO2, NO, CO, O3) within the Netherlands, connecting these to the Smart Emission Platform. This blog-post describes the overall setup and this post the really good calibration results.
- For Gemeente Nijmegen – integrated Luftdaten.info finedust (PM10, PM25) measurements within the Smart Emission Platform via Harvesting.
- For Stantec NL – custom GeoHealthCheck Plugins (Probes/Checks) for ESRI ArcGIS Feature services, plus several Auth-facilities (Basic, Token) for auth-based web-services.
- For COIN NL – NLExtract Project – added shortened streetname (verkorteopenbareruimtenaam, a Scrabble-winner, yes!) to BAG (Dutch Adresses and Buildings Dataset) Postgres Dump and Address CSV.
Open Source Contributions
Continuous work as a contributor on several Open Source Projects. Apart from some GitLab Projects, you can find/follow me best on GitHub.
- Stetl – Geospatial ETL in Python, maintaining since 2011. Highlight: Py2 to Py3 migration, many thanks: Rob van Loon.
- GeoHealthCheck – Service Status and QoS Checker for OGC Web Services – 39 PRs went in! Highlight: Py2 to Py3 migration, again many thanks: Rob van Loon. Even added ESRI Feature Server plugin!
- pygeoapi – a Python server implementation of the OGC API suite of standards – joined this great project in 2019. Several contributions: a.o. the GDAL/OGR backend Provider.
- pygeoapi demo server – provided the (auto-)deployment stack for the pygeoapi demo server (code at GitHub).
- NLExtract – ongoing development – data downloads attract quite some attention.
- Wegue – geo-webclient framework based on Vue.js with OpenLayers started by Christian Mayer. Joined this great project in 2019 with some small patches, adding Dockerfile, projection-support and still working on GeoCoder PR.
- Heron MC – Web Mapping Client based on GeoExt and OpenLayers. Yes, old tech but still in wide use. For one thing the KadViewer within map5.nl attracts many customers. In time hope to migrate to Wegue (see above).
- SensorThings API demo server – Geonovum organized a SensorThings API Hackathon in oct 2019. See results here. Used the Geodan GOST STA server. Also added a workflow/pipeline for adding data for the Amsterdam Sensemakers Water “mijnomgeving” measurements. This used a MQTT-NodeRed-STA mapping.
- OWSLib – various small contributions.
More Contributions – Handy Docker Images
To support many of the Cloud services and Open Source projects, I developed several handy Docker Images, also available from my DockerHub.
- docker-awstats – AWStats in Docker, oldie, but very effective webstats. Deploy multiple instances in single Docker container. Highly configurable, e.g. also for Traefik access logs.
- docker-jmeter – Apache JMeter wrapped in Docker.
- docker-mapfish-print – for MapFish Print version 3. MapFish Print allows printing maps as PDFs.
- docker-mapfish-print2 – for MapFish Print version 2 – This version is still used in quite some contexts, at least for Heron and KadViewer.
- docker-rclone – Docker image to perform a rclone sync based on a cron schedule, with healthchecks.io monitoring.
- docker-pgbackup – automated/scheduled PostgreSQL/PostGIS backups for all PostgreSQL-based Docker Containers in its Docker-network. I think it is nifty: just run and forget: your Postgres backups are taken care of. Inspired by: https://github.com/kartoza/docker-pg-backup.
Now as chair of the board, still involved in the OSGeo Dutch Local Chapter, OSGeo.nl since its establishment in 2011. Thanks to our wonderful volunteers, we were able to organize several events.
- Jan 13 – organizer – joint OSGeo.nl and OpenStreetMap NL new-years party at Cafe Dudok in Hilversum.
- April – Docker (for geospatial) Workshop by Merkator
- June 20 – FOSS4GNL – our yearly conference
Conferences – Attended
- Jan 31-Feb 1 – TheThingsNetwork Conference. About Lora(WAN).
- Feb 21 – GeoDocker Workshop Merkator
- Feb 14-15 – Vue.js Amsterdam
- June 20 – FOSS4G-NL.
- June 24-25 – GeoPython 2019 – Basel.
- August 25-31 – FOSS4G – Bukarest.
- Sept 20 – Sensemakers Amsterdam
- Okt 2 – Geo Gebruikers festival by Geonovum – Amersfoort
Hackathons & Code Sprints
I always love to go to hackathons. From software to hardware-hacking with the Sensemakers Amsterdam.
- April 5 – OGG Hackathon by OpenGeoGroep. Random hacking day where I got involved in pygeoapi the first time.
- May 14-17 – OSGeo Codesprint (attended remotely).
- June 3-6 – OGC API Features – “WFS3 Werkweek” by Geonovum – report (HTML)
- SensorThings API Hackathon by Geonovum – my contributions (PDF slides) – How to upload data to STA – STA Demo Server. And its setup in GitHub.
Talks & Workshops – Provided
On several of the above events I gave some presence with presentations and workshops. Most of my slides can be found on slideshare.net/justb4 Below some links.
- June 20 – FOSS4G-NL. Presented pygeoapi.
- June 25 – GeoPython Basel – presented GeoHealthCheck .
- August 25-31 – FOSS4G – Bukarest. Provided GeoPython workshop. All together with the great GeoPython team as in picture above.
- August 25-31 – FOSS4G – Bukarest. Presented GeoHealthCheck . With Tom Kralidis.
- Sept 20 – Sensemakers Amsterdam – on Open Sensor Networks – slides.
- Okt 3 – at Stantec – GeoHealthCheck/GeoQoS workshop – slides.
- Nov 1 – Odijk – Dutch Rentmeesters (steward: a person who manages an estate or farm for another person) – presented map5.nl.
I don’t consider myself as a designer, but with a little help from online logo-creation platforms and feedback from my co-workers, I created the following in 2019:
- For GeoQoS.com – hosted GeoHealthCheck in the Cloud.
- For the pygeoapi (OGC API Features, “WFS3”, in Python) Project
- For the GeoHealthCheck project
- More effort into Wegue project
- Further expanding hosted Geospatial Cloud Services
- Improve on and provide the GeoPython Workshop
- Whatever comes around.