#!/usr/bin/env python # Wenchang Yang (wenchang@princeton.edu) # Tue Apr 28 15:15:46 EDT 2020 if __name__ == '__main__': from misc.timer import Timer wyt = Timer(f'start {__file__}') import sys, os.path, os, glob import xarray as xr, numpy as np, pandas as pd #import matplotlib.pyplot as plt #more imports # if __name__ == '__main__': wyt.check('end import') #start from here ''' data_name = 'precip' ifiles = [f'tmp/chirps.precip.daily.Japan.subregion.{year:04d}.nc' for year in range(2013, 2020) ] ofile_nc = 'chirps.precip.daily.Japan.subregion.2013-2019.nc' ofile_csv = ofile_nc.replace('.nc', '.csv') data_name = 'q2m' trange = pd.date_range('2013-01', '2020-02', freq='MS') ifiles = [f'tmp/era5.q2m.daily.Japan.subregion.{year:04d}-{month:02d}.nc' for year,month in zip(trange.year, trange.month) ] ofile_nc = 'era5.q2m.daily.Japan.subregion.201301-202002.nc' ofile_csv = ofile_nc.replace('.nc', '.csv') ''' data_name = 't2m' trange = pd.date_range('2013-01', '2020-02', freq='MS') ifiles = [f'tmp/era5.t2m.daily.Japan.subregion.{year:04d}-{month:02d}.nc' for year,month in zip(trange.year, trange.month) ] ofile_nc = 'era5.t2m.daily.Japan.subregion.201301-202002.nc' ofile_csv = ofile_nc.replace('.nc', '.csv') if data_name in ('t2m',): func = lambda x: (x-273.15).assign_attrs(units='degC') else: func = lambda x: x ds = xr.open_mfdataset(ifiles, combine='by_coords').load() ds[data_name] = ds[data_name].pipe(func) ds.to_netcdf(ofile_nc) print('[saved]:', ofile_nc) ds[data_name].to_pandas().to_csv(ofile_csv) print('[saved]:', ofile_csv) if __name__ == '__main__': wyt.check(f'end {__file__}')