web-dev-qa-db-ja.com

ポリゴンの列を文字列からジオパンダスジオメトリに変換する

私はCSVファイルとして保存されているデータフレームがあり、その1列はPolygonオブジェクトです。ただし、この列はGeoPandas Geometryオブジェクトの代わりに文字列として格納されています。 GEO分析を実行できるように、この列をGeoPandas Geometryオブジェクトに変換する方法を教えてください。

これは私のデータがどのように見えるかです

_my_df['geometry'].head()
_
_0    POLYGON ((-122.419942 37.809021, -122.419938 3...
1    POLYGON ((-122.419942 37.809021, -122.419938 3...
2    POLYGON ((-122.419942 37.809021, -122.419938 3...
3    POLYGON ((-122.419942 37.809021, -122.419938 3...
4    POLYGON ((-122.405659 37.806674, -122.405974 3...
Name: geometry, dtype: object
_

このPandasデータフレームをGeoPandasジオメトリ列として 'geometry'を使用して、GeoPandas GeoDataFrameに変換します。

_my_geo_df = gpd.GeoDataFrame(my_df, geometry=my_df['geometry'])
_

ただし、列が文字列として格納されると、GeoPandas.DataFrame()はそれを認識しないため、実際にはジオデータフィラー名を作成できません。

_TypeError: Input geometry column must contain valid geometry objects.
_
12
xinyuanliu

あなたの多角形のフォーマットはWktであるので、それを確かに多角形に変換する必要があります。次のGeoPandas Docs( https://geopandas.readthedocs.io/en/latest/gallery/create_geopandas_from_pandas.html

from shapely import wkt

df['geometry'] = df['geometry'].apply(wkt.loads)
my_geo_df = gpd.GeoDataFrame(my_df, geometry='geometry')
 _
4
martinfleis