'''
This code is part of the SIPN2 project focused on improving sub-seasonal to seasonal predictions of Arctic Sea Ice.
If you use this code for a publication or presentation, please cite the reference in the README.md on the
main page (https://github.com/NicWayand/ESIO).
Questions or comments should be addressed to nicway@uw.edu
Copyright (c) 2018 Nic Wayand
GNU General Public License v3.0
'''
# Standard Imports
%matplotlib inline
%load_ext autoreload
%autoreload
import matplotlib
import scipy
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER
import numpy as np
import pandas as pd
import xarray as xr
import xesmf as xe
import os
import glob
import seaborn as sns
import warnings
import datetime
warnings.simplefilter(action='ignore', category=FutureWarning)
# ESIO Imports
from esio import EsioData as ed
from esio import import_data
from esio import ice_plot
# General plotting settings
sns.set_style('whitegrid')
sns.set_context("talk", font_scale=1.5, rc={"lines.linewidth": 2.5})
E = ed.EsioData.load()
# Directories
all_models=['modcansipns_3', 'modcansipns_4']
runType='forecast'
updateall = False
stero_grid_file = E.obs['NSIDC_0051']['grid']
obs_grid = import_data.load_grid_info(stero_grid_file, model='NSIDC')
# Ensure latitude is within bounds (-90 to 90)
# Have to do this because grid file has 90.000001
obs_grid['lat_b'] = obs_grid.lat_b.where(obs_grid.lat_b < 90, other = 90)
# Regridding Options
method='nearest_s2d' # ['bilinear', 'conservative', 'nearest_s2d', 'nearest_d2s', 'patch']
## TODO
# - Get mask
# - Get lat lon bounds
var_dic = {'longitude':'lon','latitude':'lat'}
# Option to shift time stamp from begining of month to end
monthly_in = {'modcansipns_3':True, 'modcansipns_4':True}
for model in all_models:
print('Regridding ', model, '...')
data_dir = E.model[model][runType]['native']
data_out = E.model[model][runType]['sipn_nc']
model_grid_file = E.model[model]['grid']
# Files are stored as one per month, average of ensemble
prefix = 'sic_monthly'
all_files = sorted(glob.glob(os.path.join(data_dir, prefix+'*.nc'), recursive=True))
print("Found ",len(all_files)," files.")
if updateall:
print("Updating all files...")
else:
print("Only updating new files")
weights_flag = False # Flag to set up weights have been created
# Load land/sea mask file
if os.path.basename(model_grid_file)!='MISSING':
ds_mask = xr.open_mfdataset(model_grid_file)
else:
ds_mask = None
for cf in all_files:
# Check if already imported and skip (unless updateall flag is True)
f_out = os.path.join(data_out, os.path.basename(cf).split('_grid_')[1]+'_Stereo.nc') # netcdf file out
if not updateall:
# TODO: Test if the file is openable (not corrupted)
if os.path.isfile(f_out):
print("Skipping ", os.path.basename(cf), " already imported.")
continue # Skip, file already imported
drop_vars = ['time_bnd', 'institution', 'experiment_id', 'source', 'realization', 'sc']
ds = xr.open_mfdataset(cf, drop_variables=drop_vars,
preprocess=lambda x: import_data.preprocess_time_monthly_Cansips(x))
# Shift time stamp to middle of month
if monthly_in[model]:
print("shifting monthly time stamp to middle of month")
ds.coords['init_time'] = ds.init_time + np.timedelta64(15, 'D')
# Rename variables per esipn guidelines
ds.rename(var_dic, inplace=True);
# Apply masks (if available)
if ds_mask:
print('found mask')
# land_mask is the fraction of native grid cell that is land
# (1-land_mask) is fraction ocean
# Multiply sic by fraction ocean to get actual native grid cell sic
# Also mask land out where land_mask==1
ds = ds * (1 - ds_mask.land_mask.where(ds_mask.land_mask<1))
# Calculate regridding matrix
regridder = xe.Regridder(ds, obs_grid, method, periodic=False, reuse_weights=weights_flag)
weights_flag = True # Set true for following loops
# Add NaNs to empty rows of matrix (forces any target cell with ANY source cells containing NaN to be NaN)
if method=='conservative':
regridder = import_data.add_matrix_NaNs(regridder)
# Regrid variables
var_list = []
for cvar in ds.data_vars:
var_list.append(regridder(ds[cvar]))
ds_out = xr.merge(var_list)
# Expand dims
ds_out = import_data.expand_to_sipn_dims(ds_out)
# # Save regridded to netcdf file
ds_out.to_netcdf(f_out)
ds_out = None # Memory clean up
ds = None
print('Saved ', f_out)
Regridding modcansipns_3 ... Found 192 files. Only updating new files Skipping sic_monthly_CCCma-CanCM3_NEW_OPER_original_grid_i20130401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_OPER_original_grid_i20130501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_OPER_original_grid_i20130601.nc already imported. shifting monthly time stamp to middle of month Create weight file: nearest_s2d_64x128_304x448.nc Saved /home/disk/sipn/nicway/data/model/modcansipns_3/forecast/sipn_nc/i20130701.nc_Stereo.nc shifting monthly time stamp to middle of month Reuse existing file: nearest_s2d_64x128_304x448.nc Saved /home/disk/sipn/nicway/data/model/modcansipns_3/forecast/sipn_nc/i20130801.nc_Stereo.nc Skipping sic_monthly_CCCma-CanCM3_NEW_OPER_original_grid_i20140401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_OPER_original_grid_i20140501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_OPER_original_grid_i20140601.nc already imported. shifting monthly time stamp to middle of month Reuse existing file: nearest_s2d_64x128_304x448.nc Saved /home/disk/sipn/nicway/data/model/modcansipns_3/forecast/sipn_nc/i20140701.nc_Stereo.nc shifting monthly time stamp to middle of month Reuse existing file: nearest_s2d_64x128_304x448.nc Saved /home/disk/sipn/nicway/data/model/modcansipns_3/forecast/sipn_nc/i20140801.nc_Stereo.nc Skipping sic_monthly_CCCma-CanCM3_NEW_OPER_original_grid_i20150401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_OPER_original_grid_i20150501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_OPER_original_grid_i20150601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_OPER_original_grid_i20160401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_OPER_original_grid_i20160501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_OPER_original_grid_i20160601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_OPER_original_grid_i20170401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_OPER_original_grid_i20170501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_OPER_original_grid_i20170601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_OPER_original_grid_i20180401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_OPER_original_grid_i20180501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_OPER_original_grid_i20180601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19790401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19790501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19790601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19790701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19790801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19800401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19800501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19800601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19800701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19800801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19810401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19810501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19810601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19810701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19810801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19820401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19820501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19820601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19820701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19820801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19830401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19830501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19830601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19830701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19830801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19840401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19840501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19840601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19840701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19840801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19850401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19850501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19850601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19850701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19850801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19860401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19860501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19860601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19860701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19860801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19870401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19870501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19870601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19870701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19870801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19880401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19880501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19880601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19880701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19880801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19890401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19890501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19890601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19890701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19890801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19900401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19900501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19900601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19900701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19900801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19910401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19910501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19910601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19910701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19910801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19920401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19920501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19920601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19920701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19920801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19930401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19930501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19930601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19930701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19930801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19940401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19940501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19940601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19940701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19940801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19950401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19950501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19950601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19950701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19950801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19960401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19960501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19960601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19960701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19960801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19970401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19970501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19970601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19970701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19970801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19980401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19980501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19980601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19980701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19980801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19990401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19990501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19990601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19990701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i19990801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20000401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20000501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20000601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20000701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20000801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20010401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20010501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20010601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20010701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20010801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20020401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20020501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20020601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20020701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20020801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20030401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20030501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20030601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20030701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20030801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20040401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20040501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20040601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20040701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20040801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20050401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20050501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20050601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20050701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20050801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20060401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20060501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20060601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20060701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20060801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20070401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20070501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20070601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20070701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20070801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20080401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20080501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20080601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20080701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20080801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20090401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20090501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20090601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20090701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20090801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20100401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20100501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20100601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20100701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20100801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20110401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20110501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20110601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20110701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20110801.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20120401.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20120501.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20120601.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20120701.nc already imported. Skipping sic_monthly_CCCma-CanCM3_NEW_original_grid_i20120801.nc already imported. Regridding modcansipns_4 ... Found 193 files. Only updating new files Skipping sic_monthly_CCCma-CanCM4_NEW_OPER_original_grid_i20130401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_OPER_original_grid_i20130501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_OPER_original_grid_i20130601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_OPER_original_grid_i20130801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_OPER_original_grid_i20140401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_OPER_original_grid_i20140501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_OPER_original_grid_i20140601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_OPER_original_grid_i20140801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_OPER_original_grid_i20150401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_OPER_original_grid_i20150501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_OPER_original_grid_i20150601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_OPER_original_grid_i20150801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_OPER_original_grid_i20160401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_OPER_original_grid_i20160501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_OPER_original_grid_i20160601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_OPER_original_grid_i20160801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_OPER_original_grid_i20170401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_OPER_original_grid_i20170501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_OPER_original_grid_i20170601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_OPER_original_grid_i20170801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_OPER_original_grid_i20180401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_OPER_original_grid_i20180501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_OPER_original_grid_i20180601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19790401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19790501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19790601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19790701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19790801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19800401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19800501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19800601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19800701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19800801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19810401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19810501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19810601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19810701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19810801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19820401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19820501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19820601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19820701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19820801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19830401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19830501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19830601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19830701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19830801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19840401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19840501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19840601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19840701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19840801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19850401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19850501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19850601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19850701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19850801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19860401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19860501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19860601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19860701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19860801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19870401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19870501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19870601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19870701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19870801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19880401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19880501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19880601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19880701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19880801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19890401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19890501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19890601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19890701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19890801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19900401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19900501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19900601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19900701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19900801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19910401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19910501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19910601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19910701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19910801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19920401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19920501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19920601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19920701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19920801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19930401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19930501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19930601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19930701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19930801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19940401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19940501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19940601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19940701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19940801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19950401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19950501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19950601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19950701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19950801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19960401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19960501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19960601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19960701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19960801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19970401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19970501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19970601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19970701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19970801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19980401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19980501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19980601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19980701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19980801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19990401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19990501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19990601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19990701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i19990801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20000401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20000501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20000601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20000701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20000801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20010401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20010501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20010601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20010701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20010801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20020401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20020501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20020601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20020701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20020801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20030401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20030501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20030601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20030701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20030801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20040401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20040501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20040601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20040701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20040801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20050401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20050501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20050601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20050701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20050801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20060401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20060501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20060601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20060701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20060801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20070401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20070501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20070601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20070701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20070801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20080401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20080501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20080601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20080701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20080801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20090401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20090501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20090601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20090701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20090801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20100401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20100501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20100601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20100701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20100801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20110401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20110501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20110601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20110701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20110801.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20120401.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20120501.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20120601.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20120701.nc already imported. Skipping sic_monthly_CCCma-CanCM4_NEW_original_grid_i20120801.nc already imported.
# Clean up
if weights_flag:
regridder.clean_weight_file() # clean-up
sic_all = xr.open_mfdataset(f_out)
sic_all
# Set up plotting info
cmap_sic = matplotlib.colors.ListedColormap(sns.color_palette("Blues", 10))
cmap_sic.set_bad(color = 'red')
# Plot original projection
plt.figure(figsize=(20,10))
ax1 = plt.axes(projection=ccrs.PlateCarree())
ds_p = ds.sic.isel(fore_time=8).isel(ensemble=0)
ds_p.plot.pcolormesh(ax=ax1, x='lon', y='lat',
vmin=0, vmax=1,
cmap=matplotlib.colors.ListedColormap(sns.color_palette("Blues", 10)),
transform=ccrs.PlateCarree());
ax1.set_extent([-180, 180, -90, 90], crs=ccrs.PlateCarree())
gl = ax1.gridlines(crs=ccrs.PlateCarree(), linestyle='-')
gl.xlabels_bottom = True
gl.ylabels_left = True
gl.xformatter = LONGITUDE_FORMATTER
gl.yformatter = LATITUDE_FORMATTER
ax1.coastlines(linewidth=0.75, color='black', resolution='50m');
# Plot SIC on target projection
(f, ax1) = ice_plot.polar_axis()
ds_p.plot.pcolormesh(ax=ax1, x='lon', y='lat',
transform=ccrs.PlateCarree(),
cmap=cmap_sic)
ax1.set_title('Original Grid')
# Plot SIC on target projection
(f, ax1) = ice_plot.polar_axis()
ds_p2 = sic_all.sic.isel(init_time=0).isel(fore_time=8).isel(ensemble=0)
ds_p2.plot.pcolormesh(ax=ax1, x='lon', y='lat',
transform=ccrs.PlateCarree(),
cmap=cmap_sic)
ax1.set_title('Target Grid')
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-11-d8b18eee7fdb> in <module>() 9 plt.figure(figsize=(20,10)) 10 ax1 = plt.axes(projection=ccrs.PlateCarree()) ---> 11 ds_p = ds.sic.isel(fore_time=8).isel(ensemble=0) 12 ds_p.plot.pcolormesh(ax=ax1, x='lon', y='lat', 13 vmin=0, vmax=1, AttributeError: 'NoneType' object has no attribute 'sic'