shapely 1.6a2__tar.gz → 1.6b2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {Shapely-1.6a2 → Shapely-1.6b2}/CHANGES.txt +25 -0
- {Shapely-1.6a2/Shapely.egg-info → Shapely-1.6b2}/PKG-INFO +71 -38
- {Shapely-1.6a2 → Shapely-1.6b2}/README.rst +45 -37
- {Shapely-1.6a2 → Shapely-1.6b2/Shapely.egg-info}/PKG-INFO +71 -38
- {Shapely-1.6a2 → Shapely-1.6b2}/Shapely.egg-info/requires.txt +4 -2
- Shapely-1.6b2/VERSION.txt +1 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/setup.py +7 -14
- Shapely-1.6b2/shapely/__init__.py +1 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/coords.py +0 -21
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/geometry/geo.py +7 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/geometry/linestring.py +49 -105
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/geometry/multipoint.py +14 -53
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/geometry/point.py +19 -55
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/geometry/polygon.py +68 -122
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/speedups/_speedups.c +1406 -1192
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/speedups/_speedups.pyx +11 -1
- Shapely-1.6b2/tests/test_collection.py +68 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_linestring.py +5 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_ndarrays.py +4 -4
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_point.py +5 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_vectorized.py +7 -6
- Shapely-1.6a2/VERSION.txt +0 -1
- Shapely-1.6a2/shapely/__init__.py +0 -1
- Shapely-1.6a2/tests/test_collection.py +0 -29
- {Shapely-1.6a2 → Shapely-1.6b2}/CREDITS.txt +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/LICENSE.txt +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/Shapely.egg-info/SOURCES.txt +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/Shapely.egg-info/dependency_links.txt +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/Shapely.egg-info/top_level.txt +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/docs/design.rst +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/docs/index.rst +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/docs/manual.rst +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/docs/project.rst +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/packaging/__about__.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/packaging/__init__.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/packaging/_compat.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/packaging/_structures.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/packaging/markers.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/packaging/requirements.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/packaging/specifiers.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/packaging/utils.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/packaging/version.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/packaging-15.3.dist-info/DESCRIPTION.rst +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/packaging-15.3.dist-info/METADATA +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/packaging-15.3.dist-info/RECORD +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/packaging-15.3.dist-info/WHEEL +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/packaging-15.3.dist-info/metadata.json +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/packaging-15.3.dist-info/pbr.json +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/packaging-15.3.dist-info/top_level.txt +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/setup.cfg +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/_buildcfg.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/_geos.pxi +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/affinity.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/algorithms/__init__.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/algorithms/cga.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/algorithms/polylabel.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/ctypes_declarations.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/errors.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/examples/__init__.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/examples/dissolve.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/examples/geoms.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/examples/intersect.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/ftools.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/geometry/__init__.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/geometry/base.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/geometry/collection.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/geometry/multilinestring.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/geometry/multipolygon.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/geometry/proxy.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/geos.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/impl.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/iterops.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/linref.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/ops.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/predicates.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/prepared.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/speedups/__init__.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/strtree.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/topology.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/validation.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/vectorized/__init__.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/vectorized/_vectorized.pyx +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/wkb.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/shapely/wkt.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/__init__.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/binascii_hex.txt +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/conftest.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_affinity.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_box.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_cga.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_coords.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_default_impl.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_delaunay.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_delegated.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_dlls.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_doctests.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_emptiness.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_empty_polygons.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_equality.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_geointerface.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_geomseq.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_geos_err_handler.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_getitem.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_hash.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_invalid_geometries.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_iterops.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_linear_referencing.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_linemerge.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_locale.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_mapping.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_minimum_rotated_rectangle.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_multi.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_multilinestring.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_multipoint.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_multipolygon.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_nearest.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_operations.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_operators.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_parallel_offset.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_persist.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_pickle.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_polygon.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_polygonize.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_polylabel.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_predicates.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_prepared.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_products_z.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_shared_paths.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_singularity.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_snap.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_split.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_strtree.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_styles.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_svg.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_transform.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_union.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_validation.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_wkt.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_xy.py +0 -0
- {Shapely-1.6a2 → Shapely-1.6b2}/tests/threading_test.py +0 -0
|
@@ -1,6 +1,31 @@
|
|
|
1
1
|
Changes
|
|
2
2
|
=======
|
|
3
3
|
|
|
4
|
+
1.6b2 (2016-12-12)
|
|
5
|
+
------------------
|
|
6
|
+
|
|
7
|
+
New features:
|
|
8
|
+
|
|
9
|
+
- Add support for GeometryCollection to shape and asShape functions (#422).
|
|
10
|
+
|
|
11
|
+
1.6b1 (2016-12-12)
|
|
12
|
+
------------------
|
|
13
|
+
|
|
14
|
+
Bug fixes:
|
|
15
|
+
|
|
16
|
+
- Implemented __array_interface__ for empty Points and LineStrings (#403).
|
|
17
|
+
|
|
18
|
+
1.6a3 (2016-12-01)
|
|
19
|
+
------------------
|
|
20
|
+
|
|
21
|
+
Bug fixes:
|
|
22
|
+
|
|
23
|
+
- Remove accidental hard requirement of Numpy (#431).
|
|
24
|
+
|
|
25
|
+
Packaging:
|
|
26
|
+
|
|
27
|
+
- Put Numpy in an optional requirement set named "vectorized" (#431).
|
|
28
|
+
|
|
4
29
|
1.6a2 (2016-11-09)
|
|
5
30
|
------------------
|
|
6
31
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 1.1
|
|
2
2
|
Name: Shapely
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.6b2
|
|
4
4
|
Summary: Geometric objects, predicates, and operations
|
|
5
5
|
Home-page: https://github.com/Toblerity/Shapely
|
|
6
6
|
Author: Sean Gillies
|
|
@@ -10,17 +10,17 @@ Description: =======
|
|
|
10
10
|
Shapely
|
|
11
11
|
=======
|
|
12
12
|
|
|
13
|
-
Manipulation and analysis of geometric objects in the Cartesian plane.
|
|
14
|
-
|
|
15
13
|
.. image:: https://travis-ci.org/Toblerity/Shapely.png?branch=master
|
|
16
14
|
:target: https://travis-ci.org/Toblerity/Shapely
|
|
17
15
|
|
|
18
16
|
.. image:: https://coveralls.io/repos/github/Toblerity/Shapely/badge.svg?branch=master
|
|
19
17
|
:target: https://coveralls.io/github/Toblerity/Shapely?branch=master
|
|
20
18
|
|
|
21
|
-
|
|
19
|
+
Manipulation and analysis of geometric objects in the Cartesian plane.
|
|
20
|
+
|
|
21
|
+
.. image:: https://c2.staticflickr.com/6/5560/31301790086_b3472ea4e9_c.jpg
|
|
22
22
|
:width: 800
|
|
23
|
-
:height:
|
|
23
|
+
:height: 378
|
|
24
24
|
|
|
25
25
|
Shapely is a BSD-licensed Python package for manipulation and analysis of
|
|
26
26
|
planar geometric objects. It is based on the widely deployed `GEOS
|
|
@@ -36,48 +36,64 @@ Description: =======
|
|
|
36
36
|
Requirements
|
|
37
37
|
============
|
|
38
38
|
|
|
39
|
-
Shapely 1.
|
|
39
|
+
Shapely 1.6.x requires
|
|
40
40
|
|
|
41
41
|
* Python >=2.6 (including Python 3.x)
|
|
42
|
-
* GEOS >=3.3
|
|
42
|
+
* GEOS >=3.3
|
|
43
43
|
|
|
44
|
-
Installing Shapely
|
|
45
|
-
|
|
44
|
+
Installing Shapely (1.6b2)
|
|
45
|
+
==========================
|
|
46
46
|
|
|
47
|
-
Windows users
|
|
48
|
-
http://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely
|
|
47
|
+
Windows users have two good installation options: the wheels at
|
|
48
|
+
http://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely and the
|
|
49
|
+
Anaconda platform's [conda-forge](https://conda-forge.github.io/)
|
|
50
|
+
channel.
|
|
49
51
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
system library path, and install Shapely from the Python package index.
|
|
52
|
+
OS X users can get Shapely wheels with GEOS included from the
|
|
53
|
+
Python Package Index with a recent version of pip (8+):
|
|
53
54
|
|
|
54
55
|
.. code-block:: console
|
|
55
56
|
|
|
56
|
-
$ pip install shapely
|
|
57
|
+
$ pip install shapely==1.6b2
|
|
57
58
|
|
|
58
|
-
|
|
59
|
-
will be used to get compiler and linker options. If it is not on the PATH,
|
|
60
|
-
it can be specified with a GEOS_CONFIG environment variable, e.g.:
|
|
59
|
+
A few extra speedups that require Numpy can be had by running
|
|
61
60
|
|
|
62
61
|
.. code-block:: console
|
|
63
62
|
|
|
64
|
-
$
|
|
63
|
+
$ pip install shapely[vectorized]==1.6b2
|
|
64
|
+
|
|
65
|
+
If you want to build Shapely from source for compatibility with
|
|
66
|
+
other modules that depend on GEOS (such as cartopy or osgeo.ogr)
|
|
67
|
+
you may ignore the binary wheels.
|
|
68
|
+
|
|
69
|
+
.. code-block:: console
|
|
65
70
|
|
|
66
|
-
|
|
67
|
-
|
|
71
|
+
$ pip install shapely --no-binary shapely
|
|
72
|
+
|
|
73
|
+
Binary wheels are also available for Linux. To get them, use `pip shapely
|
|
74
|
+
shapely==1.6b2`. To avoid them, use `pip install shapely --no-binary
|
|
75
|
+
shapely==1.6b2`.
|
|
76
|
+
|
|
77
|
+
In other situations, install `geos_c` libs and headers by any means
|
|
78
|
+
(for example, `brew install geos` on OS X or
|
|
79
|
+
`apt-get install libgeos-dev` on Debian/Ubuntu) and install Shapely
|
|
80
|
+
from the Python package index.
|
|
68
81
|
|
|
69
82
|
.. code-block:: console
|
|
70
83
|
|
|
71
|
-
$ pip install shapely
|
|
84
|
+
$ pip install shapely
|
|
72
85
|
|
|
73
|
-
|
|
86
|
+
If you've installed GEOS to a standard location, the geos-config program
|
|
87
|
+
will be used to get compiler and linker options. If geos-config is not on
|
|
88
|
+
your executable, it can be specified with a GEOS_CONFIG environment
|
|
89
|
+
variable, e.g.:
|
|
74
90
|
|
|
75
91
|
.. code-block:: console
|
|
76
92
|
|
|
77
|
-
$ pip install shapely
|
|
93
|
+
$ GEOS_CONFIG=/path/to/geos-config pip install shapely
|
|
78
94
|
|
|
79
|
-
Shapely is also provided by popular Python distributions like Canopy
|
|
80
|
-
and Anaconda (Continuum Analytics).
|
|
95
|
+
Shapely is also provided by popular Python distributions like Canopy
|
|
96
|
+
(Enthought) and Anaconda (Continuum Analytics).
|
|
81
97
|
|
|
82
98
|
Usage
|
|
83
99
|
=====
|
|
@@ -141,22 +157,14 @@ Description: =======
|
|
|
141
157
|
|
|
142
158
|
.. code-block:: console
|
|
143
159
|
|
|
144
|
-
(env)$
|
|
145
|
-
|
|
146
|
-
Roadmap and Maintenance
|
|
147
|
-
=======================
|
|
148
|
-
|
|
149
|
-
Shapely 1.2.x is a maintenance-only branch which supports Python 2.4-2.6, but
|
|
150
|
-
not Python 3+. There will be no new features in Shapely 1.2.x and only fixes
|
|
151
|
-
for major bugs.
|
|
152
|
-
|
|
153
|
-
Shapely 1.4.x is a maintenance-only branch supporting Pythons 2.7 and 3.3+.
|
|
160
|
+
(env)$ python -m pytest
|
|
154
161
|
|
|
155
162
|
Support
|
|
156
163
|
=======
|
|
157
164
|
|
|
158
|
-
|
|
159
|
-
http://
|
|
165
|
+
Questions about using Shapely may be asked on the `GIS StackExchange
|
|
166
|
+
<http://gis.stackexchange.com/questions/tagged/shapely>`__ using the "shapely"
|
|
167
|
+
tag.
|
|
160
168
|
|
|
161
169
|
Bugs may be reported at https://github.com/Toblerity/Shapely/issues.
|
|
162
170
|
|
|
@@ -231,6 +239,31 @@ Description: =======
|
|
|
231
239
|
Changes
|
|
232
240
|
=======
|
|
233
241
|
|
|
242
|
+
1.6b2 (2016-12-12)
|
|
243
|
+
------------------
|
|
244
|
+
|
|
245
|
+
New features:
|
|
246
|
+
|
|
247
|
+
- Add support for GeometryCollection to shape and asShape functions (#422).
|
|
248
|
+
|
|
249
|
+
1.6b1 (2016-12-12)
|
|
250
|
+
------------------
|
|
251
|
+
|
|
252
|
+
Bug fixes:
|
|
253
|
+
|
|
254
|
+
- Implemented __array_interface__ for empty Points and LineStrings (#403).
|
|
255
|
+
|
|
256
|
+
1.6a3 (2016-12-01)
|
|
257
|
+
------------------
|
|
258
|
+
|
|
259
|
+
Bug fixes:
|
|
260
|
+
|
|
261
|
+
- Remove accidental hard requirement of Numpy (#431).
|
|
262
|
+
|
|
263
|
+
Packaging:
|
|
264
|
+
|
|
265
|
+
- Put Numpy in an optional requirement set named "vectorized" (#431).
|
|
266
|
+
|
|
234
267
|
1.6a2 (2016-11-09)
|
|
235
268
|
------------------
|
|
236
269
|
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
Shapely
|
|
3
3
|
=======
|
|
4
4
|
|
|
5
|
-
Manipulation and analysis of geometric objects in the Cartesian plane.
|
|
6
|
-
|
|
7
5
|
.. image:: https://travis-ci.org/Toblerity/Shapely.png?branch=master
|
|
8
6
|
:target: https://travis-ci.org/Toblerity/Shapely
|
|
9
7
|
|
|
10
8
|
.. image:: https://coveralls.io/repos/github/Toblerity/Shapely/badge.svg?branch=master
|
|
11
9
|
:target: https://coveralls.io/github/Toblerity/Shapely?branch=master
|
|
12
10
|
|
|
13
|
-
|
|
11
|
+
Manipulation and analysis of geometric objects in the Cartesian plane.
|
|
12
|
+
|
|
13
|
+
.. image:: https://c2.staticflickr.com/6/5560/31301790086_b3472ea4e9_c.jpg
|
|
14
14
|
:width: 800
|
|
15
|
-
:height:
|
|
15
|
+
:height: 378
|
|
16
16
|
|
|
17
17
|
Shapely is a BSD-licensed Python package for manipulation and analysis of
|
|
18
18
|
planar geometric objects. It is based on the widely deployed `GEOS
|
|
@@ -28,48 +28,64 @@ but can be readily integrated with packages that are. For more details, see:
|
|
|
28
28
|
Requirements
|
|
29
29
|
============
|
|
30
30
|
|
|
31
|
-
Shapely 1.
|
|
31
|
+
Shapely 1.6.x requires
|
|
32
32
|
|
|
33
33
|
* Python >=2.6 (including Python 3.x)
|
|
34
|
-
* GEOS >=3.3
|
|
34
|
+
* GEOS >=3.3
|
|
35
35
|
|
|
36
|
-
Installing Shapely
|
|
37
|
-
|
|
36
|
+
Installing Shapely (1.6b2)
|
|
37
|
+
==========================
|
|
38
38
|
|
|
39
|
-
Windows users
|
|
40
|
-
http://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely
|
|
39
|
+
Windows users have two good installation options: the wheels at
|
|
40
|
+
http://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely and the
|
|
41
|
+
Anaconda platform's [conda-forge](https://conda-forge.github.io/)
|
|
42
|
+
channel.
|
|
41
43
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
system library path, and install Shapely from the Python package index.
|
|
44
|
+
OS X users can get Shapely wheels with GEOS included from the
|
|
45
|
+
Python Package Index with a recent version of pip (8+):
|
|
45
46
|
|
|
46
47
|
.. code-block:: console
|
|
47
48
|
|
|
48
|
-
$ pip install shapely
|
|
49
|
+
$ pip install shapely==1.6b2
|
|
49
50
|
|
|
50
|
-
|
|
51
|
-
will be used to get compiler and linker options. If it is not on the PATH,
|
|
52
|
-
it can be specified with a GEOS_CONFIG environment variable, e.g.:
|
|
51
|
+
A few extra speedups that require Numpy can be had by running
|
|
53
52
|
|
|
54
53
|
.. code-block:: console
|
|
55
54
|
|
|
56
|
-
$
|
|
55
|
+
$ pip install shapely[vectorized]==1.6b2
|
|
57
56
|
|
|
58
|
-
If
|
|
59
|
-
|
|
57
|
+
If you want to build Shapely from source for compatibility with
|
|
58
|
+
other modules that depend on GEOS (such as cartopy or osgeo.ogr)
|
|
59
|
+
you may ignore the binary wheels.
|
|
60
60
|
|
|
61
61
|
.. code-block:: console
|
|
62
62
|
|
|
63
|
-
$ pip install shapely
|
|
63
|
+
$ pip install shapely --no-binary shapely
|
|
64
|
+
|
|
65
|
+
Binary wheels are also available for Linux. To get them, use `pip shapely
|
|
66
|
+
shapely==1.6b2`. To avoid them, use `pip install shapely --no-binary
|
|
67
|
+
shapely==1.6b2`.
|
|
64
68
|
|
|
65
|
-
|
|
69
|
+
In other situations, install `geos_c` libs and headers by any means
|
|
70
|
+
(for example, `brew install geos` on OS X or
|
|
71
|
+
`apt-get install libgeos-dev` on Debian/Ubuntu) and install Shapely
|
|
72
|
+
from the Python package index.
|
|
66
73
|
|
|
67
74
|
.. code-block:: console
|
|
68
75
|
|
|
69
|
-
$ pip install shapely
|
|
76
|
+
$ pip install shapely
|
|
70
77
|
|
|
71
|
-
|
|
72
|
-
and
|
|
78
|
+
If you've installed GEOS to a standard location, the geos-config program
|
|
79
|
+
will be used to get compiler and linker options. If geos-config is not on
|
|
80
|
+
your executable, it can be specified with a GEOS_CONFIG environment
|
|
81
|
+
variable, e.g.:
|
|
82
|
+
|
|
83
|
+
.. code-block:: console
|
|
84
|
+
|
|
85
|
+
$ GEOS_CONFIG=/path/to/geos-config pip install shapely
|
|
86
|
+
|
|
87
|
+
Shapely is also provided by popular Python distributions like Canopy
|
|
88
|
+
(Enthought) and Anaconda (Continuum Analytics).
|
|
73
89
|
|
|
74
90
|
Usage
|
|
75
91
|
=====
|
|
@@ -133,21 +149,13 @@ We use py.test to run Shapely's suite of unittests and doctests.
|
|
|
133
149
|
|
|
134
150
|
.. code-block:: console
|
|
135
151
|
|
|
136
|
-
(env)$
|
|
137
|
-
|
|
138
|
-
Roadmap and Maintenance
|
|
139
|
-
=======================
|
|
140
|
-
|
|
141
|
-
Shapely 1.2.x is a maintenance-only branch which supports Python 2.4-2.6, but
|
|
142
|
-
not Python 3+. There will be no new features in Shapely 1.2.x and only fixes
|
|
143
|
-
for major bugs.
|
|
144
|
-
|
|
145
|
-
Shapely 1.4.x is a maintenance-only branch supporting Pythons 2.7 and 3.3+.
|
|
152
|
+
(env)$ python -m pytest
|
|
146
153
|
|
|
147
154
|
Support
|
|
148
155
|
=======
|
|
149
156
|
|
|
150
|
-
|
|
151
|
-
http://
|
|
157
|
+
Questions about using Shapely may be asked on the `GIS StackExchange
|
|
158
|
+
<http://gis.stackexchange.com/questions/tagged/shapely>`__ using the "shapely"
|
|
159
|
+
tag.
|
|
152
160
|
|
|
153
161
|
Bugs may be reported at https://github.com/Toblerity/Shapely/issues.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 1.1
|
|
2
2
|
Name: Shapely
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.6b2
|
|
4
4
|
Summary: Geometric objects, predicates, and operations
|
|
5
5
|
Home-page: https://github.com/Toblerity/Shapely
|
|
6
6
|
Author: Sean Gillies
|
|
@@ -10,17 +10,17 @@ Description: =======
|
|
|
10
10
|
Shapely
|
|
11
11
|
=======
|
|
12
12
|
|
|
13
|
-
Manipulation and analysis of geometric objects in the Cartesian plane.
|
|
14
|
-
|
|
15
13
|
.. image:: https://travis-ci.org/Toblerity/Shapely.png?branch=master
|
|
16
14
|
:target: https://travis-ci.org/Toblerity/Shapely
|
|
17
15
|
|
|
18
16
|
.. image:: https://coveralls.io/repos/github/Toblerity/Shapely/badge.svg?branch=master
|
|
19
17
|
:target: https://coveralls.io/github/Toblerity/Shapely?branch=master
|
|
20
18
|
|
|
21
|
-
|
|
19
|
+
Manipulation and analysis of geometric objects in the Cartesian plane.
|
|
20
|
+
|
|
21
|
+
.. image:: https://c2.staticflickr.com/6/5560/31301790086_b3472ea4e9_c.jpg
|
|
22
22
|
:width: 800
|
|
23
|
-
:height:
|
|
23
|
+
:height: 378
|
|
24
24
|
|
|
25
25
|
Shapely is a BSD-licensed Python package for manipulation and analysis of
|
|
26
26
|
planar geometric objects. It is based on the widely deployed `GEOS
|
|
@@ -36,48 +36,64 @@ Description: =======
|
|
|
36
36
|
Requirements
|
|
37
37
|
============
|
|
38
38
|
|
|
39
|
-
Shapely 1.
|
|
39
|
+
Shapely 1.6.x requires
|
|
40
40
|
|
|
41
41
|
* Python >=2.6 (including Python 3.x)
|
|
42
|
-
* GEOS >=3.3
|
|
42
|
+
* GEOS >=3.3
|
|
43
43
|
|
|
44
|
-
Installing Shapely
|
|
45
|
-
|
|
44
|
+
Installing Shapely (1.6b2)
|
|
45
|
+
==========================
|
|
46
46
|
|
|
47
|
-
Windows users
|
|
48
|
-
http://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely
|
|
47
|
+
Windows users have two good installation options: the wheels at
|
|
48
|
+
http://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely and the
|
|
49
|
+
Anaconda platform's [conda-forge](https://conda-forge.github.io/)
|
|
50
|
+
channel.
|
|
49
51
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
system library path, and install Shapely from the Python package index.
|
|
52
|
+
OS X users can get Shapely wheels with GEOS included from the
|
|
53
|
+
Python Package Index with a recent version of pip (8+):
|
|
53
54
|
|
|
54
55
|
.. code-block:: console
|
|
55
56
|
|
|
56
|
-
$ pip install shapely
|
|
57
|
+
$ pip install shapely==1.6b2
|
|
57
58
|
|
|
58
|
-
|
|
59
|
-
will be used to get compiler and linker options. If it is not on the PATH,
|
|
60
|
-
it can be specified with a GEOS_CONFIG environment variable, e.g.:
|
|
59
|
+
A few extra speedups that require Numpy can be had by running
|
|
61
60
|
|
|
62
61
|
.. code-block:: console
|
|
63
62
|
|
|
64
|
-
$
|
|
63
|
+
$ pip install shapely[vectorized]==1.6b2
|
|
64
|
+
|
|
65
|
+
If you want to build Shapely from source for compatibility with
|
|
66
|
+
other modules that depend on GEOS (such as cartopy or osgeo.ogr)
|
|
67
|
+
you may ignore the binary wheels.
|
|
68
|
+
|
|
69
|
+
.. code-block:: console
|
|
65
70
|
|
|
66
|
-
|
|
67
|
-
|
|
71
|
+
$ pip install shapely --no-binary shapely
|
|
72
|
+
|
|
73
|
+
Binary wheels are also available for Linux. To get them, use `pip shapely
|
|
74
|
+
shapely==1.6b2`. To avoid them, use `pip install shapely --no-binary
|
|
75
|
+
shapely==1.6b2`.
|
|
76
|
+
|
|
77
|
+
In other situations, install `geos_c` libs and headers by any means
|
|
78
|
+
(for example, `brew install geos` on OS X or
|
|
79
|
+
`apt-get install libgeos-dev` on Debian/Ubuntu) and install Shapely
|
|
80
|
+
from the Python package index.
|
|
68
81
|
|
|
69
82
|
.. code-block:: console
|
|
70
83
|
|
|
71
|
-
$ pip install shapely
|
|
84
|
+
$ pip install shapely
|
|
72
85
|
|
|
73
|
-
|
|
86
|
+
If you've installed GEOS to a standard location, the geos-config program
|
|
87
|
+
will be used to get compiler and linker options. If geos-config is not on
|
|
88
|
+
your executable, it can be specified with a GEOS_CONFIG environment
|
|
89
|
+
variable, e.g.:
|
|
74
90
|
|
|
75
91
|
.. code-block:: console
|
|
76
92
|
|
|
77
|
-
$ pip install shapely
|
|
93
|
+
$ GEOS_CONFIG=/path/to/geos-config pip install shapely
|
|
78
94
|
|
|
79
|
-
Shapely is also provided by popular Python distributions like Canopy
|
|
80
|
-
and Anaconda (Continuum Analytics).
|
|
95
|
+
Shapely is also provided by popular Python distributions like Canopy
|
|
96
|
+
(Enthought) and Anaconda (Continuum Analytics).
|
|
81
97
|
|
|
82
98
|
Usage
|
|
83
99
|
=====
|
|
@@ -141,22 +157,14 @@ Description: =======
|
|
|
141
157
|
|
|
142
158
|
.. code-block:: console
|
|
143
159
|
|
|
144
|
-
(env)$
|
|
145
|
-
|
|
146
|
-
Roadmap and Maintenance
|
|
147
|
-
=======================
|
|
148
|
-
|
|
149
|
-
Shapely 1.2.x is a maintenance-only branch which supports Python 2.4-2.6, but
|
|
150
|
-
not Python 3+. There will be no new features in Shapely 1.2.x and only fixes
|
|
151
|
-
for major bugs.
|
|
152
|
-
|
|
153
|
-
Shapely 1.4.x is a maintenance-only branch supporting Pythons 2.7 and 3.3+.
|
|
160
|
+
(env)$ python -m pytest
|
|
154
161
|
|
|
155
162
|
Support
|
|
156
163
|
=======
|
|
157
164
|
|
|
158
|
-
|
|
159
|
-
http://
|
|
165
|
+
Questions about using Shapely may be asked on the `GIS StackExchange
|
|
166
|
+
<http://gis.stackexchange.com/questions/tagged/shapely>`__ using the "shapely"
|
|
167
|
+
tag.
|
|
160
168
|
|
|
161
169
|
Bugs may be reported at https://github.com/Toblerity/Shapely/issues.
|
|
162
170
|
|
|
@@ -231,6 +239,31 @@ Description: =======
|
|
|
231
239
|
Changes
|
|
232
240
|
=======
|
|
233
241
|
|
|
242
|
+
1.6b2 (2016-12-12)
|
|
243
|
+
------------------
|
|
244
|
+
|
|
245
|
+
New features:
|
|
246
|
+
|
|
247
|
+
- Add support for GeometryCollection to shape and asShape functions (#422).
|
|
248
|
+
|
|
249
|
+
1.6b1 (2016-12-12)
|
|
250
|
+
------------------
|
|
251
|
+
|
|
252
|
+
Bug fixes:
|
|
253
|
+
|
|
254
|
+
- Implemented __array_interface__ for empty Points and LineStrings (#403).
|
|
255
|
+
|
|
256
|
+
1.6a3 (2016-12-01)
|
|
257
|
+
------------------
|
|
258
|
+
|
|
259
|
+
Bug fixes:
|
|
260
|
+
|
|
261
|
+
- Remove accidental hard requirement of Numpy (#431).
|
|
262
|
+
|
|
263
|
+
Packaging:
|
|
264
|
+
|
|
265
|
+
- Put Numpy in an optional requirement set named "vectorized" (#431).
|
|
266
|
+
|
|
234
267
|
1.6a2 (2016-11-09)
|
|
235
268
|
------------------
|
|
236
269
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.6b2
|
|
@@ -178,8 +178,9 @@ with open('CHANGES.txt', 'r', **open_kwds) as fp:
|
|
|
178
178
|
long_description = readme + '\n\n' + credits + '\n\n' + changes
|
|
179
179
|
|
|
180
180
|
extra_reqs = {
|
|
181
|
-
'test': ['pytest', 'pytest-cov', '
|
|
182
|
-
}
|
|
181
|
+
'test': ['pytest', 'pytest-cov', 'packaging'],
|
|
182
|
+
'vectorized': ['numpy']}
|
|
183
|
+
|
|
183
184
|
extra_reqs['all'] = list(it.chain.from_iterable(extra_reqs.values()))
|
|
184
185
|
|
|
185
186
|
# Make a dict of setup arguments. Some items will be updated as
|
|
@@ -302,8 +303,8 @@ def construct_build_ext(build_ext):
|
|
|
302
303
|
build_ext.build_extension(self, ext)
|
|
303
304
|
except ext_errors as x:
|
|
304
305
|
raise BuildFailed(x)
|
|
305
|
-
return WrappedBuildExt
|
|
306
306
|
|
|
307
|
+
return WrappedBuildExt
|
|
307
308
|
|
|
308
309
|
if (hasattr(platform, 'python_implementation')
|
|
309
310
|
and platform.python_implementation() == 'PyPy'):
|
|
@@ -311,7 +312,6 @@ if (hasattr(platform, 'python_implementation')
|
|
|
311
312
|
ext_modules = []
|
|
312
313
|
libraries = []
|
|
313
314
|
|
|
314
|
-
|
|
315
315
|
if os.path.exists("MANIFEST.in"):
|
|
316
316
|
pyx_file = "shapely/speedups/_speedups.pyx"
|
|
317
317
|
c_file = "shapely/speedups/_speedups.c"
|
|
@@ -333,15 +333,9 @@ if os.path.exists("MANIFEST.in"):
|
|
|
333
333
|
log.warn("speedup extension not found")
|
|
334
334
|
|
|
335
335
|
ext_modules = [
|
|
336
|
-
Extension(
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
include_dirs=include_dirs,
|
|
340
|
-
library_dirs=library_dirs,
|
|
341
|
-
libraries=libraries,
|
|
342
|
-
extra_link_args=extra_link_args,
|
|
343
|
-
),
|
|
344
|
-
]
|
|
336
|
+
Extension("shapely.speedups._speedups", ["shapely/speedups/_speedups.c"],
|
|
337
|
+
include_dirs=include_dirs, library_dirs=library_dirs,
|
|
338
|
+
libraries=libraries, extra_link_args=extra_link_args)]
|
|
345
339
|
|
|
346
340
|
cmd_classes = setup_args.setdefault('cmdclass', {})
|
|
347
341
|
|
|
@@ -370,7 +364,6 @@ except ImportError:
|
|
|
370
364
|
log.info("Numpy or Cython not available, shapely.vectorized submodule "
|
|
371
365
|
"not being built.")
|
|
372
366
|
|
|
373
|
-
|
|
374
367
|
try:
|
|
375
368
|
# try building with speedups
|
|
376
369
|
existing_build_ext = setup_args['cmdclass'].\
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.6b2"
|
|
@@ -11,27 +11,6 @@ from shapely.topology import Validating
|
|
|
11
11
|
if sys.version_info[0] < 3:
|
|
12
12
|
range = xrange
|
|
13
13
|
|
|
14
|
-
try:
|
|
15
|
-
import numpy
|
|
16
|
-
has_numpy = True
|
|
17
|
-
except ImportError:
|
|
18
|
-
has_numpy = False
|
|
19
|
-
|
|
20
|
-
def required(ob):
|
|
21
|
-
"""Return an object that meets Shapely requirements for self-owned
|
|
22
|
-
C-continguous data, copying if necessary, or just return the original
|
|
23
|
-
object."""
|
|
24
|
-
if hasattr(ob, '__array_interface__'):
|
|
25
|
-
if ob.__array_interface__.get('strides') and not has_numpy:
|
|
26
|
-
# raise an error if strided. See issue #52.
|
|
27
|
-
raise ValueError("C-contiguous data is required")
|
|
28
|
-
else:
|
|
29
|
-
# numpy.require will just return (ob) if it is already
|
|
30
|
-
# float64 and well-behaved.
|
|
31
|
-
return numpy.require(ob, numpy.float64, ["C", "OWNDATA"])
|
|
32
|
-
else:
|
|
33
|
-
return ob
|
|
34
|
-
|
|
35
14
|
|
|
36
15
|
class CoordinateSequence(object):
|
|
37
16
|
"""
|
|
@@ -8,6 +8,7 @@ from .polygon import Polygon, asPolygon
|
|
|
8
8
|
from .multipoint import MultiPoint, asMultiPoint
|
|
9
9
|
from .multilinestring import MultiLineString, asMultiLineString
|
|
10
10
|
from .multipolygon import MultiPolygon, MultiPolygonAdapter
|
|
11
|
+
from .collection import GeometryCollection
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
def box(minx, miny, maxx, maxy, ccw=True):
|
|
@@ -38,6 +39,9 @@ def shape(context):
|
|
|
38
39
|
return MultiLineString(ob["coordinates"])
|
|
39
40
|
elif geom_type == "multipolygon":
|
|
40
41
|
return MultiPolygon(ob["coordinates"], context_type='geojson')
|
|
42
|
+
elif geom_type == "geometrycollection":
|
|
43
|
+
geoms = [shape(g) for g in ob.get("geometries", [])]
|
|
44
|
+
return GeometryCollection(geoms)
|
|
41
45
|
else:
|
|
42
46
|
raise ValueError("Unknown geometry type: %s" % geom_type)
|
|
43
47
|
|
|
@@ -67,6 +71,9 @@ def asShape(context):
|
|
|
67
71
|
return asMultiLineString(ob["coordinates"])
|
|
68
72
|
elif geom_type == "multipolygon":
|
|
69
73
|
return MultiPolygonAdapter(ob["coordinates"], context_type='geojson')
|
|
74
|
+
elif geom_type == "geometrycollection":
|
|
75
|
+
geoms = [asShape(g) for g in ob.get("geometries", [])]
|
|
76
|
+
return GeometryCollection(geoms)
|
|
70
77
|
else:
|
|
71
78
|
raise ValueError("Unknown geometry type: %s" % geom_type)
|
|
72
79
|
|