Skip to content

Commit ca5d424

Browse files
committed
Merge remote-tracking branch 'origin/more_docs' into more_docs
2 parents 36d0b29 + 04f7e2a commit ca5d424

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

ibllib/atlas/flatmaps.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def circles(N=5, atlas=None, display='flat'):
2424
nlast = 2000 # 25 um for 5mm diameter
2525
n = int((k + 1) * nlast / N)
2626
r = .4 * (k + 1) / N
27-
theta = np.linspace(0, 2 * np.pi, n) - np.pi / 2
27+
theta = (np.linspace(0, 2 * np.pi, n) + np.pi / 2)
2828
sz = np.r_[sz, r * np.exp(1j * theta)]
2929
level = np.r_[level, theta * 0 + k]
3030

@@ -36,20 +36,28 @@ def circles(N=5, atlas=None, display='flat'):
3636

3737
s = Bunch(
3838
x=np.real(sz) * np.diff(xlim) + centroid[1],
39-
y=np.imag(sz) * np.diff(ylim) + centroid[0]
39+
y=np.imag(sz) * np.diff(ylim) + centroid[0],
40+
level=level,
41+
distance=level * 0,
4042
)
41-
s['distance'] = np.r_[0, np.cumsum(np.abs(np.diff(s['x'] + 1j * s['y'])))]
4243

43-
fcn = interp1d(s['distance'], s['x'] + 1j * s['y'])
44+
# compute the overall linear distance for each circle
45+
d0 = 0
46+
for lev in np.unique(s['level']):
47+
ind = s['level'] == lev
48+
diff = np.abs(np.diff(s['x'][ind] + 1j * s['y'][ind]))
49+
s['distance'][ind] = np.cumsum(np.r_[0, diff]) + d0
50+
d0 = s['distance'][ind][-1]
4451

52+
fcn = interp1d(s['distance'], s['x'] + 1j * s['y'], fill_value='extrap')
4553
d = np.arange(0, np.ceil(s['distance'][-1]))
4654

4755
s_ = Bunch({
4856
'x': np.real(fcn(d)),
4957
'y': np.imag(fcn(d)),
50-
'level': interp1d(s['distance'], level, kind='nearest')(d)
58+
'level': interp1d(s['distance'], level, kind='nearest')(d),
59+
'distance': d
5160
})
52-
s_['distance'] = np.r_[0, np.cumsum(np.abs(np.diff(s_['x'] + 1j * s_['y'])))]
5361

5462
if display == 'flat':
5563
ih = np.arange(atlas.bc.nz)

0 commit comments

Comments
 (0)