from pathlib import Path
from obspy.signal import PPSD

root = Path('/bay200/PPSD')
net = 'GR'
sta = 'FUR'
loc = ''
cha = 'HHZ'
allow_pickle = True


def get_path(year, doy):
    """
    Helper function to facilitate adding up specific dates
    """
    filename = f'{net}.{sta}.{loc}.{cha}.D.{year}.{doy:03d}.npz'
    return str(root / str(year) / net / sta / f'{cha}.D' / filename)


# plot specific dates
# XXX ppsd = PPSD.load_npz(get_path(2025, 100), allow_pickle=allow_pickle)
# XXX ppsd.add_npz(get_path(2025, 101), allow_pickle=allow_pickle)

# plot some wider ranges simply based on glob and what is actually available
ppsd = PPSD.load_npz(get_path(2025, 1))
for path in root.glob(
        f'20??/{net}/{sta}/{cha}.D/{net}.{sta}.{loc}.{cha}.D.*.npz'):
    try:
        ppsd.add_npz(str(path), allow_pickle=allow_pickle)
    except AssertionError as e:
        print(f'ERROR {path} {e}')
        continue

# do the plotting
# ppsd.plot()
ppsd.plot_temporal([1, 0.333, 0.1])
