import os
import re
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

sources = [
    {
        'source': 'WRL',
        'csv_name': 'levels.csv',
        'tz': 'Etc/GMT-10'
    },
    {
        'source': 'MHL',
        'csv_name': 'OceanTide-213470.Level.csv',
        'tz': 'Etc/GMT-10'
    },
    {
        'source': 'BOM',
        'csv_name': 'NSW_TP007.csv',
        'tz': 'Australia/Sydney'
    },
]

fig, ax = plt.subplots(1, 1, figsize=(7, 4))

for s in sources:
    df = pd.read_csv(s['csv_name'], index_col=0, parse_dates=True)
    try:
        df = df.tz_localize(s['tz'])
    except TypeError:
        pass

    ax.plot(df.iloc[:, 0], label=s['source'])  # Predicted tide in first column

ax.legend()
ax.set_xlim('2019-11-29', '2019-12-02')

ax.set_ylabel('Predicted tide (m LAT)', labelpad=10)
ax.xaxis.set_major_formatter(mdates.DateFormatter('%b-%d  %H:%M'))
ax.xaxis.set_tick_params(rotation=45)

ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)

png_name = os.path.join(
    os.path.dirname(__file__),
    os.path.basename(__file__).replace('.py', '.png').replace('_', '-'))
plt.savefig(png_name, bbox_inches='tight', dpi=300)
