def get_latlon2d(ds, lat, lon):
	lats = ds.lat.values
	lons = ds.lon.values
	dist = ((lats - lat)**2 + (lons-lon)**2)**0.5
	i,j = np.unravel_index(np.argmin(dist, axis=None), dist.shape)
	print("[{}, {}]: {:0.5f}, {:0.5f}".format(i, j, lats[i,j], lons[i,j]))    


#remove 59 non leap days
#shift non leap day back one day


ds = xr.open_dataset('/home/disk/rocinante/DATA/temp/crystal_fire/data/tmax/Tmax_gridMET_1979_2021.nc')
ds = ds.rename({'LAT':'lat', 'LON':'lon'})
#dt = dx.sel(x=slice(8,57), y=slice(2,81))
ds['tmmx'] -= 273.15
df = ds.to_dataframe().reset_index()

df['year'] += 1979
yr = df.year
lpyr = yr.apply(lambda x: calendar.isleap(x))
doy = df.day -  1*((df.day > 59) & ~(lpyr)) + 1
date = pd.to_datetime(yr * 1000 + doy, format='%Y%j')


dfl = df[~((df.day == 59) & (~lpyr))]
lpyr2 = dfl.year.apply(lambda x: calendar.isleap(x))
doy2 = dfl.day -  1*((dfl.day > 59) & ~(lpyr2)) + 1
date = pd.to_datetime(dfl.year * 1000 + doy2, format='%Y%j')
dfl['times'] = date

dfx = dfl[['times', 'x', 'y', 'tmmx', 'lat', 'lon']]
dfx.set_index(['times', 'x', 'y'], inplace=True)
dsx = dfx.to_xarray()
dsx = dsx.drop(['x', 'y'])
dsx = dsx.set_coords(['lat', 'lon'])

dfl[dfx.index.duplicated()] # check

ms = xr.merge([ws, dsx])
ms['tmx7'] = ms.tmmx.rolling(times=7).mean()
ms['tmx60'] = ms.tmmx.rolling(times=60).mean()
ds = ms.sel(times.ws.times)


# fut wrf
k.sel(x=slice(51,75), y=slice(53,91))







ds['lpyr'] = [calendar.isleap(x) for x in ds.year.values]
doy = df.day -  1*((df.day > 59) & ~(lpyr)) + 1
ds['doy'] = ds.day - 1*((ds.day > 59) & ~ds.lpyr) + 1
pd.to_datetime(dfl.year * 1000 + doy2, format='%Y%j')

datetime = (ds['doy'] = ds.day - 1*((ds.day > 59) & ~(((ds.year % 400==0) | (ds.year % 100==0) | (ds.year % 4 == 0)))) + 1)

yrdoy = ds.year * 1000 + ds.day - 1*((ds.day > 59) & ~(((ds.year % 400==0) | (ds.year % 100==0) | (ds.year % 4 == 0)))) + 1
~((ds.year % 400==0) | (ds.year % 100==0) | (ds.year % 4 == 0))

sds = ds.stack(datetime=("year", "day"))
sds['time'] = pd.to_datetime(sds.yrdoy, format='%Y%j')
