def cluster_newsitems(qs, radius=26): """ A convenience function for clustering a newsitem queryset. Returns: a mapping of scale -> list of clusters for that scale. """ return clustering.cluster_scales( dict([(ni.id, (ni.location.centroid.x, ni.location.centroid.y)) for ni in qs if ni.location]), radius)
start = time.time() ret_val = f(*args, **kwargs) print >> sys.stderr, "%s took %.4f seconds" % (label, time.time()-start) return ret_val def randomize(L): import copy, random Lprime = copy.copy(L) random.shuffle(Lprime) return Lprime def main(): buffer = 20 objs = gen_test_objs(rand_seed="foo") bunches = timeit("cluster", cluster.buffer_cluster, objs, buffer) display(bunches, buffer=buffer, f=print_bunches) if __name__ == "__main__": print "main:" main() print "cluster_by_scale:" for bunch in cluster_by_scale(sample.sample_pts, 51, 19200): print "%3d objects: center (%.4f, %.4f)" % (len(bunch.objects), bunch.x, bunch.y) print "cluster_scales:" clusters_by_scale = cluster_scales(sample.sample_pts, 26) from django.utils.simplejson import dumps print dumps(clusters_by_scale, cls=json.ClusterJSON, sort_keys=True, indent=2) #import pprint #pprint.pprint(clusters_by_scale)
def randomize(L): import copy, random Lprime = copy.copy(L) random.shuffle(Lprime) return Lprime def main(): buffer = 20 objs = _gen_test_objs(rand_seed="foo") bunches = timeit("cluster", cluster.buffer_cluster, objs, buffer) display(bunches, buffer=buffer, f=print_bunches) if __name__ == "__main__": print "main:" main() print "cluster_by_scale:" for bunch in cluster_by_scale(sample.sample_pts, 51, 19200): print "%3d objects: center (%.4f, %.4f)" % (len( bunch.objects), bunch.x, bunch.y) print "cluster_scales:" clusters_by_scale = cluster_scales(sample.sample_pts, 26) from django.utils.simplejson import dumps print dumps(clusters_by_scale, cls=json.ClusterJSON, sort_keys=True, indent=2) #import pprint #pprint.pprint(clusters_by_scale)