line_tracking_of_fish_movement/plot_aifl.py

100 lines
4.6 KiB
Python

import numpy as np
import matplotlib.pyplot as plt
from IPython import embed
import helper_functions as hf
import do_check_for_overlap as cfo
from params import *
import matplotlib.colors as mcolors
import os
if __name__ == '__main__':
###################################################################################################################
# load data
###################################################################################################################
# load all the data of one day
filename = sorted(os.listdir('../data/'))[2]
ident = np.load('../../../data_masterthesis/'+filename+'/all_ident_v.npy', allow_pickle=True)
freq = np.load('../../../data_masterthesis/'+filename+'/all_fund_v.npy', allow_pickle=True)
timeidx = np.load('../../../data_masterthesis/'+filename+'/all_idx_v.npy', allow_pickle=True)
t = np.load('../../../data_masterthesis/'+filename+'/all_times.npy', allow_pickle=True)
aifl = np.load('../data/'+filename+'/aifl2.npy', allow_pickle=True)
faifl = np.load('../data/'+filename+'/faifl2.npy', allow_pickle=True)
oofl = np.load('../data/'+filename+'/oofl.npy', allow_pickle=True)
faifl = np.delete(faifl, [0], axis=0)
fish_in_aifl = list(np.unique(np.where(~np.isnan(aifl[:, :, 0]))[1]))
fish_in_faifl = list(np.unique(faifl[:, [1, 3]]))
correct_aifl = sorted(list(set(fish_in_aifl) - set(fish_in_faifl)))
dt = datetime.datetime.strptime(filename[-5:], '%H_%M')
embed()
quit()
###################################################################################################################
# plot traces in oofl
counter = 0
oofl = np.array(oofl)
for i in range(len(oofl[:, 0])):
channel = int(oofl[i, 0])
time_diff = timeidx[channel][ident[channel] == oofl[i][1]][-1] - timeidx[channel][ident[channel] == oofl[i][1]][0]
if time_diff >= 0: #4800
plt.plot(timeidx[channel][ident[channel] == oofl[i][1]],
freq[channel][ident[channel] == oofl[i][1]], Linewidth=2)
plt.text(timeidx[channel][ident[channel] == oofl[i][1]][0] + np.random.rand(1) * 0.3,
freq[channel][ident[channel] == oofl[i][1]][0] + np.random.rand(1) * 0.3,
str(oofl[i][0]) + '_' + str(oofl[i][1]), color='blue')
counter = counter + 1
plt.show()
###################################################################################################################
# plot overlapping traces
new_sorting = cfo.get_list_of_fishN_with_overlap(aifl, fish_in_aifl, timeidx, ident)
for fish_number in new_sorting:
hf.plot_together(timeidx, freq, ident, aifl, int(fish_number), color_vec[0])
###################################################################################################################
# plot fish in faifl
for i in range(len(faifl)):
fishid1 = int(faifl[i, 1])
fishid2 = int(faifl[i, 3])
hf.plot_all_channels(timeidx, freq, ident, aifl, fishid1, fishN2=fishid2)
###################################################################################################################
# plot all traces
fig, ax = plt.subplots(1, 1, figsize=(15 / inch, 8 / inch))
fig.subplots_adjust(left=0.12, bottom=0.15, right=0.98, top=0.98)
for color_counter, fish_number in enumerate(fish_in_aifl):
for channel_idx in [13]:
fish1 = aifl[channel_idx, fish_number, ~np.isnan(aifl[channel_idx, fish_number])]
r1 = len(fish1)
print(fish1)
for len_idx1 in range(r1):
zeit = t[timeidx[channel_idx][ident[channel_idx] == fish1[len_idx1]]]
plot_zeit = []
for i in range(len(zeit)):
plot_zeit.append(dt + datetime.timedelta(seconds=zeit[i]))
plt.plot(plot_zeit,
freq[channel_idx][ident[channel_idx] == fish1[len_idx1]],
Linewidth=1, label=fish_number, color=color_vec[color_counter+40])
ax.set_ylim([450, 1000])
ax.set_xlabel('Time', fontsize=fs)
ax.set_ylabel('EOD frequency [Hz]', fontsize=fs)
ax.make_nice_ax()
ax.timeaxis()
fig.savefig(save_path_pres+'EOD_sorter.pdf')
fig.savefig('../../thesis/Figures/Methods/EOD_sorter.pdf')
plt.show()
###################################################################################################################
# plot
u = np.unique(faifl[:, [1, 3]])
for fish_number in range(len(u)):
hf.plot_together(timeidx, freq, ident, aifl, int(u[fish_number]), color_vec[fish_number])