Installation¶
The most convenient way to install spatialist is by using conda:
conda install --channel conda-forge spatialist
See below for more detailed Linux installation instructions outside of the Anaconda framework.
Installation of dependencies¶
GDAL¶
spatialist requires GDAL version >=2.1 built with GEOS and PROJ4 as dependency as well as the GDAL Python binding. Alternatively, one can use pygdal, a virtualenv and setuptools friendly version of standard GDAL python bindings.
Ubuntu
Starting with release Yakkety (16.10), Ubuntu comes with GDAL >2.1. See here. You can install it like this:
sudo apt-get install python-gdal python3-gdal gdal-bin
For older Ubuntu releases you can add the ubuntugis repository to apt prior to installation to install version >2.1:
sudo add-apt-repository ppa:ubuntugis/ppa
sudo apt-get update
This way the required dependencies (GEOS and PROJ4 in particular) are also installed. You can check the version by typing:
gdalinfo --version
Debian
Starting with Debian 9 (Stretch) GDAL is available in version >2.1 in the official repository.
Building from source
Alternatively, you can build GDAL and the dependencies from source. The script spatialist/install/install_deps.sh gives specific instructions on how to do it. It is not yet intended to run this script via shell, but rather to follow the instructions step by step.
SQLite + SpatiaLite¶
Windows
While sqlite3 and its Python binding are usually already installed, the spatialite extension needs to be added. Two packages exist, libspatialite and mod_spatialite. Both can be used by spatialist. It is strongly recommended to use Ubuntu >= 16.04 (Xenial) or Debian >=9 (Stretch), which offer the package libsqlite3-mod-spatialite. This package is specifically intended to only serve as an extension to sqlite3 and can be installed like this:
sudo apt-get install libsqlite3-mod-spatialite
After installation, the following can be run in Python to test the needed functionality:
import sqlite3
# setup an in-memory database
con = sqlite3.connect(':memory:')
# enable loading extensions and load spatialite
con.enable_load_extension(True)
try:
con.load_extension('mod_spatialite.so')
except sqlite3.OperationalError:
con.load_extension('libspatialite.so')
In case loading extensions is not permitted you might need to install the package pysqlite2. See the script spatialist/install/install_deps.sh for instructions. There you can also find instructions on how to install spatialite from source. To test pysqlite2 you can import it as follows and then run the test above:
from pysqlite2 import dbapi2 as sqlite3
Installing this package is likely to cause problems with the sqlite3 library installed on the system. Thus, it is safer to build a static sqlite3 library for it (see installation script).
Installation of spatialist¶
For the installation we need the Python tool pip.
sudo apt-get install python-pip
Once everything is set up, spatialist is ready to be installed. You can install stable releases like this:
python -m pip install spatialist
or the latest GitHub master branch using git like this:
sudo apt-get install git
sudo python -m pip install git+https://github.com/johntruckenbrodt/spatialist.git