Как создать динамический GeoJson с помощью циклов для отдельных идентификаторов в Dataframe Python? - PullRequest
0 голосов
/ 14 мая 2018

Как я могу исправить следующий цикл, я передаю список динамически и получаю некоторую синтаксическую ошибку:

Мне нужно создать этот геойсон

{'features': [{'geometry': {'coordinates': [[-74.135963000000004,
      40.667178000000007],
     [-74.136641999999995, 40.667558000000014],
     [-74.136911999999995, 40.668396999999999],
     [-74.136506999999995, 40.669488000000001],
     [-74.135895000000005, 40.670712000000009],
     [-74.135069999999999, 40.671764999999994],
     [-74.134322999999995, 40.672862000000009],
     [-74.133790000000005, 40.673988000000008],
     [-74.133236999999994, 40.675107999999994],
     [-74.132769999999994, 40.676334999999995],
     [-74.132137, 40.67748499999999]]

через следующеецикл, но я делаю некоторую ошибку.

for x in filteredData_subVoyageIDs.subVoyageIDs.unique():
    display(x)
    latlonData= filteredData_subVoyageIDs[filteredData_subVoyageIDs.subVoyageIDs == x]
    id_data = [[lon, lat] for lat, lon in zip(latlonData.lat, latlonData.lon)]
    display(id_data)
    lines = {'feature : [{ '"'geometry'"' : { '"'coordinates'"': '[[i] for i in id_data]'  } }]' }
    display(lines)

Я хочу, чтобы этот цикл генерировал следующее через '[[i] for i in id_data]'

Я получаю следующую синтаксическую ошибку:

enter image description here

Как я могу это исправить?

1 Ответ

0 голосов
/ 17 мая 2018
import geojson as jj
from geojson import Feature, Point, FeatureCollection

feature_collection =[]
for x in filteredData_subVoyageIDs.subVoyageIDs.unique():
    #display(x)
    latlonData= (filteredData_subVoyageIDs[filteredData_subVoyageIDs.subVoyageIDs == x])
    #lineString = [[lon, lat] for lat, lon in zip(latlonData.lat, latlonData.lon)]
    coordinates = list(zip(latlonData.lat.tolist(), latlonData.lon.tolist()))
    lineString = jj.LineString(coordinates)
    feature_geometry = Feature(geometry=lineString, properties= {"color": ["red"]})
    feature_collection = FeatureCollection([feature_geometry])
display(feature_collection)

Я думаю, что у меня есть решение, но мне нужно немного поработать, чтобы вложить его. но это сработало.

...