用于确定位置之间距离的方法/工具



我在一家医疗保健公司工作,掌握患者的位置信息(地址、城市、州、邮编)。我正试图确定居住在5个特定地点附近的患者比例。我想要的答案是"25%的患者住在离#1位置最近的地方,10%离#2位置最近,等等。"我希望有人能给我指明正确的方向(要使用的应用程序/要采取的方法)。

数据存储在Tableau摘录中,但使用Excel中的数据。

为了方便起见,我有以下申请:-Tableau-Excel-Alteryx-Python-R

有多个任务要解决这个问题。您可能需要在不同阶段的不同工具之间划分职责,例如使用Python或R提前进行一些数据准备和丰富工作,然后在这个过程中使用Tableau进行一些交互式可视化。

除了你提到的工具之外,我建议花一些时间熟悉空间数据库,比如开源的PostGIS。Oracle和Microsoft的数据库也有空间扩展。使用空间数据库,您可以存储空间数据,如点、多边形和路径以及关系数据,它们还内置了空间功能。

要考虑的主要任务:

  • 地理编码-将地址转换为空间坐标。为此,您将希望使用地理编码web服务,可能会从Python或R中调用它。这是您在准备新数据进行分析时想要做的事情,然后存储结果以供稍后阶段重用。

  • 计算voronoi多边形。该算法使用多边形平铺平面,以便多边形中的所有点都离特定点最近。因此,如果你想知道哪些区域最靠近5家医院中的每一家,voronoi图会将地图划分为不重叠的区域,每个医院的一个多边形包含比其他任何医院都更靠近该医院的区域。因此,如果你的医院不动,你应该计算一次voronoi多边形,并存储结果以供重用。Python和R中有一些库可以做到这一点。PostGIS还具有计算voronoi多边形的功能。

  • 命中测试。此步骤测试点是否位于多边形内。您可以通过调用专用的R或Python函数来执行命中测试,但我建议使用PostGIS这样的空间数据库。然后,您可以通过调用函数或使用INTERSECTS空间联接运算符来执行命中测试。将多边形加载到数据库后,可以通过为多边形构建空间索引来优化性能。

  • 演示、总结。这就是Tableau的帮助所在。如果使用空间数据库,则可以直接从空间数据库中显示点和多边形等空间数据,还可以轻松计算汇总统计信息,如您提到的百分比。

Tableau的最新版本对空间数据有更多的支持,可以计算距离和缓冲区,尽管将这些工作推入空间数据库可能会更快。

这一点可能对许多人来说是显而易见的,但要明确的是。。。当你测量的点,比如医院,有静态位置时,上面描述的方法表现得很好,所以花时间预先计算Voronoi多边形和创建任何空间索引是值得的,而且当你有很多点想要测试时也是值得的。在这些情况下,预先计算的多边形和空间索引可以带来性能提升。

对于较小的数据集,您当然可以计算每个可能的源和每个可能的目的地之间的距离,然后选择距离最小的连接。随着数据点数量的增长,这种简单但暴力的方法变得不太可行,在这种情况下,完成上述步骤更值得。

通过使用Alteryx的Spatial工具,可以通过多种方式在Alteryx中实现这一点。你可以考虑的一些通用方法是使用距离工具计算每个"地址"到每个"位置"的距离,对每个"地址"到每个"地点"的距离进行排名,然后使用汇总工具,你可以按排名和"地点"对它们进行分组,并查看各种统计数据。

从这个数据集,你可以用多种方式在Tableau中可视化,发挥创意!

你可以在Excel中计算这些距离,而不需要太多麻烦。如果你有纬度和经度,两点之间距离的公式是:

=ACOS(COS(RADIANS(90-Lat1)) *COS(RADIANS(90-Lat2)) +SIN(RADIANS(90-Lat1)) *SIN(RADIANS(90-Lat2)) *COS(RADIANS(Long1-Long2))) *6371

我认为你可以用Alteryx、Python甚至R来写这篇文章。然后在Tableau中可视化。我做了一些类似于英国学校使用Alteryx的事情。查看这篇博客文章,了解我使用的Alteryx工具及其工作原理的详细信息。https://tarsolutions.co.uk/blog/alteryx-tableau-display-uk-schools-data/

最新更新