#!/usr/bin/env python from glob import glob import os import pandas as pd import xarray as xr for orig_file in glob('*.nc'): temp_file = orig_file.replace('.nc', '_TEMP.nc') renamed_orig_file = orig_file.replace('.nc', '_no-leap-day.nc') print(f"Converting year from 2001 to 2000 and adding a leap day to {orig_file}...") ds = xr.open_dataset(orig_file) new_ds = ( xr.concat([ ds.sel(date=slice('2001-01-01', '2001-02-28')), ds.sel(date='2001-03-01'), ds.sel(date=slice('2001-03-01', '2001-12-31'))], dim='date') .assign_coords(date=pd.date_range('2000-01-01', '2000-12-31')) ) new_ds.to_netcdf(temp_file, 'w', encoding={var: dict(zlib=True, complevel=5) for var in new_ds.data_vars}) os.rename(orig_file, renamed_orig_file) os.rename(temp_file, orig_file)