from datetime import datetime, timedelta
import os

import numpy as np

if __name__ == "__main__":
    '''
    This script is used to link VIMS archived NWM
    '''
    startdate = datetime(2023, 5, 2)
    rnday = timedelta(days=3)
    basepath = '/sciclone/schism10/lcui01/schism20/ICOGS/Pacific/oper_3D/Source_sink/NWM/'

    timevector = np.arange(startdate, rnday+timedelta(hours=1), timedelta(hours=1)).astype(datetime)
    print(timevector)

    layers = ['conus', 'alaska', 'hawaii']
   
    for layer in layers:

        for i, date in enumerate(timevector):
            if date.hour == 0:
                date2 = date - timedelta(days=1)
                if layer == 'conus' or layer == 'alaska':
                    src = f'{basepath}/{date2.strftime("%Y%m%d")}/nwm.t00z.medium_range.channel_rt_1.f024.{layer}.nc'
                elif layer == 'hawaii':
                    src = f'{basepath}/{date2.strftime("%Y%m%d")}/nwm.t00z.short_range.channel_rt.f02400.{layer}.nc'
            else:
                if layer == 'conus' or layer == 'alaska':
                    src = f'{basepath}/{date.strftime("%Y%m%d")}/nwm.t00z.medium_range.channel_rt_1.f{int(date.hour):03d}.{layer}.nc'
                elif layer == 'hawaii':
                    src = f'{basepath}/{date.strftime("%Y%m%d")}/nwm.t00z.short_range.channel_rt.f{int(date.hour):03d}00.{layer}.nc'
            dst = f'{basepath}/cached/nwm.t00z.{date.strftime("%Y%m%d%H")}.{layer}.nc'
            print(src)
            print(dst)
            os.symlink(src, dst)
