Geopython 2024 in Basel CH

I was lucky enought ot attend Geopython this year; the brain child of Martin Christen’s, a professor at fhnw. Within the Geospatial domain Python is the goto language but its an increasingly popular language too. Presentations on the geo niche were not accepted in EuroPython and so Geopython was born out of cartographic frustration. A conference dedicated soley to python and the geospatial niche. The conference is hosted in Basel, Switzerland each year the university of applied sciences. The building looks like Hogwarts if Swiss engineers could do it in concrete. This was the 9th conference for GeoPython.

Of course there were lots of great talks but here where a few that caught my attention.

Geodata Validation with PyTest

The authors of this workshop were working from Poland in the aviation industry. Testing E2E needs to be fast to both read and write. While stability is less important because a system under test is in a state of constant change. If there were no changes then there would be no need to test. Making changes to an app will break tests and therefore the speed of development is critical. Therefore they preferred to work in a high level language like python rather than C++ or Java.

They had a list, quite a good list, of things they recommend testing within the domain. Since the talk these have featured in my own checklist for testing.

  • mandatory, null and missing values
  • duplications of the data values
  • duplication of geometry
  • data types – confirm against the expected list that only these exist and also make a count
  • range of values
  • numeric precision
  • data distribution – for example checking the histogram
  • attributes and relationships
  • geometry accuracy – check that all points are inside
  • data format (datetime, xyz)
  • count of columns or rows

They confirmed that the GIS testing industry is dominated by Pytest and Robot. On balance they preferred to work with pytest. In the demo they built a small framework using pytest in which they simplified. https://gitlab.com/michpil/geospatial_data_test

Speaking with them over beers helped me understand the importance of using scripting languages; at least something faster to use for daily tasks. With python it quite a common experience for both developers and testers to collect scripts they use for things like DB migrations. This habitual act of script collection means that you can build a tests fast in python. Take your regular scripts, append the @pytest tag and begin using them for regression testing. By working in this manner, manual and automation testing becomes intertwined. Test coverage also progresses much faster.

Python-based Strategies for Processing and Visualising Human Settlement Layer by Johannes Uhl

This was a great example of storytelling using animated .gifs. The focus on the talk was on human settlement data. I’m not sure this can be applied to other use cases but there is a power to animations of change.

https://github.com/johannesuhl/globeanim

Discrete Global Grid Systems

DGGS are a another type of coordinate reference system. They can represent the earths surface in discrete units. For comparison coordinate reference systems allow us to measure on a continuous surface. In a DGGS each cell’s location is absolute and associated with a specific location boundary. They have a pyramidal structure giving options for high and low resolution representation.

There are different flavours of DGGS. H3 is being the most popular but there are notable others such as Healpix or S2.

  • Hexagons are good for an accurate local representation and just generally look really nice. https://h3geo.org/
  • Healpix approach has a few advantages that I’m not sufficiently involved with the subject to understand. But there is a lot of good information here should you be interested.

If your interested to follow up Id recommend starting with the ESRI blog which illustates with the following graphics how you might aggregate and visualise data using a DGGS.

DuckDB-Spatial: Supercharged Geospatial SQL!

As always at conferences there are many new things. If you can just process one or two ideas then it can be worth it. DuckDB for me is one of those ideas. In HxDR we use Postgres and PostGIS, DuckDB is a PostGIS inspired DB. It processes faster, fails gracefully, and appears to include a much stronger connection to the domain. Its supported by both AWS and Azure and is worthy of spike in the future. https://duckdb.org/

Lonboard, GeoArrow, GeoParquet

https://developmentseed.org/lonboard/latest/
https://developmentseed.org/lonboard/latest/assets/hero-animated.gif

Geopython introduced me to a project called Lonboard. Its a visualisation project which has connections to GeoParquet and GeoArrow.

GeoArrow is a new data protocol which is speeding up the data delivery. Its doing this by pointing at data storage locations using a data sharing protocol. GeoArrow is the concept that the binaries of the data should be accessible directly. https://geoarrow.org/format.html

I had a super discount airBnB which turned out to be the best apartment I’ve every stayed in.

Thanks for following as I continue with my Geospatial musings,

Lucas


Posted

in

by

Comments

Leave a comment