开发者

python如何可视化经纬度信息

目录
  • python可视化经纬度信息
    • 判断汽车停下
    • 将其index组织成一个列表
    • 对这些点稍作处理
    • 第一种是借助set()方法
    • 第二种是借助列表生成式
  • 总结

    python可视化经纬度信息

    判断汽车停下

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

    得到了5126个符合条件的点。

    这样可以用来分析汽车行车过程中经过了android哪些点。

    然后去除掉这些点里面的重复数据:

    stoped_state.drop_duplicates(inplace=True)

    然后查看其长度发现问题,需要将首条数据加入:

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

    共计有165条记录。

    我们想做的事是:根据这些停车点的index值将原始数据分段,然后绘制地图。

    将其index组织成一个列表

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

    对这些点稍作WfFsCx处理

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

    此时,需要去除这些重复的刻度值。

    有如下几种方式:

    第一种是借助set()方法

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

    第二种是借助列表生成式

    markhttp://www.devze.com2 = [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]#经度
        lat = range_data.iloc[:,4:5]#维度
        # 绘图的时候要将维度放在前面
        lat_lng = lat.join(lng)
        lat_lng_f = lat_lng.values.tolist()
    #WfFsCx     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)

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜