跳转到主要内容

cuProj:GPU加速坐标投影

项目描述

 cuProj:GPU加速坐标投影

注意

cuProj依赖于RAPIDS的RMM

资源

概述

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 (2.2 kB 查看哈希值)

上传时间

由以下支持

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