跳转到主要内容

cuProj:GPU加速坐标投影

项目描述

 cuProj:GPU加速坐标投影

注意

cuProj依赖于来自RAPIDSRMM

资源

概述

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 (2.2 kB 查看散列

上传时间

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面