/usr/lib/python2.7/dist-packages/fiona/transform.py is in python-fiona 1.7.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | """Coordinate and geometry warping and reprojection"""
from fiona._transform import _transform, _transform_geom
def transform(src_crs, dst_crs, xs, ys):
"""Transform coordinates from one reference system to another.
Parameters
----------
src_crs: str or dict
A string like 'EPSG:4326' or a dict of proj4 parameters like
{'proj': 'lcc', 'lat_0': 18.0, 'lat_1': 18.0, 'lon_0': -77.0}
representing the coordinate reference system on the "source"
or "from" side of the transformation.
dst_crs: str or dict
A string or dict representing the coordinate reference system
on the "destination" or "to" side of the transformation.
xs: sequence of float
A list or tuple of x coordinate values. Must have the same
length as the ``ys`` parameter.
ys: sequence of float
A list or tuple of y coordinate values. Must have the same
length as the ``xs`` parameter.
Returns
-------
xp, yp: list of float
A pair of transformed coordinate sequences. The elements of
``xp`` and ``yp`` correspond exactly to the elements of the
``xs`` and ``ys`` input parameters.
Examples
--------
>>> transform('EPSG:4326', 'EPSG:26953', [-105.0], [40.0])
([957097.0952383667], [378940.8419189212])
"""
# Function is implemented in the _transform C extension module.
return _transform(src_crs, dst_crs, xs, ys)
def transform_geom(
src_crs, dst_crs, geom,
antimeridian_cutting=False, antimeridian_offset=10.0, precision=-1):
"""Transform a geometry obj from one reference system to another.
Parameters
----------
src_crs: str or dict
A string like 'EPSG:4326' or a dict of proj4 parameters like
{'proj': 'lcc', 'lat_0': 18.0, 'lat_1': 18.0, 'lon_0': -77.0}
representing the coordinate reference system on the "source"
or "from" side of the transformation.
dst_crs: str or dict
A string or dict representing the coordinate reference system
on the "destination" or "to" side of the transformation.
geom: obj
A GeoJSON-like geometry object with 'type' and 'coordinates'
members.
antimeridian_cutting: bool, optional
``True`` to cut output geometries in two at the antimeridian,
the default is ``False`.
antimeridian_offset: float, optional
A distance in decimal degrees from the antimeridian, outside of
which geometries will not be cut.
precision: int, optional
Optional rounding precision of output coordinates, in number
of decimal places.
Returns
-------
obj
A new GeoJSON-like geometry with transformed coordinates. Note
that if the output is at the antimeridian, it may be cut and
of a different geometry ``type`` than the input, e.g., a
polygon input may result in multi-polygon output.
Examples
--------
>>> transform_geom(
... 'EPSG:4326', 'EPSG:26953',
... {'type': 'Point', 'coordinates': [-105.0, 40.0]})
{'type': 'Point', 'coordinates': (957097.0952383667, 378940.8419189212)}
"""
# Function is implemented in the _transform C extension module.
return _transform_geom(
src_crs, dst_crs, geom,
antimeridian_cutting, antimeridian_offset, precision)
|