{
  "cells": [
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "collapsed": false
      },
      "outputs": [],
      "source": [
        "%matplotlib inline"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "\n# Sea level to wave examples\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "collapsed": false
      },
      "outputs": [],
      "source": [
        "import os\nimport pandas as pd\nimport toto\nimport matplotlib.pyplot as plt\n\nwavefile='https://raw.githubusercontent.com/calypso-science/Toto/master/_tests/txt_file/yura87.dat'\nos.system('wget %s ' % wavefile)\n\nwave=pd.read_csv('yura87.dat',skiprows=28,names=['time','ssh1','ssh2','ssh3'],delimiter='\\s+')\ntime=pd.to_datetime(wave['time'],unit='s')\nwave['time'][:]=time\nwave.set_index('time',inplace=True)\n\n### Using the spectral method\nresult=wave.WaveAnalysis.ssh_to_wave(sea_level='ssh1',\\\n        args={\n         'windows': 3600,\n         'overlap':1800,\n         'nfft':3600,\n         'detrend':'Off',\n         'wave period range (min and max) (in s)':[3, 25],\n         'method':'spectra',\n         'minimum number of waves per window for zero crossing analysis': 30,\n         })\n\nprint(result)\n\n### Using the zero-crossing method\nresult2=wave.WaveAnalysis.ssh_to_wave(sea_level='ssh1',\\\n        args={\n         'windows': 3600,\n         'overlap':1800,\n         'nfft':3600,\n         'detrend':'Off',\n         'wave period range (min and max) (in s)':[3, 25],\n         'method':'zero-crossing',\n         'minimum number of waves per window for zero crossing analysis': 30,\n         })\n\nprint(result2)\n\n# Plot the results\nfig=plt.figure()\nax = plt.subplot(211)\nplt.plot(result.index,result['Hs'],'b-',label='spectra method')\nplt.plot(result.index,result2['hs'],'r-',label='zero-crossing method')\nax.set_ylabel('Hs [m]')\nax.legend()\nfig.autofmt_xdate()\n\nax = plt.subplot(212)\nplt.plot(result.index,1/result['fmax'],'b-',label='spectra method (Tp)')\nplt.plot(result.index,result2['ts'],'r-',label='zero-crossing method (Ts)')\nax.set_ylabel('Period [s]')\nax.legend()\nfig.autofmt_xdate()\n\nplt.show()"
      ]
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "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.8.10"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}