У меня есть GeoDataFrame с именем merged
, и мне очень трудно сохранить его на диск.
merged
получается через l oop:
import pandas as pd
import geopandas as gpd
import osmnx as ox
city=gpd.read_file('C:/folder/city.json')
circ=[]
for i in (0, 1):
graph = ox.graph_from_polygon(city.geometry[i])
stat = ox.basic_stats(graph)
circ.append(stat['circuity_avg'])
circ=pd.Series(circ)
merged=pd.concat([city, circ], axis=1)
I просто хотите сохранить merged
в файл, как json файл или другой формат, который сохраняет геометрию, чтобы я мог затем использовать данные в R. Вот методы, которые я пробовал:
1.
merged.to_file('merged.json', driver='GeoJSON')
, что дает
Ошибка атрибута У объекта int нет атрибута encode
Кто-нибудь знает, почему merged
классифицируется как 'int', в то время как это GeoDataFrame (это то, что указано, когда я делаю type(merged)
)?
2.
with open('x.geojson', 'w') as f:
f.write(merged_short.to_json())
Это создает x.geojson
файл в моей среде Jupyter Lab, но он не сохраняет его на диск. Это понятно, так как я не указываю путь для сохранения. Однако я не знаю, как добавить путь.
3.
merged.to_csv("C:/folder/merged.cs")
Это работает, но, поскольку данные сохраняются как CSV, геометрия не сохраняется.
4.
merged.to_json("C:/folder/merged.cs")
Но это дает ValueError: Unknown na method
.
Я очень удивлен, что не нашел простого способа сохранить GeoDataFrames в файл на мой компьютер. Есть ли простой способ сохранить GeoDataFrames?
Решение
with open('C:/folder/merged.json', 'w') as f:
f.write(merged_short.to_json())
То есть мне просто нужно было указать полный путь.