当前位置: 首页 > news >正文

GeoHD - 一种用于智慧城市热点探测的Python工具箱

GeoHD - 一种用于智慧城市热点探测的Python工具箱

详细原理请参考:Yan, Y., Quan, W., Wang, H., 2024. A data‐driven adaptive geospatial hotspot detection approach in smart cities. Trans. GIS tgis.13137.

代码下载:下载

1. 简介

在城市数据分析领域,研究对象的空间分布通常呈现出不均匀性,具有明显的空间异质性。密度较高的点数据往往代表着区域内事件的热点。因此,城市区域内热点的探测成为了城市研究的一个焦点话题,对于规划者、研究人员以及管理部门具有重要的价值。以犯罪热点的探测为例,通过对城市犯罪历史数据的分析可以揭示出犯罪活动发生的原因,进而有助于相关管理部门制定更加有效的犯罪预防策略。在过去的研究中,已经有多种经典的聚类算法或热点分析方法被应用于城市热点探测,比如Getis-Ord空间统计、k均值聚类以及核密度分析等。此外,针对特定研究背景,如交通出行、交通事故和犯罪等,许多学者也提出了相应的热点探测方案。尽管已经出现了一些优秀的基于特定背景的热度可视化工具,如基于交通的transbigdata,但当前的热点探测研究仍然存在一些挑战。现有的研究往往局限于单一的研究背景,缺乏完整的热点探测分析方案。此外,现有的地理处理工具主要停留在热度可视化的层面,难以提供精确的热点定位。由于地理空间数据的复杂性,不同背景的研究者可能会面临操作上的困难,而目前的地理信息系统软件如ArcGIS则需要较高的学习成本。因此,迫切需要开发一种普适性且易于操作的开源热点探测工具,以满足不同研究者对于城市热点分析的需求。
在这里插入图片描述

2. 功能

GeoHD是一个用于地理空间热点探测、可视化与分析的Python工具包。其主要目标在于提供一个易于使用且适用于不同城市研究背景的热点探测与分析工具。GeoHD的工作原理如图1所示。首先,GeoHD对输入数据进行清晰可视化与统计分析,从而获得核密度估计(KDE)结果。接下来,采用窗口分析方法计算栅格数据的像元最大值表面,然后执行密度场表面与像元最大值表面的地图代数差运算,以得到相减结果,即非负值表面。在此阶段,相减结果中每个窗口中为零的位置即代表当前区域的局部热点位置。完成窗口分析后,采用重分类算法将极值区域与除极值以外的区域分为两类。最终,通过该过程获得的极值区域即为当前区域内事件发生的热点。

目前,GeoHD主要包含以下几种功能:

  • 研究数据真实分布的可视化:通过输入点数据,实现对点数据真实地理空间位置的可视化。
  • 固定带宽与自适应带宽的核密度分析:实现了经典的固定带宽核密度估计以及优化的自适应带宽核密度估计,同时提供可调节参数与清晰可视化。
  • 基于固定带宽与自适应带宽的地理空间热点探测:通过结合密度分析和栅格代数,实现了局部研究热点的提取,最终得到热点探测结果。
  • 平面点模式分析:提供了针对热点分布的Ripley G、Ripley F、Ripley J、Ripley K、Ripley L函数图像绘制功能。
  • 矩阵网格与六边形网格的热点分析:实现了基于矩阵网格与六边形网格对空间点数据进行统计,并提供清晰可视化。

GeoHD的开发填补了当前热点探测工具在普适性和易用性方面的空白,为城市研究领域提供了一种全面且有效的分析工具。

3. 使用案例

最近一项基于GeoHD的智慧城市下的自适应热点探测的研究证明了GeoHD工具包的实用性。该研究利用哈尔滨市出租车GPS数据和纽约市犯罪数据进行了热点探测。研究表明,这种热点探测方法能够精确识别城市环境中的热点区域,而不是简单地划分热点区域。该方法能够根据数据的空间分布特征动态调整参数,从而提高了热点检测的准确性和相关性。这使得研究者能够进行更精确的小尺度分析,并根据热点的具体地理位置做出及时的事件特定准备和部署。

4. 教程

文档

我们建议您从文档开始您的 GeoHD 之旅。

使用 pip 安装

该软件包在 PyPi 中可用,需要 Python 3.11 或更高版本。可以使用以下方法进行安装:

$ pip install GeoHD

用法

$ cd test
$ python -m test_automation

您还可以在 Jupyter Notebook 中运行test.ipynb

在真实地图上可视化热点:

visualize_shapefile('data.shp', output_image_path='custom_image.png')

请添加图片描述

解析平面点模式:Ripley G、Ripley F、Ripley J、Ripley K、Ripley L 等。

plot_g_function('data.shp')

请添加图片描述

将研究区域划分为四边形(六边形)网格,并根据划分区域内点数据的密度实现快速可视化。

create_cell_zones(area_file, crash_file)
create_hex_grid_zones(area_file, crash_file)
create_cell_heatmap(area_file, crash_file)
create_hexagonal_heatmap(area_file, crash_file)

请添加图片描述

实现固定带宽的核密度分析:

density_raster = process_shapefile(input_file_path)
plot_density_raster(density_raster,output_data_path, *gpd.read_file(input_file_path).total_bounds)

用于实现自适应带宽的核密度分析:

adaptiveKDE(shp_file,output_data_path)

请添加图片描述

热点识别:

hotspots = extract_hotspots(density_data_path)
visualize_hotspots(np.load(density_data_path), hotspots)

5.引用

github项目地址:如果喜欢的话请给项目一个star

论文请引用:

Yan, Y., 2024. GeoHD: A Python Toolkit for Geospatial Hotspot Detection, Visualization, and Analysis. SSRN Electron. J.

Yan, Y., Quan, W., Wang, H., 2024. A data‐driven adaptive geospatial hotspot detection approach in smart cities. Trans. GIS tgis.13137.

相关文章:

GeoHD - 一种用于智慧城市热点探测的Python工具箱

GeoHD - 一种用于智慧城市热点探测的Python工具箱 详细原理请参考:Yan, Y., Quan, W., Wang, H., 2024. A data‐driven adaptive geospatial hotspot detection approach in smart cities. Trans. GIS tgis.13137. 代码下载:下载 1. 简介 在城市数据…...

记一次Ngnix配置

记一次Ngnix配置 配置Ngnix配置防火墙 假设一个服务器中有一个公网IP、一个内网IP,另外已经部署好后台服务的接口地址为http://内网ip:8088。 配置Ngnix 找到Ngnix的配置文件,通过在Ngnix的安装路径下的 \conf\nginx.conf 文件。 worker_processes 1;…...

2024年国赛高教杯数学建模C题农作物的种植策略解题全过程文档及程序

2024年国赛高教杯数学建模 C题 农作物的种植策略 原题再现 根据乡村的实际情况,充分利用有限的耕地资源,因地制宜,发展有机种植产业,对乡村经济的可持续发展具有重要的现实意义。选择适宜的农作物,优化种植策略&…...

java基础语知识(8)

类之间的关系 在类之间,最常见的关系有: 依赖(“uses-a”);聚合(“has-a”);继承(“is-a”)。 依赖:一种使用关系,即一个类的实现需要另一个类的协助&#x…...

室内定位精度方案对比

室内定位精度方案对比:成本、开发难度与精度的权衡 索引 引言 Wi-Fi 定位方案 定位原理 成本分析 开发难度 定位精度 蓝牙定位方案 定位原理 成本分析 开发难度 定位精度 超宽带(UWB)定位方案 定位原理 成本分析 开发难度 定…...

Pytorch深度学习教程_5_编写第一个神经网络

欢迎来到《pytorch深度学习教程》系列的第五篇!在前面的四篇中,我们已经介绍了Python、numpy及pytorch的基本使用,并在上一个教程中介绍了梯度。今天,我们将探索神经网络,对于神经网络进行概述并进行简单的实践学习 欢…...

ImportError: cannot import name ‘FixtureDef‘ from ‘pytest‘

错误信息表明 pytest 在尝试导入 FixtureDef 时出现了问题。通常是由于 pytest 版本不兼容 或 插件版本冲突 引起的。以下是详细的排查步骤和解决方案: 1. 检查 pytest 版本 首先,确认当前安装的 pytest 版本。某些插件可能需要特定版本的 pytest 才能…...

改BUG:Mock测试的时候,when失效

问题再现: 这里我写了一测试用户注册接口的测试类,并通过when模拟下层的服务,但实际上when并没有奏效,还是走了真实的service层的逻辑。 package cn.ac.evo.review.test;import cn.ac.evo.review.user.UserMainApplication; imp…...

【自动化脚本工具】AutoHotkey (Windows)

目录 1. 介绍AutoHotkey2. 功能脚本集锦2.1 桌面键盘显示 1. 介绍AutoHotkey 支持Windows安装使用,下载地址为:https://www.autohotkey.com/ 2. 功能脚本集锦 2.1 桌面键盘显示 便于练习键盘盲打 脚本地址:https://blog.csdn.net/weixin_6…...

专题--Linux体系

Linux体系结构相关| ProcessOn免费在线作图,在线流程图,在线思维导图 ProcessOn是一个在线协作绘图平台,为用户提供强大、易用的作图工具!支持在线创作流程图、思维导图、组织结构图、网络拓扑图、BPMN、UML图、UI界面原型设计、iOS界面原型设计等。同时…...

【DeepSeek】Mac m1电脑部署DeepSeek

一、电脑配置 个人电脑配置 二、安装ollama 简介:Ollama 是一个强大的开源框架,是一个为本地运行大型语言模型而设计的工具,它帮助用户快速在本地运行大模型,通过简单的安装指令,可以让用户执行一条命令就在本地运…...

Spring AI + Ollama 实现调用DeepSeek-R1模型API

一、前言 随着人工智能技术的飞速发展,大语言模型(LLM)在各个领域的应用越来越广泛。DeepSeek 作为一款备受瞩目的国产大语言模型,凭借其强大的自然语言处理能力和丰富的知识储备,迅速成为业界关注的焦点。无论是文本生…...

如何在本地和服务器新建Redis用户和密码

文章目录 一. Redis安装二. 新建Redis用户,测试连接2.1 本地数据库2.2 线上数据库2.2.1 安装和配置2.2.2 测试连接 三. 配置四. 分布式 一. Redis安装 Redis安装 可以设置开机自动启动,也可以在去查看系统服务,按[win R],输入命…...

jmeter接口测试(一)

一、什么是接口测试?为什么要做接口测试? 接口测试:就是测试项目和项目之间,模块和模块之间,组件和组件之间的数据交互和权限鉴定(鉴权)。 前后端分离:前后端联调。mock模拟&#x…...

Java-11

淘天集团2025届春季校园招聘在线笔试-研发 1。设有一个顺序共享栈storageArray[70],其中栈X的栈顶指针top1的初值为-1,栈Y的栈顶指针top2的初值为70,通过不断进行入栈操作,直到storageArray数组已满,此时top1 top2 …...

js中常用方法整理

数据类型 typeOf()Number()parseInt()parseFloat()- * / %检测数据类型转换为数字转换为整数类型转换为浮点类型非加法的数字运算toString()Boolean()String()转换为字符串,不能转换undefined/null字符串拼接转换为布尔类型转换为字符串、所有…...

umi react+antd 判断渲染消息提示、input搜索、多选按钮组

记得map里返回的每层遍历结构都要带上key(图里没加,最近在接手react,熟悉中......

Day15-后端Web实战-登录认证——会话技术JWT令牌过滤器拦截器

目录 登录认证1. 登录功能1.1 需求1.2 接口文档1.3 思路分析1.4 功能开发1.5 测试 2. 登录校验2.1 问题分析2.2 会话技术2.2.1 会话技术介绍2.2.2 会话跟踪方案2.2.2.1 方案一 - Cookie2.2.2.2 方案二 - Session2.2.2.3 方案三 - 令牌技术 2.3 JWT令牌2.3.1 介绍2.3.2 生成和校…...

【嵌入式常用工具】Srecord使用

文件格式 -Intel 表示hex格式-Motorola 表示S19格式-BINary 表示bin格式 截取指定地址段 srec_cat input.s19 -Motorola -crop 0x80010000 0x80380000 -output output.s19 -Motorola -address-length4填充指定地址段 srec_cat input.s19 -Motorola -fill 0xFF 0x100 0x200 …...

SwiftUI基础组件之HStack、VStack、ZStack详解

文章目录 引言一、HStack(水平堆栈)1.1 基本概念1.2 基本创建1.3 常用属性1.3.1 spacing1.3.2 alignment 二、VStack(垂直堆栈)2.1 基本概念2.2 基本创建2.3 常用属性2.3.1 spacing2.3.2 alignment 三、ZStack(深度堆栈…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层&#xf…...

PostgreSQL——环境搭建

一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在&#xff0…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing

Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...

系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型

本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...

HTML前端开发:JavaScript 获取元素方法详解

作为前端开发者,高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法,分为两大系列: 一、getElementBy... 系列 传统方法,直接通过 DOM 接口访问,返回动态集合(元素变化会实时更新)。…...

Python竞赛环境搭建全攻略

Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型(算法、数据分析、机器学习等)不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...