如何在dataframepython中通过循环为单独的id创建动态GeoJson?

2024-09-30 01:33:13 发布

您现在位置:Python中文网/ 问答频道 /正文

如何更正以下循环,我正在动态传递列表,并且遇到一些语法错误:

我必须创建这个geojson

{'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

我怎样才能纠正它


Tags: inidfordatadisplay动态lonlines
1条回答
网友
1楼 · 发布于 2024-09-30 01:33:13
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)

我想我在这里得到了解决方案,还需要做一点工作来嵌套它。 但这奏效了

相关问题 更多 >

    热门问题