AppImage Usage¶
An AppImage is available for Linux that bundles geoextent with Python, GDAL, PROJ, and all dependencies into a single portable executable. No installation or system dependencies required — just download and run.
Downloading the AppImage¶
Download the latest AppImage from the GitHub Releases page:
# Download (replace VERSION and URL with the latest release)
wget https://github.com/nuest/geoextent/releases/download/vVERSION/geoextent-VERSION-x86_64.AppImage
# Make executable
chmod +x geoextent-*-x86_64.AppImage
Or using curl:
curl -fSL -o geoextent.AppImage https://github.com/nuest/geoextent/releases/download/vVERSION/geoextent-VERSION-x86_64.AppImage
chmod +x geoextent.AppImage
Tip
You can rename the AppImage to geoextent and place it on your PATH for convenient usage:
mv geoextent-*-x86_64.AppImage ~/.local/bin/geoextent
Basic Usage¶
The AppImage works exactly like the regular geoextent CLI:
# Show help
./geoextent-*-x86_64.AppImage --help
# Show version
./geoextent-*-x86_64.AppImage --version
# Show supported formats
./geoextent-*-x86_64.AppImage --formats
Local File Processing¶
Process local files directly — no volume mounts or path translation needed:
# Extract bounding box from a GeoTIFF
./geoextent-*-x86_64.AppImage -b data/raster.tif
# Extract both spatial and temporal extent from GeoJSON
./geoextent-*-x86_64.AppImage -b -t data/muenster_ring_zeit.geojson
# Extract bounding box from a CSV with coordinate columns
./geoextent-*-x86_64.AppImage -b data/cities.csv
# Process a directory of geospatial files
./geoextent-*-x86_64.AppImage -b -t data/
# Extract convex hull instead of bounding box
./geoextent-*-x86_64.AppImage -b --convex-hull data/
Remote Repository Processing¶
Extract geospatial extent from research repositories using DOIs or URLs:
# Extract from Zenodo
./geoextent-*-x86_64.AppImage -b https://doi.org/10.5281/zenodo.4593540
# Extract from PANGAEA with temporal extent
./geoextent-*-x86_64.AppImage -b -t https://doi.org/10.1594/PANGAEA.734969
# Extract from OSF with size limiting
./geoextent-*-x86_64.AppImage -b --max-download-size 50MB https://osf.io/4xe6z/
# Extract from a GitHub repository
./geoextent-*-x86_64.AppImage -b https://github.com/user/repo
Output Formats¶
# GeoJSON output (default)
./geoextent-*-x86_64.AppImage -b data/file.geojson
# WKT output for PostGIS/GDAL
./geoextent-*-x86_64.AppImage -b --format wkt data/file.geojson
# WKB output for database storage
./geoextent-*-x86_64.AppImage -b --format wkb data/file.geojson
# Export results to a file
./geoextent-*-x86_64.AppImage -b -t --output results.gpkg data/
AppImage vs CLI Equivalence¶
The AppImage is a drop-in replacement for python -m geoextent:
CLI Command |
AppImage Equivalent |
|---|---|
|
|
|
|
|
|
|
|
Scripting with the AppImage¶
#!/bin/bash
# Process multiple repositories
GEOEXTENT="./geoextent-x86_64.AppImage"
REPOSITORIES=(
"https://doi.org/10.5281/zenodo.4593540"
"https://doi.org/10.1594/PANGAEA.734969"
)
for repo in "${REPOSITORIES[@]}"; do
echo "Processing: $repo"
$GEOEXTENT -b --quiet "$repo"
done
Capture output in a variable:
BBOX=$(./geoextent.AppImage -b --format wkt --quiet data/file.geojson)
echo "Bounding box: $BBOX"
Environment Variables¶
The AppImage bundles its own GDAL, PROJ, and Python, so you do not need to set GDAL_DATA, PROJ_DATA, or PYTHONHOME. These are configured automatically inside the AppImage.
For placename lookup, pass API keys as usual:
GEONAMES_USERNAME=your_username ./geoextent.AppImage -b --placename data/file.geojson
Building the AppImage Locally¶
If a pre-built AppImage is not available for your needs (e.g., you want to package a development version), you can build it yourself on any Linux x86_64 system:
git clone https://github.com/nuest/geoextent
cd geoextent
bash scripts/build-appimage.sh
The build script downloads Miniforge and appimagetool automatically (cached for subsequent builds). The resulting AppImage is written to the project root directory.
Requirements:
Linux x86_64
~2 GB disk space during build
Internet access (first run)
bash, curl
You can set the version explicitly:
GEOEXTENT_VERSION=0.13.0 bash scripts/build-appimage.sh
See scripts/build-appimage.sh for all options.
Troubleshooting¶
FUSE not available¶
Some systems (containers, older kernels) lack FUSE support. Use the --appimage-extract-and-run flag:
./geoextent.AppImage --appimage-extract-and-run -b data/file.geojson
Or extract the AppImage once and run directly:
./geoextent.AppImage --appimage-extract
./squashfs-root/AppRun -b data/file.geojson
SSL certificate errors¶
The AppImage bundles its own CA certificates. If you encounter SSL errors (e.g., behind a corporate proxy), set the SSL_CERT_FILE environment variable to your system certificates:
SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt ./geoextent.AppImage -b https://doi.org/...
Glibc compatibility¶
The AppImage is built on Ubuntu 22.04 (glibc 2.35). It should work on most Linux distributions from 2022 onwards. If you get a glibc error, your system is too old to run this AppImage.
Extracting the AppImage contents¶
To inspect what’s inside the AppImage:
./geoextent.AppImage --appimage-extract
ls squashfs-root/