Transformer#

the cuproj.transformer module contains the Transformer class, which can perform 2D transformations between coordinate reference systems (CRS).

class cuproj.transformer.Transformer(crs_from, crs_to)#

Bases: object

A transformer object to transform coordinates from one CRS to another.

Methods

from_crs(crs_from, crs_to)

Create a transformer from a source CRS to a target CRS.

transform(x, y[, direction])

Transform coordinates from one CRS to another.

Notes

Currently only the EPSG authority is supported. Currently only projection from WGS84 to UTM (and vice versa) is supported.

Examples

>>> from cuproj import Transformer
>>> transformer = Transformer.from_crs("epsg:4326", "epsg:32631")
>>> transformer.transform(2, 49)
(500000.0, 5460836.5)
>>> transformer.transform(500000, 5460836.5, direction="INVERSE")
(2.0, 49.0)
static from_crs(crs_from, crs_to)#

Create a transformer from a source CRS to a target CRS.

Parameters:
crs_fromCRS

The source CRS.

crs_toCRS

The target CRS.

Source and target CRS may be:
- An authority string [i.e. ‘epsg:4326’]
- An EPSG integer code [i.e. 4326]
- A tuple of (“auth_name”: “auth_code”) [i.e (‘epsg’, ‘4326’)]
Returns:
Transformer

A transformer object to transform coordinates from one CRS to another.

Notes

Currently only the EPSG authority is supported.

transform(x, y, direction='FORWARD')#

Transform coordinates from one CRS to another.

If the input data is already in device memory, and the input implements __cuda_array_interface__ , the data will be used directly. If the data is in host memory, it will be copied to the device.

Parameters:
xfloat or array_like

The x coordinate(s) to transform.

yfloat or array_like

The y coordinate(s) to transform.

directionstr, optional

The direction of the transformation. Either “FORWARD” or “INVERSE”. Default is “FORWARD”.

Returns:
tuple

A tuple of transformed x and y coordinates as cupy (device) arrays.