如何将质心和几何一起保存在shapefile中?

时间:2019-01-15 13:44:25

标签: python pandas shapely geopandas

我为某些GeoDataFrame

计算了一个质心
M["centroid"] = M.centroid

现在,我想将该列保存到shp文件中,然后执行

M[["centroid","geometry"]].to_file("mfile.shp")

但是驾驶员抱怨我无法将Point和几何一起保存。我想可以,但是我想知道使用geopandas

将controid信息与其他地理信息一起存储的最佳方法是什么

1 个答案:

答案 0 :(得分:2)

由于GeoPandas不允许您保存两个几何列(创建shapefile时),因此我建议将xy坐标保存到每个质心的列中。由此,您始终可以轻松获得匀称的身材。

for index, row in M.iterrows():
    centroid_coords = row.geometry.centroid.coords.xy
    M.loc[index, 'cen_x'] = centroid_coords[0][0]
    M.loc[index, 'cen_y'] = centroid_coords[1][0]

M[["cen_x", "cen_y", "geometry"]].to_file("mfile.shp")

根据以下评论进行编辑(谢谢,没有意识到):

temp = M.centroid

M['cen_x'] = temp.x
M['cen_y'] = temp.y

M[["cen_x", "cen_y", "geometry"]].to_file("mfile.shp")