gphys 1.5.0 → 1.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +7 -0
  2. data/ChangeLog +7414 -0
  3. data/LICENSE.txt +1 -1
  4. data/Rakefile +0 -2
  5. data/doc/derivative/math-doc/document/images.log +385 -0
  6. data/doc/ep_flux/math-doc/document/images.log +1375 -0
  7. data/doc/ganalysis/doc/NumRu.html +203 -0
  8. data/doc/ganalysis/doc/NumRu/GAnalysis.html +931 -0
  9. data/doc/ganalysis/doc/NumRu/GAnalysis/BetaPlane.html +574 -0
  10. data/doc/ganalysis/doc/NumRu/GAnalysis/Fitting.html +576 -0
  11. data/doc/ganalysis/doc/NumRu/GAnalysis/LogP.html +425 -0
  12. data/doc/ganalysis/doc/NumRu/GAnalysis/Met.html +2021 -0
  13. data/doc/ganalysis/doc/NumRu/GAnalysis/MetZ.html +524 -0
  14. data/doc/ganalysis/doc/NumRu/GAnalysis/Planet.html +1047 -0
  15. data/doc/ganalysis/doc/NumRu/GAnalysis/QG.html +794 -0
  16. data/doc/ganalysis/doc/NumRu/GAnalysis/QG/Uninitialized.html +215 -0
  17. data/doc/ganalysis/doc/NumRu/GAnalysis/QG_common.html +603 -0
  18. data/doc/ganalysis/doc/NumRu/GAnalysis/QG_sphere.html +760 -0
  19. data/doc/ganalysis/doc/NumRu/GAnalysis/QG_sphere_common.html +251 -0
  20. data/doc/ganalysis/doc/NumRu/GAnalysis/QG_sphere_div.html +424 -0
  21. data/doc/ganalysis/doc/NumRu/GAnalysis/SigmaCoord.html +321 -0
  22. data/doc/ganalysis/doc/NumRu/GGraph.html +334 -0
  23. data/doc/ganalysis/doc/NumRu/GPhys.html +579 -0
  24. data/doc/ganalysis/doc/Object.html +210 -0
  25. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/beta_plane_rb.html +60 -0
  26. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/covariance_rb.html +56 -0
  27. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/eof_rb.html +64 -0
  28. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/fitting_rb.html +54 -0
  29. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/histogram_rb.html +58 -0
  30. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/log_p_rb.html +60 -0
  31. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/met_rb.html +60 -0
  32. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/met_z_rb.html +58 -0
  33. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/planet_rb.html +58 -0
  34. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/qg_rb.html +64 -0
  35. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/sigma_coord_rb.html +56 -0
  36. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis_rb.html +98 -0
  37. data/doc/ganalysis/doc/created.rid +13 -0
  38. data/doc/ganalysis/doc/images/brick.png +0 -0
  39. data/doc/ganalysis/doc/images/brick_link.png +0 -0
  40. data/doc/ganalysis/doc/images/bug.png +0 -0
  41. data/doc/ganalysis/doc/images/bullet_black.png +0 -0
  42. data/doc/ganalysis/doc/images/bullet_toggle_minus.png +0 -0
  43. data/doc/ganalysis/doc/images/bullet_toggle_plus.png +0 -0
  44. data/doc/ganalysis/doc/images/date.png +0 -0
  45. data/doc/ganalysis/doc/images/find.png +0 -0
  46. data/doc/ganalysis/doc/images/loadingAnimation.gif +0 -0
  47. data/doc/ganalysis/doc/images/macFFBgHack.png +0 -0
  48. data/doc/ganalysis/doc/images/package.png +0 -0
  49. data/doc/ganalysis/doc/images/page_green.png +0 -0
  50. data/doc/ganalysis/doc/images/page_white_text.png +0 -0
  51. data/doc/ganalysis/doc/images/page_white_width.png +0 -0
  52. data/doc/ganalysis/doc/images/plugin.png +0 -0
  53. data/doc/ganalysis/doc/images/ruby.png +0 -0
  54. data/doc/ganalysis/doc/images/tag_green.png +0 -0
  55. data/doc/ganalysis/doc/images/wrench.png +0 -0
  56. data/doc/ganalysis/doc/images/wrench_orange.png +0 -0
  57. data/doc/ganalysis/doc/images/zoom.png +0 -0
  58. data/doc/ganalysis/doc/index.html +383 -0
  59. data/doc/ganalysis/doc/js/darkfish.js +118 -0
  60. data/doc/ganalysis/doc/js/jquery.js +32 -0
  61. data/doc/ganalysis/doc/js/quicksearch.js +114 -0
  62. data/doc/ganalysis/doc/js/thickbox-compressed.js +10 -0
  63. data/doc/ganalysis/doc/rdoc.css +763 -0
  64. data/ext/numru/gphys/ext_init.c +1 -0
  65. data/ext/numru/gphys/quad_mesh_sample.c +478 -0
  66. data/gphys.gemspec +2 -2
  67. data/lib/numru/dclext.rb +394 -14
  68. data/lib/numru/derivative.rb +6 -0
  69. data/lib/numru/ganalysis/qg.rb +6 -4
  70. data/lib/numru/ggraph.rb +41 -8
  71. data/lib/numru/gphys/gphys.rb +62 -14
  72. data/lib/numru/gphys/gphys_io.rb +4 -4
  73. data/lib/numru/gphys/version.rb +2 -2
  74. metadata +84 -79
  75. data/.gitignore +0 -14
  76. data/TODO_ep_flux +0 -6
  77. data/gphys-bigmem.gemspec +0 -44
  78. data/install.rb +0 -130
  79. data/sample/cira86_to_nc.rb +0 -122
  80. data/sample/druby_cli1.rb +0 -23
  81. data/sample/druby_cli2.rb +0 -28
  82. data/sample/druby_serv1.rb +0 -30
  83. data/sample/druby_serv2.rb +0 -51
  84. data/sample/ep_flux/demo_NCEP_1.rb +0 -48
  85. data/sample/ep_flux/demo_NCEP_2.rb +0 -57
  86. data/sample/ep_flux/demo_NCEP_3.rb +0 -81
  87. data/sample/ggraph_latlon_labelling_dr002690.rb +0 -159
  88. data/sample/ggraph_mapfit-axes_dr002687.rb +0 -131
  89. data/sample/map_projection.rb +0 -121
  90. data/sample/ncep_theta_coord.rb +0 -79
  91. data/test_old/eof_slp.rb +0 -28
  92. data/test_old/mltbit.dat +0 -0
  93. data/test_old/test_ep_flux.rb +0 -533
  94. data/test_old/test_multibitIO.rb +0 -19
@@ -0,0 +1,1047 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
7
+
8
+ <title>Module: NumRu::GAnalysis::Planet</title>
9
+
10
+ <link rel="stylesheet" href="../../rdoc.css" type="text/css" media="screen" />
11
+
12
+ <script src="../../js/jquery.js" type="text/javascript" charset="utf-8"></script>
13
+ <script src="../../js/thickbox-compressed.js" type="text/javascript" charset="utf-8"></script>
14
+ <script src="../../js/quicksearch.js" type="text/javascript" charset="utf-8"></script>
15
+ <script src="../../js/darkfish.js" type="text/javascript" charset="utf-8"></script>
16
+
17
+ </head>
18
+ <body id="top" class="module">
19
+
20
+ <div id="metadata">
21
+ <div id="home-metadata">
22
+ <div id="home-section" class="section">
23
+ <h3 class="section-header">
24
+ <a href="../../index.html">Home</a>
25
+ <a href="../../index.html#classes">Classes</a>
26
+ <a href="../../index.html#methods">Methods</a>
27
+ </h3>
28
+ </div>
29
+ </div>
30
+
31
+ <div id="file-metadata">
32
+ <div id="file-list-section" class="section">
33
+ <h3 class="section-header">In Files</h3>
34
+ <div class="section-body">
35
+ <ul>
36
+
37
+ <li><a href="../../__/__/lib/numru/ganalysis/planet_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
38
+ class="thickbox" title="../../lib/numru/ganalysis/planet.rb">../../lib/numru/ganalysis/planet.rb</a></li>
39
+
40
+ </ul>
41
+ </div>
42
+ </div>
43
+
44
+
45
+ </div>
46
+
47
+ <div id="class-metadata">
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+ <!-- Method Quickref -->
56
+ <div id="method-list-section" class="section">
57
+ <h3 class="section-header">Methods</h3>
58
+ <ul class="link-list">
59
+
60
+ <li><a href="#method-i-absvor_s">#absvor_s</a></li>
61
+
62
+ <li><a href="#method-i-ave_s">#ave_s</a></li>
63
+
64
+ <li><a href="#method-i-div_s">#div_s</a></li>
65
+
66
+ <li><a href="#method-i-find_lon_lat_dims">#find_lon_lat_dims</a></li>
67
+
68
+ <li><a href="#method-i-get_lambda_phi">#get_lambda_phi</a></li>
69
+
70
+ <li><a href="#method-i-grad_s">#grad_s</a></li>
71
+
72
+ <li><a href="#method-i-grad_sx">#grad_sx</a></li>
73
+
74
+ <li><a href="#method-i-grad_sy">#grad_sy</a></li>
75
+
76
+ <li><a href="#method-i-grad_sy_cosphifact">#grad_sy_cosphifact</a></li>
77
+
78
+ <li><a href="#method-i-init">#init</a></li>
79
+
80
+ <li><a href="#method-i-latbc">#latbc</a></li>
81
+
82
+ <li><a href="#method-i-omega">#omega</a></li>
83
+
84
+ <li><a href="#method-i-omega-3D">#omega=</a></li>
85
+
86
+ <li><a href="#method-i-radius">#radius</a></li>
87
+
88
+ <li><a href="#method-i-radius-3D">#radius=</a></li>
89
+
90
+ <li><a href="#method-i-rot_s">#rot_s</a></li>
91
+
92
+ <li><a href="#method-i-vor_s">#vor_s</a></li>
93
+
94
+ <li><a href="#method-i-weight_cosphi">#weight_cosphi</a></li>
95
+
96
+ <li><a href="#method-i-weight_sinphi">#weight_sinphi</a></li>
97
+
98
+ <li><a href="#method-i-weight_tanphi">#weight_tanphi</a></li>
99
+
100
+ </ul>
101
+ </div>
102
+
103
+
104
+
105
+ </div>
106
+
107
+ <div id="project-metadata">
108
+
109
+
110
+
111
+ <div id="classindex-section" class="section project-section">
112
+ <h3 class="section-header">Class/Module Index
113
+ <span class="search-toggle"><img src="../../images/find.png"
114
+ height="16" width="16" alt="[+]"
115
+ title="show/hide quicksearch" /></span></h3>
116
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
117
+ <fieldset>
118
+ <legend>Quicksearch</legend>
119
+ <input type="text" name="quicksearch" value=""
120
+ class="quicksearch-field" />
121
+ </fieldset>
122
+ </form>
123
+
124
+ <ul class="link-list">
125
+
126
+ <li><a href="../../NumRu.html">NumRu</a></li>
127
+
128
+ <li><a href="../../NumRu/GAnalysis.html">NumRu::GAnalysis</a></li>
129
+
130
+ <li><a href="../../NumRu/GAnalysis/BetaPlane.html">NumRu::GAnalysis::BetaPlane</a></li>
131
+
132
+ <li><a href="../../NumRu/GAnalysis/Fitting.html">NumRu::GAnalysis::Fitting</a></li>
133
+
134
+ <li><a href="../../NumRu/GAnalysis/LogP.html">NumRu::GAnalysis::LogP</a></li>
135
+
136
+ <li><a href="../../NumRu/GAnalysis/Met.html">NumRu::GAnalysis::Met</a></li>
137
+
138
+ <li><a href="../../NumRu/GAnalysis/MetZ.html">NumRu::GAnalysis::MetZ</a></li>
139
+
140
+ <li><a href="../../NumRu/GAnalysis/Planet.html">NumRu::GAnalysis::Planet</a></li>
141
+
142
+ <li><a href="../../NumRu/GAnalysis/QG.html">NumRu::GAnalysis::QG</a></li>
143
+
144
+ <li><a href="../../NumRu/GAnalysis/QG/Uninitialized.html">NumRu::GAnalysis::QG::Uninitialized</a></li>
145
+
146
+ <li><a href="../../NumRu/GAnalysis/QG_common.html">NumRu::GAnalysis::QG_common</a></li>
147
+
148
+ <li><a href="../../NumRu/GAnalysis/QG_sphere.html">NumRu::GAnalysis::QG_sphere</a></li>
149
+
150
+ <li><a href="../../NumRu/GAnalysis/QG_sphere_common.html">NumRu::GAnalysis::QG_sphere_common</a></li>
151
+
152
+ <li><a href="../../NumRu/GAnalysis/QG_sphere_div.html">NumRu::GAnalysis::QG_sphere_div</a></li>
153
+
154
+ <li><a href="../../NumRu/GAnalysis/SigmaCoord.html">NumRu::GAnalysis::SigmaCoord</a></li>
155
+
156
+ <li><a href="../../NumRu/GGraph.html">NumRu::GGraph</a></li>
157
+
158
+ <li><a href="../../NumRu/GPhys.html">NumRu::GPhys</a></li>
159
+
160
+ <li><a href="../../Object.html">Object</a></li>
161
+
162
+ </ul>
163
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
164
+ </div>
165
+
166
+
167
+ </div>
168
+ </div>
169
+
170
+ <div id="documentation">
171
+ <h1 class="module">NumRu::GAnalysis::Planet</h1>
172
+
173
+ <div id="description" class="description">
174
+
175
+ <p>Library for spherical planets (thin spherical shell; default: <a
176
+ href="Planet.html#Earth">Earth</a>)</p>
177
+
178
+ <p>ASSUMPTIONS</p>
179
+ <ul><li>
180
+ <p>longitude is assumed to increase in the eastward direction.</p>
181
+ </li><li>
182
+ <p>latitude is assumed to increase in the northward direction, and it is zero
183
+ at the equator.</p>
184
+ </li></ul>
185
+
186
+ </div><!-- description -->
187
+
188
+
189
+
190
+
191
+ <div id="5Buntitled-5D" class="documentation-section">
192
+
193
+
194
+
195
+
196
+
197
+ <!-- Constants -->
198
+ <div id="constants-list" class="section">
199
+ <h3 class="section-header">Constants</h3>
200
+ <dl>
201
+
202
+ <dt><a name="Earth">Earth</a></dt>
203
+
204
+ <dd class="description"><p>&lt; Pre-defined planets &gt;</p></dd>
205
+
206
+
207
+ </dl>
208
+ </div>
209
+
210
+
211
+
212
+
213
+ <!-- Methods -->
214
+
215
+ <div id="public-instance-method-details" class="method-section section">
216
+ <h3 class="section-header">Public Instance Methods</h3>
217
+
218
+
219
+ <div id="absvor_s-method" class="method-detail ">
220
+ <a name="method-i-absvor_s"></a>
221
+
222
+
223
+ <div class="method-heading">
224
+ <span class="method-name">absvor_s</span><span
225
+ class="method-args">(u,v)</span>
226
+ <span class="method-click-advice">click to toggle source</span>
227
+ </div>
228
+
229
+
230
+ <div class="method-description">
231
+
232
+
233
+
234
+
235
+
236
+ <div class="method-source-code" id="absvor_s-source">
237
+ <pre>
238
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 105</span>
239
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">absvor_s</span>(<span class="ruby-identifier">u</span>,<span class="ruby-identifier">v</span>)
240
+ <span class="ruby-identifier">avor</span> = <span class="ruby-identifier">vor_s</span>(<span class="ruby-identifier">u</span>,<span class="ruby-identifier">v</span>) <span class="ruby-operator">+</span> <span class="ruby-identifier">@@phi</span>.<span class="ruby-identifier">sin</span> * (<span class="ruby-value">2</span>*<span class="ruby-identifier">@@Ome</span>)
241
+ <span class="ruby-identifier">avor</span>.<span class="ruby-identifier">long_name</span> = <span class="ruby-string">&quot;Absolute Vorticity&quot;</span>
242
+ <span class="ruby-identifier">avor</span>.<span class="ruby-identifier">name</span> = <span class="ruby-string">&quot;avor&quot;</span>
243
+ <span class="ruby-identifier">avor</span>
244
+ <span class="ruby-keyword">end</span></pre>
245
+ </div><!-- absvor_s-source -->
246
+
247
+ </div>
248
+
249
+
250
+
251
+
252
+ </div><!-- absvor_s-method -->
253
+
254
+
255
+ <div id="ave_s-method" class="method-detail ">
256
+ <a name="method-i-ave_s"></a>
257
+
258
+
259
+ <div class="method-heading">
260
+ <span class="method-name">ave_s</span><span
261
+ class="method-args">(s)</span>
262
+ <span class="method-click-advice">click to toggle source</span>
263
+ </div>
264
+
265
+
266
+ <div class="method-description">
267
+
268
+ <p>horizontal averaging considering the spherical geometry</p>
269
+
270
+
271
+
272
+ <div class="method-source-code" id="ave_s-source">
273
+ <pre>
274
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 66</span>
275
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">ave_s</span>(<span class="ruby-identifier">s</span>)
276
+ <span class="ruby-identifier">lam</span>, <span class="ruby-identifier">phi</span>, <span class="ruby-identifier">lond</span>, <span class="ruby-identifier">latd</span> = <span class="ruby-identifier">get_lambda_phi</span>(<span class="ruby-identifier">s</span>)
277
+ <span class="ruby-identifier">xmean</span> = <span class="ruby-identifier">s</span>.<span class="ruby-identifier">mean</span>(<span class="ruby-identifier">lond</span>)
278
+ <span class="ruby-identifier">cos_phi</span> = <span class="ruby-identifier">phi</span>.<span class="ruby-identifier">cos</span>
279
+
280
+ <span class="ruby-identifier">lond</span>,<span class="ruby-identifier">latd</span> = <span class="ruby-identifier">find_lon_lat_dims</span>(<span class="ruby-identifier">xmean</span>) <span class="ruby-comment"># find latd again</span>
281
+ <span class="ruby-identifier">wgt</span> = <span class="ruby-identifier">cos_phi</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">cos_phi</span>.<span class="ruby-identifier">sum</span>
282
+ (<span class="ruby-identifier">xmean</span> * <span class="ruby-identifier">wgt</span>).<span class="ruby-identifier">sum</span>(<span class="ruby-identifier">latd</span>)
283
+ <span class="ruby-keyword">end</span></pre>
284
+ </div><!-- ave_s-source -->
285
+
286
+ </div>
287
+
288
+
289
+
290
+
291
+ </div><!-- ave_s-method -->
292
+
293
+
294
+ <div id="div_s-method" class="method-detail ">
295
+ <a name="method-i-div_s"></a>
296
+
297
+
298
+ <div class="method-heading">
299
+ <span class="method-name">div_s</span><span
300
+ class="method-args">(u,v)</span>
301
+ <span class="method-click-advice">click to toggle source</span>
302
+ </div>
303
+
304
+
305
+ <div class="method-description">
306
+
307
+
308
+
309
+
310
+
311
+ <div class="method-source-code" id="div_s-source">
312
+ <pre>
313
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 87</span>
314
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">div_s</span>(<span class="ruby-identifier">u</span>,<span class="ruby-identifier">v</span>)
315
+ <span class="ruby-identifier">lam</span>, <span class="ruby-identifier">phi</span>, <span class="ruby-identifier">lond</span>, <span class="ruby-identifier">latd</span> = <span class="ruby-identifier">get_lambda_phi</span>(<span class="ruby-identifier">u</span>)
316
+ <span class="ruby-identifier">cos_phi</span> = <span class="ruby-identifier">phi</span>.<span class="ruby-identifier">cos</span>
317
+ <span class="ruby-identifier">du_dlam</span> = <span class="ruby-identifier">u</span>.<span class="ruby-identifier">cderiv</span>(<span class="ruby-identifier">lond</span>,<span class="ruby-identifier">@@lonbc</span>,<span class="ruby-identifier">lam</span>)
318
+ <span class="ruby-identifier">dvc_dphi</span> = (<span class="ruby-identifier">v</span>*<span class="ruby-identifier">cos_phi</span>).<span class="ruby-identifier">cderiv</span>(<span class="ruby-identifier">latd</span>,<span class="ruby-identifier">latbc</span>(<span class="ruby-identifier">phi</span>),<span class="ruby-identifier">phi</span>)
319
+ <span class="ruby-identifier">rot</span> = (<span class="ruby-identifier">du_dlam</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">dvc_dphi</span>) <span class="ruby-operator">/</span> (<span class="ruby-identifier">@@R</span>*<span class="ruby-identifier">cos_phi</span>)
320
+ <span class="ruby-identifier">rot</span>.<span class="ruby-identifier">long_name</span> = <span class="ruby-node">&quot;div(#{u.name},#{v.name})&quot;</span>
321
+ <span class="ruby-identifier">rot</span>.<span class="ruby-identifier">name</span> = <span class="ruby-string">&quot;div&quot;</span>
322
+ <span class="ruby-identifier">rot</span>
323
+ <span class="ruby-keyword">end</span></pre>
324
+ </div><!-- div_s-source -->
325
+
326
+ </div>
327
+
328
+
329
+
330
+
331
+ </div><!-- div_s-method -->
332
+
333
+
334
+ <div id="find_lon_lat_dims-method" class="method-detail ">
335
+ <a name="method-i-find_lon_lat_dims"></a>
336
+
337
+
338
+ <div class="method-heading">
339
+ <span class="method-name">find_lon_lat_dims</span><span
340
+ class="method-args">(gp, err_raise=false)</span>
341
+ <span class="method-click-advice">click to toggle source</span>
342
+ </div>
343
+
344
+
345
+ <div class="method-description">
346
+
347
+ <p>Find longitude and latitude coordinates.</p>
348
+
349
+ <p>ARGUMENTS</p>
350
+ <ul><li>
351
+ <p>gp : <a href="../GPhys.html">GPhys</a> to inspect</p>
352
+ </li><li>
353
+ <p>err_raise (OPTIONAL; default:false) : if true, exception is raised if
354
+ longitude or latitude coordinate is not found.</p>
355
+ </li></ul>
356
+
357
+ <p>SEARCH CRITERIA (1) Find coord having units “degrees_east” (lon) or</p>
358
+
359
+ <pre>&quot;degrees_north&quot; (lat)</pre>
360
+
361
+ <p>(2) Investigate coordinate name matches (to find a lonitude coord,</p>
362
+
363
+ <pre>/longitude/i for long_name or standard_name, or /^lon/ for name)
364
+ and match units compatible with &quot;degrees&quot;.</pre>
365
+
366
+ <p>RETURN VALUE</p>
367
+ <ul><li><dl class="rdoc-list"><dt>lond,latd</dt>
368
+ <dd></dd></dl>
369
+ <ul><li>
370
+ <p>lond: dimension number of longitude (0,1,..) if found / nil if not found</p>
371
+ </li><li>
372
+ <p>latd: dimension number of latitude (0,1,..) if found / nil if not found</p>
373
+ </li></ul>
374
+ </li></ul>
375
+
376
+
377
+
378
+ <div class="method-source-code" id="find_lon_lat_dims-source">
379
+ <pre>
380
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 221</span>
381
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">find_lon_lat_dims</span>(<span class="ruby-identifier">gp</span>, <span class="ruby-identifier">err_raise</span>=<span class="ruby-keyword">false</span>)
382
+ <span class="ruby-identifier">lond</span> = <span class="ruby-keyword">nil</span>
383
+ <span class="ruby-identifier">latd</span> = <span class="ruby-keyword">nil</span>
384
+ (<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">gp</span>.<span class="ruby-identifier">rank</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">dim</span><span class="ruby-operator">|</span>
385
+ <span class="ruby-identifier">crd</span> = <span class="ruby-identifier">gp</span>.<span class="ruby-identifier">coord</span>(<span class="ruby-identifier">dim</span>)
386
+ <span class="ruby-keyword">if</span> <span class="ruby-regexp">/^degrees?_east$/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">crd</span>.<span class="ruby-identifier">get_att</span>(<span class="ruby-string">&quot;units&quot;</span>)
387
+ <span class="ruby-identifier">lond</span> = <span class="ruby-identifier">dim</span>
388
+ <span class="ruby-keyword">break</span>
389
+ <span class="ruby-keyword">elsif</span> ( ( <span class="ruby-regexp">/longitude/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">crd</span>.<span class="ruby-identifier">long_name</span> <span class="ruby-operator">||</span>
390
+ <span class="ruby-regexp">/^lon/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">crd</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">||</span>
391
+ (<span class="ruby-identifier">nm</span>=<span class="ruby-identifier">crd</span>.<span class="ruby-identifier">get_att</span>(<span class="ruby-string">&quot;standard_name&quot;</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-regexp">/longitude/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">nm</span> ) <span class="ruby-operator">&amp;&amp;</span>
392
+ (<span class="ruby-identifier">crd</span>.<span class="ruby-identifier">units</span> <span class="ruby-operator">=~</span> <span class="ruby-constant">Units</span>[<span class="ruby-string">&quot;degrees_east&quot;</span>]) ) )
393
+ <span class="ruby-identifier">lond</span> = <span class="ruby-identifier">dim</span>
394
+ <span class="ruby-keyword">break</span>
395
+ <span class="ruby-keyword">end</span>
396
+ <span class="ruby-keyword">end</span>
397
+ (<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">gp</span>.<span class="ruby-identifier">rank</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">dim</span><span class="ruby-operator">|</span>
398
+ <span class="ruby-keyword">next</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">dim</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">lond</span>
399
+ <span class="ruby-identifier">crd</span> = <span class="ruby-identifier">gp</span>.<span class="ruby-identifier">coord</span>(<span class="ruby-identifier">dim</span>)
400
+ <span class="ruby-keyword">if</span> <span class="ruby-regexp">/^degrees?_north$/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">crd</span>.<span class="ruby-identifier">get_att</span>(<span class="ruby-string">&quot;units&quot;</span>)
401
+ <span class="ruby-identifier">latd</span> = <span class="ruby-identifier">dim</span>
402
+ <span class="ruby-keyword">break</span>
403
+ <span class="ruby-keyword">elsif</span> ( ( <span class="ruby-regexp">/latitude/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">crd</span>.<span class="ruby-identifier">long_name</span> <span class="ruby-operator">||</span>
404
+ <span class="ruby-regexp">/^lat/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">crd</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">||</span>
405
+ (<span class="ruby-identifier">nm</span>=<span class="ruby-identifier">crd</span>.<span class="ruby-identifier">get_att</span>(<span class="ruby-string">&quot;standard_name&quot;</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-regexp">/latitude/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">nm</span> ) <span class="ruby-operator">&amp;&amp;</span>
406
+ (<span class="ruby-identifier">crd</span>.<span class="ruby-identifier">units</span> <span class="ruby-operator">=~</span> <span class="ruby-constant">Units</span>[<span class="ruby-string">&quot;degrees_north&quot;</span>]) ) )
407
+ <span class="ruby-identifier">latd</span> = <span class="ruby-identifier">dim</span>
408
+ <span class="ruby-keyword">break</span>
409
+ <span class="ruby-keyword">end</span>
410
+ <span class="ruby-keyword">end</span>
411
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">err_raise</span>
412
+ <span class="ruby-identifier">raise</span>(<span class="ruby-string">&quot;Longitude dimension was not found&quot;</span>) <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">lond</span>
413
+ <span class="ruby-identifier">raise</span>(<span class="ruby-string">&quot;Latitude dimension was not found&quot;</span>) <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">latd</span>
414
+ <span class="ruby-keyword">end</span>
415
+ [<span class="ruby-identifier">lond</span>,<span class="ruby-identifier">latd</span>]
416
+ <span class="ruby-keyword">end</span></pre>
417
+ </div><!-- find_lon_lat_dims-source -->
418
+
419
+ </div>
420
+
421
+
422
+
423
+
424
+ </div><!-- find_lon_lat_dims-method -->
425
+
426
+
427
+ <div id="get_lambda_phi-method" class="method-detail ">
428
+ <a name="method-i-get_lambda_phi"></a>
429
+
430
+
431
+ <div class="method-heading">
432
+ <span class="method-name">get_lambda_phi</span><span
433
+ class="method-args">(gp, err_raise=true)</span>
434
+ <span class="method-click-advice">click to toggle source</span>
435
+ </div>
436
+
437
+
438
+ <div class="method-description">
439
+
440
+ <p>Find longitude and latitude coordinates and convert into radian.</p>
441
+
442
+ <p>RETURN VALUE</p>
443
+ <ul><li><dl class="rdoc-list"><dt>lam, phi, lond, latd</dt>
444
+ <dd></dd></dl>
445
+ <ul><li>
446
+ <p>lam (<a href="../GPhys.html">GPhys</a>): longitude in radian (lambda).
447
+ (nil if not found &amp;&amp; !err_raise)</p>
448
+ </li><li>
449
+ <p>phi (<a href="../GPhys.html">GPhys</a>): latitude in radian (lambda). (nil
450
+ if not found &amp;&amp; !err_raise)</p>
451
+ </li><li>
452
+ <p>lond : Interger to show that longitude is the lon-th dim if found; (nil if
453
+ not found &amp;&amp; !err_raise)</p>
454
+ </li><li>
455
+ <p>latd : Interger to show that latitude is the lat-th dim iffound; (nil if
456
+ not found &amp;&amp; !err_raise)</p>
457
+ </li></ul>
458
+ </li></ul>
459
+
460
+
461
+
462
+ <div class="method-source-code" id="get_lambda_phi-source">
463
+ <pre>
464
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 188</span>
465
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">get_lambda_phi</span>(<span class="ruby-identifier">gp</span>, <span class="ruby-identifier">err_raise</span>=<span class="ruby-keyword">true</span>)
466
+ <span class="ruby-identifier">lond</span>, <span class="ruby-identifier">latd</span> = <span class="ruby-identifier">find_lon_lat_dims</span>(<span class="ruby-identifier">gp</span>, <span class="ruby-identifier">err_raise</span>)
467
+ <span class="ruby-identifier">lam</span> = <span class="ruby-identifier">lond</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">gp</span>.<span class="ruby-identifier">axis</span>(<span class="ruby-identifier">lond</span>).<span class="ruby-identifier">to_gphys</span>.<span class="ruby-identifier">convert_units</span>(<span class="ruby-string">&quot;rad&quot;</span>) <span class="ruby-comment"># lon in rad</span>
468
+ <span class="ruby-identifier">lam</span>.<span class="ruby-identifier">units</span> = <span class="ruby-string">&quot;&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">lond</span> <span class="ruby-comment"># treat as non-dim</span>
469
+ <span class="ruby-identifier">phi</span> = <span class="ruby-identifier">latd</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">gp</span>.<span class="ruby-identifier">axis</span>(<span class="ruby-identifier">latd</span>).<span class="ruby-identifier">to_gphys</span>.<span class="ruby-identifier">convert_units</span>(<span class="ruby-string">&quot;rad&quot;</span>) <span class="ruby-comment"># lat in rad</span>
470
+ <span class="ruby-identifier">phi</span>.<span class="ruby-identifier">units</span> = <span class="ruby-string">&quot;&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">latd</span> <span class="ruby-comment"># treat as non-dim</span>
471
+ <span class="ruby-identifier">@@lam</span> = <span class="ruby-identifier">lam</span>
472
+ <span class="ruby-identifier">@@phi</span> = <span class="ruby-identifier">phi</span>
473
+ [<span class="ruby-identifier">lam</span>, <span class="ruby-identifier">phi</span>, <span class="ruby-identifier">lond</span>, <span class="ruby-identifier">latd</span>]
474
+ <span class="ruby-keyword">end</span></pre>
475
+ </div><!-- get_lambda_phi-source -->
476
+
477
+ </div>
478
+
479
+
480
+
481
+
482
+ </div><!-- get_lambda_phi-method -->
483
+
484
+
485
+ <div id="grad_s-method" class="method-detail ">
486
+ <a name="method-i-grad_s"></a>
487
+
488
+
489
+ <div class="method-heading">
490
+ <span class="method-name">grad_s</span><span
491
+ class="method-args">(s)</span>
492
+ <span class="method-click-advice">click to toggle source</span>
493
+ </div>
494
+
495
+
496
+ <div class="method-description">
497
+
498
+
499
+
500
+
501
+
502
+ <div class="method-source-code" id="grad_s-source">
503
+ <pre>
504
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 112</span>
505
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">grad_s</span>(<span class="ruby-identifier">s</span>)
506
+ <span class="ruby-identifier">lam</span>, <span class="ruby-identifier">phi</span>, <span class="ruby-identifier">lond</span>, <span class="ruby-identifier">latd</span> = <span class="ruby-identifier">get_lambda_phi</span>(<span class="ruby-identifier">s</span>)
507
+ <span class="ruby-identifier">cos_phi</span> = <span class="ruby-identifier">phi</span>.<span class="ruby-identifier">cos</span>
508
+ <span class="ruby-identifier">xs</span> = <span class="ruby-identifier">s</span>.<span class="ruby-identifier">cderiv</span>(<span class="ruby-identifier">lond</span>,<span class="ruby-identifier">@@lonbc</span>,<span class="ruby-identifier">lam</span>) <span class="ruby-operator">/</span> (<span class="ruby-identifier">@@R</span>*<span class="ruby-identifier">cos_phi</span>)
509
+ <span class="ruby-identifier">ys</span> = <span class="ruby-identifier">s</span>.<span class="ruby-identifier">cderiv</span>(<span class="ruby-identifier">latd</span>,<span class="ruby-identifier">latbc</span>(<span class="ruby-identifier">phi</span>),<span class="ruby-identifier">phi</span>) <span class="ruby-operator">/</span> <span class="ruby-identifier">@@R</span>
510
+ <span class="ruby-identifier">xs</span>.<span class="ruby-identifier">long_name</span> = <span class="ruby-node">&quot;xgrad(#{s.name})&quot;</span>
511
+ <span class="ruby-identifier">xs</span>.<span class="ruby-identifier">name</span> = <span class="ruby-string">&quot;xgrad&quot;</span>
512
+ <span class="ruby-identifier">ys</span>.<span class="ruby-identifier">long_name</span> = <span class="ruby-node">&quot;ygrad(#{s.name})&quot;</span>
513
+ <span class="ruby-identifier">ys</span>.<span class="ruby-identifier">name</span> = <span class="ruby-string">&quot;ygrad&quot;</span>
514
+ [<span class="ruby-identifier">xs</span>,<span class="ruby-identifier">ys</span>]
515
+ <span class="ruby-keyword">end</span></pre>
516
+ </div><!-- grad_s-source -->
517
+
518
+ </div>
519
+
520
+
521
+
522
+
523
+ </div><!-- grad_s-method -->
524
+
525
+
526
+ <div id="grad_sx-method" class="method-detail ">
527
+ <a name="method-i-grad_sx"></a>
528
+
529
+
530
+ <div class="method-heading">
531
+ <span class="method-name">grad_sx</span><span
532
+ class="method-args">(s)</span>
533
+ <span class="method-click-advice">click to toggle source</span>
534
+ </div>
535
+
536
+
537
+ <div class="method-description">
538
+
539
+
540
+
541
+
542
+
543
+ <div class="method-source-code" id="grad_sx-source">
544
+ <pre>
545
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 124</span>
546
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">grad_sx</span>(<span class="ruby-identifier">s</span>)
547
+ <span class="ruby-identifier">lam</span>, <span class="ruby-identifier">phi</span>, <span class="ruby-identifier">lond</span>, <span class="ruby-identifier">latd</span> = <span class="ruby-identifier">get_lambda_phi</span>(<span class="ruby-identifier">s</span>)
548
+ <span class="ruby-identifier">cos_phi</span> = <span class="ruby-identifier">phi</span>.<span class="ruby-identifier">cos</span>
549
+ <span class="ruby-identifier">xs</span> = <span class="ruby-identifier">s</span>.<span class="ruby-identifier">cderiv</span>(<span class="ruby-identifier">lond</span>,<span class="ruby-identifier">@@lonbc</span>,<span class="ruby-identifier">lam</span>) <span class="ruby-operator">/</span> (<span class="ruby-identifier">@@R</span>*<span class="ruby-identifier">cos_phi</span>)
550
+ <span class="ruby-identifier">xs</span>.<span class="ruby-identifier">long_name</span> = <span class="ruby-node">&quot;xgrad(#{s.name})&quot;</span>
551
+ <span class="ruby-identifier">xs</span>.<span class="ruby-identifier">name</span> = <span class="ruby-string">&quot;xgrad&quot;</span>
552
+ <span class="ruby-identifier">xs</span>
553
+ <span class="ruby-keyword">end</span></pre>
554
+ </div><!-- grad_sx-source -->
555
+
556
+ </div>
557
+
558
+
559
+
560
+
561
+ </div><!-- grad_sx-method -->
562
+
563
+
564
+ <div id="grad_sy-method" class="method-detail ">
565
+ <a name="method-i-grad_sy"></a>
566
+
567
+
568
+ <div class="method-heading">
569
+ <span class="method-name">grad_sy</span><span
570
+ class="method-args">(s)</span>
571
+ <span class="method-click-advice">click to toggle source</span>
572
+ </div>
573
+
574
+
575
+ <div class="method-description">
576
+
577
+
578
+
579
+
580
+
581
+ <div class="method-source-code" id="grad_sy-source">
582
+ <pre>
583
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 133</span>
584
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">grad_sy</span>(<span class="ruby-identifier">s</span>)
585
+ <span class="ruby-identifier">lam</span>, <span class="ruby-identifier">phi</span>, <span class="ruby-identifier">lond</span>, <span class="ruby-identifier">latd</span> = <span class="ruby-identifier">get_lambda_phi</span>(<span class="ruby-identifier">s</span>)
586
+ <span class="ruby-identifier">cos_phi</span> = <span class="ruby-identifier">phi</span>.<span class="ruby-identifier">cos</span>
587
+ <span class="ruby-identifier">ys</span> = <span class="ruby-identifier">s</span>.<span class="ruby-identifier">cderiv</span>(<span class="ruby-identifier">latd</span>,<span class="ruby-identifier">latbc</span>(<span class="ruby-identifier">phi</span>),<span class="ruby-identifier">phi</span>) <span class="ruby-operator">/</span> <span class="ruby-identifier">@@R</span>
588
+ <span class="ruby-identifier">ys</span>.<span class="ruby-identifier">long_name</span> = <span class="ruby-node">&quot;ygrad(#{s.name})&quot;</span>
589
+ <span class="ruby-identifier">ys</span>.<span class="ruby-identifier">name</span> = <span class="ruby-string">&quot;ygrad&quot;</span>
590
+ <span class="ruby-identifier">ys</span>
591
+ <span class="ruby-keyword">end</span></pre>
592
+ </div><!-- grad_sy-source -->
593
+
594
+ </div>
595
+
596
+
597
+
598
+
599
+ </div><!-- grad_sy-method -->
600
+
601
+
602
+ <div id="grad_sy_cosphifact-method" class="method-detail ">
603
+ <a name="method-i-grad_sy_cosphifact"></a>
604
+
605
+
606
+ <div class="method-heading">
607
+ <span class="method-name">grad_sy_cosphifact</span><span
608
+ class="method-args">(s,cosphi_exponent)</span>
609
+ <span class="method-click-advice">click to toggle source</span>
610
+ </div>
611
+
612
+
613
+ <div class="method-description">
614
+
615
+
616
+
617
+
618
+
619
+ <div class="method-source-code" id="grad_sy_cosphifact-source">
620
+ <pre>
621
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 142</span>
622
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">grad_sy_cosphifact</span>(<span class="ruby-identifier">s</span>,<span class="ruby-identifier">cosphi_exponent</span>)
623
+ <span class="ruby-identifier">lam</span>, <span class="ruby-identifier">phi</span>, <span class="ruby-identifier">lond</span>, <span class="ruby-identifier">latd</span> = <span class="ruby-identifier">get_lambda_phi</span>(<span class="ruby-identifier">s</span>)
624
+ <span class="ruby-identifier">cos_phi</span> = <span class="ruby-identifier">phi</span>.<span class="ruby-identifier">cos</span>
625
+ <span class="ruby-identifier">cos_phi_factor</span> = <span class="ruby-identifier">cos_phi</span><span class="ruby-operator">**</span><span class="ruby-identifier">cosphi_exponent</span>
626
+ <span class="ruby-identifier">ys</span> = (<span class="ruby-identifier">s</span>*<span class="ruby-identifier">cos_phi_factor</span>).<span class="ruby-identifier">cderiv</span>(<span class="ruby-identifier">latd</span>,<span class="ruby-identifier">latbc</span>(<span class="ruby-identifier">phi</span>),<span class="ruby-identifier">phi</span>)<span class="ruby-operator">/</span><span class="ruby-identifier">cos_phi_factor</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">@@R</span>
627
+ <span class="ruby-identifier">ys</span>.<span class="ruby-identifier">long_name</span> = <span class="ruby-node">&quot;ygrad(#{s.name})&quot;</span>
628
+ <span class="ruby-identifier">ys</span>.<span class="ruby-identifier">name</span> = <span class="ruby-string">&quot;ygrad&quot;</span>
629
+ <span class="ruby-identifier">ys</span>
630
+ <span class="ruby-keyword">end</span></pre>
631
+ </div><!-- grad_sy_cosphifact-source -->
632
+
633
+ </div>
634
+
635
+
636
+
637
+
638
+ </div><!-- grad_sy_cosphifact-method -->
639
+
640
+
641
+ <div id="init-method" class="method-detail ">
642
+ <a name="method-i-init"></a>
643
+
644
+
645
+ <div class="method-heading">
646
+ <span class="method-name">init</span><span
647
+ class="method-args">(planet)</span>
648
+ <span class="method-click-advice">click to toggle source</span>
649
+ </div>
650
+
651
+
652
+ <div class="method-description">
653
+
654
+
655
+
656
+
657
+
658
+ <div class="method-source-code" id="init-source">
659
+ <pre>
660
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 19</span>
661
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">init</span>(<span class="ruby-identifier">planet</span>)
662
+ <span class="ruby-keyword">case</span> <span class="ruby-identifier">planet</span>
663
+ <span class="ruby-keyword">when</span> <span class="ruby-constant">Earth</span>
664
+ <span class="ruby-identifier">@@R</span> = <span class="ruby-constant">UNumeric</span>[<span class="ruby-value">6.37e6</span>, <span class="ruby-string">&quot;m&quot;</span>]
665
+ <span class="ruby-identifier">@@Ome</span> = <span class="ruby-constant">UNumeric</span>[<span class="ruby-value">2</span>*<span class="ruby-constant">Math</span><span class="ruby-operator">::</span><span class="ruby-constant">PI</span><span class="ruby-operator">/</span><span class="ruby-value">8.64e4</span>,<span class="ruby-string">&quot;s-1&quot;</span>]
666
+ <span class="ruby-keyword">else</span>
667
+ <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unsupported predefined planet: #{planet}.&quot;</span>
668
+ <span class="ruby-keyword">end</span>
669
+ <span class="ruby-keyword">end</span></pre>
670
+ </div><!-- init-source -->
671
+
672
+ </div>
673
+
674
+
675
+
676
+
677
+ </div><!-- init-method -->
678
+
679
+
680
+ <div id="latbc-method" class="method-detail ">
681
+ <a name="method-i-latbc"></a>
682
+
683
+
684
+ <div class="method-heading">
685
+ <span class="method-name">latbc</span><span
686
+ class="method-args">(phi)</span>
687
+ <span class="method-click-advice">click to toggle source</span>
688
+ </div>
689
+
690
+
691
+ <div class="method-description">
692
+
693
+ <p>&lt; Differentian at the planets’s near surface. With suffix “_s” &gt;</p>
694
+
695
+
696
+
697
+ <div class="method-source-code" id="latbc-source">
698
+ <pre>
699
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 48</span>
700
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">latbc</span>(<span class="ruby-identifier">phi</span>)
701
+ <span class="ruby-comment"> # not so good
702
+ pi2 = Math::PI/2
703
+ eps = 0.1
704
+ xs = phi[0..1].val
705
+ xe = phi[-2..-1].val
706
+ if (pi2-xs[0].abs) / (xs[0]-xs[1]).abs &lt; eps and
707
+ (pi2-xe[-1].abs) / (xe[-1]-xe[-2]).abs &lt; eps
708
+ GPhys::Derivative::MIRROR_B
709
+ else
710
+ GPhys::Derivative::LINEAR_EXT
711
+ end
712
+ </span> <span class="ruby-constant">GPhys</span><span class="ruby-operator">::</span><span class="ruby-constant">Derivative</span><span class="ruby-operator">::</span><span class="ruby-constant">LINEAR_EXT</span>
713
+ <span class="ruby-keyword">end</span></pre>
714
+ </div><!-- latbc-source -->
715
+
716
+ </div>
717
+
718
+
719
+
720
+
721
+ </div><!-- latbc-method -->
722
+
723
+
724
+ <div id="omega-method" class="method-detail ">
725
+ <a name="method-i-omega"></a>
726
+
727
+
728
+ <div class="method-heading">
729
+ <span class="method-name">omega</span><span
730
+ class="method-args">()</span>
731
+ <span class="method-click-advice">click to toggle source</span>
732
+ </div>
733
+
734
+
735
+ <div class="method-description">
736
+
737
+
738
+
739
+
740
+
741
+ <div class="method-source-code" id="omega-source">
742
+ <pre>
743
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 36</span>
744
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">omega</span>; <span class="ruby-identifier">@@Ome</span>; <span class="ruby-keyword">end</span></pre>
745
+ </div><!-- omega-source -->
746
+
747
+ </div>
748
+
749
+
750
+
751
+
752
+ </div><!-- omega-method -->
753
+
754
+
755
+ <div id="omega-3D-method" class="method-detail ">
756
+ <a name="method-i-omega-3D"></a>
757
+
758
+
759
+ <div class="method-heading">
760
+ <span class="method-name">omega=</span><span
761
+ class="method-args">(o)</span>
762
+ <span class="method-click-advice">click to toggle source</span>
763
+ </div>
764
+
765
+
766
+ <div class="method-description">
767
+
768
+
769
+
770
+
771
+
772
+ <div class="method-source-code" id="omega-3D-source">
773
+ <pre>
774
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 34</span>
775
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">omega=</span>(<span class="ruby-identifier">o</span>); <span class="ruby-identifier">@@Ome</span> = <span class="ruby-identifier">o</span>; <span class="ruby-keyword">end</span></pre>
776
+ </div><!-- omega-3D-source -->
777
+
778
+ </div>
779
+
780
+
781
+
782
+
783
+ </div><!-- omega-3D-method -->
784
+
785
+
786
+ <div id="radius-method" class="method-detail ">
787
+ <a name="method-i-radius"></a>
788
+
789
+
790
+ <div class="method-heading">
791
+ <span class="method-name">radius</span><span
792
+ class="method-args">()</span>
793
+ <span class="method-click-advice">click to toggle source</span>
794
+ </div>
795
+
796
+
797
+ <div class="method-description">
798
+
799
+
800
+
801
+
802
+
803
+ <div class="method-source-code" id="radius-source">
804
+ <pre>
805
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 35</span>
806
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">radius</span>; <span class="ruby-identifier">@@R</span>; <span class="ruby-keyword">end</span></pre>
807
+ </div><!-- radius-source -->
808
+
809
+ </div>
810
+
811
+
812
+
813
+
814
+ </div><!-- radius-method -->
815
+
816
+
817
+ <div id="radius-3D-method" class="method-detail ">
818
+ <a name="method-i-radius-3D"></a>
819
+
820
+
821
+ <div class="method-heading">
822
+ <span class="method-name">radius=</span><span
823
+ class="method-args">(r)</span>
824
+ <span class="method-click-advice">click to toggle source</span>
825
+ </div>
826
+
827
+
828
+ <div class="method-description">
829
+
830
+ <p>&lt; Adjustable planetary settings &gt;</p>
831
+
832
+
833
+
834
+ <div class="method-source-code" id="radius-3D-source">
835
+ <pre>
836
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 33</span>
837
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">radius=</span>(<span class="ruby-identifier">r</span>); <span class="ruby-identifier">@@R</span> = <span class="ruby-identifier">r</span>; <span class="ruby-keyword">end</span></pre>
838
+ </div><!-- radius-3D-source -->
839
+
840
+ </div>
841
+
842
+
843
+
844
+
845
+ </div><!-- radius-3D-method -->
846
+
847
+
848
+ <div id="rot_s-method" class="method-detail ">
849
+ <a name="method-i-rot_s"></a>
850
+
851
+
852
+ <div class="method-heading">
853
+ <span class="method-name">rot_s</span><span
854
+ class="method-args">(u,v)</span>
855
+ <span class="method-click-advice">click to toggle source</span>
856
+ </div>
857
+
858
+
859
+ <div class="method-description">
860
+
861
+
862
+
863
+
864
+
865
+ <div class="method-source-code" id="rot_s-source">
866
+ <pre>
867
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 76</span>
868
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">rot_s</span>(<span class="ruby-identifier">u</span>,<span class="ruby-identifier">v</span>)
869
+ <span class="ruby-identifier">lam</span>, <span class="ruby-identifier">phi</span>, <span class="ruby-identifier">lond</span>, <span class="ruby-identifier">latd</span> = <span class="ruby-identifier">get_lambda_phi</span>(<span class="ruby-identifier">u</span>)
870
+ <span class="ruby-identifier">cos_phi</span> = <span class="ruby-identifier">phi</span>.<span class="ruby-identifier">cos</span>
871
+ <span class="ruby-identifier">dv_dlam</span> = <span class="ruby-identifier">v</span>.<span class="ruby-identifier">cderiv</span>(<span class="ruby-identifier">lond</span>,<span class="ruby-identifier">@@lonbc</span>,<span class="ruby-identifier">lam</span>)
872
+ <span class="ruby-identifier">duc_dphi</span> = (<span class="ruby-identifier">u</span>*<span class="ruby-identifier">cos_phi</span>).<span class="ruby-identifier">cderiv</span>(<span class="ruby-identifier">latd</span>,<span class="ruby-identifier">latbc</span>(<span class="ruby-identifier">phi</span>),<span class="ruby-identifier">phi</span>)
873
+ <span class="ruby-identifier">rot</span> = (<span class="ruby-identifier">dv_dlam</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">duc_dphi</span>) <span class="ruby-operator">/</span> (<span class="ruby-identifier">@@R</span>*<span class="ruby-identifier">cos_phi</span>)
874
+ <span class="ruby-identifier">rot</span>.<span class="ruby-identifier">long_name</span> = <span class="ruby-node">&quot;rot(#{u.name},#{v.name})&quot;</span>
875
+ <span class="ruby-identifier">rot</span>.<span class="ruby-identifier">name</span> = <span class="ruby-string">&quot;rot&quot;</span>
876
+ <span class="ruby-identifier">rot</span>
877
+ <span class="ruby-keyword">end</span></pre>
878
+ </div><!-- rot_s-source -->
879
+
880
+ </div>
881
+
882
+
883
+
884
+
885
+ </div><!-- rot_s-method -->
886
+
887
+
888
+ <div id="vor_s-method" class="method-detail ">
889
+ <a name="method-i-vor_s"></a>
890
+
891
+
892
+ <div class="method-heading">
893
+ <span class="method-name">vor_s</span><span
894
+ class="method-args">(u,v)</span>
895
+ <span class="method-click-advice">click to toggle source</span>
896
+ </div>
897
+
898
+
899
+ <div class="method-description">
900
+
901
+
902
+
903
+
904
+
905
+ <div class="method-source-code" id="vor_s-source">
906
+ <pre>
907
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 98</span>
908
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">vor_s</span>(<span class="ruby-identifier">u</span>,<span class="ruby-identifier">v</span>)
909
+ <span class="ruby-identifier">vor</span> = <span class="ruby-identifier">rot_s</span>(<span class="ruby-identifier">u</span>,<span class="ruby-identifier">v</span>)
910
+ <span class="ruby-identifier">vor</span>.<span class="ruby-identifier">long_name</span> = <span class="ruby-string">&quot;Relative Vorticity&quot;</span>
911
+ <span class="ruby-identifier">vor</span>.<span class="ruby-identifier">name</span> = <span class="ruby-string">&quot;vor&quot;</span>
912
+ <span class="ruby-identifier">vor</span>
913
+ <span class="ruby-keyword">end</span></pre>
914
+ </div><!-- vor_s-source -->
915
+
916
+ </div>
917
+
918
+
919
+
920
+
921
+ </div><!-- vor_s-method -->
922
+
923
+
924
+ <div id="weight_cosphi-method" class="method-detail ">
925
+ <a name="method-i-weight_cosphi"></a>
926
+
927
+
928
+ <div class="method-heading">
929
+ <span class="method-name">weight_cosphi</span><span
930
+ class="method-args">(s, cos_exp, r_exp)</span>
931
+ <span class="method-click-advice">click to toggle source</span>
932
+ </div>
933
+
934
+
935
+ <div class="method-description">
936
+
937
+
938
+
939
+
940
+
941
+ <div class="method-source-code" id="weight_cosphi-source">
942
+ <pre>
943
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 159</span>
944
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">weight_cosphi</span>(<span class="ruby-identifier">s</span>, <span class="ruby-identifier">cos_exp</span>, <span class="ruby-identifier">r_exp</span>)
945
+ <span class="ruby-identifier">lam</span>, <span class="ruby-identifier">phi</span>, <span class="ruby-identifier">lond</span>, <span class="ruby-identifier">latd</span> = <span class="ruby-identifier">get_lambda_phi</span>(<span class="ruby-identifier">s</span>)
946
+ <span class="ruby-identifier">cos_phi</span> = <span class="ruby-identifier">phi</span>.<span class="ruby-identifier">cos</span>
947
+ <span class="ruby-identifier">ys</span> = <span class="ruby-identifier">s</span> * (<span class="ruby-identifier">cos_phi</span><span class="ruby-operator">**</span><span class="ruby-identifier">cos_exp</span> * <span class="ruby-identifier">@@R</span><span class="ruby-operator">**</span><span class="ruby-identifier">r_exp</span>)
948
+ <span class="ruby-identifier">ys</span>
949
+ <span class="ruby-keyword">end</span></pre>
950
+ </div><!-- weight_cosphi-source -->
951
+
952
+ </div>
953
+
954
+
955
+
956
+
957
+ </div><!-- weight_cosphi-method -->
958
+
959
+
960
+ <div id="weight_sinphi-method" class="method-detail ">
961
+ <a name="method-i-weight_sinphi"></a>
962
+
963
+
964
+ <div class="method-heading">
965
+ <span class="method-name">weight_sinphi</span><span
966
+ class="method-args">(s, sin_exp, r_exp)</span>
967
+ <span class="method-click-advice">click to toggle source</span>
968
+ </div>
969
+
970
+
971
+ <div class="method-description">
972
+
973
+
974
+
975
+
976
+
977
+ <div class="method-source-code" id="weight_sinphi-source">
978
+ <pre>
979
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 166</span>
980
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">weight_sinphi</span>(<span class="ruby-identifier">s</span>, <span class="ruby-identifier">sin_exp</span>, <span class="ruby-identifier">r_exp</span>)
981
+ <span class="ruby-identifier">lam</span>, <span class="ruby-identifier">phi</span>, <span class="ruby-identifier">lond</span>, <span class="ruby-identifier">latd</span> = <span class="ruby-identifier">get_lambda_phi</span>(<span class="ruby-identifier">s</span>)
982
+ <span class="ruby-identifier">sin_phi</span> = <span class="ruby-identifier">phi</span>.<span class="ruby-identifier">sin</span>
983
+ <span class="ruby-identifier">ys</span> = <span class="ruby-identifier">s</span> * (<span class="ruby-identifier">sin_phi</span><span class="ruby-operator">**</span><span class="ruby-identifier">sin_exp</span> * <span class="ruby-identifier">@@R</span><span class="ruby-operator">**</span><span class="ruby-identifier">r_exp</span>)
984
+ <span class="ruby-identifier">ys</span>
985
+ <span class="ruby-keyword">end</span></pre>
986
+ </div><!-- weight_sinphi-source -->
987
+
988
+ </div>
989
+
990
+
991
+
992
+
993
+ </div><!-- weight_sinphi-method -->
994
+
995
+
996
+ <div id="weight_tanphi-method" class="method-detail ">
997
+ <a name="method-i-weight_tanphi"></a>
998
+
999
+
1000
+ <div class="method-heading">
1001
+ <span class="method-name">weight_tanphi</span><span
1002
+ class="method-args">(s, tan_exp, r_exp)</span>
1003
+ <span class="method-click-advice">click to toggle source</span>
1004
+ </div>
1005
+
1006
+
1007
+ <div class="method-description">
1008
+
1009
+
1010
+
1011
+
1012
+
1013
+ <div class="method-source-code" id="weight_tanphi-source">
1014
+ <pre>
1015
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 152</span>
1016
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">weight_tanphi</span>(<span class="ruby-identifier">s</span>, <span class="ruby-identifier">tan_exp</span>, <span class="ruby-identifier">r_exp</span>)
1017
+ <span class="ruby-identifier">lam</span>, <span class="ruby-identifier">phi</span>, <span class="ruby-identifier">lond</span>, <span class="ruby-identifier">latd</span> = <span class="ruby-identifier">get_lambda_phi</span>(<span class="ruby-identifier">s</span>)
1018
+ <span class="ruby-identifier">tan_phi</span> = <span class="ruby-identifier">phi</span>.<span class="ruby-identifier">tan</span>
1019
+ <span class="ruby-identifier">ys</span> = <span class="ruby-identifier">s</span> * (<span class="ruby-identifier">tan_phi</span><span class="ruby-operator">**</span><span class="ruby-identifier">tan_exp</span> * <span class="ruby-identifier">@@R</span><span class="ruby-operator">**</span><span class="ruby-identifier">r_exp</span>)
1020
+ <span class="ruby-identifier">ys</span>
1021
+ <span class="ruby-keyword">end</span></pre>
1022
+ </div><!-- weight_tanphi-source -->
1023
+
1024
+ </div>
1025
+
1026
+
1027
+
1028
+
1029
+ </div><!-- weight_tanphi-method -->
1030
+
1031
+
1032
+ </div><!-- public-instance-method-details -->
1033
+
1034
+ </div><!-- 5Buntitled-5D -->
1035
+
1036
+
1037
+ </div><!-- documentation -->
1038
+
1039
+ <div id="validator-badges">
1040
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
1041
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
1042
+ Rdoc Generator</a> 2</small>.</p>
1043
+ </div>
1044
+
1045
+ </body>
1046
+ </html>
1047
+