IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 北京市机动车驾驶数据 经纬度计算行驶距离和停车时间 -> 正文阅读

[开发工具]北京市机动车驾驶数据 经纬度计算行驶距离和停车时间

Haversine公式:经纬度计算距离
原始数据:停车开始结束时间、停车点经纬度、行政区号
处理结果:车辆行驶距离(m)、停车时间(s)

pandas数据处理,geo_distance,字符串处理

# encoding=utf-8

from math import radians, cos, sin, asin, sqrt
import pandas as pd

pd.set_option('display.max_columns', None)  # 显示省略号内容,最多的行数
pd.set_option('display.width', 150)

data = pd.read_csv('./newdata_small.csv', encoding='gbk')


def geo_distance(loc1, loc2):  # 地理距离
    """
    Calculate the great circle distance between two points
    on the earth (specified in decimal degrees)
    """
    lon1 = loc1[0]
    lat1 = loc1[1]
    lon2 = loc2[0]
    lat2 = loc2[1]
    lon1, lat1, lon2, lat2 = map(radians, map(float, [lon1, lat1, lon2, lat2]))  # 根据提供的函数对指定序列做映,radians:将角度转换为弧度。
    dlon = lon2 - lon1
    dlat = lat2 - lat1
    a = sin(dlat / 2) ** 2 + cos(lat1) * cos(lat2) * sin(dlon / 2) ** 2
    c = 2 * asin(sqrt(a))
    r = 6371
    return c * r * 1000


def dis_cal(data):
    dis_result = []
    for i in range(len(data)):

        hang = data[i:i + 1].values.tolist()[0]

        hang_list = []
        hang_time = []
        for dyg in hang:
            if type(dyg) == str and len(dyg) > 6:
                dyg = dyg.replace('[', '').replace(']', '').replace(' ', '')
                if dyg.count('-') == 2:
                    dyg_list = []
                    dyg_list.append(float(dyg.split(',')[1]))
                    dyg_list.append(float(dyg.split(',')[2]))
                    hang_list.append(dyg_list)

                if dyg.count('-') == 0:
                    dyg_list_a = []
                    dyg_list_b = []
                    dyg_list_a.append(float(dyg.split(',')[0]))
                    dyg_list_a.append(float(dyg.split(',')[1]))
                    dyg_list_b.append(float(dyg.split(',')[2]))
                    dyg_list_b.append(float(dyg.split(',')[3]))
                    hang_list.append(dyg_list_a)
                    hang_list.append(dyg_list_b)

                if dyg.count('-') == 4:
                    hang_time.append(float(dyg.split(',')[-2]))

        # print(hang_list)
        # print(hang_time)

        dyg_dist = []
        for i in range(0, len(hang_list) - 1, 2):
            dist_1 = geo_distance(hang_list[i], hang_list[i + 1])
            # print(dist_1)
            dyg_dist.append(dist_1)

        # print(dyg_dist)

        for i in range(len(dyg_dist) - 1):
            dyg_dist.insert(1 + 2 * i, hang_time[i])
            # print(dyg_dist)

        dis_result.append(dyg_dist)

    # print(dis_result)
    return dis_result


def get_col(dis, time, n):
    lst_get = []
    for i in range(n):
        if i % 2 == 0:
            lst_get.append(dis)
        else:
            lst_get.append(time)
    return lst_get


def table_make(result, data):
    dis_table = pd.DataFrame(dis_result)  # 距离的矩阵
    N = dis_table.shape[1]
    get_columns = get_col('行驶距离', '停车时间', N)
    dis_table.columns = get_columns
    print(dis_table)
    return dis_table


dis_result = dis_cal(data)
dis_table = table_make(dis_result, data)
# print(dis_table)

path = r'.\big_dis_result_3.csv'
# dis_table.to_csv(path, encoding='gbk')

https://idea.medeming.com/pycharm
https://idea.medeming.com/jets/

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-08-30 12:25:04  更:2021-08-30 12:25:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 7:38:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码