Преобразование столбца полигонов из строки в геометрию GeoPandas - PullRequest
0 голосов
/ 03 июня 2019

У меня есть фрейм данных, хранящийся в виде csv-файла, один столбец которого является объектом Polygon. Однако этот столбец хранится в виде строк вместо геометрического объекта GeoPandas. Как я могу преобразовать этот столбец в геометрический объект Geopandas, чтобы я мог выполнять геоанализ?

Вот так выглядят мои данные

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

Я хочу преобразовать этот DataFrame Pandas в Geopandas GeoDataFrame, используя столбец 'geometry' в качестве столбца геометрии Geopandas.

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

Однако, поскольку столбец хранится в виде строк, Geopandas.DataFrame () не распознает его и, следовательно, фактически не может создать GeoDataFrame.

TypeError: Input geometry column must contain valid geometry objects.

1 Ответ

0 голосов
/ 03 июня 2019

Формат вашего многоугольника - WKT, поэтому вы должны преобразовать его в стройный многоугольник. Следующие документы Geopandas (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')
...