GitHubじゃ!Pythonじゃ!

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

geopandas

geopandas – 地理データ用のPythonツール

投稿日:

地理データ用のPythonツール http://geopandas.readthedocs.io/

ジオパンダ

地理データ用のPythonツール

前書き

GeoPandasは、地理データのサポートをpandasオブジェクトに追加するプロジェクトです。 現在は、それぞれpandas.Seriesおよびpandas.DataFrameサブクラスであるGeoSeriesおよびGeoDataFrameタイプを実装しています。 ジオパンダスオブジェクトは、 魅力的なジオメトリオブジェクトに作用し、ジオメトリ演算を実行できます。

GeoPandasジオメトリ操作はデカルトです。 座標参照システム(crs)は、オブジェクトの属性として格納することができ、ファイルからロードするときに自動的に設定されます。 to_crs()メソッドを使用すると、オブジェクトを新しい座標系に変換できます。 現時点では、操作のような座標の強制はありませんが、将来変更される可能性があります。

ドキュメントはgeopandas.org (現リリース)とRead the Docs (リリースおよび開発バージョン)で入手できます。

インストール

要件

ジオパンダのインストールには、以下のパッケージが必要です:

  • pandas
  • shapely
  • fiona
  • pyproj

さらに、 descartesmatplotlibはプロッティングに必要なオプションの依存関係であり、 rtreeはオプションの依存関係であり、空間結合に必要です。 rtreeはCライブラリrtreeが必要libspatialindex brewを使用している場合は、 brew install Spatialindexを使用してbrew install Spatialindexできます。

インストール

GeoPandasは地理空間解析のためのいくつかの低レベルライブラリに依存しています。 使用するシステムおよびパッケージマネージャによっては、注意しないと依存関係の競合が発生することがあります。

condaconda

GeoPandasをインストールするにはanacondaディストリビューションを使用することをお勧めします( minicondaも問題ありminiconda )。

クリーンな環境にGeoPandasをインストールするには、 condaconda-forgeチャンネルを使用します。

conda create -n geopandas
source activate geopandas  # 'activate geopandas' on Windows
conda install -c conda-forge geopandas

注記:新しい環境を作成することは厳密には必要ではありませんが、 conda-forge以外のの地理空間パッケージをインストールすると依存関係の競合が発生する可能性があります。 詳細については、 conda-forge gotchaのページ参照してください。

pipを使って

GeoPandasもpipインストールが可能です。 pipを使用する場合は、適切な非Pythonライブラリがインストールされ、適切にリンクされていることを確認してください。

pip install geopandas

>>> p1 = Polygon([(0, 0), (1, 0), (1, 1)])
>>> p2 = Polygon([(0, 0), (1, 0), (1, 1), (0, 1)])
>>> p3 = Polygon([(2, 0), (3, 0), (3, 1), (2, 1)])
>>> g = GeoSeries([p1, p2, p3])
>>> g
0    POLYGON ((0.0000000000000000 0.000000000000000...
1    POLYGON ((0.0000000000000000 0.000000000000000...
2    POLYGON ((2.0000000000000000 0.000000000000000...
dtype: object

いくつかの地理的操作は通常のパンダオブジェクトを返します。 GeoSeriesareaプロパティは、 GeoSeriesの各項目の領域を含むGeoSeriesを返します:

>>> print g.area
0    0.5
1    1.0
2    1.0
dtype: float64

他の操作はGeoPandasオブジェクトを返します:

>>> g.buffer(0.5)
Out[15]:
0    POLYGON ((-0.3535533905932737 0.35355339059327...
1    POLYGON ((-0.5000000000000000 0.00000000000000...
2    POLYGON ((1.5000000000000000 0.000000000000000...
dtype: object

GeoPandasオブジェクトは、プロットする方法も知っています。 GeoPandasは、マスプロットライブプロットを生成するためにデクラートを使用します。 GeoSeriesのプロットを生成するには、以下を使用します。

>>> g.plot()

GeoPandasはまた、 fionaによって認識される任意のデータフォーマットを読み取ることができる代替コンストラクタを実装します ESRIシェープファイルを含むzipファイルをニューヨーク市の区域境界で読み込む(GeoPandasはこれをサンプルデータセットとして含む):

>>> nybb_path = geopandas.datasets.get_path('nybb')
>>> boros = GeoDataFrame.from_file(nybb_path)
>>> boros.set_index('BoroCode', inplace=True)
>>> boros.sort()
>>> boros
               BoroName    Shape_Area     Shape_Leng  \
BoroCode
1             Manhattan  6.364422e+08  358532.956418
2                 Bronx  1.186804e+09  464517.890553
3              Brooklyn  1.959432e+09  726568.946340
4                Queens  3.049947e+09  861038.479299
5         Staten Island  1.623853e+09  330385.036974

                                                   geometry
BoroCode
1         (POLYGON ((981219.0557861328125000 188655.3157...
2         (POLYGON ((1012821.8057861328125000 229228.264...
3         (POLYGON ((1021176.4790039062500000 151374.796...
4         (POLYGON ((1029606.0765991210937500 156073.814...
5         (POLYGON ((970217.0223999023437500 145643.3322...

>>> boros['geometry'].convex_hull
0    POLYGON ((915517.6877458114176989 120121.88125...
1    POLYGON ((1000721.5317993164062500 136681.7761...
2    POLYGON ((988872.8212280273437500 146772.03179...
3    POLYGON ((977855.4451904296875000 188082.32238...
4    POLYGON ((1017949.9776000976562500 225426.8845...
dtype: object







-geopandas

執筆者: