#!/usr/bin/python3
import xarray as xr
import numpy as np
import argparse
import os
import sys

parser = argparse.ArgumentParser()
parser.add_argument('ifile')
parser.add_argument('odir')
args = parser.parse_args()

ifile = args.ifile
odir = args.odir
gcm = os.path.basename(ifile).split('_')[1]
odir = "{}/{}/".format(odir, gcm)
os.makedirs(odir, exist_ok=True)

ds = xr.open_dataset(ifile)
ds['lon'] = ds.lon[1,:]
ds['lat'] = ds.lat[:,1]
ds['lon'] += 0.00005
ds['lat'] -= 0.00005

milo = -122.34375
malo = -121.03125
mila = 47.09375
mala = 48.15625


minx = np.argmin((ds.lon - milo)**2).values
maxx = np.argmin((ds.lon - malo)**2).values
miny = np.argmin((ds.lat - mila)**2).values
maxy = np.argmin((ds.lat - mala)**2).values

ds = ds.sel(x=slice(minx, maxx), y=slice(miny, maxy))
out = "{}/{}".format(odir, os.path.basename(ifile))
ds.to_netcdf(out)
