Add support for ocean time time series

master
Dan Howe 5 years ago
parent c2594c39c6
commit 28b395cf6d

@ -13,27 +13,48 @@ url = 'http://www.mhl.nsw.gov.au/data/realtime/timeseries/'
txt_names = [
'SYDDOW.WaveHeight.csv.dat.txt',
'SYDDOW.WavePeriod.csv.dat.txt',
'OceanTide-213470.Level.csv.dat.txt',
]
for txt_name in txt_names:
# Read text file from MHL website
df = pd.read_csv(url + txt_name, index_col=0, parse_dates=True)
# Create name for exported data
csv_name = os.path.join(input_dir, txt_name.replace('.dat.txt', ''))
def update_master(output_dir, csv_name, df):
"""Update master csv time series with new data.
Args:
output_dir (str): path to time series directory
csv_name (str): name of time series file
df (dataframe): dataframe with new time seies data
Returns:
None
"""
try:
# Load local master table
master = pd.read_csv(csv_name, index_col=0, parse_dates=True)
# Load local master table if it exists
master = pd.read_csv(os.path.join(output_dir, csv_name),
index_col=0,
parse_dates=True)
# Only include timestamps that do not already exist
df = df[~df.index.isin(master.index)]
# Remove existing rows if same timestamps appear in new dataframe
master = master[~master.index.isin(df.index)]
# Update master
master = master.append(df)
# Make sure timestamps are in order
master = master.sort_index()
except FileNotFoundError:
# Create new master table if none exists
master = df
# Export master table
master.to_csv(csv_name)
master.to_csv(os.path.join(output_dir, csv_name))
for txt_name in txt_names:
# Read text file from MHL website
df = pd.read_csv(url + txt_name, index_col=0, parse_dates=True)
# Update local copy
csv_name = txt_name.replace('.dat.txt', '')
master = update_master(output_dir, csv_name, df)

Loading…
Cancel
Save