|
2 | 2 | "cells": [ |
3 | 3 | { |
4 | 4 | "cell_type": "markdown", |
5 | | - "metadata": {}, |
| 5 | + "metadata": { |
| 6 | + "deletable": true, |
| 7 | + "editable": true |
| 8 | + }, |
6 | 9 | "source": [ |
7 | 10 | "## Tutorial on how to 'delay' the start of particle advection" |
8 | 11 | ] |
9 | 12 | }, |
10 | 13 | { |
11 | 14 | "cell_type": "markdown", |
12 | | - "metadata": {}, |
| 15 | + "metadata": { |
| 16 | + "deletable": true, |
| 17 | + "editable": true |
| 18 | + }, |
13 | 19 | "source": [ |
14 | 20 | "In many applications, it is needed to 'delay' the start of particle advection. For example because particles need to be released at different times throughout an experiment.\n", |
15 | 21 | "\n", |
|
22 | 28 | "cell_type": "code", |
23 | 29 | "execution_count": 1, |
24 | 30 | "metadata": { |
25 | | - "collapsed": true |
| 31 | + "collapsed": true, |
| 32 | + "deletable": true, |
| 33 | + "editable": true |
26 | 34 | }, |
27 | 35 | "outputs": [], |
28 | 36 | "source": [ |
29 | | - "from parcels import FieldSet, ParticleSet, JITParticle\n", |
| 37 | + "from parcels import FieldSet, ParticleSet, JITParticle, plotTrajectoriesFile, convert_IndexedOutputToArray\n", |
30 | 38 | "from parcels import AdvectionRK4\n", |
31 | 39 | "import numpy as np\n", |
32 | | - "from datetime import timedelta as delta\n", |
33 | | - "from scripts import *" |
| 40 | + "from datetime import timedelta as delta" |
34 | 41 | ] |
35 | 42 | }, |
36 | 43 | { |
37 | 44 | "cell_type": "markdown", |
38 | | - "metadata": {}, |
| 45 | + "metadata": { |
| 46 | + "deletable": true, |
| 47 | + "editable": true |
| 48 | + }, |
39 | 49 | "source": [ |
40 | 50 | "Now import a `FieldSet` (from the Peninsula example, in this case)" |
41 | 51 | ] |
42 | 52 | }, |
43 | 53 | { |
44 | 54 | "cell_type": "code", |
45 | 55 | "execution_count": 2, |
46 | | - "metadata": {}, |
| 56 | + "metadata": { |
| 57 | + "collapsed": true, |
| 58 | + "deletable": true, |
| 59 | + "editable": true |
| 60 | + }, |
47 | 61 | "outputs": [], |
48 | 62 | "source": [ |
49 | 63 | "fieldset = FieldSet.from_nemo('Peninsula_data/peninsula', allow_time_extrapolation = True)" |
50 | 64 | ] |
51 | 65 | }, |
52 | 66 | { |
53 | 67 | "cell_type": "markdown", |
54 | | - "metadata": {}, |
| 68 | + "metadata": { |
| 69 | + "deletable": true, |
| 70 | + "editable": true |
| 71 | + }, |
55 | 72 | "source": [ |
56 | 73 | "Define an empty `ParticleSet`" |
57 | 74 | ] |
58 | 75 | }, |
59 | 76 | { |
60 | 77 | "cell_type": "code", |
61 | 78 | "execution_count": 3, |
62 | | - "metadata": {}, |
| 79 | + "metadata": { |
| 80 | + "collapsed": true, |
| 81 | + "deletable": true, |
| 82 | + "editable": true |
| 83 | + }, |
63 | 84 | "outputs": [], |
64 | 85 | "source": [ |
65 | 86 | "pset = ParticleSet(fieldset=fieldset, lon=[], lat=[], pclass=JITParticle)" |
66 | 87 | ] |
67 | 88 | }, |
68 | 89 | { |
69 | 90 | "cell_type": "markdown", |
70 | | - "metadata": {}, |
| 91 | + "metadata": { |
| 92 | + "deletable": true, |
| 93 | + "editable": true |
| 94 | + }, |
71 | 95 | "source": [ |
72 | 96 | "And now also define some other variables" |
73 | 97 | ] |
|
76 | 100 | "cell_type": "code", |
77 | 101 | "execution_count": 4, |
78 | 102 | "metadata": { |
79 | | - "collapsed": true |
| 103 | + "collapsed": true, |
| 104 | + "deletable": true, |
| 105 | + "editable": true |
80 | 106 | }, |
81 | 107 | "outputs": [], |
82 | 108 | "source": [ |
|
87 | 113 | }, |
88 | 114 | { |
89 | 115 | "cell_type": "markdown", |
90 | | - "metadata": {}, |
| 116 | + "metadata": { |
| 117 | + "deletable": true, |
| 118 | + "editable": true |
| 119 | + }, |
91 | 120 | "source": [ |
92 | 121 | "We use the same start locations as in `examples/example_peninsula.py`" |
93 | 122 | ] |
|
96 | 125 | "cell_type": "code", |
97 | 126 | "execution_count": 5, |
98 | 127 | "metadata": { |
99 | | - "collapsed": true |
| 128 | + "collapsed": true, |
| 129 | + "deletable": true, |
| 130 | + "editable": true |
100 | 131 | }, |
101 | 132 | "outputs": [], |
102 | 133 | "source": [ |
|
107 | 138 | }, |
108 | 139 | { |
109 | 140 | "cell_type": "markdown", |
110 | | - "metadata": {}, |
| 141 | + "metadata": { |
| 142 | + "deletable": true, |
| 143 | + "editable": true |
| 144 | + }, |
111 | 145 | "source": [ |
112 | 146 | "Now we define an output file. Note that, since not each particle will have the same number of timesteps outputted (because some will be released later than others), we need to run with `type=\"indexed\"`. See also H3.5 at http://cfconventions.org/Data/cf-conventions/cf-conventions-1.7/build/aphs03.html" |
113 | 147 | ] |
|
116 | 150 | "cell_type": "code", |
117 | 151 | "execution_count": 6, |
118 | 152 | "metadata": { |
119 | | - "collapsed": true |
| 153 | + "collapsed": true, |
| 154 | + "deletable": true, |
| 155 | + "editable": true |
120 | 156 | }, |
121 | 157 | "outputs": [], |
122 | 158 | "source": [ |
|
125 | 161 | }, |
126 | 162 | { |
127 | 163 | "cell_type": "markdown", |
128 | | - "metadata": {}, |
| 164 | + "metadata": { |
| 165 | + "deletable": true, |
| 166 | + "editable": true |
| 167 | + }, |
129 | 168 | "source": [ |
130 | 169 | "Now we run the combination of `pset.add()` and `pset.execute()` calls inside a `for`-loop." |
131 | 170 | ] |
132 | 171 | }, |
133 | 172 | { |
134 | 173 | "cell_type": "code", |
135 | 174 | "execution_count": 7, |
136 | | - "metadata": {}, |
| 175 | + "metadata": { |
| 176 | + "collapsed": false, |
| 177 | + "deletable": true, |
| 178 | + "editable": true |
| 179 | + }, |
137 | 180 | "outputs": [ |
138 | 181 | { |
139 | 182 | "name": "stderr", |
|
156 | 199 | }, |
157 | 200 | { |
158 | 201 | "cell_type": "markdown", |
159 | | - "metadata": {}, |
| 202 | + "metadata": { |
| 203 | + "deletable": true, |
| 204 | + "editable": true |
| 205 | + }, |
160 | 206 | "source": [ |
161 | 207 | "And then we run the particles for the rest of the time until `endtime`" |
162 | 208 | ] |
163 | 209 | }, |
164 | 210 | { |
165 | 211 | "cell_type": "code", |
166 | 212 | "execution_count": 8, |
167 | | - "metadata": {}, |
| 213 | + "metadata": { |
| 214 | + "collapsed": true, |
| 215 | + "deletable": true, |
| 216 | + "editable": true |
| 217 | + }, |
168 | 218 | "outputs": [], |
169 | 219 | "source": [ |
170 | 220 | "pset.execute(AdvectionRK4, runtime=endtime-npart*delaytime,\n", |
|
174 | 224 | }, |
175 | 225 | { |
176 | 226 | "cell_type": "markdown", |
177 | | - "metadata": {}, |
| 227 | + "metadata": { |
| 228 | + "deletable": true, |
| 229 | + "editable": true |
| 230 | + }, |
178 | 231 | "source": [ |
179 | 232 | "And then finally, we can show a movie of the particles. Note that one particle appears every frame for the first ten frames." |
180 | 233 | ] |
181 | 234 | }, |
182 | 235 | { |
183 | 236 | "cell_type": "code", |
184 | 237 | "execution_count": 9, |
185 | | - "metadata": {}, |
| 238 | + "metadata": { |
| 239 | + "collapsed": false, |
| 240 | + "deletable": true, |
| 241 | + "editable": true |
| 242 | + }, |
186 | 243 | "outputs": [ |
187 | 244 | { |
188 | 245 | "data": { |
|
438 | 495 | }, |
439 | 496 | { |
440 | 497 | "cell_type": "markdown", |
441 | | - "metadata": {}, |
| 498 | + "metadata": { |
| 499 | + "deletable": true, |
| 500 | + "editable": true |
| 501 | + }, |
442 | 502 | "source": [ |
443 | 503 | "Now, the ``type=indexed`` file is not too easy to work with in further analysis, so Parcels provides a function ``convert_IndexedOutputToArray`` to reformat an Indexed particle file to an Array one" |
444 | 504 | ] |
445 | 505 | }, |
446 | 506 | { |
447 | 507 | "cell_type": "code", |
448 | 508 | "execution_count": 10, |
449 | | - "metadata": {}, |
| 509 | + "metadata": { |
| 510 | + "collapsed": false, |
| 511 | + "deletable": true, |
| 512 | + "editable": true |
| 513 | + }, |
450 | 514 | "outputs": [ |
451 | 515 | { |
452 | 516 | "name": "stderr", |
|
462 | 526 | }, |
463 | 527 | { |
464 | 528 | "cell_type": "markdown", |
465 | | - "metadata": {}, |
| 529 | + "metadata": { |
| 530 | + "deletable": true, |
| 531 | + "editable": true |
| 532 | + }, |
466 | 533 | "source": [ |
467 | 534 | "And we can also make a movie of this file. Note that generating movies for Array-style particle files tends to be much faster than for Indexed-style files, particularly when the files become very big." |
468 | 535 | ] |
469 | 536 | }, |
470 | 537 | { |
471 | 538 | "cell_type": "code", |
472 | 539 | "execution_count": 11, |
473 | | - "metadata": {}, |
| 540 | + "metadata": { |
| 541 | + "collapsed": false, |
| 542 | + "deletable": true, |
| 543 | + "editable": true |
| 544 | + }, |
474 | 545 | "outputs": [ |
475 | 546 | { |
476 | 547 | "data": { |
|
0 commit comments