python 泰森多边形边界_对于给定点集的泰森多边形的算法实现

article/2025/9/24 17:09:56

百度百科

泰森多边形又叫冯洛诺伊图(Voronoi diagram),得名于Georgy Voronoi,是由一组由连接两邻点线段的垂直平分线组成的连续多边形组成。

泰森多边形是对空间平面的一种剖分,其特点是多边形内的任何位置离该多边形的样点(如居民点)的距离最近,离相邻多边形内样点的距离远,且每个多边形内含且仅包含一个样点。由于泰森多边形在空间剖分上的等分性特征,因此可用于解决最近点、最小封闭圆等问题,以及许多空间分析问题,如邻接、接近度和可达性分析等。

特征:

每个泰森多边形内仅含有一个离散点数据;

泰森多边形内的点到相应离散点的距离最近;

位于泰森多边形边上的点到其两边的离散点的距离相等。

泰森多边形图例:

b33a8f93bc65c6bc341e88af193e5f07.png

算法实现

算法一:

b537eb4cb78fe4e9edd943c99ce6b3f7.png

算法二:

算法二是基于算法一的优化。本文将着重介绍算法二。

1)算法二同样采用特征点以均匀的速度向外扩张的方式进行。既然我们速度一定,那我们不妨设置为1,那么诸多特征点同时同步地向外扩张,说明在相遇时,相遇的特征点是本着相同的速度,以相同的时间到达的相遇地点(在这里是相遇的单元格),那么根据大众熟知的速度路程公式s=v*t,我们知道这两个相遇的特征点距离该相遇点的路程是相等的,也就是距离一样,说明该相遇点是这两个特征点两线的中点。这就符合了泰森多边形的定义(是由一组由连接两邻点线段的垂直平分线组成的连续多边形组成)

2)扩张的速度我们假定为1,基准的核心点,我们设定为特征点所在像素单元的几何中心。我们规定,在以该特征点为圆心的辐射区域内的其他像素单元格的几何中心距离该特征点所在的几何中心的直线距离(根据勾股定理计算即可)小于或者等于某时间点该特征点以速度为1外扩的半径长度(即路程)时(也就是该像素单元格的大部分面积都包含在该时间点特征点辐射半径所划的圆中的时候),将该像素单元格赋值为特征点外扩运动中此时的时间点信息。

计算中心点:(其中红色点为核心特征点,黑色点为其外扩过程中的一个示例点)

178a0ac06b91b3acb79bb385378432e2.png

模拟泰森多边形由核心特征点外扩:(单元格中数值代表外扩到该单元格所用的时间)

570e300b7d70ccbe89113266f99c7382.png

3)以步骤2)中介绍的方式,我们对所有特征点进行相应外扩,假设每个特征点都辐射满整张矩形区域,共辐射出与特征点数量等量的矩形表数量。(其实可以在代码中把这些特征点辐射的不同数值放在一个数组集合中)。

以其中一个特征点辐射满全图为例:(图二是用数值填充满整个矩阵区域后,输出excel,在excel中使用查找替换将相同的数值单元附成相同颜色的背景色)

(注意输出excel时,要输出为“.csv”格式而不是“.xsl”和“.xslx”格式,因为后两种格式有输出行列不超过256的限制,如果你使用矩阵行列小于256,那么就可以使用后两种格式了)

(图一,选中单元即为核心单元点)

8768090145b643d3bd64e919a3880b43.png


http://chatgpt.dhexx.cn/article/SRBDSBLu.shtml

相关文章

泰森多边形算法原理

一、文档目的本文描述了在geomodel模块中,生成泰森多边形所使用的算法。二、概述GIS和地理分析中经常采用泰森多边形进行快速插值,和分析地理实体的影响区域,是解决邻接度问题的又一常用工具。 荷兰气候学家AHThiessen提出了一种根据离散分布…

python 泰森多边形边界_geotools中泰森多边形的生成

概述 本文讲述如何在geotools中生成泰森多边形,并shp输出。 泰森多边形 1、定义 泰森多边形又叫冯洛诺伊图(Voronoi diagram),得名于Georgy Voronoi,是由一组由连接两邻点直线的垂直平分线组成的连续多边形组成。 2、建立步骤 建立泰森多边形算法的关键是对离散数据点合理地…

【ArcGIS】基于泰森多边形求流域面降水量

泰森多边形(Thiessen Polygon)法 泰森多边形又叫冯洛诺伊图(Voronoi diagram),得名于Georgy Voronoi,是一组由连接两邻点线段的垂直平分线组成的连续多边形。一个泰森多边形内的任一点到构成该多边形的控制…

泰森多边形算法 java_泰森多边形构建原理

泰森多边形定义 泰森多边形是荷兰气候学家 A.H.Thiessen 提出的一种根据离散分布的气象站的降雨量来计算平均降雨量的方法,即将所有相邻气象站连成三角形,作这些三角形各边的垂直平分线,于是每个气象站周围的若干垂直平分线便围成一个多边形。…

泰森多边形(Voronoi彩图)的matlab绘制——2

泰森多边形(Voronoi图)的matlab绘制——彩图版 1 Voronoi图简介 泰森多边形是对空间平面的一种剖分,其特点是多边形内的任何位置离该多边形的样点(如居民点)的距离最近,离相邻多边形内样点的距离远&#x…

【Docker】Get Started with Solace

Solace Get Started : https://solace.com/products/event-broker/software/getting-started/Docker安装Solace容器启动Solace访问http://localhost:8080/

Solr的空间索引

一、Solr空间搜索的目的 (1)索引空间点数据和其他形状的数据 (2)通过圆形、正方形或者其他形状进行过滤搜索结果 (3)通过两个点之间的距离或者是两个多边形的形状进行排序或者评分 二、Solr空间搜索的域…

Soler

特点:首队香港孖生兄弟乐队,Julio和Dino是意大利与缅甸的混血儿。现场演出极煽情、极具爆发力。 风格:Soul,Acoustic,Pop Rock. 所有作品由组合自己创作。 专辑:《双声道》中文专辑 语言:广东话、国语、英语、意大利…

Solr空间搜索

空间搜索原理 空间搜索,又名Spatial Search,基于空间搜索技术,可以做到: 1)对Point(经纬度)和其他的几何图形建索引 2)根据距离排序 3)根据矩形,圆形或者…

FAQ详解“Meltdown和Spectre”问题,接踵而来的“Skyfall和Solace”是否仅是骗局?

在Google公司安全团队Project Zero披露Intel处理器Meltdown(熔毁) 和Spectre(幽灵)漏洞后,该漏洞在2018年初震动了计算机世界。现在据说还有两个漏洞:Skyfall和Solace(他们的命名来源于詹姆斯邦德电影的灵感)。据消息来源称,这些漏洞也是物理芯片的问题&…

如何用Jmeter发送消息到Solace JNDI - 自定义配置

如何用Jmeter发送消息到Solace JNDI - 自定义配置 1. 引包2. 配置Solace JNDI3. 配置JMS Publisher 上一篇文章 如何用Jmeter发送消息到Solace JNDI 默认是发到 Default 的 VPN 且对用户名密码没有要求,假如想要发到非 default 的VPN或者是有验证要求的该怎么发呢&…

sola

Solr调研总结 开发类型 全文检索相关开发 Solr版本 4.2 文件内容 本文介绍solr的功能使用及相关注意事项;主要包括以下内容:环境搭建及调试;两个核心配置文件介绍;维护索引;查询索引,和在查询中可以应用的高亮显示、拼写检查、搜索建议、分组统计、拼音检索等功能的使用方…

Docker拉取Solace pubsub+镜像timeout的问题

资料 Solace PubSub 官网 Solace docker-compose.yml 模板下载 遇到的问题 拉取Solace pubsub镜像一直timeout 我的镜像源地址用的是阿里云的,同事也没有遇到过同样的问题。 我切换了各种国内的镜像源地址,都是timeout。最终又切换回阿里云的镜像源地…

如何用Jmeter发送消息到Solace JNDI

如何用Jmeter发送消息到Solace JNDI 缘由1. 引包2. 配置Solace JNDI3. 配置JMS Publisher4. 测试 缘由 最近有个需求,要对Solace的queue发大量的消息,然后就想到用Jmeter,但是国内国外基本都搜不到这部分的内容,于是在这Mark一下…

基于硬件的消息队列中间件 Solace 简介之二

小短篇介绍关于Solace https://blog.csdn.net/aqudgv83/article/details/79495489 . 前面简单介绍了Solace来自于哪家公司, 主要能做哪些事情. 本篇主要进一步介绍Solace作为消息传递的中间件如何工作的. 传统意义上来讲, 每当我们谈到消息中间件时, 首先想到的是基于Message…

JMS,ActiveMQ,Solace和RxJava记录

目录 JMS ActiveMQ 用Java代码实现收发消息 1. 使用JMS方式发送接收消息 ​编辑 2. 在SpringBoot中使用ActiveMQ Solace RxJava 除了本人另外一篇博客的 Kafka 记录(https://blog.csdn.net/Beth_Chan/article/details/111189133)外,其…

“去中心化”和“分布式”的区别

区块链对于很多人来说,是一个概念性的、未来的事物,经常可以听到区块链有着“分布式、去中心化、可信任、匿名性、信息不可逆”等特点,这些特点看起来相互关联,又有所差异。而以太坊创始人V神近日就在推特上表示,尝试用…

为什么说去中心化很重要

去中心化是与中心化相对的一个概念,简单的来说中心化的意思,是中心决定节点。节点必须依赖中心,节点离开了中心就无法生存。去中心化恰恰相反,在一个分布有众多节点的系统中,每个节点都具有高度自治的特征,…

去中心化金融(DeFi)的发展历史

随着Web3.0的兴起,去中心化金融(Decentralized Finance,DeFi)正逐渐成为金融领域的热门话题。DeFi旨在通过区块链技术和智能合约,实现无需信任的金融交易和服务,摆脱传统金融中心化的限制。然而&#xff0c…

去中心化及其局限性

去中心化及其局限性 这张表总结了一部分新的 P2P 网络中的去中心化工具。区块链就是其中的一个! 本次演讲我将提出三个问题:(1)去中心化是什么?我们真的知道答案吗?(2)我们真的想要去…