В настоящее время я имею дело с двумя ошибками при программировании кода, показанного ниже, и мне было интересно, может кто-нибудь помочь мне или дать несколько советов по их решению, спасибо.
1) При попытке присвоить несколько LineString
объектов объекту MultiLineString
я столкнулся с трудностями. Идея состоит в том, чтобы создать name
в зависимости от фидера (fdr
) и использовать его в качестве переменной в объекте MultiLineString
. Были опробованы различные методы (например, globals () [], понимание списка, ..), но генерирование ошибок или подобное приведенному ниже коду дает AssertionError
. Проблема в том, что namen
создает строковые объекты 'l_6_1', 'l_6_2', .. , в то время как переменные l_6_1, l_6_2, .. являются обязательными. (Решено)
2) Мой второй вопрос связан с вычислением длин, где gdf
читается с espg:4326
, я применил преобразование в объекте класса (который изменяет объект LineString! --This был проверен), в то же время результат из print(lengte)
не затронут .. Есть идеи, где мои ошибки?
class Lines:
def __init__(self, fdr, node, gdf):
j= 1
lines= {}
gdf= gdf.to_crs({'init': 'epsg:3857'})
for i, k in zip(node[0::2], node[1::2]):
name= 'l_'+str(fdr)+'_'+str(j)
lines[name]= LineString([gdf.loc[i][['X', 'Y']], gdf.loc[k][['X', 'Y']]])
lengte= lines[name].length
print(lengte)
j= j+1
lines= pd.Series(lines)
s= lines.values
f= geometry.MultiLineString([l_6_0]+ list(s))
self.f = ops.linemerge(f)
Далее я добавляю это на карту и сохраняю (& экспорт), так как я работаю со Spyder.
x= Lines(6, nodes_6, gdf6)
folium.GeoJson(x.f).add_to(m)
m.save(os.path.join(dest, "grid.html"))