faster gridf, cancel scaling
[imago.git] / src / gridf_analyzer.py
1 import matplotlib.pyplot as plt
2 from matplotlib import cm
3 import sys
4 import pickle
5 import multiprocessing
6
7 import gridf
8
9 def dist1(task):
10     d, _, _ = gridf.job_br1(task)
11     return d
12
13 def dist2(task):
14     d, _, _ = gridf.job_br2(task)
15     return d
16
17 def error_surface(k, im_l, v1, v2, h1, h2, dv, dh, x_v, y_v, x_h, y_h, size):
18     X = []
19     Y = []
20     Z1 = []
21     Z2 = []
22
23     pool = multiprocessing.Pool(None)
24     
25     for y in xrange(-k, k):
26         tasks = [(im_l, v1, v2, h1, h2, x, y, dv, dh, size) for x in xrange(-k, k)]
27         Z1.append(pool.map(dist1, tasks, 8))
28         Z2.append(pool.map(dist2, tasks, 8))
29
30     fig = plt.figure()
31     s1 = fig.add_subplot(121)
32     s2 = fig.add_subplot(122)
33
34     s1.imshow(Z1, cmap=cm.jet, interpolation='bicubic', 
35                 extent=(-k, k, -k, k), aspect='equal')
36     s1.plot([x_v], [-y_v], 'o')
37     s1.set_ylim(-k, k)
38     s1.set_xlim(-k, k)
39     s2.imshow(Z2, cmap=cm.jet, interpolation='bicubic', 
40                 extent=(-k, k, -k, k), aspect='equal')
41     s2.plot([x_h], [-y_h], 'o')
42     s2.set_ylim(-k, k)
43     s2.set_xlim(-k, k)
44
45     plt.show()