cuProj:GPU加速坐标投影
项目描述
cuProj:GPU加速坐标投影
注意
cuProj依赖于RAPIDS的RMM。
资源
- cuProj用户指南:Python API参考和指南
- cuProj开发者文档:了解cuProj的架构
- 入门:安装cuSpatial/cuProj的说明
- cuProj/cuSpatial社区:获取帮助、协作和向团队提问
- cuProj问题:请求功能/文档或报告错误(在cuSpatial存储库中提交问题)。
概述
cuProj是一个用于加速地理和大地测量坐标转换的库和Python包。cuProj可以在GPU上将数十亿个地理空间坐标从一种坐标参考系统(CRS)转换为另一种坐标参考系统,每秒可进行转换。这包括地图投影以及大地测量转换。cuProj使用CUDA C++实现,以在GPU上运行并提供最佳性能。
cuProj提供了一个与PyProj API紧密匹配的Python API,以及一个仅包含头文件的C++ API。虽然C++ API与Proj的API不匹配,但它旨在最终扩展以支持Proj支持的大多数功能和转换。
目前,cuProj仅支持Proj转换的一部分。以下转换受到支持
- WGS84 (EPSG: 4326) 到/从任何60个UTM区域转换(EPSG: 32601-32660, 32701-32760)。
示例
Python API与PyProj紧密匹配,数据可以在两者之间无缝切换
import cuproj
import pyproj
# Create a PyProj transformer
pyproj_transformer = pyproj.Transformer.from_crs("EPSG:4326", "EPSG:32613")
# Create a cuProj transformer
cuproj_transformer = cuproj.Transformer.from_crs("EPSG:4326", "EPSG:32613")
# Transform a grid of points around the San Francisco Bay using PyProj
num_points = 10000
grid_side = int(np.sqrt(num_points))
x, y = np.meshgrid(np.linspace(min_corner[0], max_corner[0], grid_side),
np.linspace(min_corner[1], max_corner[1], grid_side))
grid = [x.reshape(-1), y.reshape(-1)]
pyproj_result = pyproj_transformer.transform(*grid)
# Transform a grid of points around the San Francisco Bay using cuProj
cuproj_result = cuproj_transformer.transform(*grid)
请注意,cuProj转换器是从与PyProj转换器相同的CRS创建的。然后可以使用转换器转换点网格。转换的结果以x和y坐标的元组形式返回。PyProj转换的结果是NumPy数组的元组,而cuProj转换的结果是CuPy数组的元组。
此外,请注意,在上面的示例中,输入数据位于主机内存中,因此cuProj首先在设备内存中创建一个副本。已在设备上的数据不会复制,从而提高性能。请参阅简单的cuProj基准笔记本。
项目详情
关闭
cuproj_cu12-24.8.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4b18f12d1376e581576e66c924381c42b98b6c5829c8660cb221510cfd284102 |
|
MD5 | 4e68f4b6231f332d3e2219ee213e6dac |
|
BLAKE2b-256 | 6100dda8d195d6a5b322b33a963d478fc86fbd3da3bc77b2b15cd4cc1a48358b |