GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

Toblerity

Shapely – 幾何学的オブジェクトの操作と解析

投稿日:

幾何学的オブジェクトの操作と解析 https://shapely.readthedocs.io/ja/lat…

しっかりと

デカルト平面における幾何学的オブジェクトの操作と解析

Shapelyは、平面幾何学オブジェクトの操作と解析のためのBSDライセンスPythonパッケージです。 これは広く配備されたGEOSPostGISのエンジン)とJTS (GEOSが移植されている)ライブラリに基づいています。 Shapelyはデータ形式や座標系には関係しませんが、すぐにパッケージに統合できます。 詳細については、以下を参照してください。

要件

Shapely 1.6が必要です

  • Python 2.7、> = 3.4
  • GEOS> = 3.3

Shapely 1.6をインストールする

Shapelyは、ソースディストリビューションまたはいくつかの種類のビルドされたディストリビューションからインストールできます。

ビルドを構築

Windowsユーザーには2つのインストールオプションがあります: http : //www.lfd.uci.edu/~gohlke/pythonlibs/#shapelyのホイールとAnacondaプラットフォームのconda-forgeチャネルです。

OS XとLinuxユーザーは、Python Package IndexからGEOSをピップ(8+)の最新バージョンに組み込んだShapely wheelを入手することができます:

$ pip install shapely

Numpyが必要とするいくつかのスピードアップは、

$ pip install shapely[vectorized]

Shapelyは、apt、yum、Homebrewのようなシステムパッケージ管理ツールを介して利用可能で、CanopyやAnacondaのような一般的なPythonディストリビューションも提供しています。

ソース分布

GEOSに依存する他のモジュール(cartopyやosgeo.ogrなど)との互換性のためにソースからShapelyをビルドする場合や、プロジェクトホイールに含まれているバージョンとは異なるバージョンのGEOSを使用する場合は、まずGEOSライブラリをインストールする必要があります、Cython、Numpyを(apt、yum、brew、または他の手段を使って)あなたのシステムにインストールしてから、pipにバイナリホイールを無視させます。

$ pip install shapely --no-binary shapely

GEOSを標準の場所にインストールした場合は、geos-configプログラムを使用してコンパイラオプションとリンカオプションを取得します。 geos-configが実行ファイルにない場合は、GEOS_CONFIG環境変数で指定できます。例:

$ GEOS_CONFIG=/path/to/geos-config pip install shapely

使用法

点をバッファリングしてほぼ円形のパッチを作成する標準的な例を次に示します。

>>> from shapely.geometry import Point
>>> patch = Point(0.0, 0.0).buffer(10.0)
>>> patch
<shapely.geometry.polygon.Polygon object at 0x...>
>>> patch.area
313.65484905459385

包括的な使用法スニペット、およびdissolve.pyとintersect.pyの例については、マニュアルを参照してください。

統合

データファイルを読み書きするのは巧妙ではありませんが、いくつかのよく知られているフォーマットとプロトコルを使用してシリアライズとデシリアライズを行うことができます。 shapely.wkbとshapely.wktモジュールは、Pythonのpickleモジュールに触発されたダンプとローダーを提供します。

>>> from shapely.wkt import dumps, loads
>>> dumps(loads('POINT (0 0)'))
'POINT (0.0000000000000000 0.0000000000000000)'

ShapelyはGeoJSONのような辞書を使って他のPython GISパッケージと統合することもできます。

>>> import json
>>> from shapely.geometry import mapping, shape
>>> s = shape(json.loads('{"type": "Point", "coordinates": [0.0, 0.0]}'))
>>> s
<shapely.geometry.point.Point object at 0x...>
>>> print(json.dumps(mapping(s)))
{"type": "Point", "coordinates": [0.0, 0.0]}

開発とテスト

Shapelyを開発するための依存関係はrequirements-dev.txtにリストされています。 CythonとNumpyは、本番環境のインストールには必要なく、開発のためにのみ必要です。 仮想環境の使用を強くお勧めします。

$ virtualenv .
$ source bin/activate
(env)$ pip install -r requirements-dev.txt
(env)$ pip install -e .

我々は、py.testを使ってShapelyのユニットテストとdoctestを実行します。

(env)$ python -m pytest

サポート

Shapelyの使用に関する質問は、 “shapely”タグを使用してGIS StackExchangeで尋ねることができます。

バグはhttps://github.com/Toblerity/Shapely/issuesで報告されます







-Toblerity
-

執筆者:

Toblerity

Shapely – 幾何学的オブジェクトの操作と解析

投稿日:

(さらに…)







-Toblerity
-

執筆者: