Skip to content

rapidsai/cuspatial

Folders and files

NameName
Last commit message
Last commit date
Mar 17, 2023
Jun 1, 2023
Jun 1, 2023
Jun 1, 2023
Jun 5, 2023
Apr 19, 2023
Jun 1, 2023
Mar 14, 2023
May 15, 2023
May 26, 2023
Nov 6, 2019
Mar 17, 2023
Apr 19, 2023
May 3, 2023
Sep 8, 2022
Jul 30, 2019
Apr 26, 2023
Apr 12, 2023
Jun 1, 2023
May 19, 2023
Jan 30, 2023
Apr 26, 2023
Nov 16, 2022

Repository files navigation

 cuSpatial - GPU-Accelerated Vector Geospatial Data Analysis

Note

cuSpatial depends on cuDF and RMM from RAPIDS.

Resources

Overview

cuSpatial accelerates vector geospatial operations through GPU parallelization. As part of the RAPIDS libraries, cuSpatial is inherently connected to cuDF, cuML, and cuGraph, enabling GPU acceleration across entire workflows.

cuSpatial represents data in GeoArrow format, which enables compatibility with the Apache Arrow ecosystem.

cuSpatial's Python API is closely matched to GeoPandas and data can seamlessly transition between the two:

import geopandas
from shapely.geometry import Polygon
import cuspatial

p1 = Polygon([(0, 0), (1, 0), (1, 1)])
p2 = Polygon([(0, 0), (1, 0), (1, 1), (0, 1)])
geoseries = geopandas.GeoSeries([p1, p2])

cuspatial_geoseries = cuspatial.from_geopandas(geoseries)
print(cuspatial_geoseries)

Output:

0    POLYGON ((0 0, 1 0, 1 1, 0 0))
1    POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0))

For additional examples, browse the complete API documentation, or check out more detailed notebooks. the NYC Taxi and Weather notebooks make use of cuSpatial.

Supported Geospatial Operations

cuSpatial is constantly working on new features! Check out the epics for a high-level view of our development, or the roadmap for the details!

Core Spatial Functions

Indexing and Join Functions

Trajectory Functions

What if operations I need aren't supported?

Thanks to the from_geopandas and to_geopandas functions you can accelerate what cuSpatial supports, and leave the rest of the workflow in place.

Loading
---
title: Integrating into Existing Workflows
---
%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': false},
            'themeVariables': {'commitLabelColor': '#000000',
            'commitLabelBackground': '#ffffff',
            'commitLabelFontSize': '14px'}} }%%
gitGraph
   commit id: "Existing Workflow Start"
   commit id: "GeoPandas IO"
   commit id: "Geospatial Analytics"
   branch a
   checkout a
   commit id: "from_geopandas"
   commit id: "cuSpatial GPU Acceleration"
   branch b
   checkout b
   commit id: "cuDF"
   commit id: "cuML"
   commit id: "cuGraph"
   checkout a
   merge b
   commit id: "to_geopandas"
   checkout main
   merge a
   commit id: "Continue Work"

Using cuSpatial

CUDA/GPU requirements

CUDA 11.2+
NVIDIA driver 450.80.02+
Pascal architecture or better (Compute Capability >=6.0)

Quick start: Docker

Use the RAPIDS Release Selector, selecting Docker as the installation method. All RAPIDS Docker images contain cuSpatial.

An example command from the Release Selector:

docker pull nvcr.io/nvidia/rapidsai/rapidsai-core:23.02-cuda11.8-runtime-ubuntu22.04-py3.10
docker run --gpus all --rm -it \
    --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 \
    -p 8888:8888 -p 8787:8787 -p 8786:8786 \
    nvcr.io/nvidia/rapidsai/rapidsai-core:23.02-cuda11.8-runtime-ubuntu22.04-py3.10

Install from Conda

To install via conda:

Note cuSpatial is supported only on Linux or through WSL, and with Python versions 3.9 and later

cuSpatial can be installed with conda (miniconda, or the full Anaconda distribution) from the rapidsai channel:

conda install -c rapidsai -c conda-forge -c nvidia \
    cuspatial=23.04 python=3.10 cudatoolkit=11.8

We also provide nightly Conda packages built from the HEAD of our latest development branch.

See the RAPIDS release selector for more OS and version info.

Install from Source

To build and install cuSpatial from source please see the build documentation.