Python 将随机分布的数据排序到规则网格中

Python 将随机分布的数据排序到规则网格中,python,Python,我正试图将分散在全球各地的数据按常规的lat/lon网格排序。 我可以遍历所有数据,检查它们属于哪个网格单元,然后将它们附加到每个单元的列表中。在我看来,这种方法时间长,效率不高 我确信这不是一个新问题,但我一直无法在网络上找到解决方案。有人有什么建议或者可以给我举个例子或教程吗?我相信geohashing会很有用,在这种情况下你可以使用它。这个名为“示例实现”的博客是用Java编写的,但Python版本并没有太大不同 long hash = 0; double minLat = minLatI

我正试图将分散在全球各地的数据按常规的lat/lon网格排序。 我可以遍历所有数据,检查它们属于哪个网格单元,然后将它们附加到每个单元的列表中。在我看来,这种方法时间长,效率不高


我确信这不是一个新问题,但我一直无法在网络上找到解决方案。有人有什么建议或者可以给我举个例子或教程吗?

我相信geohashing会很有用,在这种情况下你可以使用它。这个名为“示例实现”的博客是用Java编写的,但Python版本并没有太大不同

long hash = 0;
double minLat = minLatI;
double maxLat = maxLatI;
double minLon = minLonI;
double maxLon = maxLonI;
int i = 0;
while (true) {
    if (minLat  midLat) {
            hash |= 1;
            minLat = midLat;
        } else
            maxLat = midLat;
    }

    hash <<= 1;
    if (minLon  midLon) {
            hash |= 1;
            minLon = midLon;
        } else
            maxLon = midLon;
    }

    i++;
    if (i < iterations)
        hash <<= 1;
    else
        break;
}
return hash;
long hash=0;
双minLat=minLatI;
双maxLat=maxLatI;
双米隆=米隆尼;
双maxLon=maxLonI;
int i=0;
while(true){
if(minLat midLat){
散列|=1;
minLat=midLat;
}否则
maxLat=midLat;
}

散列数据集有多大?根据规模的不同,这可以是Python数据结构练习,也可以是对大数据的深入研究。另外,你能举一个数据的例子,以便更容易地看到你想要实现的目标。数据集可能相当大,如果我想的话,它可以达到百万。数据将是lat、lon、data1、data2,。。。这也是可调的。我目前有numpy数组中的数据,每个变量都在一个单独的数组中,但它们也可以组合。感谢您的回答,我将尝试一下,让您知道它是如何工作的:)