Skip to content

Instantly share code, notes, and snippets.

@caioerick
Created August 4, 2023 13:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save caioerick/8bd379d36f855ded1b5b2b2fb4266264 to your computer and use it in GitHub Desktop.
Save caioerick/8bd379d36f855ded1b5b2b2fb4266264 to your computer and use it in GitHub Desktop.
Rotina para criação de gráficos de horário de coletas e variação da maré obtida para o Terminal da Ponta da Madeira (Maranhã)
coleta = pd.read_excel('../dados/econservation/vale-maranhao/coletas-tmpm-jun23.xlsx')
coleta.loc[coleta['Maré ↓'] == 'Baixamar', 'Identificação da Amostra'] += '-BM'
coleta.loc[coleta['Maré ↓'] == 'Preamar', 'Identificação da Amostra'] += '-PM'
coleta.index = coleta['Data'].astype(str) + ' ' + coleta['Hora'].astype(str)
coleta.index = pd.to_datetime(coleta.index)
mare = pd.read_csv('11-ponta_da_madeira_tabua_2023_0_2023-01-01_-_2023-12-31_1min.csv', index_col='DateTime', parse_dates=['DateTime'])
coleta = pd.concat([mare, coleta], axis=1).dropna().loc[:, ['mare','Identificação da Amostra']].drop_duplicates(subset='Identificação da Amostra')
fig, axs = plt.subplots(1, 1, figsize=(18,5))
# grafico do dia das campanhas
ax = axs
preamar = coleta[coleta['Identificação da Amostra'].str.contains('PM')]
baixamar = coleta[coleta['Identificação da Amostra'].str.contains('BM')]
nivel_medio_mensal = mare['mare'].loc['2023-{0}'.format(coleta.index.strftime('%m').unique()[0])].mean()
ax.set_title('Junho / 2023', font='Arial', fontsize=14)
ax.plot(mare.index, mare['mare'], label='', zorder=2)
ax.plot(preamar.index, preamar.mare, '.', ms=10, color='red', label='P ↑', zorder=0)
ax.plot(baixamar.index, baixamar.mare, '.', ms=10, color='blue', label='B ↓', zorder=0)
ax.legend(fontsize=10, loc='lower right')
ax.xaxis.set_minor_formatter(DateFormatter('%Hh'))
ax.xaxis.set_minor_locator(HourLocator(interval=2))
ax.xaxis.set_major_formatter(DateFormatter('\n%d/%m/%Y'))
ax.xaxis.set_major_locator(DayLocator(interval=1))
for tick in ax.xaxis.get_major_ticks():
tick.label.set_fontsize(14)
ax.set_ylim(-1,6)
ax.set_yticks(np.arange(0,7,1))
ax.set_xlim(coleta.index[0]-pd.Timedelta(hours=6), coleta.index[-1])
ax.axhline(y=nivel_medio_mensal, c='black', zorder=0)
for j in range(len(preamar)):
ax.text(preamar.index[j], preamar.mare[j], preamar['Identificação da Amostra'][j], va='center', ha='center', c='tab:red', fontsize=9, bbox=dict(facecolor='w', edgecolor='red', pad=1.5), zorder=j+5)
for j in range(len(baixamar)):
ax.text(baixamar.index[j], baixamar.mare[j], baixamar['Identificação da Amostra'][j], va='center', ha='center', c='tab:blue', fontsize=9, bbox=dict(facecolor='w', edgecolor='blue', pad=1.5), zorder=j+5)
ax.text(coleta.index[0]+pd.Timedelta(hours=1), -.5, 'Nível médio mensal: {:.2f} m'.format(nivel_medio_mensal))
for label in ax.get_xticklabels(which='minor'):
label.set(rotation=0, horizontalalignment='left', alpha=.8, fontsize=9, font='Arial')
ax.set_xlim(coleta.index[0]-pd.Timedelta(hours=5), coleta.index[-1]+pd.Timedelta(hours=5))
ax.grid(alpha=.3)
#axs[0].set_title('CLASSIFICAÇÃO ATUAL', font='Arial')
plt.subplots_adjust(hspace=.3)
savefig(save, pasta_save_fig=r'C:/Users/caio.costa/Desktop/', title='coletas-jun-2023-vale-maranhacao.jpg', facecolor='w')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment