当前位置: 首页 > 知识库问答 >
问题:

从几何图形字段创建质心列会产生AttributeError:“非类型”对象没有属性“质心”

经骁
2023-03-14

我已经将澳大利亚地方政府区域(LGA)的形状文件导入谷歌Colab,并成功地读入geopandas。随后的geodataframe

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

有一个包含多边形列表的几何体字段。我正试图找到质心/纬度

我用来创建形心场的代码是

 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'. 

我也尝试过使用representative_point()的代码,但也不起作用

我相信我已经导入了所有必要的依赖项-(见下文)

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

我试了几个小时,但还是犯了同样的错误。有人能告诉我哪里出了问题吗

更新-此问题已解决-几何字段的行没有多边形坐标。我已经删除了没有多边形坐标的行。然而,另一个错误被抛出。"属性错误-系列没有属性'形心'。我想出于某种原因,python没有将我的几何字段识别为几何字段,而是文本/字符串字段。如何将字符串的几何字段转换为几何字段?

共有1个答案

房泉
2023-03-14

尝试保留几何字段的名称:

lga_df_points = lga_df.copy()
lga_df_points["geometry"] = lga_df_points["geometry"].centroid

我不知道为什么它有效,但它对我有效。我猜有一个错误改变了geom字段的名称

 类似资料:
  • 我一直在努力学习Python(目前的请求和美丽的soup4),我在网上找到了一个教程 问题是我一直得到下面的错误,根本无法弄清楚... 任何帮助都将不胜感激! 回溯(最近一次调用last):文件“C:\Users\BillyBob\Desktop\Web Scrap.py”,第14行,标题=a.string。strip()AttributeError:'NoneType'对象没有属性'strip'

  • 我目前正在构建一个烧瓶应用程序 我能够从下面的stackoverflow留言板上得到这么远,但是我不认为我做对了什么(可能忽略了什么?) 在Flask应用中运行Dash应用 这里的任何帮助都将不胜感激 这是我的服务器。py代码: 这是我的服务器。py:从应用程序导入服务器,应用程序服务器。运行(调试=True) 当我运行这一切时,我得到:

  • 我正在尝试删除空行。但是,当我试图计算空行数以查看它是否有效时,我有一个错误: AttributeError:“非类型”对象没有属性“isnull” 我的剧本: 输出: Traceback(最近的调用最后): 打印文件“\data\u vis.py”,第12行(data\u not\u empty.isnull().sum()) AttributeError:“非类型”对象没有属性“isnull”

  • 有人能帮我吗,我一直在试着运行下面的脚本 但却发生了这样的错误 下面是完整的脚本

  • 我尝试了谷歌云运行和完美的工作,但突然得到了错误,而在几天后崩溃(属性错误):'NoneType'对象没有属性'图像' 一切似乎都很好,我已经设置了项目名称,地区,但得到相同的错误 使用的命令是 gcloud测试版运行部署——镜像gcr。io/云运行测试/映像名称--允许未经身份验证--更新env vars environment=“生产”

  • 我正在尝试使用python创建一个discord bot,当我运行基本代码时,它会返回“AttributeError:'NoneType'对象没有属性'strip'”,我将遵循本教程。我有两个文件-机器人。py和bot。env(用于存储令牌)下面是两个文件:bot。py: 还有机器人。环境: 它应该显示“{bot name}已连接到不和谐!”我谷歌了错误,但找不到解决方案。