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