You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.2 KiB
Python

import os
import re
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
sources = [
{
'source': 'This script',
'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)