Created
August 4, 2023 13:09
-
-
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ã)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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