transbigdata笔记:栅格参数优化

news2025/2/24 23:31:20

在transbigdata中,栅格参数有如下几个

params=(lonStart,latStart,deltaLon,deltaLat,theta)

如何选择合适的栅格参数是很重要的事情,这会对最终的分析结果产生很大的影响。

怎么选择参数,和数据以及分析的目的息息相关,transbigdata提供了三种方法来优化

1 准备代码

1.1 导入库

import pandas as pd
import geopandas as gpd
import transbigdata as tbd

1.2  读取数据

1.2.1 轨迹数据

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

1.2.2 area数据

area = gpd.read_file('Downloads/szarea1.json')
area

area.plot()

1.3 筛选在区域内的记录

data=tbd.clean_outofshape(data,area)
data

1.4 创建初始栅格

grid,initialparams=tbd.area_to_grid(area)
initialparams
'''
{'slon': 113.87256817484639,
 'slat': 22.55155183165019,
 'deltalon': 0.004869410314514816,
 'deltalat': 0.004496605206422906,
 'theta': 0,
 'method': 'rect',
 'gridsize': 500}
'''

grid.plot()

2 优化方法1——centerdist 最小化栅格中心和GPS数据之间的距离

  • 当一批距离很近的数据分布在栅格边缘时,GPS数据的偏差会导致这些数据被匹配到不同的栅格中。
  • 因此,解决方案之一是最小化栅格中心和GPS数据之间的距离。
params_op=tbd.grid_params_optimize(data,
                                  initialparams,
                                  col=['VehicleNum','Lng','Lat'],
                                            optmethod='centerdist',
                                            sample=0, #not sampling
                                            printlog=True)
'''
Optimized index centerdist: 167.56608905526596
Optimized gridding params: {'slon': 113.87374968010685, 'slat': 22.553664777307173, 'deltalon': 0.004869410314514816, 'deltalat': 0.004496605206422906, 'theta': 44.131419745260644, 'method': 'rect'}
'''

3 优化方法2——gini:最大化基尼指数

基尼指数的较高值表示数据在给定栅格中的分布更集中

params_op=tbd.grid_params_optimize(data,
                                  initialparams,
                                  col=['VehicleNum','Lng','Lat'],
                                            optmethod='gini',
                                            sample=0, #not sampling
                                            printlog=True)
'''
Optimized index gini: -0.07232170907948476
Optimized gridding params: {'slon': 113.87460338641485, 'slat': 22.554558793623986, 'deltalon': 0.004869410314514816, 'deltalat': 0.004496605206422906, 'theta': 45.108548092477754, 'method': 'rect'}
'''

可以看到最左上的斜条,这边是4个,而之前centerdist的是3个

4 优化方法4——gridscount: 最小化个体的栅格平均数

每个人都应出现在尽可能少的栅格中

params_op=tbd.grid_params_optimize(data,
                                  initialparams,
                                  col=['VehicleNum','Lng','Lat'],
                                            optmethod='gridscount',
                                            sample=0, #not sampling
                                            printlog=True)
'''
Optimized index gridscount: 9.0
Optimized gridding params: {'slon': 113.87506228430335, 'slat': 22.55319001399235, 'deltalon': 0.004869410314514816, 'deltalat': 0.004496605206422906, 'theta': 40.90195581089501, 'method': 'rect'}
'''

5 同样适用于tri和hexa

Optimized index gridscount: 13.0
Optimized gridding params: {'slon': 113.87524021241177, 'slat': 22.55350036557914, 'deltalon': 0.004869410314514816, 'deltalat': 0.004496605206422906, 'theta': 23.722083498424578, 'method': 'tri'}

initialparams['method']='hexa'
params_op=tbd.grid_params_optimize(data,
                                  initialparams,
                                  col=['VehicleNum','Lng','Lat'],
                                            optmethod='gridscount',
                                            sample=0, #not sampling
                                            printlog=True)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1391455.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言爬虫程序编写的爬取APP通用模板

互联网的飞快发展,尤其是手机终端业务的发展,让越来越多的事情都能通过手机来完成,电脑大部分的功能也都能通过手机实现,今天我就用C语言写一个手机APP类爬虫教程,方便后期拓展APP爬虫业务。而且这个模板是通用的适合各…

【PyTorch】在PyTorch中使用线性层和交叉熵损失函数进行数据分类

在PyTorch中使用线性层和交叉熵损失函数进行数据分类 前言: 在机器学习的众多任务中,分类问题无疑是最基础也是最重要的一环。本文将介绍如何在PyTorch框架下,使用线性层和交叉熵损失函数来解决分类问题。我们将以简单的Iris数据集作为起点…

Matlab交互式的局部放大图

在数据可视化中,很多时候需要对某一区间的数据进行局部放大,以获得对比度更高的可视化效果。下面利用 MATLAB 语言实现一个交互式的局部放大图绘制。 源码自行下载: 链接:https://pan.baidu.com/s/1yItVSinh6vU4ImlbZW6Deg?pwd9d…

使用 Python 创造你自己的计算机游戏(游戏编程快速上手)第四版:第十九章到第二十一章

十九、碰撞检测 原文:inventwithpython.com/invent4thed/chapter19.html 译者:飞龙 协议:CC BY-NC-SA 4.0 碰撞检测涉及确定屏幕上的两个物体何时相互接触(即发生碰撞)。碰撞检测对于游戏非常有用。例如,如…

iphone 5s的充电时序原理图纸,iPAD充电讲解

上一篇写了iphone 5的时序。那是电池供电的开机时序。iphone 5s也是差不多的过程,不说了。现在看iphone5s手机充电时候的时序。iphone5s充电比iphone5充电简单了很多。 首先是usb接口接到手机上,usb线连接到J7接口上。J7接口不只是接usb,还能…

ZooKeeper 实战(五) Curator实现分布式锁

文章目录 ZooKeeper 实战(五) Curator实现分布式锁1.简介1.1.分布式锁概念1.2.Curator 分布式锁的实现方式1.3.分布式锁接口 2.准备工作3.分布式可重入锁3.1.锁对象3.2.非重入式抢占锁测试代码输出日志 3.3.重入式抢占锁测试代码输出日志 4.分布式非可重入锁4.1.锁对象4.2.重入…

canvas绘制美队盾牌

查看专栏目录 canvas示例教程100专栏,提供canvas的基础知识,高级动画,相关应用扩展等信息。canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重…

项目管理十大知识领域之项目整体管理

1. 项目整体管理的定义和范畴 项目整体管理是指在整个项目生命周期中对项目进行全面规划、组织、协调、控制和监督的过程。这包括对项目目标、范围、时间、成本、质量、沟通、风险和采购等方面进行统一的管理和协调。项目整体管理的范畴涵盖了项目管理的方方面面,旨…

【特征工程】分类变量:MultiLabelBinarizer对多标签数据进行编码

MultiLabelBinarizer 说明介绍 1. MultiLabelBinarizer 是什么? MultiLabelBinarizer是scikit-learn库中的一个用于处理多标签数据的编码器。通常用于将多标签的分类任务中的标签转化为二进制形式,便于机器学习模型的处理。该编码器的主要目标是将每个…

leecode1011 | 在D天内送达包裹的能力

传送带上的包裹必须在 days 天内从一个港口运送到另一个港口。 传送带上的第 i 个包裹的重量为 weights[i]。每一天,我们都会按给出重量(weights)的顺序往传送带上装载包裹。我们装载的重量不会超过船的最大运载重量。 返回能在 days 天内将传…

压力测试+接口测试(工具jmeter)

jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单。因 为jmeter是java开发的,所以运行的时候必须先要安装jdk才可以。jmeter是…

【架构师专题】架构师如何管理业务团队?

一个优秀的架构师一定是一个优秀的管理者,这个是没错的,反过来一个优秀的管理者不一定是一个优秀的架构师,这个是我做了这么对年的架构师心得。 曾经我也做过关于团队底下的一线开发人员对团队中架构师的调查报告,发现这些开发人…

从此不再为远程访问局域网发愁

下载地址 Windows 64位 (切勿直接在压缩文件中操作,全部解压到一处后再操作,请关闭某60(会胡乱拦截),可用其他任意安全软件)Mac OS X 64位 (给fastnat执行权限 chmod x ./fastnat.. 终端运行二进制,自行百度)Linux 64位 (给fastnat执行权限 chmod x ./fastnat..)Linux/ARM 32位…

自动驾驶中大火的AI大模型中有哪些研究方向,与Transformer何干?

摘要: 本文将针对大模型学习中可能遇见的问题进行分析梳理,以帮助开发者在利用大模型在自动驾驶场景处理中学习更好的策略,利用有关大模型性能评价的问题,制定一个科学的标准去判断大模型的长处和不足。 随着自动驾驶行业发展对于大数据量处理的强大需求,其要求处理数据的…

硬件知识积累 VPX 3U/6U 电源板的连接器引脚定义讲解 (简单说明)

本文章参考资料 :ANSI/VITA 62-2012 1. 首先参考资料里面引脚定义图: 1. 3U 的引脚定义图: (VPX引脚编号, 最大电流, 对应引脚的作用) 2. 6U的引脚定义图: (VPX引脚编号, 最大电流&#xff0c…

网络Yum仓库介绍、自定义Yum仓库、Yum仓库更新、邮件的收发、DNS服务介绍、构建DNS服务、递归解析、迭代解析、NTP时间同步

1 大鹏一日同风起,扶摇直上九万里 2 环境准备 所有虚拟机设置SELinux运行模式 [rootserver ~]# getenforceEnforcing[rootserver ~]# setenforce 0 #当前设置[rootserver ~]# getenforcePermissive[rootserver ~]# vim /etc/selinux/configSELINUXpermissive 所…

爬虫案例——使用超级鹰打码平台识别验证码

爬虫案例——使用超级鹰打码平台识别验证码 超级鹰是一个常用的打码平台,您可以按照以下步骤来使用它: 注册账户:首先,您需要在超级鹰网站上注册一个账户。访问超级鹰官方网站(https://www.chaojiying.com/&#xff…

Lua从电脑端爬取短视频评论并作商业化分析

之前有个大客户让我写一篇关于抓取短视频评论数据的单子,说是帮助公司寻找意向客户以及所对应产品在短视频里面的展现以及热门程度,通过数据采集方式并作数据自动化分析,从而实现商业上的价值。对于我来说写个爬虫还不简单,通过三…

使用scipy处理图片——滤镜处理

大纲 black_tophatwhite_tophatconvolvecorrelategaussian_filtergaussian_laplacemaximum_filtermedian_filterminimum_filterpercentile_filterprewittrank_filtersobelspline_filteruniform_filter基础代码代码仓库 在《使用numpy处理图片——模糊处理》一文中,我…

NodeJs 第十六章 JWT

JWT 概述令牌的组成headerpayloadsignature 令牌的验证一个简单的登陆服务总结 随着前后端分离的发展,以及数据中心的建立,越来越多的公司会创建一个中心服务器,服务于各种产品线。 而这些产品线上的产品,它们可能有着各种终端设备…