cuProj:GPU加速坐标投影
项目描述
cuProj:GPU加速坐标投影
注意
资源
- 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_cu11-24.8.0.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 81b99465265f825d31ff2e564cb5241dd8e24518ec539ce5f9f03edb8440c66d |
|
MD5 | 5b6ba1d27702f34720383d098fc241c7 |
|
BLAKE2b-256 | 77eb1fa276c267a261360ae92e41982515fed0d52fac5ed6cc5f4f5ab5fde63a |