# loggers
firstday = today - dt.timedelta(days=ndays)
prevdays = []
for dd in range(ndays):
prevdays.append(today - dt.timedelta(days=ndays - dd))
for ll in loggers:
if isinstance(dfiles, list):
lfiles = [ dd[ll] for dd in dfiles ]
else:
lfiles = dfiles[ll]
print(f'{ll}')
df = read_data(lfiles, ftype='DB1', standard=False)
if 'RECORD' in df.columns:
df.drop(columns=['RECORD'], inplace=True)
ndata = np.full((df.shape[1], ndays), 0, dtype=int)
cf = read_data(cfiles[ll], ftype='calib')
for dd in range(ndays):
isday = today - dt.timedelta(days=dd + 1)
for ii, cc in enumerate(df.columns):
maxi = _get_icos_value(cf, cc, 'Max', default=10000.)
mini = _get_icos_value(cf, cc, 'Min', default=-10000.)
ndata[ii, -dd-1] = len(df[(df.index.date == isday) &
((df[cc] < mini) | (df[cc] > maxi))])
sf = pd.DataFrame(ndata, index=df.columns, columns=prevdays)
if 'Profile' in ll:
vmax = 422
elif 'Flora' in ll:
vmax = 288
else:
vmax = 48
fig, ax = plt.subplots(figsize=(6.4, sf.shape[0]/4.))
sns.heatmap(axes=ax, data=sf, vmax=vmax, cmap=cmap, linewidths=0.5,
xticklabels=prevdays, yticklabels=sf.index,
annot=True, fmt='d', cbar=True)
# ax.set_xlabel('Days before today')
ax.set_ylabel('Variable name')
plt.show()