Skip to main content

deepSSF

Predicting animal movement with a deep learning step-selection framework.

This package provides the installable implementation of the deepSSF approach in Python. Accompanying tutorials and example code live at the deepSSF project site.

There is a package walkthrough script that outlines an implementation of the functions with some example GPS tracking data (a single water buffalo) and two spatial covariates (NDVI and slope). You can access the script as a Jupyter notebook or as a knitted html in the examples directory. The example script will not download with the package installation, but the GPS and spatial datasets will.

The Python package can be viewed on PyPi.

The paper can be found at:

Forrest, S. W., Pagendam, D., Hassan, C., Potts, J. R., Drovandi, C., Bode, M., & Hoskins, A. J. (2026). Predicting animal movement with deepSSF : A deep learning step selection framework. Methods in Ecology and Evolution, 17(2), 371–391. https://doi.org/10.1111/2041-210x.70136.

Installation (pip only)

If you already have a Python environment that you want to install the package into, install deepSSF with:

pip install deepssf

Development install (editable, with linting and testing tools):

git clone https://github.com/swforrest/deepssf
cd deepssf
pip install -e ".[dev]"

Quick start

import deepssf
print(deepssf.__version__)

Setting up (for users new to Python)

1. Install Miniconda (once, system-wide)

Download and run the installer from the official Miniconda page.

If you click 'Download' towards the top right, the links to download Miniconda are towards the bottom of the page - the links at the top are for the Anaconda Distribution, which has thousands of pacakges and is not necessary to get things up and running initially.

1b. (Optional) Install an IDE (such as VSCode)

Once you have Python and Miniconda installed, you will likely want an interface (‘Integrated Development Environment’, an IDE) to code in (such as RStudio for R users). I use Visual Studio Code, or ‘VS Code’ as I find the functionality similar to RStudio (and as I have become familiar with VS Code I prefer it to RStudio in some ways).

You can download VSCode from here: https://code.visualstudio.com/.

For the commands below, you can use the Terminal directly in VScode (Terminal > New Terminal), or the Terminal/Command Line in Windows or macOS.

2. Create the environment

Think of a conda environment the way you think of an renv project library — it is a self-contained Python installation that keeps this project's packages separate from everything else on your computer. The steps below create one for deepSSF.

Using the Terminal (which can be in VScode), you can clone the package repository with:

git clone https://github.com/swforrest/deepssf_package
cd deepssf
conda env create -f environment.yml

This installs Python 3.11, the geospatial libraries (rasterio / GDAL / PROJ), Jupyter Lab, and the deepSSF package itself with all of its dependencies. PyTorch is installed via pip with no extra flags — pip automatically picks the right build for your hardware: MPS on Apple Silicon, CUDA on NVIDIA GPUs, CPU everywhere else. No configuration is needed; the package selects the correct backend at runtime.

3. Activate the environment

Also in the Terminal:

conda activate deepssf

You will need to run this once per terminal session before using deepSSF.

4. (Optional) Register the Jupyter kernel

If you use VS Code or another editor that manages its own Jupyter kernel list, register the environment so it appears as a kernel option:

python -m ipykernel install --user --name deepssf --display-name "Python (deepssf)"

Then you can open examples/deepssf_train_validate_example.ipynb in VSCode to get started. You can also view the knitted deepssf_train_validate_example.html script, which you should be able to open in a browser such as Chrome.


Documentation

There are additional tutorials and walkthroughs to help understand deep learning concepts and the deepSSF approach, model and functions at: https://swforrest.github.io/deepSSF/

Citation

If you use deepSSF in your research, please cite the paper. See CITATION.cff or use the citation and link to paper below.

Forrest, S. W., Pagendam, D., Hassan, C., Potts, J. R., Drovandi, C., Bode, M., & Hoskins, A. J. (2026). Predicting animal movement with deepSSF : A deep learning step selection framework. Methods in Ecology and Evolution, 17(2), 371–391. https://doi.org/10.1111/2041-210x.70136

License

MIT — see LICENSE.

Metadata

Release files for deepSSF 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for deepSSF 0.3.0
File Size Uploaded Provenance
deepssf-0.3.0.tar.gz 20.3 MB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for deepSSF 0.3.0
File Interpreter ABI Platform
deepssf-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 28.2 MB

Release files / deepssf-0.3.0.tar.gz

Download URL deepssf-0.3.0.tar.gz
Size 20.3 MB
Tags Source
SHA-256 checksum
How to use checksums
5eebad61d76fff1ae4f92aea8489fe3e456e86ee43bfd6188c2052f02527e41f
BLAKE2b-256 checksum
How to use checksums
f87ccd67cb0f7197fb3b744229257a091f5f2bee01cd44fbc44f941af61d07d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / deepssf-0.3.0-py3-none-any.whl

Download URL deepssf-0.3.0-py3-none-any.whl
Size 7.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
2dd54d2eb794fde898fdb3bf79ee56b50b9140bc7ff1029b4997b8973897094d
BLAKE2b-256 checksum
How to use checksums
d0a83e1ef1b1e1f58edc524cb949751c0a913a188c4237a59b2406d3cb56a7a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Security for deepSSF 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for deepssf-0.3.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page