Name | cuproj-cu11 JSON |
Version |
24.12.0
JSON |
| download |
home_page | None |
Summary | cuProj: GPU-Accelerated Coordinate Projection |
upload_time | 2024-12-12 23:59:30 |
maintainer | None |
docs_url | None |
author | NVIDIA Corporation |
requires_python | >=3.10 |
license | Apache 2.0 |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# <div align="left"><img src="https://rapids.ai/assets/images/rapids_logo.png" width="90px"/> cuProj: GPU-Accelerated Coordinate Projection</div>
> **Note**
>
> cuProj depends on [RMM](https://github.com/rapidsai/rmm) from [RAPIDS](https://rapids.ai/).
## Resources
- [cuProj User's Guide](https://docs.rapids.ai/api/cuproj/stable/user_guide/cuproj_api_examples.html):
Python API reference and guides
- [cuProj Developer Documentation](https://docs.rapids.ai/api/cuproj/stable/developer_guide/index.html):
Understand cuProj's architecture
- [Getting Started](https://docs.rapids.ai/install):
Instructions for installing cuSpatial/cuProj
- [cuProj/cuSpatial Community](https://github.com/rapidsai/cuspatial/discussions):
Get help, collaborate, and ask the team questions
- [cuProj Issues](https://github.com/rapidsai/cuspatial/issues/new/choose):
Request a feature/documentation or report a bug (file issues in cuSpatial repo).
## Overview
cuProj is a library and Python package for accelerated geographic and geodetic coordinate
transformations. cuProj can transform billions of geospatial coordinates per second from one
coordinate reference system (CRS) to another on GPUs. This includes cartographic projections as well
as geodetic transformations. cuProj is implemented in CUDA C++ to run on GPUs to provide the highest
performance.
cuProj provides a Python API that closely matches the
[PyProj](https://pyproj4.github.io/pyproj/stable/) API, as well as a header-only C++ API. While the
C++ API does not match the API of [Proj](https://proj.org/), it is designed to eventually expand to
support many of the same features and transformations that Proj supports.
Currently cuProj only supports a subset of the Proj transformations. The following transformations
are supported:
- WGS84 (EPSG: 4326) to/from any of the 60 UTM zone transformations (EPSG: 32601-32660, 32701-32760).
## Example
The Python API is closely matched to PyProj and data can seamlessly transition between the two:
```python
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)
```
Note that the cuProj transformer is created from the same CRSs as the PyProj transformer. The
transformer can then be used to transform a grid of points. The result of the transformation is
returned as a tuple of x and y coordinates. The result of the PyProj transformation is a tuple of
Numpy arrays, while the result of the cuProj transformation is a tuple of
[CuPy](https://cupy.dev/) arrays.
Also note that in the above example, the input data are in host memory, so cuProj will create a
copy in device memory first. Data already on the device will not be copied, resulting in higher
performance. See the
[simple cuProj Benchmark notebook](../../notebooks/simple_cuproj_benchmark.ipynb) for an example.
Raw data
{
"_id": null,
"home_page": null,
"name": "cuproj-cu11",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": null,
"author": "NVIDIA Corporation",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/c0/87/bc0fcbeef4d7706dc864bc9cfa6090d0239fab50ee5366e82219cf3c2a59/cuproj_cu11-24.12.0.tar.gz",
"platform": null,
"description": "# <div align=\"left\"><img src=\"https://rapids.ai/assets/images/rapids_logo.png\" width=\"90px\"/> cuProj: GPU-Accelerated Coordinate Projection</div>\n\n> **Note**\n>\n> cuProj depends on [RMM](https://github.com/rapidsai/rmm) from [RAPIDS](https://rapids.ai/).\n\n## Resources\n\n- [cuProj User's Guide](https://docs.rapids.ai/api/cuproj/stable/user_guide/cuproj_api_examples.html):\n Python API reference and guides\n- [cuProj Developer Documentation](https://docs.rapids.ai/api/cuproj/stable/developer_guide/index.html):\n Understand cuProj's architecture\n- [Getting Started](https://docs.rapids.ai/install):\n Instructions for installing cuSpatial/cuProj\n- [cuProj/cuSpatial Community](https://github.com/rapidsai/cuspatial/discussions):\n Get help, collaborate, and ask the team questions\n- [cuProj Issues](https://github.com/rapidsai/cuspatial/issues/new/choose):\n Request a feature/documentation or report a bug (file issues in cuSpatial repo).\n\n## Overview\n\ncuProj is a library and Python package for accelerated geographic and geodetic coordinate\ntransformations. cuProj can transform billions of geospatial coordinates per second from one\ncoordinate reference system (CRS) to another on GPUs. This includes cartographic projections as well\nas geodetic transformations. cuProj is implemented in CUDA C++ to run on GPUs to provide the highest\nperformance.\n\ncuProj provides a Python API that closely matches the\n[PyProj](https://pyproj4.github.io/pyproj/stable/) API, as well as a header-only C++ API. While the\nC++ API does not match the API of [Proj](https://proj.org/), it is designed to eventually expand to\nsupport many of the same features and transformations that Proj supports.\n\nCurrently cuProj only supports a subset of the Proj transformations. The following transformations\nare supported:\n\n- WGS84 (EPSG: 4326) to/from any of the 60 UTM zone transformations (EPSG: 32601-32660, 32701-32760).\n\n## Example\n\nThe Python API is closely matched to PyProj and data can seamlessly transition between the two:\n\n```python\nimport cuproj\nimport pyproj\n\n# Create a PyProj transformer\npyproj_transformer = pyproj.Transformer.from_crs(\"EPSG:4326\", \"EPSG:32613\")\n\n# Create a cuProj transformer\ncuproj_transformer = cuproj.Transformer.from_crs(\"EPSG:4326\", \"EPSG:32613\")\n\n# Transform a grid of points around the San Francisco Bay using PyProj\nnum_points = 10000\ngrid_side = int(np.sqrt(num_points))\n\nx, y = np.meshgrid(np.linspace(min_corner[0], max_corner[0], grid_side),\n np.linspace(min_corner[1], max_corner[1], grid_side))\ngrid = [x.reshape(-1), y.reshape(-1)]\n\npyproj_result = pyproj_transformer.transform(*grid)\n\n# Transform a grid of points around the San Francisco Bay using cuProj\ncuproj_result = cuproj_transformer.transform(*grid)\n```\n\nNote that the cuProj transformer is created from the same CRSs as the PyProj transformer. The\ntransformer can then be used to transform a grid of points. The result of the transformation is\nreturned as a tuple of x and y coordinates. The result of the PyProj transformation is a tuple of\nNumpy arrays, while the result of the cuProj transformation is a tuple of\n[CuPy](https://cupy.dev/) arrays.\n\nAlso note that in the above example, the input data are in host memory, so cuProj will create a\ncopy in device memory first. Data already on the device will not be copied, resulting in higher\nperformance. See the\n[simple cuProj Benchmark notebook](../../notebooks/simple_cuproj_benchmark.ipynb) for an example.\n",
"bugtrack_url": null,
"license": "Apache 2.0",
"summary": "cuProj: GPU-Accelerated Coordinate Projection",
"version": "24.12.0",
"project_urls": {
"Documentation": "https://docs.rapids.ai/api/cuproj/stable/",
"Homepage": "https://github.com/rapidsai/cuspatial/python/cuproj"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c087bc0fcbeef4d7706dc864bc9cfa6090d0239fab50ee5366e82219cf3c2a59",
"md5": "13f3f0b8d63f3a8d37dd2bcbe8300ea6",
"sha256": "265f9e328dadd9c73add12962a55d2d39555ef57f218e1cfeb040e2d68574728"
},
"downloads": -1,
"filename": "cuproj_cu11-24.12.0.tar.gz",
"has_sig": false,
"md5_digest": "13f3f0b8d63f3a8d37dd2bcbe8300ea6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 2266,
"upload_time": "2024-12-12T23:59:30",
"upload_time_iso_8601": "2024-12-12T23:59:30.381348Z",
"url": "https://files.pythonhosted.org/packages/c0/87/bc0fcbeef4d7706dc864bc9cfa6090d0239fab50ee5366e82219cf3c2a59/cuproj_cu11-24.12.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-12 23:59:30",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "rapidsai",
"github_project": "cuspatial",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "cuproj-cu11"
}