mirror of
https://gitlab.science.ru.nl/mthesis-edeboone/m.internship-documentation.git
synced 2024-11-25 16:23:32 +01:00
figure: beacon_field bin_type: hex,square
This commit is contained in:
parent
3e6ba822d7
commit
48b2d6de0f
1 changed files with 31 additions and 18 deletions
|
@ -103,7 +103,13 @@ def calculate_field(field, tx, ant_combi, ref_ant=None, calculate_phase=True):
|
||||||
|
|
||||||
return np.array(xx), np.array(yy), np.array(val)
|
return np.array(xx), np.array(yy), np.array(val)
|
||||||
|
|
||||||
def plot_field(tx, ants, xx, yy, val, ax=None, ref_ant=None, color_label='$\\left( t - \\tau \\right)^2$', plot_phase=None, mask=None,**scatter_kwargs):
|
def plot_field(
|
||||||
|
tx, ants, xx, yy, val,
|
||||||
|
ref_ant=None, plot_phase=None, mask=None,
|
||||||
|
color_label='$\\left( t - \\tau \\right)^2$',
|
||||||
|
ax=None, bin_type='square', colorbar=True,
|
||||||
|
**scatter_kwargs
|
||||||
|
):
|
||||||
if ax is None:
|
if ax is None:
|
||||||
ax = plt.gca()
|
ax = plt.gca()
|
||||||
|
|
||||||
|
@ -117,20 +123,26 @@ def plot_field(tx, ants, xx, yy, val, ax=None, ref_ant=None, color_label='$\\lef
|
||||||
pass
|
pass
|
||||||
elif plot_phase:
|
elif plot_phase:
|
||||||
default_scatter_kwargs['vmax'] = len(ants)*np.pi
|
default_scatter_kwargs['vmax'] = len(ants)*np.pi
|
||||||
#default_scatter_kwargs['cmap'] = 'gray'
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
scatter_kwargs = {**default_scatter_kwargs, **scatter_kwargs}
|
scatter_kwargs = {**default_scatter_kwargs, **scatter_kwargs}
|
||||||
|
|
||||||
grid_plot([tx] + ants, ax=ax)
|
grid_plot([tx] + ants, ax=ax)
|
||||||
if ref_ant is not None:
|
if ref_ant is not None:
|
||||||
ax.set_title("Single reference antenna: {}, f: {}MHz".format(ref_ant.name, f_beacon/1e6))
|
ax.set_title("Single baseline\n reference antenna={}, f={}MHz".format(ref_ant.name, f_beacon/1e6))
|
||||||
else:
|
else:
|
||||||
ax.set_title("All baselines f: {} MHz".format(f_beacon/1e6))
|
ax.set_title("All baselines\n f={} MHz".format(f_beacon/1e6))
|
||||||
|
|
||||||
sc = ax.scatter(xx,yy,c=val, **scatter_kwargs)
|
if bin_type == 'hex': # hexbin
|
||||||
fig = ax.get_figure()
|
sc = ax.hexbin(xx, yy, C=val, **scatter_kwargs)
|
||||||
fig.colorbar(sc, ax=ax, label=color_label)
|
elif bin_type == 'square': # squarebinning
|
||||||
|
_, _, _, sc = ax.hist2d(xx, yy, weights=val, bins=int(len(xx)**0.5), **scatter_kwargs)
|
||||||
|
else: # overlayed markers
|
||||||
|
sc = ax.scatter(xx,yy,c=val, **scatter_kwargs)
|
||||||
|
|
||||||
|
if colorbar:
|
||||||
|
fig = ax.get_figure()
|
||||||
|
fig.colorbar(sc, ax=ax, label=color_label)
|
||||||
|
|
||||||
return ax
|
return ax
|
||||||
|
|
||||||
|
@ -138,9 +150,6 @@ def square_grid(dx=1, N_x=10, dy=None, N_y=None, x_start=0, y_start=0):
|
||||||
N_y = N_x if N_y is None else N_y
|
N_y = N_x if N_y is None else N_y
|
||||||
dy = dx if dy is None else dy
|
dy = dx if dy is None else dy
|
||||||
|
|
||||||
|
|
||||||
print([(N_x,N_y), (dx,dy), (x_start,y_start)])
|
|
||||||
|
|
||||||
return product(
|
return product(
|
||||||
(x_start + n*dx for n in range(N_x)),
|
(x_start + n*dx for n in range(N_x)),
|
||||||
(y_start + n*dy for n in range(N_y)),
|
(y_start + n*dy for n in range(N_y)),
|
||||||
|
@ -183,8 +192,8 @@ if __name__ == "__main__":
|
||||||
|
|
||||||
if 'single' in args.type: # single baseline
|
if 'single' in args.type: # single baseline
|
||||||
### Field
|
### Field
|
||||||
x_low, x_high, N_x = -300, 300, 81
|
x_low, x_high, N_x = -300, 300, 151
|
||||||
y_low, y_high, N_y = -300, 300, 81
|
y_low, y_high, N_y = -300, 300, 151
|
||||||
|
|
||||||
### Geometry
|
### Geometry
|
||||||
ants = [
|
ants = [
|
||||||
|
@ -199,7 +208,7 @@ if __name__ == "__main__":
|
||||||
|
|
||||||
elif args.type == 'square' or args.type == 'tri': # from grid definition
|
elif args.type == 'square' or args.type == 'tri': # from grid definition
|
||||||
### Field
|
### Field
|
||||||
x_low, x_high, N_x = -1800, 1800, 161
|
x_low, x_high, N_x = -1800, 1800, 261
|
||||||
y_low, y_high, N_y = -x_low, -x_high, N_x
|
y_low, y_high, N_y = -x_low, -x_high, N_x
|
||||||
|
|
||||||
### Geometry
|
### Geometry
|
||||||
|
@ -244,20 +253,24 @@ if __name__ == "__main__":
|
||||||
|
|
||||||
xx, yy, val = calculate_field((xs, ys), tx, ant_combi, calculate_phase=plot_phase)
|
xx, yy, val = calculate_field((xs, ys), tx, ant_combi, calculate_phase=plot_phase)
|
||||||
|
|
||||||
mask = None
|
|
||||||
if False and plot_phase:
|
|
||||||
mask = abs(val) > np.pi
|
|
||||||
|
|
||||||
|
|
||||||
kwargs = {}
|
kwargs = {}
|
||||||
|
mask = None
|
||||||
if plot_phase:
|
if plot_phase:
|
||||||
color_label='$\\sqrt{ \\sum \\left(\\varphi(x) - \\Delta \\varphi\\right)^2}$'
|
color_label='$\\sqrt{ \\sum \\left(\\varphi(x) - \\Delta \\varphi\\right)^2}$'
|
||||||
|
mask = abs(val) > np.pi
|
||||||
else:
|
else:
|
||||||
color_label='$\\sqrt{ \\sum \\left(t(x) - \\Delta t\\right)^2}$ [ns]'
|
color_label='$\\sqrt{ \\sum \\left(t(x) - \\Delta t\\right)^2}$ [ns]'
|
||||||
val *= 1e9
|
val *= 1e9
|
||||||
kwargs['vmax'] = 100
|
kwargs['vmax'] = 100
|
||||||
|
if not True:
|
||||||
|
mask = abs(val) > 1.1*kwargs['vmax']
|
||||||
|
|
||||||
ax = plot_field(tx, ants, xx, yy, val, ax=None, ref_ant=ref_ant, mask=mask, color_label=color_label, **kwargs)
|
|
||||||
|
if mask is not None:
|
||||||
|
ax = plot_field([], [], xx, yy, val, cmap='Greys', colorbar=False)
|
||||||
|
|
||||||
|
ax = plot_field(tx, ants, xx, yy, val, ref_ant=ref_ant, mask=mask, color_label=color_label, **kwargs)
|
||||||
|
|
||||||
# if plot_phase:
|
# if plot_phase:
|
||||||
# N_lowest = np.min(len(ant_combi)-1, 10)
|
# N_lowest = np.min(len(ant_combi)-1, 10)
|
||||||
|
|
Loading…
Reference in a new issue