1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GeoPandas はじめの一歩

Posted at

この記事について

仕事で GIS データを扱うことになったので、基本から学ぶことにしました。

以下の講座を受けながら、登場した geopandas の基本について、公式の introduction を参考にまとめてみます。

謎だったこと

GeoDataFrame を作ったときに、列名を geometry にしたときと別の列名にしたとき(geo_col など)で挙動が変わることがあった。

どちらも型はジオメトリ型として認識されていたので、geometry という列名に何か特殊な意味があるのか? と思い調査開始。

GeoPandas ことはじめ

GeoDataFrame とは

geopandas.GeoDataFrame は Pandas の pandas.DataFrame のサブクラスで、GeoPandas の格となるデータ構造です。

違いとしては、geopandas.GeoDataFrame は地理空間関係の操作を行うための地理空間用カラムを持てること。この地理空間用カラムを扱うのは、Pandas の pandas.Series のサブクラスである geopandas.GeoSeries です。

したがって、GeoDataFrame は伝統的なデータ型(数値、boolean、テキスト等)を持つ pandas.Series と、地理空間用のジオメトリ型データ(point、polygon等)を持つ geopandas.GeoSeries の組み合わせです。

一般的なデスクトップのGISソフトウェアと異なり、地理空間用データの列は好きな数だけ持つことができます。

GeoSeries とは

GeoSeries には任意のジオメトリ型のデータを持つことができ、ひとつの配列の中に複数のジオメトリ型を混在させることもできます。

GeoSeriesGeoSeries.crs という属性を保ち、参照系の情報を保持します。

座標参照系(CRS)ってなに? という話をこちらの記事に記載しています。

アクティブなジオメトリ列 - GeoDataFrame の中の特殊なGeoSeries

GeoDataFrame の中では、ひとつの GeoSeries だけが アクティブなジオメトリ列 とみなされ、地理空間関係の操作はすべてこのカラムに対して行われます。

この アクティブなジオメトリ列 には、 GeoDataFrame.geometry 属性でアクセスすることができます。

たぶん謎が解けました

やはり geometry という名前には特別な意味があったらしい。

列名を geometry にしておくことで、デフォルトでその列に GeoDataFrame.geometry 属性によってアクセスできるようになり、 アクティブなジオメトリ列 として認識してくれるっぽい。

おそらく任意の列名を アクティブなジオメトリ列 に指定する方法もあるのかもしれないけど、一旦 アクティブなジオメトリ列 にしたい列は geometry という名前で持ちましょう、という結論でいいっぽい。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?