基于游客时空行为特征研究(两步路)

news2024/12/26 21:01:22

1 轨迹计算

1.1 使用geopy

geopy模块常用于定位全球地址、以及经纬度相关的转换与计算,详细请参考:

https://pypi.org/project/geopy/

1.2 安装

pip install geopy

1.3 根据经纬度计算距离

Geopy可以使用测地线距离或大圆距离计算两点之间的测地线距离, 默认的测地线距离可用作函数geopy.distance.distance。

下面是测地线距离的示例用法,取对 元组数量:(lat, lon)

from geopy.distance import geodesic
pre = (39.053535, 113.661705) 
after = (39.054092,113.660706)
print(geodesic(pre, after).miles)

输出结果:0.06605704759005734米

1.4 拓展:根据经纬度反向获取地址

from geopy.geocoders import Nominatim
geolocator = Nominatim(user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36")
location = geolocator.reverse("39.053795, 113.66118")
print(location.address)

输出结果:S205, 繁峙县, 忻州市, 山西省, 中国

2 应用

经过查看论文研究,很多用户会经常徒步旅行,同时呢会使用两步走app来记录自己的行程轨迹,这样我们可以分析用户的徒步过程的一些状态

来源两步路
来源两步路

可以根据用户轨迹相关信息,进行GIS空间分析

来源基于UGC数据的古镇游客时空行为特征研究
来源基于UGC数据的古镇游客时空行为特征研究

具体可参考

https://m.fx361.com/news/2022/1124/13935932.html

数据示例:

距离计算代码:

def calculate_gj():
    print("开始计算")
    tp = [i for i in readData().values]
    print("总条数:%s"%len(tp))
    all_tp_dict = {value: [tp[i] for i in range(len(tp)) if tp[i][-1] == value] for value in set([i[-1] for i in tp])}
    print("开始循环")
    for all_tp in all_tp_dict.values():
        # print(all_tp)
        tp = [i for i in all_tp]
        userName = tp[0][0]
        dt = tp[0][1]
    # tp = [i for i in readData().values]
        for t in range(len(tp) - 1):
            t1 = t
            t2 = t + 1
            stopTime = (tp[t2][3] - tp[t1][3]) / 1000
            stopDistance = geodesic((tp[t1][5], tp[t1][2]), (tp[t2][5], tp[t2][2])).m
            speed = round((tp[t2][6] + tp[t1][6])/2,2)
            if ((stopDistance < 50 and stopTime <= 60*60) or (stopDistance < 50 and stopTime>0)) and (speed<=1.5 and speed>=0):
                result = {}
                result["userName"] = userName
                result["dt"] = dt
                result["停留时间(分钟)"] = round(stopTime / 60, 2)
                result["纬度"] = tp[t1][5]
                result["经度"] = tp[t1][2]
                result["距离"] = round(stopDistance, 2)
                result["速度"] = round((tp[t2][6] + tp[t1][6])/2,2)
                # result.update(rr)
                print(result)
                resultList.append(result)

图片无法展示,具体可参考:https://mp.weixin.qq.com/s?__biz=Mzk0NzI4MDc5Mw==&mid=2247485599&idx=1&sn=10386d8825722aa73cc56d3f762a52ea&chksm=c3780669f40f8f7f56c3cb86f6e5d0453af9bf11446f8dc06107947db34cbd7a174b4273862b#rd

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

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

相关文章

【C数据结构】无头非循环单向链表_SList

目录 无头非循环单向链表LinkedList 【1】链表概念 【2】链表分类 【3】无头单向非循环链表 【3.1】无头单向非循环链表数据结构与接口定义 【3.2】无头单向非循环链表初始化 【3.3】无头单向非循环链表开辟节点空间 【3.4】无头单向非循环链表销毁 【3.5】 无头单向非…

Qt中以qRegister开头的几个函数的用法说明

目录 1. 前言 2. qRegisterMetaTypeStreamOperators 2.1. 函数功能简述 2.2.用法举例1 3. qRegisterMetaType 1. 前言 Qt通过qRegister开头的函数和Q_DECLARE开头的几个宏向Qt元系统注册、声明一些非基本类型。一旦声明、注册后&#xff0c;在Qt元系统中就可以很方便的利用这…

神秘龙卷风

那道提示 打开后是一个加密压缩包&#xff0c;根据题目提示&#xff0c;这应该是一道暴力破解的题目 暴力破解后得到密码位5463 结果拿到是一串不止到啥的字符&#xff0c;根据提示应该是还要进行解码 经过查询&#xff0c;得知这个编码叫Brainfuck&#xff1a;&#xff08;下面…

【Java高级语法】(七)Object类:同志,关于Object类的情况你了解多少嘞?~

Java高级语法详解之Object类 :one: 概念:two: 使用2.1 equals()方法2.2 hashCode()方法2.3 toString()方法2.4 finalize()方法2.5 getClass()方法2.6 clone()方法2.7 wait()、notify()和 notifyAll()方法 :three: 使用场景:ear_of_rice: 总结:bookmark_tabs: 本文源码下载地址 …

【前端知识】React 基础巩固(十五)——书籍购物车简单案例

React 基础巩固(十五)——书籍购物车简单案例 案例代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"v…

性能测试基础知识(二)性能测试流程

性能测试流程 一、性能测试需求分析二、性能测试计划和方案三、性能测试用例设计四、性能测试执行五、性能测试分析和调优六、性能测试报告总结 一、性能测试需求分析 1、熟悉被测系统&#xff08;业务功能、技术架构&#xff09; 2、明确测试内容 一般有以下几种类型&#xf…

chatgpt赋能python:Python中如何实现图形移动:探索基本概念和代码示例

Python中如何实现图形移动&#xff1a;探索基本概念和代码示例 介绍 图形移动是计算机科学中的基本概念&#xff0c;它与广泛应用的游戏、动画和用户界面设计有密切关系。 在Python中&#xff0c;我们可以使用各种库和框架来实现图形移动和动画效果&#xff0c;包括Tkinter&a…

chatgpt赋能python:Python截取指定字符操作:让你的SEO优化变得更简单

Python截取指定字符操作&#xff1a;让你的SEO优化变得更简单 在SEO优化中&#xff0c;截取指定字符是一个非常常见的操作。Python作为一款开源的高级编程语言&#xff0c;提供了许多方便的函数和方法来处理文本操作&#xff0c;包括截取指定字符。在本文中&#xff0c;我们将…

第三章 选择与循环

程序员必备技能(思想)&#xff1a;增量编写法。每写一部分代码要及时运行看结果是否正确&#xff0c;对于复杂程序很重要。 常用的运算符优先级&#xff1a; 逻辑非 &#xff01;> 算术运算符 > 关系运算符 > && > || > 赋值运算符 单目运算符 逻辑非…

chatgpt赋能python:Python如何随机生成26个字母

Python如何随机生成26个字母 Python是一种流行的编程语言&#xff0c;被广泛用于数据分析、人工智能和Web开发等领域。 Python中有很多库可以用于随机生成字符&#xff0c;包括Python内置的random库和第三方库string。 在本文中&#xff0c;我们将介绍如何使用这些库在Python中…

《Java黑皮书基础篇第10版》 第16章【笔记】

第十六章 JavaFX UI 组件和多媒体 16.1 引言 16.2 Labeled和Label在这里插入图片描述 标签(label)是一个显示小段文字&#xff0c;一个节点或同时显示两者的区域。它经常用来给其他组件(通常为文本域)做标签&#xff0c;Label类继承自Labeled抽象类 16.3 - 16.4 按钮和复选框…

目标检测YOLO实战应用案例100讲-基于深度学习的遥感目标检测算法FPGA部署实现研究

基于深度学习的目标检测网络剪枝及FPGA部署 随着科技的发展,人工智能的发展正在促进计算机视觉的智能化广泛应用。如手 机上的语音识别可以将声音转化成文字、门禁识别人脸通行、美颜相机对人像加上跟 踪特效等,这些都是人工智能在我们生活中的应用。 人工智能对图像领域…

【Docker】Linux安装步骤

目录 下载关于Docker的依赖环境安装Docker启动&#xff0c;并设置为开机自动启动&#xff0c;测试开启远程API访问端口登录harbor仓库 下载关于Docker的依赖环境 输入以下命令安装依赖环境 回车 yum -y install yum-utils device-mapper-persistent-datalvm2 安装Docker 下…

河道水面垃圾识别检测算法 yolov5

河道水面垃圾识别检测系统采用yolov5忘了模型计算机视觉技术&#xff0c;河道水面垃圾识别检测算法通过在河道上安装摄像头&#xff0c;对水面垃圾进行实时监测自动识别并记录水面垃圾&#xff0c;及时通知环保部门进行处理。近几年来&#xff0c;目标检测算法取得了很大的突破…

树莓派 4B 多串口配置

0. 实验准备以及原理 0.1 实验准备 安装树莓派官方系统的树莓派 4B&#xff0c;有 python 环境&#xff0c;安装了 serial 库 杜邦线若干 屏幕或者可以使用 VNC 进入到树莓派的图形界面 0.2 原理 树莓派 4B 有 UART0&#xff08;PL011&#xff09;、UART1&#xff08;mini …

ldsc python程序安装以及测试

教程参考&#xff1a; https://zhuanlan.zhihu.com/p/379628546https://github.com/bulik/ldsc 1. 软件安装 1.1 windows安装教程 首先配置&#xff1a; anaconda&#xff0c;为了需要conda环境git&#xff0c;为了下载github中的ldsc程序 打开windows电脑中的promote&am…

chatgpt赋能python:Python如何隐藏请求IP地址提高SEO效果

Python如何隐藏请求IP地址提高SEO效果 引言 在进行网站优化的过程当中&#xff0c;隐藏请求的IP地址是一个重要的环节。这个技巧不仅能够提高SEO的效果&#xff0c;还能够保护我们的网络安全&#xff0c;防止遭受黑客攻击。本文将介绍Python如何隐藏请求IP地址&#xff0c;以…

Spring应用启动分析优化

最近在搞应用的启动优化&#xff0c;参考一些可以显著提高 Java 启动速度方法和spring-boot-startup-report实现了此项目&#xff0c;Spring Startup Ananlyzer 采集Spring应用启动过程数据&#xff0c;生成交互式分析报告(HTML)&#xff0c;用于分析Spring应用启动卡点&#x…

让数据不再裸奔:学习使用AES加解密算法

目录 1. application.yml文件配置 2. AES加解密工具类 3. AES消息秘钥、AES秘钥初始向量、转字节数组工具类 4. AES加解密测试 我们为什么要用AES算法来进行加解密&#xff1f; AES&#xff08;Advanced Encryption Standard&#xff09;&#xff0c;又称高级加密标准&am…

C语言之生成随机数方法(C代码实现猜数字游戏)

C语言之生成随机数方法&#xff08;C代码实现猜数字游戏&#xff09; 首先先把猜数字游戏的代码给大家暂时出来&#xff0c;然后我们在根据代码的步骤一步一步的推导 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> #include <tim…