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

相关文章

C#如何在Excel文档中获取分页信息

《C#如何在Excel文档中获取分页信息》在日常工作中,我们经常需要处理大量的Excel数据,本文将深入探讨如何利用Spire.XLSfor.NET,高效准确地获取Excel文档中的分页信息,包括水平... 目录理解Excel中的分页机制借助 Spire.XLS for .NET 获取分页信息为什么选择 S

Java利用Spire.XLS for Java自动化设置Excel的文档属性

《Java利用Spire.XLSforJava自动化设置Excel的文档属性》一个专业的Excel文件,其文档属性往往能大大提升文件的可管理性和可检索性,下面我们就来看看Java如何使用Spire... 目录Spire.XLS for Java 库介绍与安装Java 设置内置的 Excel 文档属性Java

mysql_mcp_server部署及应用实践案例

《mysql_mcp_server部署及应用实践案例》文章介绍了在CentOS7.5环境下部署MySQL_mcp_server的步骤,包括服务安装、配置和启动,还提供了一个基于Dify工作流的应用案例... 目录mysql_mcp_server部署及应用案例1. 服务安装1.1. 下载源码1.2. 创建独立

Python自动化提取多个Word文档的文本

《Python自动化提取多个Word文档的文本》在日常工作和学习中,我们经常需要处理大量的Word文档,本文将深入探讨如何利用Python批量提取Word文档中的文本内容,帮助你解放生产力,感兴趣的小... 目录为什么需要批量提取Word文档文本批量提取Word文本的核心技术与工具安装 Spire.Doc

mybatis-plus分表实现案例(附示例代码)

《mybatis-plus分表实现案例(附示例代码)》MyBatis-Plus是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生,:本文主要介绍my... 目录文档说明数据库水平分表思路1. 为什么要水平分表2. 核心设计要点3.基于数据库水平分表注意事项示例

C#高效实现在Word文档中自动化创建图表的可视化方案

《C#高效实现在Word文档中自动化创建图表的可视化方案》本文将深入探讨如何利用C#,结合一款功能强大的第三方库,实现在Word文档中自动化创建图表,为你的数据呈现和报告生成提供一套实用且高效的解决方... 目录Word文档图表自动化:为什么选择C#?从零开始:C#实现Word文档图表的基本步骤深度优化:C

SpringBoot整合AOP及使用案例实战

《SpringBoot整合AOP及使用案例实战》本文详细介绍了SpringAOP中的切入点表达式,重点讲解了execution表达式的语法和用法,通过案例实战,展示了AOP的基本使用、结合自定义注解以... 目录一、 引入依赖二、切入点表达式详解三、案例实战1. AOP基本使用2. AOP结合自定义注解3.

使用Python将PDF表格自动提取并写入Word文档表格

《使用Python将PDF表格自动提取并写入Word文档表格》在实际办公与数据处理场景中,PDF文件里的表格往往无法直接复制到Word中,本文将介绍如何使用Python从PDF文件中提取表格数据,并将... 目录引言1. 加载 PDF 文件并准备 Word 文档2. 提取 PDF 表格并创建 Word 表格

C#借助Spire.XLS for .NET实现在Excel中添加文档属性

《C#借助Spire.XLSfor.NET实现在Excel中添加文档属性》在日常的数据处理和项目管理中,Excel文档扮演着举足轻重的角色,本文将深入探讨如何在C#中借助强大的第三方库Spire.... 目录为什么需要程序化添加Excel文档属性使用Spire.XLS for .NET库实现文档属性管理Sp

Springboot3 ResponseEntity 完全使用案例

《Springboot3ResponseEntity完全使用案例》ResponseEntity是SpringBoot中控制HTTP响应的核心工具——它能让你精准定义响应状态码、响应头、响应体,相比... 目录Spring Boot 3 ResponseEntity 完全使用教程前置准备1. 项目基础依赖(M