Skip to content
GitLab
Explore
Sign in
Register
Commits on Source (4)
New upstream version 2.1.1+ds
· 69dd1991
Bas Couwenberg
authored
Mar 18, 2019
69dd1991
Merge tag 'upstream/2.1.1+ds'
· 22b655f0
Bas Couwenberg
authored
Mar 18, 2019
Upstream version 2.1.1+ds
22b655f0
New upstream release.
· ba39b304
Bas Couwenberg
authored
Mar 18, 2019
ba39b304
Set distribution to experimental.
· 4fe6be1b
Bas Couwenberg
authored
Mar 18, 2019
4fe6be1b
Show whitespace changes
Inline
Side-by-side
README.md
View file @
4fe6be1b
...
...
@@ -12,7 +12,7 @@ pyproj
[

](https://anaconda.org/conda-forge/pyproj)
[

](https://doi.org/10.5281/zenodo.259223
3
)
[

](https://doi.org/10.5281/zenodo.259223
2
)
Python interface to
[
PROJ.4
](
https://github.com/OSGeo/proj.4
)
.
...
...
debian/changelog
View file @
4fe6be1b
python-pyproj (2.1.1+ds-1~exp1) experimental; urgency=medium
* New upstream release.
-- Bas Couwenberg <sebastic@debian.org> Mon, 18 Mar 2019 07:20:32 +0100
python-pyproj (2.1.0+ds-1~exp1) experimental; urgency=medium
* New upstream release.
...
...
pyproj/__init__.py
View file @
4fe6be1b
...
...
@@ -47,7 +47,7 @@ CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
"""
__version__
=
"
2.1.
0
"
__version__
=
"
2.1.
1
"
__all__
=
[
"
Proj
"
,
"
Geod
"
,
...
...
pyproj/_transformer.pyx
View file @
4fe6be1b
...
...
@@ -96,7 +96,7 @@ cdef class _Transformer:
return
cstrencode
(
in_proj
.
srs
)
return
cstrencode
(
in_proj
.
to_wkt
())
def
_transform
(
self
,
inx
,
iny
,
inz
,
radians
):
def
_transform
(
self
,
inx
,
iny
,
inz
,
radians
,
errcheck
=
False
):
# private function to call pj_transform
cdef
void
*
xdata
cdef
void
*
ydata
...
...
@@ -145,7 +145,7 @@ cdef class _Transformer:
NULL
,
0
,
0
,
)
cdef
int
errno
=
proj_errno
(
self
.
projpj
)
if
errno
:
if
errno
and
errcheck
:
raise
ProjError
(
"
proj_trans_generic error: {}
"
.
format
(
pystrdecode
(
proj_errno_string
(
errno
))))
...
...
@@ -161,7 +161,8 @@ cdef class _Transformer:
yy
[
i
]
=
yy
[
i
]
*
_DG2RAD
def
_transform_sequence
(
self
,
Py_ssize_t
stride
,
inseq
,
bint
switch
,
radians
):
def
_transform_sequence
(
self
,
Py_ssize_t
stride
,
inseq
,
bint
switch
,
radians
,
errcheck
=
False
):
# private function to itransform function
cdef
:
void
*
buffer
...
...
@@ -215,7 +216,7 @@ cdef class _Transformer:
)
cdef
int
errno
=
proj_errno
(
self
.
projpj
)
if
errno
:
if
errno
and
errcheck
:
raise
ProjError
(
"
proj_trans_generic error: {}
"
.
format
(
proj_errno_string
(
errno
)))
...
...
pyproj/transformer.py
View file @
4fe6be1b
...
...
@@ -100,7 +100,7 @@ class Transformer(object):
transformer
.
_transformer
=
_Transformer
.
from_pipeline
(
cstrencode
(
proj_pipeline
))
return
transformer
def
transform
(
self
,
xx
,
yy
,
zz
=
None
,
radians
=
False
):
def
transform
(
self
,
xx
,
yy
,
zz
=
None
,
radians
=
False
,
errcheck
=
False
):
"""
Transform points between two coordinate systems.
...
...
@@ -116,6 +116,10 @@ class Transformer(object):
If True, will expect input data to be in radians and will return radians
if the projection is geographic. Default is False (degrees). Ignored for
pipeline transformations.
errcheck: boolean, optional (default False)
If True an exception is raised if the transformation is invalid.
By default errcheck=False and an invalid transformation
returns ``inf`` and no exception is raised.
Example:
...
...
@@ -148,7 +152,7 @@ class Transformer(object):
else
:
inz
=
None
# call pj_transform. inx,iny,inz buffers modified in place.
self
.
_transformer
.
_transform
(
inx
,
iny
,
inz
,
radians
)
self
.
_transformer
.
_transform
(
inx
,
iny
,
inz
,
radians
,
errcheck
=
errcheck
)
# if inputs were lists, tuples or floats, convert back.
outx
=
_convertback
(
xisfloat
,
xislist
,
xistuple
,
inx
)
outy
=
_convertback
(
yisfloat
,
yislist
,
xistuple
,
iny
)
...
...
@@ -158,7 +162,7 @@ class Transformer(object):
else
:
return
outx
,
outy
def
itransform
(
self
,
points
,
switch
=
False
,
radians
=
False
):
def
itransform
(
self
,
points
,
switch
=
False
,
radians
=
False
,
errcheck
=
False
):
"""
Iterator/generator version of the function pyproj.Transformer.transform.
...
...
@@ -174,6 +178,10 @@ class Transformer(object):
If True, will expect input data to be in radians and will return radians
if the projection is geographic. Default is False (degrees). Ignored for
pipeline transformations.
errcheck: boolean, optional (default False)
If True an exception is raised if the transformation is invalid.
By default errcheck=False and an invalid transformation
returns ``inf`` and no exception is raised.
Example:
...
...
@@ -218,13 +226,14 @@ class Transformer(object):
if
len
(
buff
)
==
0
:
break
self
.
_transformer
.
_transform_sequence
(
stride
,
buff
,
switch
,
radians
)
self
.
_transformer
.
_transform_sequence
(
stride
,
buff
,
switch
,
radians
,
errcheck
=
errcheck
)
for
pt
in
zip
(
*
([
iter
(
buff
)]
*
stride
)):
yield
pt
def
transform
(
p1
,
p2
,
x
,
y
,
z
=
None
,
radians
=
False
):
def
transform
(
p1
,
p2
,
x
,
y
,
z
=
None
,
radians
=
False
,
errcheck
=
False
):
"""
x2, y2, z2 = transform(p1, p2, x1, y1, z1)
...
...
@@ -239,6 +248,10 @@ def transform(p1, p2, x, y, z=None, radians=False):
'
radians
'
is True (default is False), then all input and
output coordinates will be in radians instead of the default
of degrees for geographic input/output projections.
If the optional keyword
'
errcheck
'
is set to True an
exception is raised if the transformation is
invalid. By default errcheck=False and ``inf`` is returned for an
invalid transformation (and no exception is raised).
In addition to converting between cartographic and geographic
projection coordinates, this function can take care of datum
...
...
@@ -304,10 +317,11 @@ def transform(p1, p2, x, y, z=None, radians=False):
>>>
"
%.3f %.3f
"
%
(
xr
,
yr
)
'
2.031 0.696
'
"""
return
Transformer
.
from_proj
(
p1
,
p2
).
transform
(
x
,
y
,
z
,
radians
)
return
Transformer
.
from_proj
(
p1
,
p2
).
transform
(
x
,
y
,
z
,
radians
,
errcheck
=
errcheck
)
def
itransform
(
p1
,
p2
,
points
,
switch
=
False
,
radians
=
False
):
def
itransform
(
p1
,
p2
,
points
,
switch
=
False
,
radians
=
False
,
errcheck
=
False
):
"""
points2 = itransform(p1, p2, points1)
Iterator/generator version of the function pyproj.transform.
...
...
@@ -351,4 +365,5 @@ def itransform(p1, p2, points, switch=False, radians=False):
>>>
for
pt
in
itransform
(
pj
,
Proj
(
4326
),
[(
pjx
,
pjy
)],
radians
=
True
):
'
{:.3f} {:.3f}
'
.
format
(
*
pt
)
'
2.031 0.696
'
"""
return
Transformer
.
from_proj
(
p1
,
p2
).
itransform
(
points
,
switch
,
radians
)
return
Transformer
.
from_proj
(
p1
,
p2
).
itransform
(
points
,
switch
,
radians
,
errcheck
=
errcheck
)
requirements-dev.txt
View file @
4fe6be1b
...
...
@@ -4,3 +4,4 @@ nose2[coverage_plugin]>=0.6.5
pytest
cov-core
coverage>=4.0
numpy
sphinx/history.rst
View file @
4fe6be1b
Change Log
==========
2.1.1
~~~~~
* Restore behavior of 1.9.6 when illegal projection transformation requested
(return ``inf`` instead of raising an exception, issue #202). kwarg ``errcheck``
added to :func:`pyproj.transform` and :func:`pyproj.itransform`
(default ``False``). When ``errcheck=True`` an exception is raised.
2.1.0
~~~~~
...
...
unittest/test_transformer.py
View file @
4fe6be1b
import
pyproj
import
numpy
as
np
from
numpy.testing
import
assert_equal
from
pyproj.exceptions
import
ProjError
def
test_tranform_wgs84_to_custom
():
...
...
@@ -18,3 +21,16 @@ def test_transform_wgs84_to_alaska():
test
=
(
-
179.72638
,
49.752533
)
xx
,
yy
=
pyproj
.
transform
(
lat_lon_proj
,
alaska_aea_proj
,
*
test
)
assert
"
{:.3f} {:.3f}
"
.
format
(
xx
,
yy
)
==
"
-1824924.495 330822.800
"
def
test_illegal_transformation
():
# issue 202
p1
=
pyproj
.
Proj
(
init
=
'
epsg:4326
'
)
p2
=
pyproj
.
Proj
(
init
=
'
epsg:3857
'
)
xx
,
yy
=
pyproj
.
transform
(
p1
,
p2
,(
-
180
,
-
180
,
180
,
180
,
-
180
),(
-
90
,
90
,
90
,
-
90
,
-
90
))
assert
np
.
all
(
np
.
isinf
(
xx
))
assert
np
.
all
(
np
.
isinf
(
yy
))
try
:
xx
,
yy
=
pyproj
.
transform
(
p1
,
p2
,(
-
180
,
-
180
,
180
,
180
,
-
180
),(
-
90
,
90
,
90
,
-
90
,
-
90
),
errcheck
=
True
)
assert_equal
(
None
,
'
Should throw an exception when errcheck=True
'
)
except
ProjError
:
pass