簡體   English   中英

如何從 LineString geopandas 數據框中提取緯度和經度對作為列表

[英]How to extract latitude and longitude pairs as a list from a LineString geopandas dataframe

我有一個看起來像這樣的 geopandas 數據框:

    shape_id    geometry
    1000252     LINESTRING (4.91790 52.34725, 4.91797 52.34715...
    1000254     LINESTRING (4.80382 52.34495, 4.80413 52.34500...
    1000255     LINESTRING (4.89922 52.37811, 4.89923 52.37807...

使用 Python,我想將每個shape_id行的幾何列中的坐標單獨提取為列表。 例如, shape_id = 1000252的輸出應如下所示:

[[52.34725, 4.91790],
 [52.34715, 4.91797],
 [52.34742, 4.91723],
 [52.34752, 4.91713]]

實現這一目標的最有效方法是什么?

每個 shapelyLineString對象都有一個coords屬性,它給出定義線串的點,您可以訪問xy attr 以將 MultiPoint 轉換為 numpy 數組的元組。 一點額外的 numpy 將使您獲得列表的堆疊列表:

# e.g. for position 40...
In [3]: np.vstack(gdf.iloc[40].geometry.coords.xy).T.tolist()
Out[3]:
[[0.7741171421283728, 1.715569328873729],
 [0.5852143769680165, 1.4516089839272017],
 [0.378452363108969, 1.2226445706965148],
 [0.43147551026039477, 0.7940308770193946],
 [0.3105453476502247, 0.770655256832471],
 [0.13440130471131118, 0.2957373776736154],
 [0.6793980801823408, 1.4291149753156192],
 [0.25803877234174954, 0.5296081932347322],
 [0.12773596566152468, 0.6238335508304359],
 [0.1575172393070674, 0.44929138014961945],
 [0.2222528104586241, 0.8623618596533595],
 [0.8185687868071416, 1.5897595726257494]]

有關更多信息,請參閱坐標序列上的勻稱文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM