我使用pysal/cenpy来提取地理信息,但该对象通过调用centroid返回错误
import cenpy as cen
import pysal as ps
import geopandas as gpd
dataset = 'ACSSF5Y2015'
con = cen.base.Connection(dataset)
con.set_mapservice('tigerWMS_ACS2017')
geotmp = con.mapservice.query(layer=84, where='STATE=' + str(1))
type(geotmp)
#pandas.core.frame.DataFrame
type(geotmp.geometry[0])
#pysal.cg.shapes.Polygon
geotmp.geometry.centroid
AttributeError: 'Series' object has no attribute 'centroid'在gds-scipy16中的内置数据集上进行了相同检查
type(data_table)
#pandas.core.frame.DataFrame
type(data_table.geometry[0])
#pysal.cg.shapes.Polygon
data_table.geometry[0].centroid
#(-94.90336786329912, 48.771730563701574)如何纠正错误?
发布于 2019-05-13 21:27:35
虽然这不能直接回答你的问题,但有一个更新的预发布版本的cenpy out,它更精简,可以避免你上面描述的问题(参见下面的例子)。Instructions for installing the pre-release can be found here和a gist demonstrating functionality here。
import cenpy
cenpy.__version__>>> '1.0.0dev'florida = cenpy.products.Decennial2010().from_state('Florida')>>> Matched: Florida to Florida, FL within layer Statestype(florida)>>> geopandas.geodataframe.GeoDataFrametype(florida.geometry[0])>>> shapely.geometry.polygon.Polygonprint(florida.geometry[0].centroid)>>> POINT (-9734271.078405051 3547557.287300871)https://stackoverflow.com/questions/51607892
复制相似问题