首页 > 解决方案 > 极坐标的 epsilon 邻域

问题描述

我有一个基于密度的雷达数据库,我尝试使用基于网格的 DBSCAN 算法对其进行聚类。

为了安全处理时间,我不想将极坐标转换为欧几里得空间。

我的问题关注的算法部分是“核心点条件”。基本上就是以下这些。要确定一个点是否为核心点,它的 epsilon-neighbourhood 中需要有超过一定数量的邻居 (MinPoints)。

epsilon 邻域可以如下确定:

  1. 计算点P到数据库中所有其他点的距离。
  2. 确定 epsilon-neighbourhood:最大值范围内的所有点。eps的距离是邻域的一部分。含义 epsilon 是搜索半径。

  3. 核心点条件:如果在其 epsilon-neighbourhood 中至少有 MinPoints,则该点是核心点。

我现在的问题是,如何确定具有方位角 (azi) 和范围 (r) 的极点的 epsilon 邻域。我不完全知道如何计算距离,然后从那里如何确定 epsilon 邻域。

我的最终目标: 雷达具有非等距的远距离采样密度,这意味着靠近雷达的点在方位角方向上的间距比大范围内的点更近。因此,我想实现一个范围相关的 epsilon 向量 eps(r),它定义了 epsilon 方向的搜索半径。


一个简单的方法:


一个简单的方法是计算每个维度的 p 和 q 的距离。

然后我可以确定每个维度中的 epsilon 邻域。你可以把它想象成一个十字+。线性检查 eps_azi 和 eps_r。

问题:如何在圆形或椭圆中找到邻居。所以所有不在十字架上但仍在附近的点。

我试图说明我的问题: 草图问题

红色是简单的解决方案,蓝色是更高级的圆形/椭圆解决方案。

谢谢您的帮助。

标签: geometrydistancenearest-neighbordbscan

解决方案


推荐阅读