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

本文主要是介绍transbigdata 笔记:官方文档案例1(出租车GPS数据处理),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 读取数据

官方文档中给定的出租车数据在transbigdata/docs/source/gallery/data/TaxiData-Sample.csv at main · ni1o1/transbigdata (github.com)

1.1 出租车数据 

 

data=pd.read_csv('TaxiData-Sample.csv',names= ['VehicleNum', 'Time', 'Lng', 'Lat', 'OpenStatus', 'Speed'])
data

1.2 深圳数据

sz=gpd.read_file('sz.json')
sz

sz.plot(figsize=(15,8))

 

2 清理数据

2.1 清理深圳之外的数据

transbigdata笔记:数据预处理-CSDN博客

data = tbd.clean_outofshape(data, sz, col=['Lng', 'Lat'], accuracy=500)
data

2.2 清理异常记录点

transbigdata笔记:数据预处理-CSDN博客

异常记录点,指的是记录点前后的出租车状态(有乘客/无乘客)和自己的出租车状态不一样

data = tbd.clean_taxi_status(data, col=['VehicleNum', 'Time', 'OpenStatus'])
data

3 数据网格化

3.1 定义网格坐标系

transbigdata笔记:数据栅格化-CSDN博客

官方样例是取了经纬度的四个极值,其实直接把sz作为参数输进去也可以

params=tbd.area_to_params(sz,accuracy=500)
params
'''
{'slon': 113.74627986426263,'slat': 22.39928709355355,'deltalon': 0.0048717524501333395,'deltalat': 0.004496605206422906,'theta': 0,'method': 'rect','gridsize': 500}
'''

3.2 将GPS 映射到对应的网格

这里LONCOL和LATCOL列就可以指定一个网格

transbigdata笔记:数据栅格化-CSDN博客

data['LONCOL'], data['LATCOL'] = tbd.GPS_to_grid(data['Lng'], data['Lat'], params)
data

3,2,1 统计每个网格中出现的车辆的数量

dataset=data.groupby(['LONCOL', 'LATCOL'])['VehicleNum'].count().reset_index()
dataset

3.2.2 将网格对应的几何信息写入DataFrame

transbigdata笔记:数据栅格化-CSDN博客

dataset['geometry'] = tbd.grid_to_polygon([dataset['LONCOL'], dataset['LATCOL']], params)
dataset

3.3 绘制网格

datatest=gpd.GeoDataFrame(dataset)
plt.figure(1,(16, 6), dpi=300)
#图的大小和size
ax1 = plt.subplot(111)
#在图形中创建了一个子图。111 表示图形布局是1行1列,且这是第1个子图。
datatest.plot(ax=ax1,column='VehicleNum',legend=True)
'''
在子图ax1上绘制数据。
column='VehicleNum' 指定了要绘制的数据列。
legend=True 表示在图表中包含图例。
'''
plt.xticks([], fontsize=10)
plt.yticks([], fontsize=10)
#设置x轴和y轴的刻度(为空)
plt.title('Counting of Taxi GPS Trajectory Points', fontsize=12);
#设置标题

3.3.1 scheme 指定数据分类方案

geopandas 笔记:plot 的scheme-CSDN博客

plt.figure(1,(16, 6), dpi=300)
#图的大小和size
ax1 = plt.subplot(111)
#在图形中创建了一个子图。111 表示图形布局是1行1列,且这是第1个子图。
datatest.plot(ax=ax1,column='VehicleNum',legend=True, scheme='quantiles')
'''
在子图ax1上绘制数据。
column='VehicleNum' 指定了要绘制的数据列。
legend=True 表示在图表中包含图例。
scheme指定数据分类方案
'''
plt.xticks([], fontsize=10)
plt.yticks([], fontsize=10)
#设置x轴和y轴的刻度(为空)
plt.title('Counting of Taxi GPS Trajectory Points', fontsize=12);
#设置标题

4 提取&聚合出租车行程

 4.1 提取OD

oddata = tbd.taxigps_to_od(data,col = ['VehicleNum', 'Time', 'Lng', 'Lat', 'OpenStatus'])
oddata

4.2  聚合OD ,获得轨迹的geometry

od_gdf = tbd.odagg_grid(oddata, params)
od_gdf

4.3 绘制OD trip

fig = plt.figure(1, (16, 6), dpi=150) 
# 确定图形高为6,宽为8;图形清晰度
ax1 = plt.subplot(111)od_gdf.plot(ax=ax1, column='count', legend=True)
plt.xticks([], fontsize=10)
plt.yticks([], fontsize=10)
plt.title('OD Trips', fontsize=12);

5 提取出租车轨迹

5.0 提取载客行程和空闲行程

data_deliver, data_idle = tbd.taxigps_traj_point(data,oddata,col=['VehicleNum','Time','Lng','Lat','OpenStatus'])

返回载客行程和空闲行程的轨迹点 

data_idle

data_deliver

5.1 一个一个记录汇总成一条一条线

注:官方文档里写的points_to_traj已经无了,现在是traj_to_linestring

traj_deliver = tbd.traj_to_linestring(data_deliver)
traj_deliver

5.2 用kepler.gl可视化轨迹

tbd.visualization_trip(data_deliver)

这篇关于transbigdata 笔记:官方文档案例1(出租车GPS数据处理)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/611411

相关文章

Java Stream流使用案例深入详解

《JavaStream流使用案例深入详解》:本文主要介绍JavaStream流使用案例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录前言1. Lambda1.1 语法1.2 没参数只有一条语句或者多条语句1.3 一个参数只有一条语句或者多

MySQL 中的 JSON 查询案例详解

《MySQL中的JSON查询案例详解》:本文主要介绍MySQL的JSON查询的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 的 jsON 路径格式基本结构路径组件详解特殊语法元素实际示例简单路径复杂路径简写操作符注意MySQL 的 J

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

MySQL重复数据处理的七种高效方法

《MySQL重复数据处理的七种高效方法》你是不是也曾遇到过这样的烦恼:明明系统测试时一切正常,上线后却频频出现重复数据,大批量导数据时,总有那么几条不听话的记录导致整个事务莫名回滚,今天,我就跟大家分... 目录1. 重复数据插入问题分析1.1 问题本质1.2 常见场景图2. 基础解决方案:使用异常捕获3.

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl

Python实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地

MySQL高级查询之JOIN、子查询、窗口函数实际案例

《MySQL高级查询之JOIN、子查询、窗口函数实际案例》:本文主要介绍MySQL高级查询之JOIN、子查询、窗口函数实际案例的相关资料,JOIN用于多表关联查询,子查询用于数据筛选和过滤,窗口函... 目录前言1. JOIN(连接查询)1.1 内连接(INNER JOIN)1.2 左连接(LEFT JOI