Applications

What’s inside

35 tools and libraries on Ubuntu 26.04 LTS, with the version each one has in the 0.1 ISO, and how-tos to get going.

Desktop GIS

The map-making desktop and the two big analysis toolkits behind it.

QGIS

3.40.15

Open, style and edit vector and raster data, run analysis from the Processing Toolbox, and lay out maps for print or PDF.

Open First icon in the dock, or run qgis

Try it

qgis /usr/share/tiki-head/data/world.qgz

Project site for QGIS qgis, qgis-plugin-grass

GRASS GIS

8.4.2

Raster, vector and terrain analysis: watersheds, viewsheds, cost surfaces, image classification. QGIS runs its tools from the Processing Toolbox.

Open Run grass, or use the GRASS tools inside QGIS

Project site for GRASS GIS grass

SAGA GIS

9.9.3

Hundreds of grid and terrain modules: slope, curvature, wetness index, channel networks.

Open Run saga_gui for the desktop, or saga_cmd on the command line

Try it

saga_cmd --help

Project site for SAGA GIS saga

Command-line geodata

Convert, reproject, slice and inspect data without opening a window.

GDAL/OGR

3.12.2

Reads and writes almost every raster and vector format there is, from GeoTIFF and GeoPackage to shapefiles and PostGIS.

Open gdalinfo, gdal_translate, gdalwarp, ogrinfo, ogr2ogr

Try it

ogrinfo -so ~/GIS/"Sample data"/natural-earth.gpkg

Project site for GDAL/OGR gdal-bin

PROJ

9.7.1

Coordinate reference systems and transformations between them.

Open projinfo, cs2cs

Try it

echo 21.3069 -157.8583 | cs2cs EPSG:4326 EPSG:32604

Project site for PROJ proj-bin

SpatiaLite

5.1.0a

A spatial database in a single SQLite file, with a command line and a desktop browser.

Open spatialite on the command line, spatialite_gui for the desktop

Project site for SpatiaLite spatialite-bin, spatialite-gui

osmium

1.19.0

Slices, filters and converts OpenStreetMap extracts, fast.

Open osmium

Try it

osmium fileinfo hawaii-latest.osm.pbf
osmium tags-filter hawaii-latest.osm.pbf nwr/amenity=cafe -o cafes.osm.pbf

Project site for osmium osmium-tool

GPSBabel

1.10.0

Moves GPS tracks and waypoints between more than a hundred formats.

Open gpsbabel

Try it

gpsbabel -i gpx -f hike.gpx -o kml -F hike.kml

Project site for GPSBabel gpsbabel

NetCDF tools

4.9.3

Looks inside the climate, ocean and weather grids that NetCDF files hold.

Open ncdump, nccopy

Try it

ncdump -h sea-surface-temperature.nc

Project site for NetCDF tools netcdf-bin

Spatial database

A full PostGIS server on every installed computer.

PostgreSQL

18.6

The database server, set up the first time an installed computer starts. The live session does not run it.

Open psql

Project site for PostgreSQL postgresql

PostGIS

3.6.2

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.

Open psql, or a PostgreSQL connection in QGIS

Try it

psql -c "SELECT postgis_full_version();"

Project site for PostGIS postgis

Python and notebooks

Python’s geospatial stack, installed from Ubuntu so it all works together.

NameVersionWhat it’s forUbuntu package
GeoPandas1.1.2Tables with a geometry column: read, join, reproject and plot.python3-geopandas
Shapely2.1.2Geometry operations: buffers, intersections, unions.python3-shapely
pyproj3.7.2PROJ from Python.python3-pyproj
Fiona1.10.1Reads and writes vector files record by record.python3-fiona
Rasterio1.5.0Raster data as NumPy arrays.python3-rasterio
Rtree1.4.1Spatial indexes for fast lookups.python3-rtree
GDAL bindings3.12.2GDAL’s own Python interface (from osgeo import gdal, ogr).python3-gdal
xarray2026.01.0Labelled multi-dimensional arrays, for climate and ocean grids.python3-xarray
netCDF41.7.4Reads and writes NetCDF files.python3-netcdf4
Matplotlib3.10.7Charts and static maps.python3-matplotlib
Folium0.20.0Interactive web maps (Leaflet) from Python.python3-folium
SciPy1.16.3Statistics, interpolation and signal processing.python3-scipy
IPython9.11.0A friendlier Python prompt: run ipython3.ipython3
Jupyter Notebook6.4.13Notebooks in the browser. It is in the dock, or run jupyter-notebook.jupyter-notebook

OpenStreetMap and maps

Edit the world’s open map, or just find your way around it.

JOSM

r19481

The full-featured OpenStreetMap editor: trace imagery, fix tags, upload changes.

Open In the dock, or run josm

Project site for JOSM josm

GNOME Maps

49.3

A simple map browser for searching places and planning routes.

Open In the dock

Project site for GNOME Maps gnome-maps

Apps from Flathub

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).

Build tools

Enough of a toolchain to compile GIS tools from source.

NameVersionWhat it’s forUbuntu package
build-essential12.12GCC, G++ and make.build-essential
SQLite headers3.46.1For tools that write MBTiles or GeoPackage.libsqlite3-dev
zlib headers1.3.1Compression, which most data tools need.zlib1g-dev
curl8.18.0Downloads from the command line.curl
CA certificates20260601So downloads over HTTPS are trusted.ca-certificates

How-tos

Getting going

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:

Terminal

tiki-head-gis
qgis /usr/share/tiki-head/data/world.qgz

A first five minutes in the terminal

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.

Terminal

sudo apt update && sudo apt upgrade
flatpak update

The source repository also rebuilds the ISO every month with the newest packages and security fixes; those builds are on GitHub Actions.