我试图找到距离1公里范围内的所有最近邻居。这是我构建树并搜索最近点的脚本,
tree.query_ball_point
从我在pysal页面中读到的内容,它说 -
kd-tree建立在scipy的kd-tree功能之上。如果使用scipy 0.12或更高版本使用scipy.spatial.cKDTree,否则使用scipy.spatial.KDTree。
在我的情况下应该使用cKDTree。这适用于样本数据集,但由于public class MainActivity extends AppCompatActivity {
EventBroadcaster sms;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent ret;
sms = new EventBroadcaster();
sms.setMainActivity(this);
sms.say("Hello from EventBroadcaster");
IntentFilter filter = new IntentFilter();
filter.addAction("android.provider.Telephony.SMS_RECEIVED");
//filter.addCategory(Intent.CATEGORY_DEFAULT);
ret = registerReceiver(sms, filter);
//******************************************//
if (ret == null) {
sms.say("Fault to activate Broadcaster.. Intent = null");
}
}
public void showToast(String message){
// Show Alert
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(getApplicationContext(), message, duration);
toast.show();
}
}
返回索引列表作为结果。每个列表将包含100个元素。对于我的数据点(2百万条记录),这种情况越来越大,并且由于内存问题在某一点之后停止。关于如何解决这个问题的任何想法?
答案 0 :(得分:0)
如果有人为此寻找答案,我已经通过找到一个组的最近邻居(tree.query_ball_point可以处理批次)并写入数据库然后处理下一组来解决它,而不是保留所有在记忆中。谢谢。