前提:最近公司有一个需求是根据泰森多边形的原理计算基站信号的覆盖范围,因此恶补了下泰森多边形,此处就不对泰森多边形继续描述了,有兴趣的可以在以下网站里看看:

泰森多边形-百度百科

泰森多边形原理

环境:python3.5+

包:numpy,scipy.spatial

主要过程:

通过scipy.spatial的Voronoi包对基站的经纬度进行泰森多边形计算,然后通过得到的类里的部分方法进行计算得到该泰森多边形的边界点,当然需要根据业务场景对这些边界点进行处理后才能符合要求,本次不涉及业务场景,只说明如何得到基站的边界点。

代码:

#伪代码
points_mat=pointsToMat(jizhan_point)#将基站经纬度列表转为矩阵
vor = Voronoi(points_mat)#通过包计算泰森多边形center = vor.points.mean(axis=0)#计算基站的经纬度均值点
ptp_bound = vor.points.ptp(axis=0)#计算基站的经纬度极差finite_segments = [] #存放有限端点的中垂线
infinite_segments = []#存放通过计算后的无限端点的中垂线
for pointidx, simplex in zip(vor.ridge_points, vor.ridge_vertices):simplex = np.asarray(simplex)if np.all(simplex >= 0):finite_segments.append(vor.vertices[simplex])else:i = simplex[simplex >= 0][0]  # finite end Voronoi vertext = vor.points[pointidx[1]] - vor.points[pointidx[0]]  # tangentt /= np.linalg.norm(t)n = np.array([-t[1], t[0]])  # normalmidpoint = vor.points[pointidx].mean(axis=0)direction = np.sign(np.dot(midpoint - center, n)) * nfar_point = vor.vertices[i] + direction * ptp_bound.max()infinite_segments.append([vor.vertices[i], far_point])
dingjian_bian={}
fincount=0
infincount=0
for bian,poi in vor.ridge_dict.items():if dingjian_bian.get(bian) ==None:dingjian_bian[bian]=''if -1 in poi:dingjian_bian[bian]= infinite_segments[infincount]infincount +=1else:dingjian_bian[bian]= finite_segments[fincount]fincount +=1
jizhan_bianjie={}
for index in range(len(jizhan_point)):if jizhan_bianjie.get(index)==None:jizhan_bianjie[index]=[]for k,v in dingjian_bian.items():if index in k:if k[0] ==index:po = [v[0][0],v[0][1]],[v[1][0],v[1][1]]else:po = [v[1][0],v[1][1]],[v[0][0],v[0][1]]if po not in jizhan_bianjie[index]:jizhan_bianjie[index].append([po[0],po[1]])#jizhan_bianjie即为各个基站对应的边界点

原理很简单,就是中垂线原理,然后用已知顶点和基站连线中点吹方向上用极差完成无限变有限,但是这个最后需要一个获取最长路径的工作,即把[1,2],[2,3],[1,9]变为[9,1,2,3]。

泰森多边形之边界计算相关推荐

  1. 详解什么是“无边界计算”技术?

    在当前数据中心,虽然处理器依然是计算的主力,但是越来越多诸如GPU.FPGA的异构计算平台加入应用中来,使计算的方式越来越多样化.简而言之,处理器不再成为唯一的计算工具,这也就是大家在谈的" ...

  2. 《前端图形学实战》几何学在前端边界计算中的应用和原理分析

    前言 之所以会开设这个专栏, 是为了弥补部分程序员对代数和几何学的短板(当然也是为了巩固我的数学基础), 同时在实用价值上, 代数和几何学在编程界也起到了非常重要的推动作用, 比如我们看到的各种建模软 ...

  3. apollo学习之---planning理论到实践(5-3)---路径边界计算

    文章目录 参考文章 示意图 道路边界更新流程图 障碍物边界更新流程 代码 实践 参考文章 tuple类型的使用 Path Bounds Decider 示意图 道路边界更新流程图

  4. 包含对流环热,热流边界,等温边界的稳态热传导方程的FEM求解。

    以下面的问题为例:对于如图所示的平面传热问题, 若上端有给定的热流-2W/m2,即从下往上传输热量,结构下端有确定的温度100°,周围介质温度为20°,在两侧有换热,换热系数为α=100W/㎡/K,热 ...

  5. cad面积计算机,CAD中如何计算面积,计算面积的方法和命令汇总

    在绘图的过程中经常需要查询和计算图形的面积,网上有不少人问这方面的问题.之前比较懒,只是在博客里转了一篇别人的文章,那篇文章虽然写得很全面,但条理不是太清晰.今天又有人问起面积的问题,我想还是花点时间 ...

  6. matlab计算系统过渡过程时间,MATLAB在水电站水力过渡过程计算仿真中的应用

    一.引言水电站水力过渡过程是水.机.电系统相互影响.相互制约的复杂过渡过程,也是水电站实际工作过程中不可避免的一种特殊运行工况.特别是水轮机甩负荷计算是水电站和水力机组设计不可缺少的一项工作.虽然采用 ...

  7. 华为,将智能计算进行到底

    变永远是不变的主题,应对变化唯一的办法是创新. 以IT建设为例,时至今日,用户已经很少再谈某一项具体应用该如何部署,而是会说数字化转型.产业升级这样的大概念.反映在IT基础设施层面也是一样,以服务器为 ...

  8. 采用 MRT-LBM 模拟旋转圆柱绕流---MATLAB代码--王富海2017--基于 MRT-LBM 的流场与声场仿真计算

    %这个例子采用 MRT-LBM 模拟旋转圆柱绕流 %基于 MRT-LBM 的流场与声场仿真计算 --王富海2017 %左边速度边界-泊肃叶流,右边压力边界,上下无滑移壁面(全部用非平衡外推格式) %还 ...

  9. 计算流体力学简介(一)——一些基本概念

    偏微分方程与常微分方程 偏微分方程和常微分方程的区别主要就是体现在待求解函数是一元函数还是多元函数. 多元函数存在对不同自变量的偏导数,因此这种带有多元函数偏导数的方程就是偏微分方程.而对于只有一个自 ...

最新文章

  1. 数据存储之-SQLite数据库一
  2. java写一个音乐播放器源码_求一个JAVA音乐播放器的源代码
  3. java数组二分查找的简单例题_Java基础-练习 数组元素二分查找(折半查找)
  4. 用Ajax将checkbox选中的值发送给后台
  5. 凸包模板(Graham算法)
  6. 日文转换为罗马音_手把手教你掌握韩语40音!入门必备哦
  7. 在IDEA中设置自己的名字和时间
  8. python案例数据集_Python数据集切分实例
  9. python之list与set的区别
  10. boot客户管理系统环境的搭建_LANIF Admin开源免费后台管理系统(React)
  11. 运维工程师最容易出的状况,咋就找不到问题根因呢?
  12. 如何打开oracle的回闪,oracle回闪操作
  13. 【Visual C++】游戏开发笔记四十 浅墨DirectX教程之八 绘制真实质感的三维世界:光照与材质专场
  14. 网页形式的php抓取文件,PHP 抓取网页源文件
  15. 检索的原理和方法步骤
  16. Git介绍、安装、环境配置及常用的Git命令
  17. 【Leetcode】1101. The Earliest Moment When Everyone Become Friends
  18. android版本下载京东,京东下载2021安卓最新版_手机app官方版免费安装下载_豌豆荚...
  19. Pytorch迁移学习加载部分预训练权重
  20. 能力与知识、技能三者之间的区别与联系是什么?

热门文章

  1. linux 文件系统 pe,Linux磁盘和文件系统管理
  2. 条件概率及与其有关的三个概率公式:乘法公式、全概率公式、贝叶斯公式
  3. K8S部署lnmp项目
  4. 我的创作一周年纪念日
  5. 灵性图书馆:好书推荐-《巴夏:来自未来的生命讯息》
  6. 这才是小程序真正价值 但他绝不会取代App
  7. 图像处理——常用阈值分割方法及源码
  8. python中偶数怎么表示_Python程序可计算列表中的偶数和奇数
  9. 【2010年十大网络流行语】颁奖盛典
  10. 风险WiFi无处不在 快改掉相同的用户名和密码