{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# PySeison - Tutorial 5: Drifter class" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "%pylab inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. PySeidon-dvt - Drifter object initialisation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Similarly to the \"ADCP class\" and the \"TideGauge class\", the \"Drifter class\" is a measurement-based object." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.1. Package importation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As any other library in *Python-dvt*, PySeidon has to be first imported before to be used. Here we will use an alternative *import* statement compared to the one previoulsy presented: " ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from pyseidon_dvt import *" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*** Star *** here means *all*. Usually this form of statements would import the entire library. In the case of *PySeidon-dvt*, this statement will import the following object classes: FVCOM, Station, Validation, ADCP, Tidegauge and Drifter. Only the TideGauge class will be tackle in this tutorial. However note should note that the architecture design and functioning between each classes are very similar. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.2. Object definition" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Python* is by definition an [**object oriented language**](http://www.tutorialspoint.com/python/python_classes_objects.htm)...and so is *matlab*. *PySeidon-dvt* is based on this notion of object, so let us define our first \"Drifter\" object." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "***Exercise 1: ***\n", "- Unravel Drifter documentation with Ipython ***shortcuts***" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "***Answer: ***" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "Drifter?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "According to the documentation, in order to define a Drifter object, the only required input is a ***filename**. This string input represents path to a file (e.g. *testAdcp=Drifter('./path_to_matlab_file/filename')* and whose file must be a matlab file (i.e. *.mat).\n", "\n", "**Note** that, at the current stage, the package only handle a certain type of file and data format. A template for the TideGauge file/data format is provided in the package under *data4tutorial*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "***Exercise 2: ***\n", "- define a drifter object named *drift* from the following template: **./data4tutorial/drifter_GP_01aug2013.mat**\n", "- Tip: adapt the file's path to your local machine. \n", "\n", "***Answer: ***" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [], "source": [ "drift = Drifter('./data4tutorial/drifter_GP_01aug2013.mat')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.3. Object attributes, functions, methods & special methods" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The TideGauge object possesses 3 attributes and 2 methods. They would appear by typing ***tg. Tab*** for instance.\n", "\n", "An *attribute* is a quantity intrinsic to its *object*. A *method* is an intrinsic *function* which changes an *attribute* of its object. Contrarily a *function* will generate its own *output*:" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "object.method(inputs)\n", "output = object.function(inputs)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Station attributes are:\n", "- ***History***: history metadata that keeps track of the object changes\n", "- ***Data***: gathers the raw/unchanged data of the specified *.mat file\n", "- ***Variables***: gathers the hydrodynamics related data. Note that methods will generate new fields in this attribute\n", "\n", "The Station methods & functions are:\n", "- ***Plots***: gathers plotting methods for use with 2D and 3D variables\n", "- ***dump_profile_data***: dumps profile data (x,y) in a *.csv file." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. PySeidon-dvt - Hands-on (10 seconds)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plots" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "***Exercise 3: ***\n", "- Plot drifter's trajectorie\n", "\n", "***Answer: ***" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/lib/python2.7/dist-packages/matplotlib/axes/_base.py:1057: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal\n", " if aspect == 'normal':\n", "/usr/local/lib/python2.7/dist-packages/matplotlib/axes/_base.py:1062: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal\n", " elif aspect in ('equal', 'auto'):\n", "/usr/local/lib/python2.7/dist-packages/matplotlib/figure.py:387: UserWarning: matplotlib is currently using a non-GUI backend, so cannot show the figure\n", " \"matplotlib is currently using a non-GUI backend, \"\n" ] }, { "data": { "image/png": "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\n0pCCg4g09P8BPkqo5MT3bXcAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "drift.Plots.trajectories()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### More to come in next version of Pyseidon..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4. Bug patrol & steering committee" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4.1. Bug report" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As beta tester, your first assignement is to report bugs...yet not everything is a bug. The first thing to check before to report a bug is to verify that your version of *PySeidon-dvt* is up-to-date. The best way to keep up with the package evolution is to [***git***](http://git-scm.com/) to ***clone*** the repository, use ***pull*** to update it and ***re-install*** it if needed. \n", "\n", "The second thing to check before to report a bug is to verify that the bug is ***reproducible***. When running into a bug, double check that your inputs fit the description of the documentation then turn the ***debug flag on*** (e.g. *output = tidegaugeobject.function(inputs, debug=True)*) and submit the command again. If the error re-occurs then report it (i.e. copy entire error message + command and send it to package administrator)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4.2. Suggestions & critics" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Your second role as beta-tester is to submit suggestions and critics to the developpers regarding the functioning and functionality of the package. Beta testing phase is the best opportunity to steer a project towards the applications you would like to be tackled..." ] } ], "metadata": { "celltoolbar": "Raw Cell Format", "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.12" } }, "nbformat": 4, "nbformat_minor": 0 }