cuSpatial:GPU加速的空间和轨迹数据管理和分析库
项目描述
cuSpatial - GPU加速的矢量地理空间数据分析
注意
cuProj - GPU加速的坐标参考系统(CRS)转换
cuProj是cuSpatial仓库中的一个新RAPIDS库,它提供了坐标参考系统(CRS)之间的GPU加速坐标转换。cuProj自23.10版本起支持WGS84坐标到和从通用横轴墨卡托(UTM)的转换::globe_with_meridians:。
要了解更多关于cuProj的信息,请参阅Python cuProj README或c++ libcuproj README。
资源
- cuSpatial用户指南:Python API参考和指南
- cuSpatial开发者文档:了解cuSpatial的架构
- 入门:cuSpatial的安装选项
- cuSpatial社区:获取帮助、协作和向团队提问
- cuSpatial问题:请求功能/文档或报告错误
概述
cuSpatial通过GPU并行化加速向量地理空间操作。作为RAPIDS库的一部分,cuSpatial与cuDF、cuML和cuGraph固有连接,使整个工作流程能够实现GPU加速。
cuSpatial以GeoArrow格式表示数据,这使其能够与Apache Arrow生态系统兼容。
cuSpatial的Python API与GeoPandas紧密匹配,数据可以在两者之间无缝切换
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)
输出
0 POLYGON ((0 0, 1 0, 1 1, 0 0))
1 POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0))
有关更多示例,请浏览完整的API文档,或查看更多详细的notebooks。纽约出租车NYCTaxi和天气Weather笔记本都使用了cuSpatial。
支持的地理空间操作
cuSpatial不断在开发新功能!查看epics以了解我们的开发的高级视图,或查看roadmap以获取详细信息!
核心空间函数
- 空间关系查询(DE-9IM)
- 线字符串-线字符串交集
- 任意两个几何体之间的笛卡尔距离(ST_Distance)
- Haversine距离
- Hausdorff距离
- 空间窗口过滤
索引和连接函数
轨迹函数
如果需要操作不支持怎么办?
感谢from_geopandas
和to_geopandas
函数,您可以将cuSpatial支持的部分加速,并将其余工作流程保持原样。
---
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"
使用cuSpatial
CUDA/GPU要求
- CUDA 11.2+与兼容、受支持的驱动程序
- Linux原生:Pascal架构或更高(计算能力 >=6.0)
- WSL2:Volta架构或更高(计算能力 >=7.0)
快速入门:Docker
使用RAPIDS Release Selector,选择Docker
作为安装方法。所有RAPIDS Docker镜像都包含cuSpatial。
Release Selector中的示例命令
docker run --gpus all --pull always --rm -it \
--shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 \
-p 8888:8888 -p 8787:8787 -p 8786:8786 \
nvcr.io/nvidia/rapidsai/notebooks:24.08-cuda11.8-py3.10
使用Conda安装
要使用conda安装
注意 cuSpatial仅支持Linux或通过WSL,以及Python版本3.9、3.10和3.11。
cuSpatial可以通过conda(miniconda或完整的Anaconda发行版)从rapidsai通道安装
conda install -c rapidsai -c conda-forge -c nvidia \
cuspatial=24.08 python=3.11 cudatoolkit=11.8
我们还提供从最新开发分支的HEAD构建的夜间Conda包。
有关更多操作系统和版本信息,请参阅RAPIDS安装文档。
使用pip安装
要使用pip安装
注意 cuSpatial仅支持Linux或通过WSL,以及Python版本3.9、3.10和3.11。
cuSpatial pip包可以从NVIDIA的PyPI索引安装。pip安装需要使用与系统已安装的CUDA工具包匹配的wheel。
- 对于CUDA 11工具包,安装
-cu11
wheels - 对于CUDA 12工具包安装
-cu12
wheels - 如果您的安装具有CUDA 12驱动程序但CUDA 11工具包,请使用
-cu11
wheels。
pip install cuspatial-cu12 --extra-index-url=https://pypi.nvidia.com
pip install cuspatial-cu11 --extra-index-url=https://pypi.nvidia.com
解决Fiona/GDAL版本问题
cuSpatial依赖于geopandas
,它使用fiona >= 1.8.19
,通过GDAL读取常见的GIS格式。
Fiona需要GDAL已存在于您的系统上,但其最低要求版本可能比操作系统包管理器中GDAL的版本新。
在安装时,Fiona会检查GDAL的版本,如果没有安装兼容的GDAL版本,则会报错,如下所示
ERROR: GDAL >= 3.2 is required for fiona. Please upgrade GDAL.
有两种方法可以解决这个问题
- 安装一个满足fiona最低要求的GDAL版本
- Ubuntu用户可以使用UbuntuGIS PPA安装较新的GDAL
sudo -y add-apt-repository ppa:ubuntugis/ppa sudo apt install libgdal-dev
- 将fiona的版本锁定到与您的
libgdal-dev
版本兼容的范围
- 对于Ubuntu20.04(GDAL v3.0.4)
pip install --no-binary fiona --extra-index-url=https://pypi.nvidia.com cuspatial-cu12 'fiona>=1.8.19,<1.9'
- 对于Ubuntu22.04(GDAL v3.4.1)
pip install --no-binary fiona --extra-index-url=https://pypi.nvidia.com cuspatial-cu12 'fiona>=1.9'
从源码构建/安装
要使用源码构建和安装cuSpatial,请参阅构建文档。
引用cuSpatial
如果您在您发表的工作中觉得cuSpatial很有用,请考虑引用该仓库。
@misc{cuspatial:24.08,
author = {{NVIDIA Corporation}},
title = {cuSpatial: GPU-Accelerated Geospatial and Spatiotemporal Algorithms},
year = {2023},
publisher = {NVIDIA},
howpublished = {\url{https://github.com/rapidsai/cuspatial}},
note = {Software available from github.com},
}
项目详情
cuspatial_cu11-24.8.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2a4e030d2edec2f3c7331e9f5def2631a7fe8d92e470a6c03eadf690bfad255c |
|
MD5 | a21ed728f27af3e69da2db0a02e02331 |
|
BLAKE2b-256 | 6dc9a022e9e47b6a471e61babe2e42529bb758530710b149edbe338c8cde4b3c |