Как сохранить центроиды в шейп-файле вместе с геометрией? - PullRequest
0 голосов
/ 15 января 2019

Я вычисляю центроид для некоторых GeoDataFrame

M["centroid"] = M.centroid

Теперь я хотел бы сохранить этот столбец в файле shp и сделать

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

Но водитель жалуется, что я не могу сохранить Point вместе с моей геометрией. Я думаю, это нормально, но мне интересно, как лучше всего хранить информацию о контроидах вместе с другой геоинформацией, используя geopandas

1 Ответ

0 голосов
/ 15 января 2019

Поскольку GeoPandas не позволит вам сохранить два геометрических столбца (при создании шейп-файлов), я бы рекомендовал сохранять координаты xy в столбцах для каждого центроида. От этого вы всегда можете легко получить стройную форму. Point.

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")
...