我正在开展一个有500,000名参与者的项目。我们在数据库中有他们家的精确坐标,我们希望将这些数据发布给需要它的人来评估我们的参与者彼此之间的距离。
我们非常不愿意发布精确的坐标,因为这是一个匿名项目,重新识别的风险非常高。圆形坐标(大约100米或1公里)对于他们想要实现的目标来说显然不够精确。
一个很好的解决方法就是向他们发送500,000乘500,000矩阵,每对参与者之间的绝对距离,但这意味着2500亿条目,或者更确切地说是1250亿,如果我们删除一半矩阵,因为| A-B | = | B-A |。
我以前从未使用过这类数据,所以我想知道是否有人对如何处理这个问题有一个聪明的想法? (不会向他们发送2 TB数据的东西!)
感谢。
答案 0 :(得分:1)
如果数据的接收者很乐意执行大圆计算以自己计算距离,那么你只需要发送500,000行,但是需要转换纬度和经度。
首先确定数据集的近似地理空间中心,然后计算出将该中心转换为0°N和0°E所需的偏移量。然后将这些相同的偏移应用于用户的纬度和经度。这将使结果以赤道和本初子午线为中心。
如果您的实际数据不太靠近极点,则实际A点和B点之间的距离将非常接近相应的偏移点。
显然,所应用的补偿需要保密。
如果知道您的数据是基于某个特定的地方,这种方法可能无效 - 收件人可能会推断出真实点的位置 - 但这是您需要自己决定的事情。