{ "metadata": { "name": "", "signature": "sha256:6482f1de0bef6134b0e7f2b9b46b0d18d1d9a245b7b922e4f7c7f518561165d6" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "A notebook to check that the phase and amplitude in the forcing files is what I expect." ] }, { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline\n", "from matplotlib import pylab\n", "import netCDF4 as NC\n", "import csv \n", "import numpy\n", "from itertools import islice\n", "import math\n", "import sys\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Elevation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "New tides at west. Check that phase change is 9 degrees later for M2. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "path = '/data/nsoontie/MEOPAR/NEMO-forcing/open_boundaries/west/tides/'\n", "fT1 = NC.Dataset(path+'SalishSea2_corr_west_tide_M2_grid_T.nc','r')\n", "z1=fT1.variables['z1']\n", "z2=fT1.variables['z2']\n", "\n", "amp = numpy.sqrt(z1[0][:]**2 + z2[0][:]**2)\n", "pha=[]\n", "for i in range(0,len(amp)):\n", " pha.append(math.atan2(z2[0][i],z1[0][i]))\n", " \n", "print numpy.degrees(pha)\n", "print amp\n", "\n", "amp_old=amp\n", "pha_old=pha" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[ 0. 0. 0. 0. 0.\n", " -124.84025641 -125.03233259 -125.22389942 -125.41571764 -125.61049379\n", " -125.81087634 -126.01141674 -126.19812771 -126.37568853 -126.5345648\n", " -126.69103818 -126.84512073 -126.99909614 -127.13407596 -127.27645162\n", " -127.42251084 -127.55733273 -127.6858596 -127.81438033 -127.94873104\n", " -128.07334497 -128.19874817 -128.32433453 -128.44826424 -128.56109814\n", " -128.67690427 -128.79289117 -128.90892077 -129.02503595 -129.13909272\n", " -129.24637544 -129.35730626 -129.46825353 -129.57916817 -129.68933359\n", " -129.79802766 -129.90628738 -130.01158903 -130.12042931 -130.23119594\n", " -130.34050566 -130.44641652 -130.5521882 -130.65777826 -130.76143263\n", " -130.8625936 -130.9657809 -131.06960084 -131.17338407 -131.27631584\n", " -131.37072484 -131.46502842 -131.55916084 -131.65308997 -131.74690719\n", " -131.83520207 -131.92011205 -132.0048807 -132.08948865 -132.17395285\n", " -132.25811862 -132.33662387 -132.4128926 -132.48908084 -132.56504149\n", " -132.64091291 -132.71571715 -132.78837552 -132.86095286 -132.93340184\n", " -133.00501302 -133.07614552 -133.14749583 -133.21758349 -133.28706157\n", " -133.35743325 -133.42842937 0. 0. 0. 0.\n", " 0. ]\n", "[ 0. 0. 0. 0. 0. 0.83866304\n", " 0.83796501 0.83707398 0.83618605 0.83554101 0.83527005 0.83500999\n", " 0.83458501 0.83405197 0.83286405 0.83158296 0.83083403 0.83011097\n", " 0.829135 0.82838798 0.82774502 0.827133 0.82654196 0.82595801\n", " 0.82548398 0.82517797 0.82479203 0.82440299 0.82402104 0.82366604\n", " 0.82351297 0.82336599 0.82322299 0.823084 0.82289797 0.82284498\n", " 0.82279497 0.82274604 0.822703 0.82273597 0.82287699 0.82302403\n", " 0.82319999 0.82343596 0.82370704 0.82401401 0.82439899 0.82478702\n", " 0.82517898 0.82544398 0.82589597 0.82637602 0.82684898 0.82732606\n", " 0.82781601 0.82845998 0.82910496 0.82975197 0.830401 0.83105302\n", " 0.83173901 0.83244503 0.833152 0.83386099 0.834571 0.83529299\n", " 0.83603203 0.83675104 0.83747196 0.83819503 0.83891904 0.83962202\n", " 0.84023398 0.84084696 0.84145802 0.842053 0.84263599 0.84321302\n", " 0.84380502 0.84440297 0.84496397 0.84549898 0. 0. 0.\n", " 0. 0. ]\n" ] } ], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now load the old tides and check the phase difference and amplitude ratios." ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "path = '/data/nsoontie/MEOPAR/NEMO-forcing/open_boundaries/west/tides/'\n", "fT1 = NC.Dataset(path+'SalishSea2_west_tide_M2_grid_T.nc','r')\n", "z1=fT1.variables['z1']\n", "z2=fT1.variables['z2']\n", "\n", "amp = numpy.sqrt(z1[0][:]**2 + z2[0][:]**2)\n", "pha=[]\n", "for i in range(0,len(amp)):\n", " pha.append(math.atan2(z2[0][i],z1[0][i]))\n", " \n", "print numpy.degrees(pha)-numpy.degrees(pha_old)\n", "print amp/amp_old" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[ 0. 0. 0. 0. 0. 9.00000005\n", " 8.9999992 9.00000131 8.9999996 9.00000127 8.99999771 8.99999918\n", " 8.99999734 9.00000106 8.99999987 9.00000057 8.99999838 9.00000179\n", " 8.99999987 8.99999968 8.99999883 8.9999981 9.00000088 9.00000137\n", " 8.99999847 8.99999905 8.99999898 8.99999917 8.99999663 9.00000006\n", " 9.00000058 8.99999952 8.9999988 9.00000002 9.00000016 9.00000103\n", " 8.99999848 9.00000056 8.99999751 9.00000246 8.99999984 9.00000022\n", " 8.99999915 8.99999903 9.00000104 8.99999886 8.99999981 9.00000067\n", " 8.99999994 9.00000118 9.00000087 8.99999844 8.99999982 9.00000112\n", " 9.00000238 9.00000109 9.00000087 8.9999967 9.00000142 9.0000022\n", " 9.0000025 8.99999754 8.99999829 9.00000031 8.99999961 8.99999831\n", " 8.9999995 8.999998 9.00000175 8.99999944 8.9999989 9.0000006\n", " 8.99999864 9.00000007 8.99999942 8.99999875 8.99999898 9.00000262\n", " 8.99999993 9.00000035 8.99999802 9.00000083 0. 0. 0.\n", " 0. 0. ]\n", "[ nan nan nan nan nan 1. 1.\n", " 1. 1. 1. 0.99999994 1. 0.99999994\n", " 1.00000012 0.99999994 1. 1. 1.00000012 1. 1.\n", " 0.99999994 1. 1.00000012 1. 1. 1.\n", " 0.99999994 1. 0.99999994 1. 1. 1.00000012\n", " 1. 1. 1.00000012 1. 1. 1. 1.\n", " 1.00000012 1. 1. 1. 1. 1. 1.\n", " 1. 0.99999994 1. 1. 1.00000012 0.99999994\n", " 1.00000012 0.99999994 1. 1.00000012 1.00000012 1. 1.\n", " 1. 1. 1. 1. 1. 1. 1.\n", " 0.99999994 1. 1.00000012 0.99999994 1. 1. 1.\n", " 1. 1. 1. 1. 0.99999994 1. 1.\n", " 1.00000012 1.00000012 nan nan nan nan\n", " nan]\n" ] }, { "output_type": "stream", "stream": "stderr", "text": [ "-c:13: RuntimeWarning: invalid value encountered in divide\n" ] } ], "prompt_number": 3 }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "U" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "New tides." ] }, { "cell_type": "code", "collapsed": false, "input": [ "path = '/data/nsoontie/MEOPAR/NEMO-forcing/open_boundaries/west/tides/'\n", "fT1 = NC.Dataset(path+'SalishSea2_corr_west_tide_M2_grid_U.nc','r')\n", "z1=fT1.variables['u1']\n", "z2=fT1.variables['u2']\n", "\n", "amp = numpy.sqrt(z1[0][:]**2 + z2[0][:]**2)\n", "pha=[]\n", "for i in range(0,len(amp)):\n", " pha.append(math.atan2(z2[0][i],z1[0][i]))\n", " \n", "print numpy.degrees(pha)\n", "\n", "amp_old=amp\n", "pha_old=pha" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[ 0. 0. 0. 0. 0.\n", " -108.56669854 -100.50425445 -104.27945302 -108.59730117 -109.72120202\n", " -99.99885949 -91.3658524 -86.58222037 -82.66355708 -77.95965332\n", " -73.06331231 -72.34948978 -71.54855336 -70.64415874 -70.51116948\n", " -70.36613532 -69.90416988 -69.12861476 -68.32991764 -67.79806641\n", " -67.67845595 -67.56312091 -67.42964552 -67.28371896 -67.3497456\n", " -67.44056613 -67.53546408 -67.63468058 -67.73845244 -67.86104562\n", " -68.11323739 -68.43137786 -68.75997698 -69.10008084 -70.6071864\n", " -73.36205003 -76.11088048 -77.44459563 -78.55088286 -79.75264779\n", " -81.16931952 -82.96147997 -84.84357738 -86.81995908 -88.90745346\n", " -90.7220714 -92.52138222 -94.40178824 -96.36106129 -98.29561858\n", " -97.84247238 -97.39151922 -96.94203223 -96.49495239 -96.18979849\n", " -96.13183379 -96.64116209 -97.18085057 -97.75378131 -98.3620823\n", " -98.51828412 -97.24852013 -95.30632057 -93.31170192 -91.27064629\n", " -89.18437006 -87.60215885 -85.68811962 -83.87070357 -81.95263358\n", " -80.45878798 -79.0805574 -78.13579712 -79.44340352 -80.92038902\n", " -82.69640579 -84.63675508 0. 0. 0. 0.\n", " 0. ]\n" ] } ], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Old tides" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "path = '/data/nsoontie/MEOPAR/NEMO-forcing/open_boundaries/west/tides/'\n", "fT1 = NC.Dataset(path+'SalishSea2_west_tide_M2_grid_U.nc','r')\n", "z1=fT1.variables['u1']\n", "z2=fT1.variables['u2']\n", "\n", "amp = numpy.sqrt(z1[0][:]**2 + z2[0][:]**2)\n", "pha=[]\n", "for i in range(0,len(amp)):\n", " pha.append(math.atan2(z2[0][i],z1[0][i]))\n", " \n", "print numpy.degrees(pha)-numpy.degrees(pha_old)\n", "print amp/amp_old" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[ 0. 0. 0. 0. 0. 8.99999933\n", " 8.99999986 9.00000005 8.99999965 8.99999968 8.99999996 9.00000036\n", " 8.99999965 9.00000039 8.99999922 8.99999903 8.99999775 9.00000144\n", " 9.00000027 8.99999892 8.99999936 8.99999896 8.99999965 9.00000091\n", " 9.00000037 8.9999977 9.00000242 8.99999771 9.00000047 8.99999963\n", " 8.99999974 9.00000158 8.99999864 9.00000121 9.00000202 9.00000092\n", " 8.99999992 9.00000094 9.00000042 9.00000081 9.00000064 9.00000016\n", " 9.00000093 9.00000101 8.99999954 8.99999983 8.99999984 9.00000032\n", " 9.0000002 8.99999985 9.00000004 8.99999999 9.00000005 8.99999979\n", " 8.99999984 8.99999965 9.00000012 9. 9.0000001 9.00000031\n", " 9.00000022 9.00000043 9.00000023 8.99999956 8.99999995 9.00000057\n", " 8.99999945 9.00000006 8.99999976 9.00000021 8.99999981 9.00000044\n", " 8.99999967 9.00000084 8.99999948 8.9999994 8.99999943 8.9999999\n", " 9.00000124 8.99999883 9. 8.99999995 0. 0. 0.\n", " 0. 0. ]\n", "[ nan nan nan nan nan 0.99999988\n", " 1. 1. 0.99999994 1. 1. 1.\n", " 1.00000012 1. 1.00000012 1.00000012 1. 1.\n", " 1.00000012 0.99999994 1. 1. 1. 0.99999988\n", " 1. 1.00000012 1. 1.00000012 1. 1. 1.\n", " 1. 1. 0.99999988 1. 1.00000012 1.00000012\n", " 1. 1. 1.00000012 1. 1. 0.99999994\n", " 1. 1. 1. 1.00000012 1. 1.\n", " 0.99999994 1. 0.99999994 1. 1. 1.\n", " 0.99999988 1.00000012 0.99999988 1. 1. 1.\n", " 1.00000012 1. 0.99999988 1. 1. 0.99999988\n", " 0.99999988 1. 1. 1.00000012 1. 1.00000012\n", " 0.99999994 1.00000012 1.00000012 1. 1. 1. 1.\n", " 1. 1. nan nan nan nan\n", " nan]\n" ] } ], "prompt_number": 5 }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "V" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "New tides" ] }, { "cell_type": "code", "collapsed": false, "input": [ "path = '/data/nsoontie/MEOPAR/NEMO-forcing/open_boundaries/west/tides/'\n", "fT1 = NC.Dataset(path+'SalishSea2_corr_west_tide_M2_grid_V.nc','r')\n", "z1=fT1.variables['v1']\n", "z2=fT1.variables['v2']\n", "\n", "amp = numpy.sqrt(z1[0][:]**2 + z2[0][:]**2)\n", "pha=[]\n", "for i in range(0,len(amp)):\n", " pha.append(math.atan2(z2[0][i],z1[0][i]))\n", " \n", "print numpy.degrees(pha)\n", "\n", "amp_old=amp\n", "pha_old=pha" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[ 0. 0. 0. 0. 0.\n", " 68.69891357 66.64116267 70.33340731 73.241981 75.58980788\n", " 79.03689811 83.87977541 89.10939149 86.19299859 84.39596432\n", " 84.49928322 84.47520541 84.28703658 84.60768932 85.51951315\n", " 86.31709401 87.1188766 87.62933623 88.1616432 88.70559252\n", " 89.38397882 90.39874493 91.54530411 92.75348487 94.11838611\n", " 95.2607328 96.1690744 97.11056604 98.08737632 99.09867789\n", " 100.62601929 101.94820546 103.26134587 104.6178287 106.01441478\n", " 108.85754511 111.98767068 114.56668144 116.7346863 118.87658451\n", " 121.00804654 122.76883154 124.44129556 126.10893329 127.97227522\n", " 130.15190698 132.18117738 134.0832264 135.96907266 137.83923113\n", " 139.33733675 140.58956008 141.86172187 143.15235944 144.46237294\n", " 145.67674098 146.13569389 146.59400728 147.05175454 147.50826051\n", " 147.96465279 147.9902175 147.62988244 147.25930441 146.87825301\n", " 146.48693986 146.06151964 145.27009688 144.19967184 143.11452899\n", " 142.03990608 141.22788542 140.91481607 141.26054403 143.45677204\n", " 145.25188096 140.87832835 136.25563556 0. 0. 0.\n", " 0. 0. ]\n" ] } ], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Old tides" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "path = '/data/nsoontie/MEOPAR/NEMO-forcing/open_boundaries/west/tides/'\n", "fT1 = NC.Dataset(path+'SalishSea2_west_tide_M2_grid_V.nc','r')\n", "z1=fT1.variables['v1']\n", "z2=fT1.variables['v2']\n", "\n", "amp = numpy.sqrt(z1[0][:]**2 + z2[0][:]**2)\n", "pha=[]\n", "for i in range(0,len(amp)):\n", " pha.append(math.atan2(z2[0][i],z1[0][i]))\n", " \n", "print numpy.degrees(pha)-numpy.degrees(pha_old)\n", "print amp/amp_old" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[ 0. 0. 0. 0. 0. 9.00000142\n", " 9.00000095 9.00000002 9.00000024 8.99999948 9.00000003 8.99999989\n", " 8.9999998 9.00000036 8.99999987 8.99999974 8.99999953 9.00000008\n", " 9.00000018 8.99999962 8.99999983 8.99999971 9.00000007 9.00000027\n", " 8.99999953 9.00000024 9.00000009 9.00000048 9.00000071 8.99999923\n", " 8.99999899 9.00000109 9.0000003 9.00000104 9.00000016 9.00000116\n", " 8.99999937 8.99999925 9.00000138 8.99999958 8.99999991 9.00000003\n", " 9.00000016 9.00000063 9.00000016 8.99999984 8.99999852 9.00000069\n", " 9.00000092 8.99999922 8.99999766 8.9999988 8.99999971 9.00000075\n", " 9.00000009 9.00000232 9.00000003 8.99999955 9.00000019 9.00000279\n", " 9.00000272 9.00000049 8.99999732 8.99999884 8.99999928 8.99999966\n", " 9.00000072 9.00000047 9.00000022 8.9999982 8.99999848 8.99999991\n", " 9.00000044 8.99999781 9.0000007 9.00000054 8.99999832 8.99999682\n", " 9.00000025 9.00000163 9.00000054 9.00000123 9.00000006 0. 0.\n", " 0. 0. 0. ]\n", "[ nan nan nan nan nan 1.\n", " 1.00000012 1. 1. 1.00000012 1. 1.\n", " 0.99999994 1. 1. 0.99999994 1. 1.00000012\n", " 1. 1.00000012 1.00000012 1. 1. 1.\n", " 1.00000012 1.00000012 1.00000012 1.00000012 0.99999988 1.\n", " 1.00000012 1. 1. 1. 1. 0.99999988\n", " 1.00000012 1. 0.99999988 1. 1.00000012 0.99999994\n", " 1. 1. 1. 1. 1. 0.99999994\n", " 0.99999994 1. 0.99999994 1. 1. 1. 1.\n", " 1. 0.99999994 0.99999994 1. 1. 1.\n", " 0.99999994 1. 1. 1. 1. 0.99999994\n", " 1.00000012 0.99999994 0.99999994 1. 1. 1. 1.\n", " 1. 0.99999994 1. 0.99999994 1. 1.00000012\n", " 1. 1.00000012 0.99999994 nan nan nan\n", " nan nan]\n" ] } ], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }