Rev Author Line No. Line
4413 kaklik 1 {
2 "metadata": {
3 "name": "",
4446 kaklik 4 "signature": "sha256:9453f2d297004717b7b0ab5bb80d8d05d3ff319f7e609fa9565e753aa36cef87"
4413 kaklik 5 },
6 "nbformat": 3,
7 "nbformat_minor": 0,
8 "worksheets": [
9 {
10 "cells": [
11 {
12 "cell_type": "code",
13 "collapsed": false,
14 "input": [
15 "import h5py\n",
16 "import numpy as np\n",
17 "import matplotlib.pyplot as plt"
18 ],
19 "language": "python",
20 "metadata": {},
21 "outputs": [],
4423 kaklik 22 "prompt_number": 1
4413 kaklik 23 },
24 {
25 "cell_type": "code",
26 "collapsed": false,
27 "input": [
28 "file = h5py.File('test_rps.hdf5', 'r') # 'r' means that hdf5 file is open in read-only mode\n",
29 "dataset = file['RPS01']"
30 ],
31 "language": "python",
32 "metadata": {},
33 "outputs": [],
4423 kaklik 34 "prompt_number": 2
4413 kaklik 35 },
36 {
37 "cell_type": "code",
38 "collapsed": false,
39 "input": [
4417 kaklik 40 "print dataset.value[4,2]"
4413 kaklik 41 ],
42 "language": "python",
43 "metadata": {},
44 "outputs": [
45 {
46 "output_type": "stream",
47 "stream": "stdout",
48 "text": [
4417 kaklik 49 "36.7822\n"
4413 kaklik 50 ]
51 }
52 ],
4423 kaklik 53 "prompt_number": 3
4413 kaklik 54 },
55 {
56 "cell_type": "code",
57 "collapsed": false,
58 "input": [
4417 kaklik 59 "plt.plot( dataset.value[:,0], dataset.value[:,2], color = 'r')\n",
60 "#plt.xlim([1.45415117E9,1.4541513E9])\n",
61 "plt.show()"
4413 kaklik 62 ],
63 "language": "python",
64 "metadata": {},
4417 kaklik 65 "outputs": [],
4423 kaklik 66 "prompt_number": 4
4417 kaklik 67 },
68 {
69 "cell_type": "code",
70 "collapsed": false,
71 "input": [
72 "prev_val= dataset.value[0,2]\n",
73 "n = 0\n",
4422 kaklik 74 "angle = np.zeros((dataset.shape[0]))\n",
4417 kaklik 75 "for i in range(dataset.value.shape[0]):\n",
4423 kaklik 76 " if (dataset.value[i,2] - prev_val) > 300:\n",
4422 kaklik 77 " n -= 1\n",
4417 kaklik 78 " angle[i] = dataset.value[i,2] + n*360\n",
4422 kaklik 79 " prev_val = dataset.value[i,2]\n",
4423 kaklik 80 " elif -(dataset.value[i,2] - prev_val) > 300: # compute angular speed in backward direction.\n",
81 " n += 1\n",
82 " angle[i] = dataset.value[i,2] - n*360\n",
83 " prev_val = dataset.value[i,2]\n",
4422 kaklik 84 " else:\n",
85 " angle[i] = dataset.value[i,2] + n*360\n",
4423 kaklik 86 " prev_val = dataset.value[i,2]\n",
87 " "
4417 kaklik 88 ],
89 "language": "python",
90 "metadata": {},
91 "outputs": [],
4446 kaklik 92 "prompt_number": 6
4417 kaklik 93 },
94 {
4423 kaklik 95 "cell_type": "markdown",
96 "metadata": {},
97 "source": [
98 "Five point difference numerical calculation. Source: http://mathfun528.blogspot.cz/2011/07/numerical-differentiation.html"
99 ]
100 },
101 {
4417 kaklik 102 "cell_type": "code",
103 "collapsed": false,
104 "input": [
4423 kaklik 105 "angle_speed = np.zeros_like(angle)\n",
106 "\n",
107 "for i in range(2,angle.shape[0]-2):\n",
108 " angle_speed[i] = (-angle[i + 2] + 8*angle[i + 1] - 8*angle[i - 1] + angle[i - 2])/12"
109 ],
110 "language": "python",
111 "metadata": {},
112 "outputs": [],
4446 kaklik 113 "prompt_number": 7
4423 kaklik 114 },
115 {
116 "cell_type": "code",
117 "collapsed": false,
118 "input": [
4422 kaklik 119 "fig, ax1 = plt.subplots()\n",
120 "\n",
4423 kaklik 121 "ax2 = ax1.twinx()\n",
122 "ax1.set_xlabel('Sample #')\n",
123 "ax1.set_ylabel('Angle')\n",
124 "ax2.set_ylabel('Angular speed')\n",
4422 kaklik 125 "\n",
4423 kaklik 126 "ax1.plot(dataset.value[:,0], angle,'b',dataset.value[:,0], dataset.value[:,2],'r')\n",
127 "ax2.plot(dataset.value[:,0], angle_speed,'g')\n",
4422 kaklik 128 "\n",
129 "plt.show()"
4417 kaklik 130 ],
131 "language": "python",
132 "metadata": {},
4423 kaklik 133 "outputs": [],
4446 kaklik 134 "prompt_number": 8
4422 kaklik 135 },
136 {
137 "cell_type": "code",
138 "collapsed": false,
4446 kaklik 139 "input": [
140 "print angle"
141 ],
4422 kaklik 142 "language": "python",
143 "metadata": {},
4446 kaklik 144 "outputs": [
145 {
146 "output_type": "stream",
147 "stream": "stdout",
148 "text": [
149 "[ 3.64746094e+01 3.65405273e+01 3.77929688e+01 ..., -1.31529551e+05\n",
150 " -1.31530452e+05 -1.31528452e+05]\n"
151 ]
152 }
153 ],
154 "prompt_number": 10
4413 kaklik 155 },
156 {
157 "cell_type": "code",
158 "collapsed": false,
4423 kaklik 159 "input": [],
4422 kaklik 160 "language": "python",
161 "metadata": {},
4423 kaklik 162 "outputs": [],
4446 kaklik 163 "prompt_number": 4
4422 kaklik 164 },
165 {
4446 kaklik 166 "cell_type": "markdown",
4422 kaklik 167 "metadata": {},
4446 kaklik 168 "source": []
4422 kaklik 169 },
170 {
171 "cell_type": "code",
172 "collapsed": false,
4423 kaklik 173 "input": [],
4422 kaklik 174 "language": "python",
175 "metadata": {},
4423 kaklik 176 "outputs": [],
177 "prompt_number": 45
4422 kaklik 178 },
179 {
180 "cell_type": "code",
181 "collapsed": false,
4413 kaklik 182 "input": [],
183 "language": "python",
184 "metadata": {},
4423 kaklik 185 "outputs": [],
186 "prompt_number": 45
187 },
188 {
189 "cell_type": "code",
190 "collapsed": false,
191 "input": [],
192 "language": "python",
193 "metadata": {},
4413 kaklik 194 "outputs": []
195 }
196 ],
197 "metadata": {}
198 }
199 ]
200 }