出租车GPS轨迹数据分析

这篇具有很好参考价值的文章主要介绍了出租车GPS轨迹数据分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本次实验中,我们需要使用python对杭州市出租车轨迹数据进行清洗。在aistudio平台创建项目,搜索杭州市出租车轨迹数据集。

•使用numpy、pandas等完成“00.csv”文件读取;

#读取数据
#引入folium地图包
!pip install folium    

出租车GPS轨迹数据分析

import folium
import pandas as pd
import numpy as np
import time,datetime
#读取文档数据
df=pd.read_csv('/home/aistudio/data/data168432/00new.csv.csv')
print(df)

出租车GPS轨迹数据分析

•剔除无效数据:GPS 采集出租车轨迹数据的过程中,可能因设备问题 导致数据没有采集到,故而在原始轨迹数据集中记录为空值。因此,需 要将每个采样点中有效字段为空值的数据进行剔除,即剔除 DeviceID、 Longitude、Latitude、Speed、Timestamp 或 Status 任意一个字段为 空的数据。


#统计缺失值数据

df.isnull().sum()

出租车GPS轨迹数据分析

#剔除缺失值行无效数据

df = df.dropna() 

#输出剔除空值行后的数据
print(df)

 出租车GPS轨迹数据分析

•剔除速度异常数据:原始出租车轨迹数据集中 Speed 的单位为 𝑘𝑚/h, 值域为 [0, 512]。将采样点中速度不在值域为 [0, 150] 范围内的数据视为异常数据,并剔除此类异常数据。

#剔除速度值异常数据

df.drop(df[(df.Speed > 150) & (df.Speed < 0)].index, inplace=True)

#输出删除速度值异常后的数据
print(df)

出租车GPS轨迹数据分析

•剔除重复数据:GPS 设备每隔一段时间( 1s 到 20s 之间)对出租车进 行一次采样,由于设备问题重复上传数据,导致原始轨迹数据集中存在 有效字段完全相同的数据。为了保证数据的准确性,需要对这类重复的数据予以剔除。

#剔除重复数据

df.drop_duplicates()

#输出删除重复数据后的数据
print(df)

出租车GPS轨迹数据分析

 •经度和纬度标准化:Longitude 和 Latitude 字段对应的值是出租车经度值和纬度值乘以 转化为实际的经度值和纬度值。如 Longitude 值为 1191200308 和 Latitude 值为 293102620 分别经过标准化处理后为 119.1200308 和 29.3102620。

#经度和纬度标准化

df.Longitude = df.Longitude / 10000000
df.Latitude = df.Latitude / 10000000

#输出经纬度标准化后的数据
print(df)

出租车GPS轨迹数据分析

•时间标准化:时间戳 TimeStamp 是 Unix 时间,定义为从格林威治时间 1970 年 01 月 01 日 00 时 00 分 00 秒起至现在的总秒数。标准化时间戳 可以通过调用 python 内置处理时间 time 模块,首先使用 time 模块中 的 localtime 将时间戳转化为时间数组,然后应用 time 模块中的 strftime 将时间数据转化为指定的日期格式“%y-%m-%d %H:%M:%S”。 其中 y,m,d,H,M,S分别表示年,月,日,小时,分钟和秒钟。如 时间戳 TimeStamp 值为 1427828315 经过标准化处理后为“2015-4-1 2:58:35”。

#时间标准化

df.TimeStamp = pd.to_datetime(df.TimeStamp,unit='s')

#输出时间标准化后的数据
print(df)

 出租车GPS轨迹数据分析

•研究区域的选取:如图所示,选取一天中部分出租车轨迹数据的采 样点映射到地图上,我们可以清晰的发现采样点主要分布在杭州市的 主城区。根据数据分布属性,主要研究杭州市的 9 个城区,包括西湖区、上城区、下城区、拱墅区、滨江区、江干区、萧山区、富阳区、 余杭区,故此选取原始轨迹数据中 Longitude 和 Latitude 值域分别在 [119.869,120.461] 和 [30.012,30.4439] 的数据。

在地图中设置定点位置

#设置矩形框顶点位置

points = ([30.012, 119.869], [30.012, 120.461], [30.4439, 119.869], [30.4439, 120.461])

1.在出租车轨迹数据预处理完后,提取数据的时间属性,时间细粒度可以为一小时/半小时,统计每个时间细粒度内的采样点的数目,采用python matplotlib绘制采样点数目(即流量)随时间的动态变化的折现图,统计早高峰时间区间和晚高峰的时间区间;

#将采样点映射到地图上

#新建地图,中心点为(30.22795, 120.165),缩放值为10.5,添加比例尺
m = folium.Map([30.22795, 120.165], zoom_start=10.5, control_scale=True)

#设置矩形框顶点位置
points = ([30.012, 119.869], [30.012, 120.461], [30.4439, 119.869], [30.4439, 120.461])

#画出范围矩形框
folium.Rectangle(bounds=points, color = '#ff7800', fill = False, fill_opacity=0.2).add_to(m)

#在地图上逐个标记点位
for lat, lng, in zip(df.Latitude, df.Longitude):
    folium.CircleMarker(
        [lat, lng],
        radius=5,
        color='yellow',
        fill=True,
        fill_color='red',
        fill_opacity=0.6
    ).add_to(m)

#将地图输出为.html格式
m.save('采样点映射.html')

m

出租车GPS轨迹数据分析

#数据的时间属性

import matplotlib.pyplot as plt
from datetime import datetime
from dateutil.parser import parse

#复制TimeStamp为time提取小时
df['time'] = df.TimeStamp
df['hour'] = [x.strftime('%H') for x in df.time] #提取时间的小时数

traffic = df['hour'].drop_duplicates() #对小时去重

x = df.groupby('hour')['UNIQUEID'].count() #求每小时的客流量
y = x.reset_index() #重置索引,为绘制折线图做准备

plt.subplot(1,1,1)
plt.plot(y['hour'],y['UNIQUEID']) #绘制折线图

plt.xlabel('Time/hour')
plt.ylabel("Flow/number") #设置x,y轴标签

for a,b in zip(y['hour'],y['UNIQUEID']): #设置图上显示数据标签
    plt.text(a,b,b,va='center')
plt.title('Traffic flow statistics chart') #设置图标题

出租车GPS轨迹数据分析

 2.探索数据的空间分布规律,采用leaflet.js将采样点绘制到地图上

#探索数据的空间分布规律

from folium.plugins import HeatMap

#新建地图,中心点为(30.22795, 120.165),缩放值为10.5,添加比例尺
heat_map = folium.Map([30.22795, 120.165], zoom_start=10.5, control_scale=True)

# Convert data format
heatdata = df[['Latitude','Longitude']].values.tolist()
#画图
HeatMap(heatdata).add_to(heat_map)

#将地图输出为.html格式
heat_map.save('空间热力图.html')

heat_map

出租车GPS轨迹数据分析

我将项目放在了aistudio平台,点击下方链接就可以直接运行。

出租车GPS轨迹数据分析

我发现了一篇高质量的实训项目,使用免费算力即可一键运行,还能额外获取8小时免费GPU运行时长,快来Fork一下体验吧。
出租车GPS轨迹数据分析:https://aistudio.baidu.com/aistudio/projectdetail/4939932?sUid=959235&shared=1&ts=1667276282875文章来源地址https://www.toymoban.com/news/detail-441464.html

到了这里,关于出租车GPS轨迹数据分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • transbigdata 笔记:官方文档案例1(出租车GPS数据处理)

    官方文档中给定的出租车数据在transbigdata/docs/source/gallery/data/TaxiData-Sample.csv at main · ni1o1/transbigdata (github.com)     transbigdata笔记:数据预处理-CSDN博客 transbigdata笔记:数据预处理-CSDN博客 异常记录点,指的是记录点前后的出租车状态(有乘客/无乘客)和自己的出租车状态不一

    2024年01月21日
    浏览(38)
  • 出租车计价c语言

    本关任务:根据某城市普通出租车收费标准编写程序对车费进行计算。具体标准如下: 起步里程为3km,起步费为10元;10km以内超起步里程部分,每千米2元,超过10km以上的部分加收50%的回空补贴费,即每千米3元。营运过程中,因堵车及乘客要求临时停车的,按每5分钟2元计收

    2024年02月07日
    浏览(32)
  • Java语言怎么编写一个程序计算出租车的运输费用:出租车起步15公里以内20块钱,需要支付调头费用

    下面是一个Java语言编写的计算出租车运输费用的程序:   ```java import java.util.Scanner;   public class TaxiFareCalculator {     public static void main(String[] args) {         Scanner input = new Scanner(System.in);           System.out.print(\\\"请输入出租车行驶的里程(公里):\\\");         double distance

    2024年02月12日
    浏览(39)
  • FPGA出租车计费系统设计

            设计一个简易的出租车计费系统,实现计价功能,计费标准为按里程收费, 起步价为6.00 元,当里程小于3公里时,按起步价收费, 超过3公里后按1.2元 /公里收费。         实现车辆行驶的模拟:能模拟汽车的 启动,暂停,停止 等状态。         计费显示部分设计

    2024年02月04日
    浏览(47)
  • 基于单片机出租车计价器设计

     功能介绍 以51单片机作为主控系统; 1602液晶屏显示最初的起步价,里程收费,等待时间收费; 按键调整起步价,里程收费,等待时间收费; 电机旋转,通过霍尔传感器检测转速,来模拟出租车行驶; 电路图 仿真图 元器件清单 B1 5V直流电机+托盘(粘好磁铁) BT1 2032纽扣电

    2024年02月11日
    浏览(37)
  • 【Vivado】基于FPGA的出租车计价表设计

    学校FPGA设计结课课设 主要做了出租车计价表,一个比较旧的课题,代码如下: 分模块编程,按照价目表写代码,具体注释见代码。 在module里新加一个 input 变量 key_stage ,用 key_stage 表示不同车流量段,用以计数 在module里新增一个变量 state 来限定是在白天还是夜间

    2024年02月04日
    浏览(43)
  • LeetCode 2008. 出租车的最大盈利:动态规划 + 哈希表

    力扣题目链接:https://leetcode.cn/problems/maximum-earnings-from-taxi/ 你驾驶出租车行驶在一条有 n  个地点的路上。这 n  个地点从近到远编号为  1  到  n  ,你想要从 1  开到 n  ,通过接乘客订单盈利。你只能沿着编号递增的方向前进,不能改变方向。 乘客信息用一个下标从 0  开

    2024年02月04日
    浏览(36)
  • 0097-基于单片机的出租车计价器仿真设计

    1、采用51/52单片机作为主控芯片; 2、采用1602液晶显示:里程、计价、实时时间、实时单价、本次行程计时; 3、采用DS1302作为时钟芯片; 4、支持切换显示界面、设置日期时间、设置白天单价、设置夜晚单价; 5、支持分别设置3千米内的单价、3千米外的单价、等待时的单价

    2024年02月20日
    浏览(38)
  • 仿滴滴打车百度地图定位查找附近出租车或门店信息

    随着技术的发展,开发的复杂度也越来越高,传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身。通过组件化开发,可以有效实现单独开发,单独维护,而且他们之间可以随

    2024年02月09日
    浏览(47)
  • 【Cocos 3d】从零开始自制3d出租车小游戏

    本文很长,建议收藏食用。 课程来源: 游戏开发教程 | 零基础也可以用18堂课自制一款3D小游戏 | Cocos Creator 3D 中文教程(合集)p1~p6 简介: 资源下载:https://github.com/cocos-creator/tutorial-taxi-game 适合学习人群:本教程假定你对编程有一定的了解,ts,js 学习过其中之一。 如果不

    2024年02月02日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包