Создание столбца центроида из поля формы геометрии приводит к AttributeError: объект 'NoneType' не имеет атрибута 'центроид' - PullRequest
0 голосов
/ 11 июля 2019

Я импортировал файл формы областей местного самоуправления Австралии (LGA) в google Colab и успешно прочитал геопанды.Последующий геоданный:

lga_df = gpd.read_file("LGA_2016_AUST.shp")

имеет поле геометрии со списком полигонов.Я пытаюсь найти точку центроида / широты и долготы, чтобы использовать имена LGA в качестве меток на карте, которую я создам.

Код, который я использую для создания поля центроида:

 lga_df["center"] = lga_df["geometry"].centroid
 lga_df_points = lga_df.copy()
 lga_df_points.set_geometry("center", inplace = True)

Логика

Скопируйте исходный файл df_lga в новый файл df, а затем установите для столбца геометрии значениетолько что созданный столбец центральных точек, потому что GeoPandas df может иметь только один геометрический столбец)

Тем не менее, я получаю следующее сообщение

AttributeError: 'NoneType' object has no attribute 'centroid'. 

Я также пробовал код, используя представитель_точки (), нолибо не работает

Мне кажется, я импортировал все необходимые зависимости - (см. ниже)

import geopandas as gpd
from geopandas import GeoDataFrame
import pandas as pd 
import matplotlib.pyplot as plt
%matplotlib inline
from shapely.geometry import Point, LineString
import adjustText as aT

Я пробовал несколько часов, но все еще получаю ту же ошибку.Может кто-нибудь посоветовать, где я иду не так


Обновление - Эта проблема была решена - в поле геометрии были строки без координат многоугольника.Я удалил строки без координат многоугольника.Тем не менее, другая ошибка выбрасывается.«Ошибка атрибута - у Series нет атрибута« центр тяжести ». Я думаю, что по какой-то причине python не распознает мое поле геометрии как поле геометрии, а поле текста / строки. Как преобразовать поле геометрии, которое является строкой, вполе геометрии?

...