欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python如何可視化經(jīng)緯度信息

 更新時間:2024年09月10日 09:15:14   作者:LawenceRay  
在Python中處理經(jīng)緯度信息,首先通過篩選得到符合條件的停車點,并去除重復(fù)數(shù)據(jù),利用這些數(shù)據(jù)點的索引值將原始數(shù)據(jù)進行分段,并繪制地圖,處理重復(fù)數(shù)據(jù)時可以使用set()方法或列表生成式,最后,可以通過DataFrame的join方法合并具有相同索引值的數(shù)據(jù)

python可視化經(jīng)緯度信息

判斷汽車停下

stoped_state = new_data[(new_data['acc_state']==0)&(new_data['gps_speed']==0)]

得到了5126個符合條件的點。

這樣可以用來分析汽車行車過程中經(jīng)過了哪些點。

然后去除掉這些點里面的重復(fù)數(shù)據(jù):

stoped_state.drop_duplicates(inplace=True)

然后查看其長度發(fā)現(xiàn)問題,需要將首條數(shù)據(jù)加入:

stop = new_data.loc[[0]].append(stoped_state)

共計有165條記錄。

我們想做的事是:根據(jù)這些停車點的index值將原始數(shù)據(jù)分段,然后繪制地圖。

將其index組織成一個列表

new = pd.DataFrame(marks.to_list())
news = marks.to_list()

對這些點稍作處理

l = []
for i in range(len(news)-1):
    dif = news[i+1]-news[i]
#     print(dif)
    if dif<900:
        l.append(news[i])

此時,需要去除這些重復(fù)的刻度值。

有如下幾種方式:

第一種是借助set()方法

import numpy as np
mark1 = list(set(news).difference(set(l)))
np.sort(mark1)

第二種是借助列表生成式

mark2 = [x for x in news if x not in l]

相對而言,列表生成式更為簡潔。

之后就可以繪圖了:

lat_lng = []
for i in range(len(mark2)-1):
    start = mark2[i]
    end = mark2[i+1]
    range_data = new_data[start:end]
    lng = range_data.iloc[:,3:4]#經(jīng)度
    lat = range_data.iloc[:,4:5]#維度
    # 繪圖的時候要將維度放在前面
    lat_lng = lat.join(lng)
    lat_lng_f = lat_lng.values.tolist()
#     lat_lng_format = [list(map(eval,x)) for x in lat_lng_f]
    locations = lat_lng_f
    m = folium.Map(lat_lng_f[0],zoom_start=10)
    route = folium.PolyLine(
        locations,
        weight=3,
        color='red',
        opacity=0.8
    ).add_to(m)
    filename = 'Heatmap'+str(i)+'.html'                              
    m.save(os.path.join(r'E:\TIANCHI\Tips\explore\2', filename)) 

index值相同的dataframe合并用new = right.join(left)

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論