Geometry, geography and raster types and functions for PostgreSQL. At first boot, everyone who can log in gets a database named after them with PostGIS turned on.
Installed as Flatpaks, so they update on their own schedule through Software. In the 0.1 live session they need one command first (see the known issues on the download page).
Short recipes for the things people do first. The commands run in Terminal, which is in the dock.
Your GIS folder
The first time you log in, Tiki Head makes a GIS folder in your home and bookmarks it in Files. In it:
Sample data:natural-earth.gpkg, Natural Earth’s world at 1:50 million in one GeoPackage, with the layers admin_0_countries, populated_places_simple, coastline, lakes and rivers_lake_centerlines. It is public domain.
Projects/World.qgz: a copy of the sample QGIS project, which shows the data coloured like a chart.
README.md: a short guide to the tools.
tiki-head-gis prints the version of each GIS tool and says whether PostGIS is ready.
Known issue in 0.1: the copy in Projects, which tiki-head-gis sample opens, cannot find its data, and QGIS lists all five layers as unavailable. Open the original next to the data instead, from a terminal or with Project ▸ Open in QGIS:
Look inside the sample GeoPackage, pull the countries out as GeoJSON, and reproject them to Equal Earth.
Terminal
cd ~/GIS
# List the layers, with their feature counts and extents
ogrinfo -so "Sample data/natural-earth.gpkg"
# Countries as GeoJSON
ogr2ogr -f GeoJSON countries.geojson "Sample data/natural-earth.gpkg" admin_0_countries
# The same countries in the Equal Earth projection
ogr2ogr -t_srs EPSG:8857 countries-equal-earth.gpkg countries.geojson
# What is EPSG:8857?
projinfo EPSG:8857
Python and Jupyter
Open Jupyter Notebook from the dock. It opens on your home folder: click GIS, start a new Python 3 notebook there, and map the world’s population in a few lines. Python is 3.14.3.
In the 0.1 live session, Jupyter’s browser only opens after one command; see the known issues.
In a notebook in ~/GIS
import geopandas as gpd
world = gpd.read_file("Sample data/natural-earth.gpkg", layer="admin_0_countries")
world.to_crs("EPSG:8857").plot(column="POP_EST", legend=True, figsize=(12, 6))
Everything on this page comes from Ubuntu, so it is installed for the whole system. To add a library, install its Ubuntu package if there is one; otherwise make a virtual environment that can still see the system’s libraries. Ubuntu’s venv support is a separate package, so install that first.
Terminal
sudo apt install python3-<name>
# Or, for libraries Ubuntu does not package:
sudo apt install python3-venv
python3 -m venv --system-site-packages ~/gis-env
~/gis-env/bin/pip install <name>
PostGIS on an installed computer
The first time an installed computer starts, Tiki Head starts PostgreSQL and gives each person a database with their own user name and PostGIS in it. No password is needed from your own account. (The live session does not run PostgreSQL.)
Terminal
psql -c "SELECT postgis_full_version();"
# Load the sample countries into your database
cd ~/GIS
ogr2ogr -f PostgreSQL PG:dbname=$USER "Sample data/natural-earth.gpkg" admin_0_countries
In QGIS, open the Browser panel, right-click PostgreSQL and choose New Connection. Give it a name, leave Host empty so QGIS uses the local socket and your login, set Database to your user name, and leave the password empty.
Working with OpenStreetMap data
Download an extract from Geofabrik, slice it with osmium, and open it with GDAL or QGIS, which read .osm.pbf files directly. Edit the map itself in JOSM.
Terminal
curl -LO https://download.geofabrik.de/north-america/us/hawaii-latest.osm.pbf
osmium fileinfo hawaii-latest.osm.pbf
# Just the cafes, then the ones mapped as points, as a GeoPackage
osmium tags-filter hawaii-latest.osm.pbf nwr/amenity=cafe -o cafes.osm.pbf
ogr2ogr -f GPKG cafes.gpkg cafes.osm.pbf points
Build tippecanoe for vector tiles
tippecanoe turns GeoJSON into vector tiles for web maps. It is not on the ISO, but the compilers and libraries it needs are, so building it takes a few minutes.
Terminal
git clone https://github.com/felt/tippecanoe.git
cd tippecanoe
make -j
sudo make install
# Tiles from the countries you made above
tippecanoe -o ~/GIS/countries.pmtiles -zg ~/GIS/countries.geojson
Keeping it up to date
On an installed computer, Ubuntu’s packages update with apt and the Flathub apps with Flatpak. Software does both for you, or use the terminal.