{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook outlines the steps needed to change the resolution of the 2D domain.\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import netCDF4 as nc\n", "\n", "from salishsea_tools import nc_tools\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Changing the Vertical resolution \n", "To change the vertical resolution, you need to work through the followinh steps.\n", "\n", "1. Set new resolution in NEMO.\n", "2. Interpolate initial conditions onto new grid.\n", "3. Interpolate bounday conditions onto new grid.\n", "\n", "\n", "## 1. Set new resolution in NEMO\n", "\n", "###a. Choose the grid levels.\n", "The vertical resolution is set through a number of options in the namelist.domain.\n", "\n", " ppsur = 999999.\n", " ppa0 = 999999.\n", " ppa1 = 999999.\n", " ppkth = 25.\n", " ppacr = 3.\n", " ldbletanh = .FALSE. ! use double tanh true or false\n", " ppa2 = 0 Double tanh function parameters\n", " ppkth2 = 0 \n", " ppacr2 = 0 \n", " \n", "These parameters set the grid spacing and depth at each grid level as defined by:\n", "\n", "$$ z(k) = ppsur + ppa0k + ppa1 ppacr \\log(\\cosh(\\frac{k-ppkth}{ppacr})) + ppa2 ppacr2 \\log\\cosh(\\frac{k-ppkth2} {ppacr2})) $$ \n", "\n", "$$ e3(k) = ppa0k + ppa1 \\tanh(\\frac{k-ppkth}{ppacr}) + ppa2\\tanh(\\frac{k-ppkth2}{ppacr2}) $$\n", "\n", "where $k$ is the grid level, $z(k)$ is the depth of the grid level, and $e3(k)$ is the grid spacing at that grid level (NEMO manual). Note that the second hyperbolic tan is only used if ldbletanh=.TRUE.\n", "\n", "Note: ppsur should be set so that z(1) = 0\n", "\n", "You should experirment with these settings in a notebook. Here is an example of a double tanh profile." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def NEMO_tanh(ks, a, kth, acr):\n", " \"\"\"A generic tanh used in NEMO\"\"\"\n", " return a* np.tanh((ks-kth)/acr)\n", "\n", "def NEMO_tanh_integral(ks, a, kth, acr):\n", " \"\"\"A generic integrated tanh used in NEMO grid\"\"\"\n", " return a*acr*np.log(np.cosh((ks-kth)/acr))" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ppsur -83.1898878903\n", "ppa0 8.19973820108\n", "Surface: 1.42108547152e-14\n", "First grid cell thickness 1.0\n", "Bottom: 428.789503531\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ks = np.arange(1,41) # Remember Fortan starts counting at 1.\n", "\n", "#Parameters\n", "ppa1 = 0.5\n", "ppacr = 2.\n", "ppkth = 12\n", "ppa2 = 6.7\n", "ppacr2 =2.2\n", "ppkth2 = 13.\n", "#ensure first grid cell has spacing 1\n", "ppa0 = 1 -NEMO_tanh(ks[0], ppa1, ppkth, ppacr) - NEMO_tanh(ks[0], ppa2, ppkth2, ppacr2)\n", "#ensure first grid point is at the surface (0)\n", "ppsur = - (ppa0 + NEMO_tanh_integral(ks[0],ppa1,ppkth,ppacr) + NEMO_tanh_integral(ks[0],ppa2,ppkth2,ppacr2))\n", "\n", "#define grid spacing (dzs) and grid levels (zs)\n", "dzs = ppa0 + NEMO_tanh(ks, ppa1, ppkth, ppacr) + NEMO_tanh(ks, ppa2, ppkth2, ppacr2)\n", "zs = ppsur + ppa0*ks + NEMO_tanh_integral(ks,ppa1,ppkth,ppacr) + NEMO_tanh_integral(ks,ppa2,ppkth2,ppacr2)\n", "\n", "#plot\n", "fig,axs=plt.subplots(1,3,figsize=(15,5))\n", "for ax in axs:\n", " ax.plot(dzs,zs,'-o')\n", " ax.grid()\n", " ax.set_xlabel('Grid spacing (m)')\n", " ax.set_ylabel('Depth (m)')\n", "axs[0].set_ylim([450,0])\n", "axs[1].set_ylim([80,0])\n", "axs[2].set_ylim([30,0])\n", "print 'ppsur', ppsur\n", "print 'ppa0', ppa0\n", "print 'Surface: ',zs[0]\n", "print 'First grid cell thickness', dzs[0]\n", "print 'Bottom:', zs[-1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "###b. Generate mesh_mask.nc file for interpolation\n", "Now that that you have decided on a different vertical grid structure, add the above parameters to your namelist.domain and set up a \"fake\" simulation. The purpose of the fake simulation is to generate a new mesh_mask.nc file which contains the grids for your new domain. Once you have the new grid, you can interpolate the boundary and initial conditions. \n", "\n", "Run NEMO with nn_msh = 1 in namelist.domain. You only need to run a short simulation (one time step). This will generate a file called mesh_mask.nc\n", "\n", "Copy this file into the workspace where you'll be interpolating the boundary conditions and initial conditions.\n", "\n", "#2. Interpolate initial conditions\n", "\n", "The new mesh gives us the z-levels needed for interpolation. Choose your initial condition file to interpolate.\n", "\n", "Open old dataset" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 0.50000027 1.50000314 2.5000115 3.50003055 4.50007042\n", " 5.50015083 6.50031022 7.50062342 8.50123623 9.50243254\n", " 10.5047653 11.50931127 12.51816684 13.53541212 14.56898216\n", " 15.63428737 16.76117342 18.00713456 19.48178514 21.38997868\n", " 24.10025665 28.22991514 34.68575798 44.51772486 58.48433368\n", " 76.58558445 98.06295924 121.8665184 147.08945807 173.11448217\n", " 199.57304923 226.26030574 253.06663733 279.93454976 306.83419736\n", " 333.75016973 360.6745318 387.60320347 414.53408835 441.46610968]\n" ] } ], "source": [ "#open old file\n", "fold = nc.Dataset('/data/nsoontie/MEOPAR/2Ddomain/initial_conditions/TS_uniform_36.nc')\n", "Sold = fold.variables['vosaline'][:]\n", "Told = fold.variables['votemper'][:]\n", "#masking\n", "Sold = np.ma.masked_values(Sold,0)\n", "Told = np.ma.masked_values(Told,0)\n", "#old grid\n", "f=nc.Dataset('/data/nsoontie/MEOPAR/2Ddomain/grid/mesh_mask.nc')\n", "gdept_old = f.variables['gdept_0'][0,:]\n", "xold = f.variables['nav_lon'][:]\n", "yold = f.variables['nav_lat'][:]\n", "print gdept_old" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Open new mesh file" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 0.50003511 1.50045013 2.50187922 3.50584388 4.51615047\n", " 5.54231215 6.60804415 7.77197409 9.17587852 11.14406872\n", " 14.32758141 19.71521759 28.14229202 39.53160858 52.97109604\n", " 67.5062027 82.54394531 97.79561615 113.13538361 128.51092529\n", " 143.90090942 159.29672241 174.69488525 190.09399414 205.49346924\n", " 220.89311218 236.2928009 251.69252014 267.09225464 282.49200439\n", " 297.89172363 313.29147339 328.69119263 344.09094238 359.49069214\n", " 374.89041138 390.29016113 405.68991089 421.08963013 436.48937988]\n", "[ 0.50003508 1.50045009 2.50187922 3.50584399 4.51615035\n", " 5.54231202 6.60804398 7.77197408 9.17587888 11.14406885\n", " 14.32758163 19.71521847 28.14229296 39.53160899 52.97109699\n", " 67.50620429 82.54394591 97.79561875 113.13538312 128.5109245\n", " 143.90091533 159.29672913 174.69488759 190.0939899 205.49347212\n", " 220.89310727 236.29280398 251.69252548 267.09225695 282.49199245\n", " 297.89172956 313.29146732 328.69120534 344.09094347 359.49068165\n", " 374.89041983 390.29015803 405.68989623 421.08963443 436.48937263]\n" ] } ], "source": [ "mesh = nc.Dataset('/data/nsoontie/MEOPAR/2Ddomain/vertical_resolution/dbl_tanh/mesh_mask.nc')\n", "gdept = mesh.variables['gdept_0'][0,:,:,:]\n", "e3t = mesh.variables['e3t_0'][0,:,:,:]\n", "gdept_1d = mesh.variables['gdept_1d'][0,:]\n", "# multi dimensional because of patrial cells\n", "print gdept[:,0,0]\n", "print gdept_1d" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Interpolate" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [], "source": [ "Tnew = np.copy(Told)\n", "Snew = np.copy(Sold)\n", "for j in np.arange(Tnew.shape[2]):\n", " for i in np.arange(Tnew.shape[3]):\n", " Tnew[0,:,j,i] = np.interp(gdept[:,j,i], gdept_old, Told[0,:,j,i])\n", " Snew[0,:,j,i] = np.interp(gdept[:,j,i], gdept_old, Sold[0,:,j,i])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Check it makes sense" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vmin=0;vmax=14\n", "fig,axs =plt.subplots(1,2)\n", "mesh=axs[0].pcolormesh(np.arange(Tnew.shape[-1]),gdept[:,5,:],Tnew[0,:,5,:],vmin=vmin,vmax=vmax)\n", "plt.colorbar(mesh,ax=axs[0])\n", "axs[0].set_title('New')\n", "mesh=axs[1].pcolormesh(np.arange(Told.shape[-1]),gdept_old[:],Told[0,:,5,:],vmin=vmin,vmax=vmax)\n", "plt.colorbar(mesh,ax=axs[1])\n", "axs[1].set_title('Old')" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n4g7AcRxnRPn//z1biPtrH3YAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vmin=20;vmax=32\n", "fig,axs =plt.subplots(1,2)\n", "mesh=axs[0].pcolormesh(np.arange(Snew.shape[-1]),gdept[:,5,:],Snew[0,:,5,:],vmin=vmin,vmax=vmax)\n", "plt.colorbar(mesh,ax=axs[0])\n", "axs[0].set_title('New')\n", "mesh=axs[1].pcolormesh(np.arange(Sold.shape[-1]),gdept_old[:],Sold[0,:,5,:],vmin=vmin,vmax=vmax)\n", "plt.colorbar(mesh,ax=axs[1])\n", "axs[1].set_title('Old')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Save in a new file" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def save_interopolated_netcdf_initial(filename):\n", " \"\"\"Save the new interpolate T+S initial conditions in a netcdf file\"\"\"\n", " new_TS = nc.Dataset(filename, 'w')\n", " nc_tools.init_dataset_attrs(\n", " new_TS, \n", " title='2D T+S initialization - interpolated', \n", " notebook_name='Changing Resolution.ipynb', \n", " nc_filepath=filename,\n", " comment='Interpolated T+S initial condtions for alternate vertical grid spacing')\n", " new_TS.createDimension('y', 10)\n", " new_TS.createDimension('x', 1100)\n", " new_TS.createDimension('deptht',size = len(gdept_old))\n", " new_TS.createDimension('time_counter', None)\n", " nc_tools.show_dimensions(new_TS)\n", " # variables\n", " y = new_TS.createVariable('y', 'float32', ('y','x'))\n", " y.long_name = 'spanwise'\n", " y.units = 'km'\n", " y[:] =yold\n", " x = new_TS.createVariable('x', 'float32', ('y','x'))\n", " x.long_name = 'streamwise'\n", " x.units = 'km'\n", " x[:] = xold\n", " deptht = new_TS.createVariable('deptht', 'float32', ('deptht'))\n", " deptht.long_name = 'Depth'\n", " deptht.units = 'm'\n", " deptht.positive = 'down'\n", " deptht[:] = gdept_1d\n", " time_counter = new_TS.createVariable('time_counter', 'float32', ('time_counter'))\n", " time_counter.units = 'seconds since 2003-08-09 0:00:00'\n", " time_counter.long_name = 'Time axis'\n", " vosaline = new_TS.createVariable('vosaline', 'float32', \n", " ('time_counter','deptht','y','x'))\n", " vosaline.units = 'none'\n", " vosaline.long_name = 'Practical Salinity' \n", " vosaline.coordinates = 'x y deptht time_counter'\n", " vosaline.grid = '2D bathy'\n", " vosaline[0] =Snew\n", " votemper = new_TS.createVariable('votemper', 'float32', \n", " ('time_counter','deptht','y','x'))\n", " votemper.units = 'degC'\n", " votemper.long_name = 'Temperature' \n", " votemper.coordinates = 'x y deptht time_counter'\n", " votemper[0] = Tnew\n", " \n", " new_TS.close()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "file format: NETCDF4\n", "Conventions: CF-1.6\n", "title: 2D T+S initialization - interpolated\n", "institution: Dept of Earth, Ocean & Atmospheric Sciences, University of British Columbia\n", "source: https://bitbucket.org/salishsea/2d-domain/src/tip/Changing Resolution.ipynb\n", "references: REQUIRED\n", "history: [2015-09-04 11:43:14] Created netCDF4 zlib=True dataset.\n", "comment: Interpolated T+S initial condtions for alternate vertical grid spacing\n", ": name = 'y', size = 10\n", "\n", ": name = 'x', size = 1100\n", "\n", ": name = 'deptht', size = 40\n", "\n", " (unlimited): name = 'time_counter', size = 0\n", "\n" ] } ], "source": [ "save_interopolated_netcdf_initial('/data/nsoontie/MEOPAR/2Ddomain/vertical_resolution/dbl_tanh/TS_uniform_36.nc')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Quick check that variables were saved." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 0.50003511 1.50045013 2.50187922 3.50584388 4.51615047\n", " 5.54231215 6.60804415 7.77197409 9.17587852 11.14406872\n", " 14.32758141 19.71521759 28.14229202 39.53160858 52.97109604\n", " 67.5062027 82.54394531 97.79561615 113.13538361 128.51092529\n", " 143.90090942 159.29672241 174.69488525 190.09399414 205.49346924\n", " 220.89311218 236.2928009 251.69252014 267.09225464 282.49200439\n", " 297.89172363 313.29147339 328.69119263 344.09094238 359.49069214\n", " 374.89041138 390.29016113 405.68991089 421.08963013 436.48937988]\n", "[[ 0.00000000e+00 5.00000000e-01 1.00000000e+00 ..., 5.48500000e+02\n", " 5.49000000e+02 5.49500000e+02]\n", " [ 0.00000000e+00 5.00000000e-01 1.00000000e+00 ..., 5.48500000e+02\n", " 5.49000000e+02 5.49500000e+02]\n", " [ 0.00000000e+00 5.00000000e-01 1.00000000e+00 ..., 5.48500000e+02\n", " 5.49000000e+02 5.49500000e+02]\n", " ..., \n", " [ 0.00000000e+00 5.00000000e-01 1.00000000e+00 ..., 5.48500000e+02\n", " 5.49000000e+02 5.49500000e+02]\n", " [ 0.00000000e+00 5.00000000e-01 1.00000000e+00 ..., 5.48500000e+02\n", " 5.49000000e+02 5.49500000e+02]\n", " [ 0.00000000e+00 5.00000000e-01 1.00000000e+00 ..., 5.48500000e+02\n", " 5.49000000e+02 5.49500000e+02]]\n", "(1, 40, 10, 1100) 0.0 31.3702\n" ] } ], "source": [ "f=nc.Dataset('/data/nsoontie/MEOPAR/2Ddomain/vertical_resolution/dbl_tanh/TS_uniform_36.nc')\n", "depth=f.variables['deptht'][:]\n", "x=f.variables['x'][:]\n", "S = f.variables['vosaline'][:]\n", "print depth\n", "print x\n", "print S.shape, S.min(), S.max()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3. Interpolate Boundary conditions\n", "\n", "The forcing files for temperature/salinity all need to be interpolated onto the new vertical grid as well.\n", "\n", "Open old TS boundary condition" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "root group (NETCDF4 data model, file format UNDEFINED):\n", " Conventions: CF-1.6\n", " title: Temperature and Salinty Boundary Conditions 2D domain\n", " institution: Dept of Earth, Ocean & Atmospheric Sciences, University of British Columbia\n", " source: https://bitbucket.org/salishsea/2d-domain/src/tip/Generate T+S Forcing - NEMO3.6.ipynb\n", " references: REQUIRED\n", " history: [2015-08-05 16:23:30] Created netCDF4 zlib=True dataset.\n", " comment: based on average values across mouth of JdF and 3D weekly climatology\n", " dimensions(sizes): xb(80), yb(1), time_counter(52), deptht(40)\n", " variables(dimensions): float32 \u001b[4mdeptht\u001b[0m(deptht), float32 \u001b[4mtime_counter\u001b[0m(time_counter), float32 \u001b[4mvotemper\u001b[0m(time_counter,deptht,yb,xb), float32 \u001b[4mvosaline\u001b[0m(time_counter,deptht,yb,xb), int32 \u001b[4mnbidta\u001b[0m(yb,xb), int32 \u001b[4mnbjdta\u001b[0m(yb,xb), int32 \u001b[4mnbrdta\u001b[0m(yb,xb)\n", " groups: \n", "\n" ] } ], "source": [ "#open old file\n", "fold = nc.Dataset('/data/nsoontie/MEOPAR/2Ddomain/boundary_conditions/TS_OBC.nc')\n", "Sold = fold.variables['vosaline'][:]\n", "Told = fold.variables['votemper'][:]\n", "print fold\n", "times = fold.variables['time_counter'][:]\n", "#Will use gdept_old for depths" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Interpolate onto new grid - gdept_1d" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": true }, "outputs": [], "source": [ "Tnew = np.copy(Told)\n", "Snew = np.copy(Sold)\n", "for t in np.arange(Tnew.shape[0]):\n", " for j in np.arange(Tnew.shape[2]):\n", " for i in np.arange(Tnew.shape[3]):\n", " Tnew[t,:,j,i] = np.interp(gdept_1d[:], gdept_old[:], Told[t,:,j,i])\n", " Snew[t,:,j,i] = np.interp(gdept_1d[:], gdept_old[:], Sold[t,:,j,i])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Quick check" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n4zjzkP8PskgeOTCgkisAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vmin=0;vmax=14\n", "fig,axs =plt.subplots(1,2)\n", "mesh=axs[0].pcolormesh(np.arange(Tnew.shape[0]),gdept_1d,Tnew[:,:,0,10].T,vmin=vmin,vmax=vmax)\n", "plt.colorbar(mesh,ax=axs[0])\n", "axs[0].set_title('New')\n", "mesh=axs[1].pcolormesh(np.arange(Told.shape[0]),gdept_old[:],Told[:,:,0,10].T,vmin=vmin,vmax=vmax)\n", "plt.colorbar(mesh,ax=axs[1])\n", "axs[1].set_title('Old')" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nAd5jcT1lH0H1AAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vmin=28;vmax=34\n", "fig,axs =plt.subplots(1,2)\n", "mesh=axs[0].pcolormesh(np.arange(Snew.shape[0]),gdept_1d,Snew[:,:,0,10].T,vmin=vmin,vmax=vmax)\n", "plt.colorbar(mesh,ax=axs[0])\n", "axs[0].set_title('New')\n", "mesh=axs[1].pcolormesh(np.arange(Sold.shape[0]),gdept_old[:],Sold[:,:,0,10].T,vmin=vmin,vmax=vmax)\n", "plt.colorbar(mesh,ax=axs[1])\n", "axs[1].set_title('Old')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Save netcdf" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def save_interopolated_netcdf_boundary(filename):\n", " Ny=8#remeber masked edges\n", " nrim=10\n", " ndepth=gdept_1d.shape[0]\n", " \n", " nemo = nc.Dataset(filename, 'w', zlib=True)\n", "\n", " #start and end points\n", " length_rim =nrim\n", " lengthi=Ny*length_rim\n", " #time and depth\n", " depth_levels =ndepth\n", "\n", " # dataset attributes\n", " nc_tools.init_dataset_attrs(\n", " nemo,\n", " title='Temperature and Salinty Boundary Conditions 2D domain - interpolated to new vertical grid',\n", " notebook_name='Changing resolution',\n", " nc_filepath=filename,\n", " comment='intepolated for new vertical grid spacing')\n", "\n", " # dimensions \n", " nemo.createDimension('xb', lengthi)\n", " nemo.createDimension('yb', 1)\n", " nemo.createDimension('time_counter', None)\n", " nemo.createDimension('deptht', depth_levels)\n", " \n", " # variables\n", " # deptht\n", " deptht = nemo.createVariable('deptht', 'float32', ('deptht',))\n", " deptht.long_name = 'Vertical T Levels'\n", " deptht.units = 'm'\n", " deptht.positive = 'down'\n", " deptht[:]=gdept_1d[:]\n", " # time_counter\n", " time_counter = nemo.createVariable('time_counter', 'float32', ('time_counter'))\n", " time_counter.long_name = 'Time axis'\n", " time_counter.axis = 'T'\n", " time_counter.units = 'weeks since beginning of year'\n", " time_counter[:]=times[:]\n", " # votemper\n", " votemper = nemo.createVariable('votemper', 'float32', \n", " ('time_counter','deptht','yb','xb'))\n", " votemper.units = 'degC'\n", " votemper.long_name = 'Temperature' \n", " votemper[:]=Tnew[:]\n", " # vosaline\n", " vosaline = nemo.createVariable('vosaline', 'float32', \n", " ('time_counter','deptht','yb','xb'))\n", " vosaline.units = 1\n", " vosaline.long_name = 'Practical Salinity' \n", " vosaline[:]=Snew\n", " # nbidta, ndjdta, ndrdta\n", " nbidta = nemo.createVariable('nbidta', 'int32' , ('yb','xb'))\n", " nbidta.long_name = 'i grid position'\n", " nbidta.units = 1\n", " nbjdta = nemo.createVariable('nbjdta', 'int32' , ('yb','xb'))\n", " nbjdta.long_name = 'j grid position'\n", " nbjdta.units = 1\n", " nbrdta = nemo.createVariable('nbrdta', 'int32' , ('yb','xb'))\n", " nbrdta.long_name = 'position from boundary'\n", " nbrdta.units = 1\n", " \n", " for ir in range(length_rim):\n", " nbidta[0,ir*Ny:(ir+1)*Ny] = ir\n", " nbjdta[0,ir*Ny:(ir+1)*Ny] = range(Ny)\n", " nbrdta[0,ir*Ny:(ir+1)*Ny] = ir\n", " \n", " nemo.close()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "file format: NETCDF4\n", "Conventions: CF-1.6\n", "title: Temperature and Salinty Boundary Conditions 2D domain - interpolated to new vertical grid\n", "institution: Dept of Earth, Ocean & Atmospheric Sciences, University of British Columbia\n", "source: https://bitbucket.org/salishsea/2d-domain/src/tip/Changing resolution.ipynb\n", "references: REQUIRED\n", "history: [2015-09-04 11:43:15] Created netCDF4 zlib=True dataset.\n", "comment: intepolated for new vertical grid spacing\n" ] } ], "source": [ "save_interopolated_netcdf_boundary('/data/nsoontie/MEOPAR/2Ddomain/vertical_resolution/dbl_tanh/TS_OBC.nc')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Quick check" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(52, 40, 1, 80) 29.5011 33.6646\n", "[ 0.50003511 1.50045013 2.50187922 3.50584388 4.51615047\n", " 5.54231215 6.60804415 7.77197409 9.17587852 11.14406872\n", " 14.32758141 19.71521759 28.14229202 39.53160858 52.97109604\n", " 67.5062027 82.54394531 97.79561615 113.13538361 128.51092529\n", " 143.90090942 159.29672241 174.69488525 190.09399414 205.49346924\n", " 220.89311218 236.2928009 251.69252014 267.09225464 282.49200439\n", " 297.89172363 313.29147339 328.69119263 344.09094238 359.49069214\n", " 374.89041138 390.29016113 405.68991089 421.08963013 436.48937988]\n", "\n", "root group (NETCDF4 data model, file format UNDEFINED):\n", " Conventions: CF-1.6\n", " title: Temperature and Salinty Boundary Conditions 2D domain - interpolated to new vertical grid\n", " institution: Dept of Earth, Ocean & Atmospheric Sciences, University of British Columbia\n", " source: https://bitbucket.org/salishsea/2d-domain/src/tip/Changing resolution.ipynb\n", " references: REQUIRED\n", " history: [2015-09-04 11:43:15] Created netCDF4 zlib=True dataset.\n", " comment: intepolated for new vertical grid spacing\n", " dimensions(sizes): xb(80), yb(1), time_counter(52), deptht(40)\n", " variables(dimensions): float32 \u001b[4mdeptht\u001b[0m(deptht), float32 \u001b[4mtime_counter\u001b[0m(time_counter), float32 \u001b[4mvotemper\u001b[0m(time_counter,deptht,yb,xb), float32 \u001b[4mvosaline\u001b[0m(time_counter,deptht,yb,xb), int32 \u001b[4mnbidta\u001b[0m(yb,xb), int32 \u001b[4mnbjdta\u001b[0m(yb,xb), int32 \u001b[4mnbrdta\u001b[0m(yb,xb)\n", " groups: \n", "\n" ] } ], "source": [ "f=nc.Dataset('/data/nsoontie/MEOPAR/2Ddomain/vertical_resolution/dbl_tanh/TS_OBC.nc')\n", "depth=f.variables['deptht'][:]\n", "sal=f.variables['vosaline'][:]\n", "print sal.shape, sal.min(), sal.max()\n", "print depth\n", "print f" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "All done! Now try to run with the new vertical resolution!" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.10" } }, "nbformat": 4, "nbformat_minor": 0 }