gphys 1.2.2.1 → 1.4.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (405) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +8 -17
  3. data/.rspec +2 -0
  4. data/.travis.yml +3 -0
  5. data/ChangeLog +5762 -753
  6. data/LICENSE.txt +30 -18
  7. data/Rakefile +1 -0
  8. data/bin/console +14 -0
  9. data/bin/gpcat +43 -2
  10. data/bin/gpcut +16 -0
  11. data/bin/gpvect +167 -15
  12. data/bin/gpview +254 -51
  13. data/bin/setup +7 -0
  14. data/dim_op.c +1220 -0
  15. data/doc/attribute.html +19 -0
  16. data/doc/attributenetcdf.html +15 -0
  17. data/doc/axis.html +387 -0
  18. data/doc/coordmapping.html +111 -0
  19. data/doc/coordtransform.html +36 -0
  20. data/doc/dclext.html +821 -0
  21. data/doc/derivative/gphys-derivative.html +100 -0
  22. data/doc/derivative/index.html +21 -0
  23. data/doc/derivative/index.rd +14 -0
  24. data/doc/derivative/math-doc/document.pdf +0 -0
  25. data/doc/derivative/math-doc/document.tex +158 -0
  26. data/doc/derivative/math-doc/document/document.css +30 -0
  27. data/doc/derivative/math-doc/document/document.html +57 -0
  28. data/doc/derivative/math-doc/document/images.aux +1 -0
  29. data/doc/derivative/math-doc/document/images.log +385 -0
  30. data/doc/derivative/math-doc/document/images.pl +186 -0
  31. data/doc/derivative/math-doc/document/images.tex +364 -0
  32. data/doc/derivative/math-doc/document/img1.png +0 -0
  33. data/doc/derivative/math-doc/document/img10.png +0 -0
  34. data/doc/derivative/math-doc/document/img11.png +0 -0
  35. data/doc/derivative/math-doc/document/img12.png +0 -0
  36. data/doc/derivative/math-doc/document/img13.png +0 -0
  37. data/doc/derivative/math-doc/document/img14.png +0 -0
  38. data/doc/derivative/math-doc/document/img15.png +0 -0
  39. data/doc/derivative/math-doc/document/img16.png +0 -0
  40. data/doc/derivative/math-doc/document/img17.png +0 -0
  41. data/doc/derivative/math-doc/document/img18.png +0 -0
  42. data/doc/derivative/math-doc/document/img19.png +0 -0
  43. data/doc/derivative/math-doc/document/img2.png +0 -0
  44. data/doc/derivative/math-doc/document/img20.png +0 -0
  45. data/doc/derivative/math-doc/document/img21.png +0 -0
  46. data/doc/derivative/math-doc/document/img22.png +0 -0
  47. data/doc/derivative/math-doc/document/img23.png +0 -0
  48. data/doc/derivative/math-doc/document/img24.png +0 -0
  49. data/doc/derivative/math-doc/document/img25.png +0 -0
  50. data/doc/derivative/math-doc/document/img26.png +0 -0
  51. data/doc/derivative/math-doc/document/img27.png +0 -0
  52. data/doc/derivative/math-doc/document/img28.png +0 -0
  53. data/doc/derivative/math-doc/document/img29.png +0 -0
  54. data/doc/derivative/math-doc/document/img3.png +0 -0
  55. data/doc/derivative/math-doc/document/img30.png +0 -0
  56. data/doc/derivative/math-doc/document/img4.png +0 -0
  57. data/doc/derivative/math-doc/document/img5.png +0 -0
  58. data/doc/derivative/math-doc/document/img6.png +0 -0
  59. data/doc/derivative/math-doc/document/img7.png +0 -0
  60. data/doc/derivative/math-doc/document/img8.png +0 -0
  61. data/doc/derivative/math-doc/document/img9.png +0 -0
  62. data/doc/derivative/math-doc/document/index.html +57 -0
  63. data/doc/derivative/math-doc/document/labels.pl +13 -0
  64. data/doc/derivative/math-doc/document/next.png +0 -0
  65. data/doc/derivative/math-doc/document/next_g.png +0 -0
  66. data/doc/derivative/math-doc/document/node1.html +238 -0
  67. data/doc/derivative/math-doc/document/node2.html +75 -0
  68. data/doc/derivative/math-doc/document/prev.png +0 -0
  69. data/doc/derivative/math-doc/document/prev_g.png +0 -0
  70. data/doc/derivative/math-doc/document/up.png +0 -0
  71. data/doc/derivative/math-doc/document/up_g.png +0 -0
  72. data/doc/derivative/numru-derivative.html +158 -0
  73. data/doc/ep_flux/ep_flux.html +469 -0
  74. data/doc/ep_flux/ggraph_on_merdional_section.html +71 -0
  75. data/doc/ep_flux/index.html +31 -0
  76. data/doc/ep_flux/index.rd +24 -0
  77. data/doc/ep_flux/math-doc/document.pdf +0 -0
  78. data/doc/ep_flux/math-doc/document.tex +2018 -0
  79. data/doc/ep_flux/math-doc/document/WARNINGS +1 -0
  80. data/doc/ep_flux/math-doc/document/contents.png +0 -0
  81. data/doc/ep_flux/math-doc/document/crossref.png +0 -0
  82. data/doc/ep_flux/math-doc/document/document.css +30 -0
  83. data/doc/ep_flux/math-doc/document/document.html +101 -0
  84. data/doc/ep_flux/math-doc/document/images.aux +1 -0
  85. data/doc/ep_flux/math-doc/document/images.log +1375 -0
  86. data/doc/ep_flux/math-doc/document/images.pl +1328 -0
  87. data/doc/ep_flux/math-doc/document/images.tex +1471 -0
  88. data/doc/ep_flux/math-doc/document/img1.png +0 -0
  89. data/doc/ep_flux/math-doc/document/img10.png +0 -0
  90. data/doc/ep_flux/math-doc/document/img100.png +0 -0
  91. data/doc/ep_flux/math-doc/document/img101.png +0 -0
  92. data/doc/ep_flux/math-doc/document/img102.png +0 -0
  93. data/doc/ep_flux/math-doc/document/img103.png +0 -0
  94. data/doc/ep_flux/math-doc/document/img104.png +0 -0
  95. data/doc/ep_flux/math-doc/document/img105.png +0 -0
  96. data/doc/ep_flux/math-doc/document/img106.png +0 -0
  97. data/doc/ep_flux/math-doc/document/img107.png +0 -0
  98. data/doc/ep_flux/math-doc/document/img108.png +0 -0
  99. data/doc/ep_flux/math-doc/document/img109.png +0 -0
  100. data/doc/ep_flux/math-doc/document/img11.png +0 -0
  101. data/doc/ep_flux/math-doc/document/img110.png +0 -0
  102. data/doc/ep_flux/math-doc/document/img111.png +0 -0
  103. data/doc/ep_flux/math-doc/document/img112.png +0 -0
  104. data/doc/ep_flux/math-doc/document/img113.png +0 -0
  105. data/doc/ep_flux/math-doc/document/img114.png +0 -0
  106. data/doc/ep_flux/math-doc/document/img115.png +0 -0
  107. data/doc/ep_flux/math-doc/document/img116.png +0 -0
  108. data/doc/ep_flux/math-doc/document/img117.png +0 -0
  109. data/doc/ep_flux/math-doc/document/img118.png +0 -0
  110. data/doc/ep_flux/math-doc/document/img119.png +0 -0
  111. data/doc/ep_flux/math-doc/document/img12.png +0 -0
  112. data/doc/ep_flux/math-doc/document/img120.png +0 -0
  113. data/doc/ep_flux/math-doc/document/img121.png +0 -0
  114. data/doc/ep_flux/math-doc/document/img122.png +0 -0
  115. data/doc/ep_flux/math-doc/document/img123.png +0 -0
  116. data/doc/ep_flux/math-doc/document/img124.png +0 -0
  117. data/doc/ep_flux/math-doc/document/img125.png +0 -0
  118. data/doc/ep_flux/math-doc/document/img126.png +0 -0
  119. data/doc/ep_flux/math-doc/document/img127.png +0 -0
  120. data/doc/ep_flux/math-doc/document/img128.png +0 -0
  121. data/doc/ep_flux/math-doc/document/img129.png +0 -0
  122. data/doc/ep_flux/math-doc/document/img13.png +0 -0
  123. data/doc/ep_flux/math-doc/document/img130.png +0 -0
  124. data/doc/ep_flux/math-doc/document/img131.png +0 -0
  125. data/doc/ep_flux/math-doc/document/img132.png +0 -0
  126. data/doc/ep_flux/math-doc/document/img133.png +0 -0
  127. data/doc/ep_flux/math-doc/document/img134.png +0 -0
  128. data/doc/ep_flux/math-doc/document/img135.png +0 -0
  129. data/doc/ep_flux/math-doc/document/img136.png +0 -0
  130. data/doc/ep_flux/math-doc/document/img137.png +0 -0
  131. data/doc/ep_flux/math-doc/document/img138.png +0 -0
  132. data/doc/ep_flux/math-doc/document/img139.png +0 -0
  133. data/doc/ep_flux/math-doc/document/img14.png +0 -0
  134. data/doc/ep_flux/math-doc/document/img140.png +0 -0
  135. data/doc/ep_flux/math-doc/document/img141.png +0 -0
  136. data/doc/ep_flux/math-doc/document/img142.png +0 -0
  137. data/doc/ep_flux/math-doc/document/img143.png +0 -0
  138. data/doc/ep_flux/math-doc/document/img144.png +0 -0
  139. data/doc/ep_flux/math-doc/document/img145.png +0 -0
  140. data/doc/ep_flux/math-doc/document/img146.png +0 -0
  141. data/doc/ep_flux/math-doc/document/img147.png +0 -0
  142. data/doc/ep_flux/math-doc/document/img148.png +0 -0
  143. data/doc/ep_flux/math-doc/document/img149.png +0 -0
  144. data/doc/ep_flux/math-doc/document/img15.png +0 -0
  145. data/doc/ep_flux/math-doc/document/img150.png +0 -0
  146. data/doc/ep_flux/math-doc/document/img151.png +0 -0
  147. data/doc/ep_flux/math-doc/document/img152.png +0 -0
  148. data/doc/ep_flux/math-doc/document/img153.png +0 -0
  149. data/doc/ep_flux/math-doc/document/img154.png +0 -0
  150. data/doc/ep_flux/math-doc/document/img155.png +0 -0
  151. data/doc/ep_flux/math-doc/document/img156.png +0 -0
  152. data/doc/ep_flux/math-doc/document/img157.png +0 -0
  153. data/doc/ep_flux/math-doc/document/img158.png +0 -0
  154. data/doc/ep_flux/math-doc/document/img159.png +0 -0
  155. data/doc/ep_flux/math-doc/document/img16.png +0 -0
  156. data/doc/ep_flux/math-doc/document/img160.png +0 -0
  157. data/doc/ep_flux/math-doc/document/img161.png +0 -0
  158. data/doc/ep_flux/math-doc/document/img162.png +0 -0
  159. data/doc/ep_flux/math-doc/document/img163.png +0 -0
  160. data/doc/ep_flux/math-doc/document/img164.png +0 -0
  161. data/doc/ep_flux/math-doc/document/img165.png +0 -0
  162. data/doc/ep_flux/math-doc/document/img166.png +0 -0
  163. data/doc/ep_flux/math-doc/document/img167.png +0 -0
  164. data/doc/ep_flux/math-doc/document/img168.png +0 -0
  165. data/doc/ep_flux/math-doc/document/img169.png +0 -0
  166. data/doc/ep_flux/math-doc/document/img17.png +0 -0
  167. data/doc/ep_flux/math-doc/document/img170.png +0 -0
  168. data/doc/ep_flux/math-doc/document/img171.png +0 -0
  169. data/doc/ep_flux/math-doc/document/img172.png +0 -0
  170. data/doc/ep_flux/math-doc/document/img173.png +0 -0
  171. data/doc/ep_flux/math-doc/document/img174.png +0 -0
  172. data/doc/ep_flux/math-doc/document/img175.png +0 -0
  173. data/doc/ep_flux/math-doc/document/img176.png +0 -0
  174. data/doc/ep_flux/math-doc/document/img177.png +0 -0
  175. data/doc/ep_flux/math-doc/document/img178.png +0 -0
  176. data/doc/ep_flux/math-doc/document/img179.png +0 -0
  177. data/doc/ep_flux/math-doc/document/img18.png +0 -0
  178. data/doc/ep_flux/math-doc/document/img180.png +0 -0
  179. data/doc/ep_flux/math-doc/document/img181.png +0 -0
  180. data/doc/ep_flux/math-doc/document/img182.png +0 -0
  181. data/doc/ep_flux/math-doc/document/img183.png +0 -0
  182. data/doc/ep_flux/math-doc/document/img184.png +0 -0
  183. data/doc/ep_flux/math-doc/document/img185.png +0 -0
  184. data/doc/ep_flux/math-doc/document/img186.png +0 -0
  185. data/doc/ep_flux/math-doc/document/img187.png +0 -0
  186. data/doc/ep_flux/math-doc/document/img188.png +0 -0
  187. data/doc/ep_flux/math-doc/document/img189.png +0 -0
  188. data/doc/ep_flux/math-doc/document/img19.png +0 -0
  189. data/doc/ep_flux/math-doc/document/img190.png +0 -0
  190. data/doc/ep_flux/math-doc/document/img191.png +0 -0
  191. data/doc/ep_flux/math-doc/document/img192.png +0 -0
  192. data/doc/ep_flux/math-doc/document/img193.png +0 -0
  193. data/doc/ep_flux/math-doc/document/img194.png +0 -0
  194. data/doc/ep_flux/math-doc/document/img195.png +0 -0
  195. data/doc/ep_flux/math-doc/document/img196.png +0 -0
  196. data/doc/ep_flux/math-doc/document/img197.png +0 -0
  197. data/doc/ep_flux/math-doc/document/img198.png +0 -0
  198. data/doc/ep_flux/math-doc/document/img199.png +0 -0
  199. data/doc/ep_flux/math-doc/document/img2.png +0 -0
  200. data/doc/ep_flux/math-doc/document/img20.png +0 -0
  201. data/doc/ep_flux/math-doc/document/img200.png +0 -0
  202. data/doc/ep_flux/math-doc/document/img21.png +0 -0
  203. data/doc/ep_flux/math-doc/document/img22.png +0 -0
  204. data/doc/ep_flux/math-doc/document/img23.png +0 -0
  205. data/doc/ep_flux/math-doc/document/img24.png +0 -0
  206. data/doc/ep_flux/math-doc/document/img25.png +0 -0
  207. data/doc/ep_flux/math-doc/document/img26.png +0 -0
  208. data/doc/ep_flux/math-doc/document/img27.png +0 -0
  209. data/doc/ep_flux/math-doc/document/img28.png +0 -0
  210. data/doc/ep_flux/math-doc/document/img29.png +0 -0
  211. data/doc/ep_flux/math-doc/document/img3.png +0 -0
  212. data/doc/ep_flux/math-doc/document/img30.png +0 -0
  213. data/doc/ep_flux/math-doc/document/img31.png +0 -0
  214. data/doc/ep_flux/math-doc/document/img32.png +0 -0
  215. data/doc/ep_flux/math-doc/document/img33.png +0 -0
  216. data/doc/ep_flux/math-doc/document/img34.png +0 -0
  217. data/doc/ep_flux/math-doc/document/img35.png +0 -0
  218. data/doc/ep_flux/math-doc/document/img36.png +0 -0
  219. data/doc/ep_flux/math-doc/document/img37.png +0 -0
  220. data/doc/ep_flux/math-doc/document/img38.png +0 -0
  221. data/doc/ep_flux/math-doc/document/img39.png +0 -0
  222. data/doc/ep_flux/math-doc/document/img4.png +0 -0
  223. data/doc/ep_flux/math-doc/document/img40.png +0 -0
  224. data/doc/ep_flux/math-doc/document/img41.png +0 -0
  225. data/doc/ep_flux/math-doc/document/img42.png +0 -0
  226. data/doc/ep_flux/math-doc/document/img43.png +0 -0
  227. data/doc/ep_flux/math-doc/document/img44.png +0 -0
  228. data/doc/ep_flux/math-doc/document/img45.png +0 -0
  229. data/doc/ep_flux/math-doc/document/img46.png +0 -0
  230. data/doc/ep_flux/math-doc/document/img47.png +0 -0
  231. data/doc/ep_flux/math-doc/document/img48.png +0 -0
  232. data/doc/ep_flux/math-doc/document/img49.png +0 -0
  233. data/doc/ep_flux/math-doc/document/img5.png +0 -0
  234. data/doc/ep_flux/math-doc/document/img50.png +0 -0
  235. data/doc/ep_flux/math-doc/document/img51.png +0 -0
  236. data/doc/ep_flux/math-doc/document/img52.png +0 -0
  237. data/doc/ep_flux/math-doc/document/img53.png +0 -0
  238. data/doc/ep_flux/math-doc/document/img54.png +0 -0
  239. data/doc/ep_flux/math-doc/document/img55.png +0 -0
  240. data/doc/ep_flux/math-doc/document/img56.png +0 -0
  241. data/doc/ep_flux/math-doc/document/img57.png +0 -0
  242. data/doc/ep_flux/math-doc/document/img58.png +0 -0
  243. data/doc/ep_flux/math-doc/document/img59.png +0 -0
  244. data/doc/ep_flux/math-doc/document/img6.png +0 -0
  245. data/doc/ep_flux/math-doc/document/img60.png +0 -0
  246. data/doc/ep_flux/math-doc/document/img61.png +0 -0
  247. data/doc/ep_flux/math-doc/document/img62.png +0 -0
  248. data/doc/ep_flux/math-doc/document/img63.png +0 -0
  249. data/doc/ep_flux/math-doc/document/img64.png +0 -0
  250. data/doc/ep_flux/math-doc/document/img65.png +0 -0
  251. data/doc/ep_flux/math-doc/document/img66.png +0 -0
  252. data/doc/ep_flux/math-doc/document/img67.png +0 -0
  253. data/doc/ep_flux/math-doc/document/img68.png +0 -0
  254. data/doc/ep_flux/math-doc/document/img69.png +0 -0
  255. data/doc/ep_flux/math-doc/document/img7.png +0 -0
  256. data/doc/ep_flux/math-doc/document/img70.png +0 -0
  257. data/doc/ep_flux/math-doc/document/img71.png +0 -0
  258. data/doc/ep_flux/math-doc/document/img72.png +0 -0
  259. data/doc/ep_flux/math-doc/document/img73.png +0 -0
  260. data/doc/ep_flux/math-doc/document/img74.png +0 -0
  261. data/doc/ep_flux/math-doc/document/img75.png +0 -0
  262. data/doc/ep_flux/math-doc/document/img76.png +0 -0
  263. data/doc/ep_flux/math-doc/document/img77.png +0 -0
  264. data/doc/ep_flux/math-doc/document/img78.png +0 -0
  265. data/doc/ep_flux/math-doc/document/img79.png +0 -0
  266. data/doc/ep_flux/math-doc/document/img8.png +0 -0
  267. data/doc/ep_flux/math-doc/document/img80.png +0 -0
  268. data/doc/ep_flux/math-doc/document/img81.png +0 -0
  269. data/doc/ep_flux/math-doc/document/img82.png +0 -0
  270. data/doc/ep_flux/math-doc/document/img83.png +0 -0
  271. data/doc/ep_flux/math-doc/document/img84.png +0 -0
  272. data/doc/ep_flux/math-doc/document/img85.png +0 -0
  273. data/doc/ep_flux/math-doc/document/img86.png +0 -0
  274. data/doc/ep_flux/math-doc/document/img87.png +0 -0
  275. data/doc/ep_flux/math-doc/document/img88.png +0 -0
  276. data/doc/ep_flux/math-doc/document/img89.png +0 -0
  277. data/doc/ep_flux/math-doc/document/img9.png +0 -0
  278. data/doc/ep_flux/math-doc/document/img90.png +0 -0
  279. data/doc/ep_flux/math-doc/document/img91.png +0 -0
  280. data/doc/ep_flux/math-doc/document/img92.png +0 -0
  281. data/doc/ep_flux/math-doc/document/img93.png +0 -0
  282. data/doc/ep_flux/math-doc/document/img94.png +0 -0
  283. data/doc/ep_flux/math-doc/document/img95.png +0 -0
  284. data/doc/ep_flux/math-doc/document/img96.png +0 -0
  285. data/doc/ep_flux/math-doc/document/img97.png +0 -0
  286. data/doc/ep_flux/math-doc/document/img98.png +0 -0
  287. data/doc/ep_flux/math-doc/document/img99.png +0 -0
  288. data/doc/ep_flux/math-doc/document/index.html +101 -0
  289. data/doc/ep_flux/math-doc/document/internals.pl +258 -0
  290. data/doc/ep_flux/math-doc/document/labels.pl +265 -0
  291. data/doc/ep_flux/math-doc/document/next.png +0 -0
  292. data/doc/ep_flux/math-doc/document/next_g.png +0 -0
  293. data/doc/ep_flux/math-doc/document/node1.html +104 -0
  294. data/doc/ep_flux/math-doc/document/node10.html +164 -0
  295. data/doc/ep_flux/math-doc/document/node11.html +86 -0
  296. data/doc/ep_flux/math-doc/document/node12.html +166 -0
  297. data/doc/ep_flux/math-doc/document/node13.html +897 -0
  298. data/doc/ep_flux/math-doc/document/node14.html +1065 -0
  299. data/doc/ep_flux/math-doc/document/node15.html +72 -0
  300. data/doc/ep_flux/math-doc/document/node16.html +81 -0
  301. data/doc/ep_flux/math-doc/document/node2.html +82 -0
  302. data/doc/ep_flux/math-doc/document/node3.html +91 -0
  303. data/doc/ep_flux/math-doc/document/node4.html +149 -0
  304. data/doc/ep_flux/math-doc/document/node5.html +330 -0
  305. data/doc/ep_flux/math-doc/document/node6.html +99 -0
  306. data/doc/ep_flux/math-doc/document/node7.html +98 -0
  307. data/doc/ep_flux/math-doc/document/node8.html +83 -0
  308. data/doc/ep_flux/math-doc/document/node9.html +140 -0
  309. data/doc/ep_flux/math-doc/document/prev.png +0 -0
  310. data/doc/ep_flux/math-doc/document/prev_g.png +0 -0
  311. data/doc/ep_flux/math-doc/document/up.png +0 -0
  312. data/doc/ep_flux/math-doc/document/up_g.png +0 -0
  313. data/doc/gdir.html +412 -0
  314. data/doc/gdir_client.html +16 -0
  315. data/doc/gdir_connect_ftp-like.html +61 -0
  316. data/doc/gdir_server.html +45 -0
  317. data/doc/ggraph.html +1119 -0
  318. data/doc/gpcat.html +45 -0
  319. data/doc/gpcut.html +47 -0
  320. data/doc/gphys.html +624 -0
  321. data/doc/gphys_fft.html +324 -0
  322. data/doc/gphys_grads_io.html +69 -0
  323. data/doc/gphys_grib_io.html +82 -0
  324. data/doc/gphys_io.html +183 -0
  325. data/doc/gphys_io_common.html +18 -0
  326. data/doc/gphys_netcdf_io.html +283 -0
  327. data/doc/gplist.html +24 -0
  328. data/doc/gpmath.html +52 -0
  329. data/doc/gpmaxmin.html +32 -0
  330. data/doc/gpprint.html +35 -0
  331. data/doc/gpview.html +349 -0
  332. data/doc/grads2nc_with_gphys.html +21 -0
  333. data/doc/grads_gridded.html +307 -0
  334. data/doc/grib.html +149 -0
  335. data/doc/grid.html +224 -0
  336. data/doc/index.html +145 -0
  337. data/doc/index.rd +138 -0
  338. data/doc/netcdf_convention.html +136 -0
  339. data/doc/unumeric.html +176 -0
  340. data/doc/update +69 -0
  341. data/doc/update_rdoc +8 -0
  342. data/doc/varray.html +299 -0
  343. data/doc/varraycomposite.html +67 -0
  344. data/ext_init.c +1 -0
  345. data/extconf.rb +16 -6
  346. data/gphys.gemspec +33 -26
  347. data/interpo.c +1 -1
  348. data/lib/numru/dclext.rb +718 -546
  349. data/lib/numru/derivative.rb +2 -0
  350. data/lib/numru/ganalysis.rb +38 -0
  351. data/lib/numru/ganalysis/beta_plane.rb +103 -0
  352. data/lib/numru/ganalysis/eof.rb +3 -2
  353. data/lib/numru/ganalysis/fitting.rb +559 -0
  354. data/lib/numru/ganalysis/histogram.rb +36 -19
  355. data/lib/numru/ganalysis/log_p.rb +130 -0
  356. data/lib/numru/ganalysis/met.rb +396 -2
  357. data/lib/numru/ganalysis/met_z.rb +300 -0
  358. data/lib/numru/ganalysis/planet.rb +17 -7
  359. data/lib/numru/ganalysis/qg.rb +685 -0
  360. data/lib/numru/ganalysis/sigma_coord.rb +90 -0
  361. data/lib/numru/gdir.rb +2 -1
  362. data/lib/numru/ggraph.rb +204 -60
  363. data/lib/numru/ggraph_on_merdional_section.rb +1 -1
  364. data/lib/numru/gphys.rb +6 -0
  365. data/lib/numru/gphys/assoccoords.rb +18 -3
  366. data/lib/numru/gphys/axis.rb +209 -8
  367. data/lib/numru/gphys/derivative.rb +11 -0
  368. data/lib/numru/gphys/gphys.rb +539 -48
  369. data/lib/numru/gphys/gphys_dim_op.rb +331 -0
  370. data/lib/numru/gphys/gphys_fft.rb +48 -2
  371. data/lib/numru/gphys/gphys_io.rb +241 -13
  372. data/lib/numru/gphys/gphys_netcdf_io.rb +77 -39
  373. data/lib/numru/gphys/gphys_nusdas_io.rb +3 -0
  374. data/lib/numru/gphys/grib.rb +133 -54
  375. data/lib/numru/gphys/grib_params.rb +26 -3
  376. data/lib/numru/gphys/grid.rb +75 -34
  377. data/lib/numru/gphys/interpolate.rb +24 -10
  378. data/lib/numru/gphys/mdstorage.rb +160 -0
  379. data/lib/numru/gphys/netcdf_convention.rb +4 -2
  380. data/lib/numru/gphys/subsetmapping.rb +0 -1
  381. data/lib/numru/gphys/unumeric.rb +50 -5
  382. data/lib/numru/gphys/varray.rb +15 -30
  383. data/lib/numru/gphys/varraycomposite.rb +107 -24
  384. data/lib/numru/gphys/varraynetcdf.rb +9 -3
  385. data/lib/numru/gphys/version.rb +5 -0
  386. data/sample/druby_cli1.rb +2 -0
  387. data/sample/druby_cli2.rb +0 -6
  388. data/sample/druby_serv2.rb +0 -13
  389. data/spec/gphys_spec.rb +11 -0
  390. data/spec/spec_helper.rb +2 -0
  391. data/test/test_assoccoords.rb +102 -0
  392. data/test/test_axis.rb +61 -0
  393. data/test/test_fitting.rb +116 -0
  394. data/test/test_gphys.rb +20 -0
  395. data/test/test_met_z.rb +96 -0
  396. data/test/test_sigma_coord.rb +50 -0
  397. data/{test → test_old}/eof_slp.rb +0 -0
  398. data/{test → test_old}/mltbit.dat +0 -0
  399. data/{test → test_old}/test_ep_flux.rb +0 -0
  400. data/{test → test_old}/test_multibitIO.rb +0 -0
  401. metadata +530 -191
  402. data/README.md +0 -29
  403. data/lib/gphys.rb +0 -2
  404. data/lib/numru/dclext_datetime_ax.rb +0 -220
  405. data/lib/version.rb +0 -3
@@ -0,0 +1,36 @@
1
+ <?xml version="1.0" ?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+ <html xmlns="http://www.w3.org/1999/xhtml">
6
+ <head>
7
+ <title>../lib/numru/gphys/coordtransform.rb</title>
8
+ </head>
9
+ <body>
10
+ <h1><a name="label-0" id="label-0">class NumRu::GPhys</a></h1><!-- RDLabel: "class NumRu::GPhys" -->
11
+ <p>Additional methods regarding coordinate transformation.</p>
12
+ <h2><a name="label-1" id="label-1">Methods</a></h2><!-- RDLabel: "Methods" -->
13
+ <dl>
14
+ <dt><h4><a name="label-2" id="label-2"><code>coordtransform( <var>coordmapping</var>, <var>axes_to</var>, *<var>dims</var> )</code></a></h4></dt><!-- RDLabel: "coordtransform" -->
15
+ <dd>
16
+ <p>Coordinate transformation with <var>coordmapping</var> into <var>axes_to</var>.</p>
17
+ <p>ARGUMENTS</p>
18
+ <ul>
19
+ <li><var>coordmapping</var> (CoordMapping) : relation between the new and
20
+ original coordinate systems. Mapping is defined from the new one to
21
+ the orinal one. If the rank of the mapping is smaller than
22
+ the rank of self, <var>dims</var> must be used to specify the
23
+ correspondence. e.g., if the rank of the mapping is 2 and that
24
+ of self is 3 and the mapping is regarding the first 2 dimensions
25
+ of the three, <var>dims</var> must be [0,1].</li>
26
+ <li><var>axes_to</var> (Array of Axis) : grid in the new coordinate system.
27
+ Its length must be the same as the rank of <var>coordmapping</var></li>
28
+ <li><var>dims</var> (integers) : Specifies the dimensions to which
29
+ <var>coordmapping</var> is applied. Needed if
30
+ <code>self.rank!=coordmapping.rank</code> (neglected otherwise).
31
+ The number of integers must agree with the rank of the mapping.</li>
32
+ </ul></dd>
33
+ </dl>
34
+
35
+ </body>
36
+ </html>
@@ -0,0 +1,821 @@
1
+ <?xml version="1.0" ?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+ <html xmlns="http://www.w3.org/1999/xhtml">
6
+ <head>
7
+ <title>../lib/numru/dclext.rb</title>
8
+ </head>
9
+ <body>
10
+ <h1><a name="label-0" id="label-0">module NumRu::DCLExt</a></h1><!-- RDLabel: "module NumRu::DCLExt" -->
11
+ <p>An extension of RubyDCL.</p>
12
+ <h2><a name="label-1" id="label-1">Index</a></h2><!-- RDLabel: "Index" -->
13
+ <p>Original methods</p>
14
+ <ul>
15
+ <li><a href="#label-40">lon_ax</a>
16
+ Draw longitude axis. (label format: degrees + 'E' or 'W')</li>
17
+ <li><a href="#label-41">lat_ax</a>
18
+ Draw latitude axis. (label format: degrees + 'N' or 'S')</li>
19
+ <li><a href="#label-43">unit_vect</a> Show the "unit vector", which indicate the vector scaling.</li>
20
+ <li><a href="#label-44">unit_vect_single</a> Draw a unit vector (only one arrow is drawn).</li>
21
+ <li><a href="#label-45">set_unit_vect_options</a>
22
+ Change the default option values for <a href="#label-43">unit_vect</a>.</li>
23
+ <li><a href="#label-46">next_unit_vect_options</a>
24
+ Set the option values effective only in the next call of <a href="#label-43">unit_vect</a></li>
25
+ <li><a href="#label-47">flow_vect</a> 2D Vector plot. Unlike <code>DCL::ugvect</code>, scaling are made in term of the physical (or "U") coordinate.</li>
26
+ <li><a href="#label-48">flow_vect_anyproj</a> flow_vect available in any coordinate projections</li>
27
+ <li><a href="#label-49">flow_itr5</a> 2D Vector plot on the 2-dim polar coodinate.</li>
28
+ <li><a href="#label-52">color_bar</a> Color Bar</li>
29
+ <li><a href="#label-51">set_color_bar_options</a></li>
30
+ <li><a href="#label-54">legend</a>
31
+ Annotates line/mark type and index (and size if mark).</li>
32
+ <li><a href="#label-55">quasi_log_levels_z</a>
33
+ Driver of quasi_log_levels with data values</li>
34
+ <li><a href="#label-56">quasi_log_levels</a>
35
+ Returns approximately log-scaled contour/tone levels.</li>
36
+ </ul>
37
+ <p>MATH1</p>
38
+ <ul>
39
+ <li><a href="#label-3">glpack</a>
40
+ <ul>
41
+ <li><a href="#label-4">gl_set_params</a>
42
+ Calls <code>DCL.glpset</code> multiple times (for each key and val of <code>hash</code>).</li>
43
+ </ul></li>
44
+ </ul>
45
+ <p>GRPH1</p>
46
+ <ul>
47
+ <li><a href="#label-5">sgpack</a>
48
+ <ul>
49
+ <li><a href="#label-6">sg_set_params</a>
50
+ Calls <code>DCL.sgpset</code> multiple times (for each key and val of <code>hash</code>).</li>
51
+ </ul></li>
52
+ <li><a href="#label-7">slpack</a>
53
+ <ul>
54
+ <li><a href="#label-8">sl_set_params</a>
55
+ Calls <code>DCL.slpset</code> multiple times (for each key and val of <code>hash</code>).</li>
56
+ </ul></li>
57
+ <li><a href="#label-9">swpack</a>
58
+ <ul>
59
+ <li><a href="#label-10">sw_set_params</a>
60
+ Calls <code>DCL.swpset</code> multiple times (for each key and val of <code>hash</code>).</li>
61
+ </ul></li>
62
+ </ul>
63
+ <p>GRPH2</p>
64
+ <ul>
65
+ <li><a href="#label-11">uzpack</a>
66
+ <ul>
67
+ <li><a href="#label-12">uz_set_params</a>
68
+ Calls <code>DCL.uzpset</code> multiple times (for each key and val of <code>hash</code>).</li>
69
+ </ul></li>
70
+ <li><a href="#label-13">ulpack</a>
71
+ <ul>
72
+ <li><a href="#label-14">ul_set_params</a>
73
+ Calls <code>DCL.ulpset</code> multiple times (for each key and val of <code>hash</code>).</li>
74
+ </ul></li>
75
+ <li><a href="#label-15">ucpack</a>
76
+ <ul>
77
+ <li><a href="#label-16">uc_set_params</a>
78
+ Calls <code>DCL.ucpset</code> multiple times (for each key and val of <code>hash</code>).</li>
79
+ </ul></li>
80
+ <li><a href="#label-17">uupack</a>
81
+ <ul>
82
+ <li><a href="#label-18">uu_set_params</a>
83
+ Calls <code>DCL.uupset</code> multiple times (for each key and val of <code>hash</code>).</li>
84
+ </ul></li>
85
+ <li><a href="#label-19">uspack</a>
86
+ <ul>
87
+ <li><a href="#label-20">us_set_params</a>
88
+ Calls <code>DCL.uspset</code> multiple times (for each key and val of <code>hash</code>).</li>
89
+ </ul></li>
90
+ <li><a href="#label-21">udpack</a>
91
+ <ul>
92
+ <li><a href="#label-22">ud_set_params</a>
93
+ Calls <code>DCL.udpset</code> multiple times (for each key and val of <code>hash</code>).</li>
94
+ <li><a href="#label-23">ud_set_linear_levs</a>
95
+ Set contour levels with a constant interval</li>
96
+ <li><a href="#label-24">ud_set_contour</a>
97
+ Set contours of at specified levels.</li>
98
+ <li><a href="#label-25">ud_add_contour</a>
99
+ Same as <a href="#label-24">ud_set_contour</a>, but does not clear the contour levels that have
100
+ been set.</li>
101
+ </ul></li>
102
+ <li><a href="#label-26">uepack</a>
103
+ <ul>
104
+ <li><a href="#label-27">ue_set_params</a>
105
+ Calls <code>DCL.uepset</code> multiple times (for each key and val of <code>hash</code>).</li>
106
+ <li><a href="#label-28">ue_set_linear_levs</a>
107
+ Set tone levels with a constant interval</li>
108
+ <li><a href="#label-29">ue_set_tone</a>
109
+ Set tone levels and patterns.</li>
110
+ <li><a href="#label-30">ue_add_tone</a>
111
+ Same as <a href="#label-29">ue_set_tone</a>, but does not clear the tone levels that have
112
+ been set.</li>
113
+ </ul></li>
114
+ <li><a href="#label-31">ugpack</a>
115
+ <ul>
116
+ <li><a href="#label-32">ug_set_params</a>
117
+ Calls <code>DCL.ugpset</code> multiple times (for each key and val of <code>hash</code>).
118
+ See <a href="#label-4">gl_set_params</a> for usage.</li>
119
+ </ul></li>
120
+ <li><a href="#label-33">umpack</a>
121
+ <ul>
122
+ <li><a href="#label-34">um_set_params</a>
123
+ Calls <code>DCL.umpset</code> multiple times (for each key and val of <code>hash</code>).</li>
124
+ </ul></li>
125
+ </ul>
126
+ <h2><a name="label-2" id="label-2">Module Functions</a></h2><!-- RDLabel: "Module Functions" -->
127
+ <h3><a name="label-3" id="label-3">glpack</a></h3><!-- RDLabel: "glpack" -->
128
+ <dl>
129
+ <dt><h4><a name="label-4" id="label-4"><code>gl_set_params(<var>hash</var>)</code></a></h4></dt><!-- RDLabel: "gl_set_params" -->
130
+ <dd>
131
+ <p>Calls <code>DCL.glpset</code> multiple times (for each key and val of <code>hash</code>).</p>
132
+ <p>ARGUMENTS</p>
133
+ <ul>
134
+ <li>hash (Hash) : combinations of parameter names and values for udpset</li>
135
+ </ul>
136
+ <p>RETURN VALUE</p>
137
+ <ul>
138
+ <li>a Hash containing the parameter names and their old values that were
139
+ replaced.</li>
140
+ </ul>
141
+ <p>EXAMPLES</p>
142
+ <ul>
143
+ <li><p>You can modify parameters temporarily as follows.</p>
144
+ <pre>before = DCLExt.gl_set_params({'lmiss'=&gt;true,'rmiss'=&gt;9999.0})
145
+ ....
146
+ DCLExt.gl_set_params(before) # reset the change</pre></li>
147
+ </ul></dd>
148
+ </dl>
149
+ <h3><a name="label-5" id="label-5">sgpack</a></h3><!-- RDLabel: "sgpack" -->
150
+ <dl>
151
+ <dt><h4><a name="label-6" id="label-6"><code>sg_set_params(<var>hash</var>)</code></a></h4></dt><!-- RDLabel: "sg_set_params" -->
152
+ <dd>
153
+ <p>Calls <code>DCL.sgpset</code> multiple times (for each key and val of <code>hash</code>).</p>
154
+ <p>See <a href="#label-4">gl_set_params</a> for usage.</p></dd>
155
+ </dl>
156
+ <h3><a name="label-7" id="label-7">slpack</a></h3><!-- RDLabel: "slpack" -->
157
+ <dl>
158
+ <dt><h4><a name="label-8" id="label-8"><code>sl_set_params(<var>hash</var>)</code></a></h4></dt><!-- RDLabel: "sl_set_params" -->
159
+ <dd>
160
+ <p>Calls <code>DCL.slpset</code> multiple times (for each key and val of <code>hash</code>).</p>
161
+ <p>See <a href="#label-4">gl_set_params</a> for usage.</p></dd>
162
+ </dl>
163
+ <h3><a name="label-9" id="label-9">swpack</a></h3><!-- RDLabel: "swpack" -->
164
+ <dl>
165
+ <dt><h4><a name="label-10" id="label-10"><code>sw_set_params(<var>hash</var>)</code></a></h4></dt><!-- RDLabel: "sw_set_params" -->
166
+ <dd>
167
+ <p>Calls <code>DCL.swpset</code> multiple times (for each key and val of <code>hash</code>).</p>
168
+ <p>See <a href="#label-4">gl_set_params</a> for usage.</p></dd>
169
+ </dl>
170
+ <h3><a name="label-11" id="label-11">uzpack</a></h3><!-- RDLabel: "uzpack" -->
171
+ <dl>
172
+ <dt><h4><a name="label-12" id="label-12"><code>uz_set_params(<var>hash</var>)</code></a></h4></dt><!-- RDLabel: "uz_set_params" -->
173
+ <dd>
174
+ <p>Calls <code>DCL.uzpset</code> multiple times (for each key and val of <code>hash</code>).</p>
175
+ <p>See <a href="#label-4">gl_set_params</a> for usage.</p></dd>
176
+ </dl>
177
+ <h3><a name="label-13" id="label-13">ulpack</a></h3><!-- RDLabel: "ulpack" -->
178
+ <dl>
179
+ <dt><h4><a name="label-14" id="label-14"><code>ul_set_params(<var>hash</var>)</code></a></h4></dt><!-- RDLabel: "ul_set_params" -->
180
+ <dd>
181
+ <p>Calls <code>DCL.ulpset</code> multiple times (for each key and val of <code>hash</code>).</p>
182
+ <p>See <a href="#label-4">gl_set_params</a> for usage.</p></dd>
183
+ </dl>
184
+ <h3><a name="label-15" id="label-15">ucpack</a></h3><!-- RDLabel: "ucpack" -->
185
+ <dl>
186
+ <dt><h4><a name="label-16" id="label-16"><code>uc_set_params(<var>hash</var>)</code></a></h4></dt><!-- RDLabel: "uc_set_params" -->
187
+ <dd>
188
+ <p>Calls <code>DCL.ucpset</code> multiple times (for each key and val of <code>hash</code>).</p>
189
+ <p>See <a href="#label-4">gl_set_params</a> for usage.</p></dd>
190
+ </dl>
191
+ <h3><a name="label-17" id="label-17">uupack</a></h3><!-- RDLabel: "uupack" -->
192
+ <dl>
193
+ <dt><h4><a name="label-18" id="label-18"><code>uu_set_params(<var>hash</var>)</code></a></h4></dt><!-- RDLabel: "uu_set_params" -->
194
+ <dd>
195
+ <p>Calls <code>DCL.uupset</code> multiple times (for each key and val of <code>hash</code>).</p>
196
+ <p>See <a href="#label-4">gl_set_params</a> for usage.</p></dd>
197
+ </dl>
198
+ <h3><a name="label-19" id="label-19">uspack</a></h3><!-- RDLabel: "uspack" -->
199
+ <dl>
200
+ <dt><h4><a name="label-20" id="label-20"><code>us_set_params(<var>hash</var>)</code></a></h4></dt><!-- RDLabel: "us_set_params" -->
201
+ <dd>
202
+ <p>Calls <code>DCL.uspset</code> multiple times (for each key and val of <code>hash</code>).</p>
203
+ <p>See <a href="#label-4">gl_set_params</a> for usage.</p></dd>
204
+ </dl>
205
+ <h3><a name="label-21" id="label-21">udpack</a></h3><!-- RDLabel: "udpack" -->
206
+ <dl>
207
+ <dt><h4><a name="label-22" id="label-22"><code>ud_set_params(<var>hash</var>)</code></a></h4></dt><!-- RDLabel: "ud_set_params" -->
208
+ <dd>
209
+ <p>Calls <code>DCL.udpset</code> multiple times (for each key and val of <code>hash</code>).</p>
210
+ <p>ARGUMENTS</p>
211
+ <ul>
212
+ <li>hash (Hash) : combinations of parameter names and values for udpset</li>
213
+ </ul>
214
+ <p>RETURN VALUE</p>
215
+ <ul>
216
+ <li>a Hash containing the parameter names and their old values that were
217
+ replaced.</li>
218
+ </ul>
219
+ <p>EXAMPLES</p>
220
+ <ul>
221
+ <li><p>You can modify parameters temporarily as follows.</p>
222
+ <pre>before = DCLExt.ud_set_params('indxmj'=&gt;4,'lmsg'=&gt;false)
223
+ DCL.udcntz(data)
224
+ DCLExt.ud_set_params(before) # reset the change</pre></li>
225
+ </ul></dd>
226
+ <dt><h4><a name="label-23" id="label-23"><code>ud_set_linear_levs(<var>v</var>, <var>options</var>)</code></a></h4></dt><!-- RDLabel: "ud_set_linear_levs" -->
227
+ <dd>
228
+ <p>Set contour levels with a constant interval</p>
229
+ <p>ARGUMENTS</p>
230
+ <ul>
231
+ <li>v : Data values to be fed to udcnt[rz]</li>
232
+ <li><p>options (Hash) : option specification by keys and values. Available
233
+ options are</p>
234
+ <pre>name default value description
235
+ 'min' nil minimum contour value (Numeric)
236
+ 'max' nil maximum contour value (Numeric)
237
+ 'nlev' nil number of levels (Integer)
238
+ 'interval' nil contour interval (Numeric)
239
+ 'nozero' nil delete zero contour (true/false)
240
+ 'coloring' false set color contours with ud_coloring (true/false)
241
+ 'clr_min' 13 (if coloring) minimum color id (Integer)
242
+ 'clr_max' 99 (if coloring) maximum color id (Integer)</pre>
243
+ <p>Here, <code>interval</code> has a higher precedence over <code>nlev</code>.
244
+ Since all the default values are nil, only those explicitly specified
245
+ are interpreted. If no option is provided, the levels generated will
246
+ be the default ones set by udcnt[rz] without any level specification.</p></li>
247
+ </ul></dd>
248
+ <dt><h4><a name="label-24" id="label-24"><code>ud_set_contour(<var>levels</var>,<var>index</var>=<var>nil</var>,<var>line_type</var>=<var>nil</var>,<var>label</var>=<var>nil</var>,<var>label_height</var>=<var>nil</var>)</code></a></h4></dt><!-- RDLabel: "ud_set_contour" -->
249
+ <dd>
250
+ <p>Set contours of at specified levels.</p>
251
+ <p>Normally you do not have to specify <code>label</code> and <code>label_height</code>.</p>
252
+ <p>It calls DCL.udsclv for each level. So the arguments are basically
253
+ the same as DCL.udsclv, but only levels are mandatory here.</p>
254
+ <p>ARGUMENTS</p>
255
+ <ul>
256
+ <li>levels (Array, NArray, or Numeric) : contour levels to be set.
257
+ If Numeric, a single level is set.</li>
258
+ <li>index (Array of integers, Integer, or nil) :
259
+ index(es) of the contours. If it is an Array and its length is
260
+ shorter than that of <code>levels</code>, the same Array is repeated (so
261
+ for instance [1,1,3] is interpreted as [1,1,3,1,1,3,1,1,3,...]).
262
+ If it is a single Integer, all the contour will have the same index.</li>
263
+ </ul>
264
+ <pre>If nil, the value of 'indxmn' is used.</pre>
265
+ <ul>
266
+ <li>line_type (Array of integers, Integer, or nil) :
267
+ line type(s) of the contours. If it is an Array and its length is
268
+ shorter than that of <code>levels</code>, the same Array is repeated.
269
+ the length must agree with that of <code>levels</code>.
270
+ If it is a single Integer, all the contour will have the same type.
271
+ If nil, set to be 1.</li>
272
+ <li>label (Array of String, String, true, false, nil) :
273
+ Label(s) of the contours. If it is an Array and its length is
274
+ shorter than that of <code>levels</code>, the same Array is repeated.
275
+ the length must agree with that of <code>levels</code>.
276
+ If it is a single String, all the contour will have the same label.
277
+ If true, all the contours will have the labels representing the levels.
278
+ If false, no label will be drawn (set to "").
279
+ If nil, same as true for the contours whose index is equal to "INDXMJ",
280
+ and same as false otherwise.</li>
281
+ <li>label_height (Array of Numeric, Numeric, or nil) :
282
+ Heigh of Labels. Normally you do not have to use this.
283
+ If it is an Array and its length is
284
+ shorter than that of <code>levels</code>, the same Array is repeated.
285
+ If nil, the default value ("RSIZEL") is used for non-empty labels.
286
+ If a single Numeric, the same value is used for all the contours.
287
+ Note that it is recommended to not to use this parameter but
288
+ use DCL.udpset('RZISEL'. label_height), since a positive value
289
+ here always means to draw labels even when the label is empty.</li>
290
+ </ul>
291
+ <p>RETURN VALUE</p>
292
+ <ul>
293
+ <li>nil</li>
294
+ </ul></dd>
295
+ <dt><h4><a name="label-25" id="label-25"><code>ud_add_contour(<var>levels</var>,<var>index</var>=<var>nil</var>,<var>line_type</var>=<var>nil</var>,<var>label</var>=<var>nil</var>,<var>label_height</var>=<var>nil</var>)</code></a></h4></dt><!-- RDLabel: "ud_add_contour" -->
296
+ <dd>
297
+ Same as <a href="#label-24">ud_set_contour</a>, but does not clear the contour levels that have
298
+ been set.</dd>
299
+ </dl>
300
+ <h3><a name="label-26" id="label-26">uepack</a></h3><!-- RDLabel: "uepack" -->
301
+ <dl>
302
+ <dt><h4><a name="label-27" id="label-27"><code>ue_set_params(<var>hash</var>)</code></a></h4></dt><!-- RDLabel: "ue_set_params" -->
303
+ <dd>
304
+ <p>Calls <code>DCL.uepset</code> multiple times (for each key and val of <code>hash</code>).</p>
305
+ <p>See <a href="#label-4">gl_set_params</a> for usage.</p></dd>
306
+ <dt><h4><a name="label-28" id="label-28"><code>ue_set_linear_levs(<var>v</var>, <var>options</var>)</code></a></h4></dt><!-- RDLabel: "ue_set_linear_levs" -->
307
+ <dd>
308
+ <p>Set tone levels with a constant interval</p>
309
+ <p>ARGUMENTS</p>
310
+ <ul>
311
+ <li>v : Data values to be fed to udcnt[rz]</li>
312
+ <li><p>options (Hash) : option specification by keys and values. Available
313
+ options are</p>
314
+ <pre>name default value description
315
+ 'min' nil minimum tone level (Numeric)
316
+ 'max' nil maximum tone level (Numeric)
317
+ 'nlev' nil number of levels (Integer)
318
+ 'interval' nil tone-level interval (Numeric)</pre>
319
+ <p>Here, <code>interval</code> has a higher precedence over <code>nlev</code>.
320
+ Since all the default values are nil, only those explicitly specified
321
+ are interpreted. If no option is provided, the levels generated will
322
+ be the default ones set by udcnt[rz] without any level specification.</p></li>
323
+ </ul></dd>
324
+ <dt><h4><a name="label-29" id="label-29"><code>ue_set_tone(<var>levels</var>, <var>patterns</var>)</code></a></h4></dt><!-- RDLabel: "ue_set_tone" -->
325
+ <dd>
326
+ <p>Set tone levels and patterns.</p>
327
+ <p>patterns are set between levels as follows:</p>
328
+ <pre>when (levels.length == patterns.length+1)
329
+
330
+ levels[0] | levels[1] | levels[2] ... | levels[-2] | levels[-1]
331
+ patterns[0] patterns[1] ... patterns[-2] patterns[-1]
332
+
333
+ when (levels.length == patterns.length)
334
+
335
+ levels[0] | levels[1] | levels[2] ... | levels[-1] | +infty
336
+ patterns[0] patterns[1] ... patterns[-2] patterns[-1]
337
+
338
+ when (levels.length == patterns.length-1)
339
+
340
+ -infty | levels[0] | levels[1] ... | levels[-1] | +infty
341
+ patterns[0] patterns[1] ... patterns[-2] patterns[-1]
342
+
343
+ else
344
+ error (exception raised)</pre>
345
+ <p>ARGUMENTS</p>
346
+ <ul>
347
+ <li>levels (Array or NArray of Numeric) : tone levels. Its length must be
348
+ either 1 larger than, equal to, or 1 smaller than the length of patterns</li>
349
+ <li>patterns (Array or NArray of Numeric) : tone patterns</li>
350
+ </ul>
351
+ <p>RETURN VALUE</p>
352
+ <ul>
353
+ <li>nil</li>
354
+ </ul></dd>
355
+ <dt><h4><a name="label-30" id="label-30"><code>ue_add_tone(<var>levels</var>, <var>patterns</var>)</code></a></h4></dt><!-- RDLabel: "ue_add_tone" -->
356
+ <dd>
357
+ Same as <a href="#label-29">ue_set_tone</a>, but does not clear the tone levels that have
358
+ been set.</dd>
359
+ </dl>
360
+ <h3><a name="label-31" id="label-31">ugpack</a></h3><!-- RDLabel: "ugpack" -->
361
+ <dl>
362
+ <dt><h4><a name="label-32" id="label-32"><code>ug_set_params(<var>hash</var>)</code></a></h4></dt><!-- RDLabel: "ug_set_params" -->
363
+ <dd>
364
+ Calls <code>DCL.ugpset</code> multiple times (for each key and val of <code>hash</code>).
365
+ See <a href="#label-4">gl_set_params</a> for usage.</dd>
366
+ </dl>
367
+ <h3><a name="label-33" id="label-33">umpack</a></h3><!-- RDLabel: "umpack" -->
368
+ <dl>
369
+ <dt><h4><a name="label-34" id="label-34"><code>um_set_params(<var>hash</var>)</code></a></h4></dt><!-- RDLabel: "um_set_params" -->
370
+ <dd>
371
+ <p>Calls <code>DCL.umpset</code> multiple times (for each key and val of <code>hash</code>).</p>
372
+ <p>See <a href="#label-4">gl_set_params</a> for usage.</p></dd>
373
+ </dl>
374
+ <h2><a name="label-35" id="label-35">Original methods:</a></h2><!-- RDLabel: "Original methods:" -->
375
+ <h3><a name="label-36" id="label-36">Date and time axes</a></h3><!-- RDLabel: "Date and time axes" -->
376
+ <dl>
377
+ <dt><h4><a name="label-37" id="label-37"><code>datetime_ax(<var>date_from</var>, <var>date_to</var>, <var>options</var>=<var>nil</var>)</code></a></h4></dt><!-- RDLabel: "datetime_ax" -->
378
+ <dd>
379
+ <p>Draw axes with date and hours.
380
+ The DCL window must have been defined in the units "days"
381
+ and to start with 0 (regarding the direction to draw the axis).</p>
382
+ <p>ARGUMENTS</p>
383
+ <ul>
384
+ <li>date_from (DateTime) : date&amp;time to beggin</li>
385
+ <li>date_to (DateTime) : date&amp;time to end</li>
386
+ <li><p>options (Hash) : options to change the default behavior if specified:</p>
387
+ <pre>option name default value # description:
388
+ 'yax' false # true =&gt; y-axis, false =&gt; x-axis
389
+ 'cside' nil # "b", "t", "l", "r", nil (=&gt;left/bottom),
390
+ # or false (=&gt;right/top)'
391
+ 'dtick1' 1 # small tick interval in hours
392
+ 'dtick2' nil # large tick (with hour labels) interval in hours
393
+ 'year' false # true =&gt; add year to date label
394
+ 'month' true # true =&gt; add month to date label</pre></li>
395
+ </ul></dd>
396
+ <dt><h4><a name="label-38" id="label-38"><code>date_ax(<var>date_from</var>, <var>date_to</var>, <var>options</var>=<var>nil</var>)</code></a></h4></dt><!-- RDLabel: "date_ax" -->
397
+ <dd>
398
+ <p>Similar to <a href="#label-37">datetime_ax</a> but
399
+ draws a calendar axis in terms of date (not hours).
400
+ This method uses DCL's UCPACK (DCL.uc[xy]acl) when appropritate;
401
+ i.e., when the period is short enough (typically with in a few
402
+ years) so that year labels are written. Unfortunately,
403
+ the current uc[xy]acl (or uc[xy]yr) suppress year labels
404
+ when the period is long to write year albels for each year.
405
+ In such a case, this method uses DCLExt.year_ax.
406
+ Note that future uc[xy]acl may cover all the situation,
407
+ so this method will not be needed.</p>
408
+ <p>ARGUMENTS</p>
409
+ <ul>
410
+ <li>date_from (DateTime) : date&amp;time to beggin</li>
411
+ <li>date_to (DateTime) : date&amp;time to end</li>
412
+ <li><p>options (Hash) : options to change the default behavior if specified:
413
+ option name default value # description:
414
+ "yax" false # true =&gt; y-axis, false =&gt; x-axis
415
+ "cside" nil # "b", "t", "l", "r", nil (=&gt;left/bottom), or false</p>
416
+ <pre># (=&gt;right/top)</pre>
417
+ <p>"margin_factor" 0.9 # Factor to control the extent to use</p>
418
+ <pre># UCPACK; The smaller, the less, requiring more
419
+ # space between year labels</pre>
420
+ <p>"dtick1" nil # (For long time series) small tick interval</p>
421
+ <pre># (years)</pre>
422
+ <p>"dtick2" nil # (For long time series) large tick with year</p>
423
+ <pre># labels (years)</pre>
424
+ <p>"help" false # show help message if true</p></li>
425
+ </ul></dd>
426
+ </dl>
427
+ <h3><a name="label-39" id="label-39">Longitude/Latitude Axes</a></h3><!-- RDLabel: "Longitude/Latitude Axes" -->
428
+ <dl>
429
+ <dt><h4><a name="label-40" id="label-40"><code>lon_ax( <var>options</var>=<var>nil</var> )</code></a></h4></dt><!-- RDLabel: "lon_ax" -->
430
+ <dd>
431
+ <p>Draw longitude axis. (label format: degrees + 'E' or 'W')</p>
432
+ <p>ARGUMENTS</p>
433
+ <ul>
434
+ <li><p>options (Hash) : options to change the default behavior if specified.
435
+ It is a Hash with option names (String) as keys and their values.
436
+ Options are interpreted by a NumRu::Misc::KeywordOptAutoHelp,
437
+ so you can shorten the keys (by omitting tails) as long as it is
438
+ unambiguous.</p>
439
+ <pre>option name default value # description:
440
+ "yax" false # true =&gt; draw y-axis, false =&gt; draw x-axis
441
+ "cside" nil # "b", "t", "l", "r",
442
+ # nil (=&gt;left/bottom), or false (=&gt;right/top)
443
+ "dtick1" nil # Interval of small tickmark
444
+ # (if nil, internally determined)
445
+ "dtick2" nil # Interval of large tickmark with labels
446
+ # (if nil, internally determined)</pre></li>
447
+ </ul></dd>
448
+ <dt><h4><a name="label-41" id="label-41"><code>lat_ax( <var>options</var>=<var>nil</var> )</code></a></h4></dt><!-- RDLabel: "lat_ax" -->
449
+ <dd>
450
+ <p>Draw latitude axis. (label format: degrees + 'N' or 'S')</p>
451
+ <p>ARGUMENTS</p>
452
+ <ul>
453
+ <li><p>options (Hash) : options to change the default behavior if specified.
454
+ It is a Hash with option names (String) as keys and their values.
455
+ Options are interpreted by a NumRu::Misc::KeywordOptAutoHelp,
456
+ so you can shorten the keys (by omitting tails) as long as it is
457
+ unambiguous.</p>
458
+ <pre>option name default value # description:
459
+ "xax" false # true =&gt; draw x-axis, false =&gt; draw y-axis
460
+ "cside" nil # "b", "t", "l", "r",
461
+ # nil (=&gt;left/bottom), or false (=&gt;right/top)
462
+ "dtick1" nil # Interval of small tickmark
463
+ # (if nil, internally determined)
464
+ "dtick2" nil # Interval of large tickmark with labels
465
+ # (if nil, internally determined)</pre></li>
466
+ </ul></dd>
467
+ </dl>
468
+ <h3><a name="label-42" id="label-42">Vectors</a></h3><!-- RDLabel: "Vectors" -->
469
+ <dl>
470
+ <dt><h4><a name="label-43" id="label-43"><code>unit_vect( <var>vxfxratio</var>, <var>vyfyratio</var>, <var>fxunit</var>=<var>nil</var>, <var>fyunit</var>=<var>nil</var>, <var>options</var>=<var>nil</var> )</code></a></h4></dt><!-- RDLabel: "unit_vect" -->
471
+ <dd>
472
+ <p>Show the "unit vector", which indicate the vector scaling.</p>
473
+ <p>ARGUMENTS</p>
474
+ <ul>
475
+ <li>vxfxratio (Float) : (V cood length)/(actual length) in x</li>
476
+ <li>vyfyratio (Float) : (V cood length)/(actual length) in y</li>
477
+ <li>fxunit (Float) : If specified, x unit vect len</li>
478
+ <li>fyunit (Float) : If specified, y unit vect len</li>
479
+ <li><p>options (Hash) : options to change the default behavior if specified.
480
+ It is a Hash with option names (String) as keys and their values.
481
+ Options are interpreted by a NumRu::Misc::KeywordOptAutoHelp,
482
+ so you can shorten the keys (by omitting tails) as long as it is
483
+ unambiguous.</p>
484
+ <pre>option name default value # description:
485
+ "vxunit" 0.05 # x unit vect len in V coord. Used only when
486
+ # fxunit is omitted (default)
487
+ "vyunit" 0.05 # y unit vect len in V coord. Used only when
488
+ # fyunit is omitted (default)
489
+ "vxuloc" nil # Starting x position of unit vect
490
+ "vyuloc" nil # Starting y position of unit vect
491
+ "vxuoff" 0.05 # Specify vxuloc by offset from right-bottom
492
+ # corner
493
+ "vyuoff" 0.0 # Specify vyuloc by offset from right-bottom
494
+ # corner
495
+ "inplace" true # Whether to print labels right by the unit
496
+ # vector (true) or below the x axis (false)
497
+ "rsizet" nil # Label size(default taken from uz-parameter
498
+ # 'rsizel1')
499
+ "index" 3 # Line index of the unit vector
500
+ "help" false # show help message if true
501
+ "vertical" true # (used only in unit_vect_single) the unit vector
502
+ # is directed upward if true, to the right if not.</pre></li>
503
+ </ul></dd>
504
+ <dt><h4><a name="label-44" id="label-44"><code>unit_vect_single(<var>vfratio</var>, <var>flen</var>, <var>options</var>=<var>nil</var> )</code></a></h4></dt><!-- RDLabel: "unit_vect_single" -->
505
+ <dd>
506
+ <p>Draw a unit vector (only one arrow is drawn). Suitable to called after <a href="#label-48">flow_vect_anyproj</a>.</p>
507
+ <p>ARGUMENTS</p>
508
+ <ul>
509
+ <li>vfratio (Numeric) : see <a href="#label-48">flow_vect_anyproj</a>.</li>
510
+ <li>flen (Numeric) : length of the unit vector</li>
511
+ <li>options (Hash) : see <a href="#label-43">unit_vect</a>.</li>
512
+ </ul></dd>
513
+ <dt><h4><a name="label-45" id="label-45"><code>set_unit_vect_options(<var>options</var>)</code></a></h4></dt><!-- RDLabel: "set_unit_vect_options" -->
514
+ <dd>
515
+ Change the default option values for <a href="#label-43">unit_vect</a>.</dd>
516
+ <dt><h4><a name="label-46" id="label-46"><code>next_unit_vect_options(<var>options</var>)</code></a></h4></dt><!-- RDLabel: "next_unit_vect_options" -->
517
+ <dd>
518
+ Set the option values effective only in the next call of <a href="#label-43">unit_vect</a></dd>
519
+ <dt><h4><a name="label-47" id="label-47"><code>flow_vect( <var>fx</var>, <var>fy</var>, <var>factor</var>=<var>1</var>.<var>0</var>, <var>xintv</var>=<var>1</var>, <var>yintv</var>=<var>1</var>)</code></a></h4></dt><!-- RDLabel: "flow_vect" -->
520
+ <dd>
521
+ <p>2D Vector plot. Unlike <code>DCL::ugvect</code>, scaling are made in term of the physical (or "U") coordinate.</p>
522
+ <p>This method is meant to substitute <code>DCL::ugvect</code>. The scaling
523
+ is made in terms of the U coordinate. This method is suitable to
524
+ show vectors such as velocity, since the arrow direction represets
525
+ the direction in the U coordinate. Also, one can re-scale the
526
+ vector length easily by using the argument <code>factor</code>.</p>
527
+ <p>Currently, this method is not compatible with map projection,
528
+ since it calls <code>DCL::ugvect</code> internally.</p>
529
+ <p>ARGUMENTS</p>
530
+ <ul>
531
+ <li>fx, fy (2D NArray or Array) : the vector field.</li>
532
+ <li>factor (Integer) : factor to change the arrow length.
533
+ By default, arrows are scaled so that the longest one
534
+ match the grid interval.</li>
535
+ <li>xintv, yintv (Interger) : interval to thin out <code>fx</code> and <code>fy</code>,
536
+ respectively. Useful if the grid points are too many.</li>
537
+ </ul></dd>
538
+ <dt><h4><a name="label-48" id="label-48"><code>flow_vect_anyproj(<var>fx</var>, <var>fy</var>, <var>xg</var>, <var>yg</var>, <var>factor</var>=<var>1</var>.<var>0</var>, <var>xintv</var>=<var>1</var>, <var>yintv</var>=<var>1</var>, <var>distvect_map</var>=<var>true</var>, <var>vfratio</var>=<var>nil</var>)</code></a></h4></dt><!-- RDLabel: "flow_vect_anyproj" -->
539
+ <dd>
540
+ <p>flow_vect that can be used under any of the projections supported by DCL.
541
+ Arrows drawn by this method have lengths proportional to sqrt(fx**2+fy**2),
542
+ and their directions are properly directed locally (consistent with the
543
+ local coordinate). A special treatment
544
+ is made for map projections if distvect_map==true (see below). Singular
545
+ points of the projection is heuristically handled (see the source code
546
+ for details).</p>
547
+ <p>ARGUMENTS</p>
548
+ <ul>
549
+ <li>fx, fy [2D NArray or NArrayMiss] : the vector field.</li>
550
+ <li>xg, yg [1D (or 2D) NArray] : the grid points</li>
551
+ <li>factor (Integer) : factor to change the arrow length.
552
+ By default, arrows are scaled so that the longest one
553
+ matches the typical grid interval.</li>
554
+ <li>xintv, yintv (Integer) : interval to thin out <code>fx</code> and <code>fy</code>,
555
+ respectively. Useful if the grid points are too many.</li>
556
+ <li>distvect_map [true/false] : (effective only for map projections)
557
+ by default (true) it is assumed that the vector (fx,fy) is based
558
+ on lengths (such as wind velocities in m/s,
559
+ and fluxes in which wind velocities are incorporated [q*u, q*v]);
560
+ set it to false if the vector is based on angles
561
+ (such as the time derivatives of longitude and latitude).
562
+ When true, a directional correction is made to match the scaling of
563
+ DCL's window, which is based on angles (longitude and latitude).</li>
564
+ <li>vfratio [nil or Numeric] : if Numeric, specifies the ratio
565
+ between the lengths of vectors in the V coordinate and the actual
566
+ length (sqrt(fx**2+fy**2)). Good to unify the scaling over multiple
567
+ plots</li>
568
+ </ul>
569
+ <p>RETURN VALUE</p>
570
+ <ul>
571
+ <li>[ vfratio, flenmax ] : </li>
572
+ </ul>
573
+ <ul>
574
+ <li>vfratio : see above</li>
575
+ <li>flenmax : maximum of sqrt(fx**2+fy**2)</li>
576
+ </ul></dd>
577
+ <dt><h4><a name="label-49" id="label-49"><code>flow_itr5( <var>fx</var>, <var>fy</var>, <var>factor</var>=<var>1</var>.<var>0</var>, <var>unit_vect</var>=<var>false</var> )</code></a></h4></dt><!-- RDLabel: "flow_itr5" -->
578
+ <dd>
579
+ <p>2D Vector plot on the polar coodinate.</p>
580
+ <p>This method just perform rotatation of the vector in U-coordinate
581
+ to N-coordinate and passed to DCL.ugvect.</p>
582
+ <p>ARGUMENTS</p>
583
+ <ul>
584
+ <li>fx, fy (2D GPhys) : the vector field.</li>
585
+ <li>factor (Integer) : factor for scaling in ugvect. When it equals 1,
586
+ vector field will be scaled in DCL.ugvect automatically.</li>
587
+ <li>unit_vect() : Show the unit vector</li>
588
+ </ul></dd>
589
+ </dl>
590
+ <h3><a name="label-50" id="label-50">Color bars</a></h3><!-- RDLabel: "Color bars" -->
591
+ <dl>
592
+ <dt><h4><a name="label-51" id="label-51"><code>set_color_bar_options(<var>options</var>)</code></a></h4></dt><!-- RDLabel: "set_color_bar_options" -->
593
+ <dd>
594
+ To set options of <a href="#label-52">color_bar</a> effective in the rest.</dd>
595
+ <dt><h4><a name="label-52" id="label-52"><code>color_bar(<var>options</var>=<var>nil</var>)</code></a></h4></dt><!-- RDLabel: "color_bar" -->
596
+ <dd>
597
+ <ul>
598
+ <li>Descroption:
599
+ Draws color bars</li>
600
+ <li><p>Example
601
+ Here is the simplest case, where no argument is given to color_bar.</p>
602
+ <pre>DCL.uetone(hoge)
603
+ DCL.usdaxs
604
+ ...
605
+ DCL.color_bar</pre>
606
+ <p>This draws a color bar by using the levels and tone patterns(colors)
607
+ set previously. There are many parameters you can set manually,
608
+ as introduced below:</p></li>
609
+ <li><p>Description of options</p>
610
+ <pre>option name default value # description:
611
+ "levels" nil # tone levels (if omitted, latest ones are used)
612
+ "patterns" nil # tone patterns (~colors) (if omitted, latest
613
+ # ones are used)
614
+ "voff" nil # how far is the bar from the viewport in the V
615
+ # coordinate
616
+ "vcent" nil # center position of the bar in the V coordinate
617
+ # (VX or VY)
618
+ "vlength" 0.3 # bar length in the V coordinate
619
+ "vwidth" 0.02 # bar width in the V coordinate
620
+ "inffact" 2.25 # factor to change the length of triangle on the
621
+ # side for infinity (relative to 'vwidth')
622
+ "landscape" false # if true, horizonlly long (along x axes)
623
+ "portrait" true # if true, vertically long (along y axes)
624
+ "top" false # place the bar at the top (effective if
625
+ # landscape)
626
+ "left" false # place the bar in the left (effective if
627
+ # portrait)
628
+ "units" nil # units of the axis of the color bar
629
+ "units_voff" 0.0 # offset value for units from the default position
630
+ # in the V coordinate (only for 'units' != nil)
631
+ "title" nil # title of the color bar
632
+ "title_voff" 0.0 # offset value for title from the default position
633
+ # in the V coordinate (only for 'title' != nil)
634
+ "tickintv" 1 # 0,1,2,3,.. to specify how frequently the
635
+ # dividing tick lines are drawn (0: no tick lines,
636
+ # 1: every time, 2: ever other:,...)
637
+ "labelintv" nil # 0,1,2,3,.. to specify how frequently labels are
638
+ # drawn (0: no labels, 1: every time, 2: ever
639
+ # other:,... default: internally determined)
640
+ "labels_ud" nil # user-defined labels for replacing the default
641
+ # labels (Array of String)
642
+ "charfact" 0.9 # factor to change the label/units/title character
643
+ # size (relative to 'rsizel1')
644
+ "log" false # set the color bar scale to logarithmic
645
+ "constwidth" false # if true, each color is drawn with the same width
646
+ "index" nil # line index of tick lines and bar frame
647
+ "charindex" nil # line index of labels, units, and title
648
+ "chval_fmt" nil # string to specify the DCL.chval format for
649
+ # labeling
650
+ "help" false # show help message if true</pre></li>
651
+ </ul></dd>
652
+ </dl>
653
+ <h3><a name="label-53" id="label-53">Others</a></h3><!-- RDLabel: "Others" -->
654
+ <dl>
655
+ <dt><h4><a name="label-54" id="label-54"><code>legend(<var>str</var>, <var>type</var>, <var>index</var>, <var>line</var>=<var>false</var>, <var>size</var>=<var>nil</var>, <var>vx</var>=<var>nil</var>, <var>dx</var>=<var>nil</var>, <var>vy</var>=<var>nil</var>, <var>first</var>=<var>true</var>, <var>mark_size</var>=<var>nil</var>)</code></a></h4></dt><!-- RDLabel: "legend" -->
656
+ </dl>
657
+ <p>Annotates line/mark type and index (and size if mark).
658
+ By default it is shown in the right margin of the viewport.</p>
659
+ <ul>
660
+ <li>str is a String to show</li>
661
+ <li>line: true-&gt;line ; false-&gt;mark</li>
662
+ <li>vx: vx of the left-hand point of legend line (or mark position).
663
+ <ul>
664
+ <li>nil : internally determined</li>
665
+ <li>Float &amp;&amp; &gt; 0 : set explicitly</li>
666
+ <li>Float &amp;&amp; &lt; 0 : move it relatively to the left from the default</li>
667
+ </ul></li>
668
+ <li>dx: length of the legend line (not used if mark).
669
+ <ul>
670
+ <li>nil : internally determined</li>
671
+ <li>Float &amp;&amp; &gt; 0 : set explicitly</li>
672
+ </ul></li>
673
+ <li>vy: vy of the legend (not used if !first -- see below).
674
+ <ul>
675
+ <li>nil : internally determined</li>
676
+ <li>Float &amp;&amp; &gt; 0 : set explicitly</li>
677
+ <li>Float &amp;&amp; &lt; 0 : move it relatively lower from the default</li>
678
+ </ul></li>
679
+ <li>first : if false, vy is moved lower relatively from the previous vy.</li>
680
+ <li>mark_size : size of the mark. if nil, size is used.</li>
681
+ </ul>
682
+ <dl>
683
+ <dt><h4><a name="label-55" id="label-55"><code>quasi_log_levels_z(<var>vals</var>, <var>nlev</var>=<var>nil</var>, <var>max</var>=<var>nil</var>, <var>min</var>=<var>nil</var>, <var>cycle</var>=<var>1</var>)</code></a></h4></dt><!-- RDLabel: "quasi_log_levels_z" -->
684
+ </dl>
685
+ <p>Driver of quasi_log_levels with data values</p>
686
+ <dl>
687
+ <dt><h4><a name="label-56" id="label-56"><code>quasi_log_levels(<var>lev0</var>, <var>lev1</var>, <var>cycle</var>=<var>1</var>)</code></a></h4></dt><!-- RDLabel: "quasi_log_levels" -->
688
+ </dl>
689
+ <p>Returns approximately log-scaled contour/tone levels as well as
690
+ major/minor flags for contours. No DCL call is made in here.</p>
691
+ <ul>
692
+ <li>cycle (Integer; 1, or 2 or 3) : number of level in one-order.
693
+ e.g. 1,10,100,.. for cycle==1; 1,3,10,30,.. for cycle==2;
694
+ 1,2,5,10,20,50,.. for cycle==3</li>
695
+ <li>lev0, lev1 (Float) : levels are set between this two params
696
+ <ul>
697
+ <li>if lev0 &amp; lev1 &gt; 0 : positive only</li>
698
+ <li>if lev0 &amp; lev1 &lt; 0 : negative only</li>
699
+ <li>if lev0 * lev1 &lt; 0 : both positive and negative
700
+ (usig +-[lev0.abs,lev1.abs])</li>
701
+ </ul></li>
702
+ </ul>
703
+ <p>RETURN VALUE:</p>
704
+ <ul>
705
+ <li>[ levels, mjmn ]</li>
706
+ </ul>
707
+ <pre>DCL.sgpset('lclip',true)
708
+
709
+ for itr in [10,12]
710
+ DCL.grfrm
711
+ DCL.grstrn(itr)
712
+ DCL.grsvpt(0.1,0.9,0.25,0.75)
713
+ DCL.umscnt(180, 0, 0)
714
+ DCL.grswnd(xdeg[0],xdeg[-1],ydeg[0],ydeg[-1])
715
+ DCL.grstxy(-180, 180, -90, 90 )
716
+ DCL.umpset('lglobe', true)
717
+ DCL.umpfit
718
+ DCL.grstrf
719
+ DCL.udcntz(z)
720
+ vfratio, flenmax = DCLExt.flow_vect_anyproj(u, v, xdeg, ydeg)
721
+ DCLExt.unit_vect_single(vfratio, flenmax)
722
+ DCL.umplim
723
+ end
724
+
725
+ itr = 30
726
+ DCL.grfrm
727
+ DCL.grstrn(itr)
728
+ DCL.grsvpt(0.1,0.9,0.1,0.9)
729
+ DCL.umscnt(180, 90, 0)
730
+ DCL.grswnd(xdeg[0],xdeg[-1],ydeg[0],ydeg[-1])
731
+ DCL.grssim(0.3,0,0)
732
+ DCL.grstxy(-180, 180, 10, 90 )
733
+ DCL.umpset('lglobe', true)
734
+ DCL.umpfit
735
+ DCL.grstrf
736
+ DCL.udcntz(z)
737
+ vfratio, flenmax =
738
+ DCLExt.flow_vect_anyproj(u[true,ny/2+1..-1], v[true,ny/2+1..-1],
739
+ xdeg, ydeg[ny/2+1..-1])
740
+ DCLExt.unit_vect_single(vfratio, flenmax)
741
+ DCL.umplim
742
+
743
+ itr = 30
744
+ DCL.grfrm
745
+ DCL.grstrn(itr)
746
+ DCL.grsvpt(0.1,0.9,0.1,0.9)
747
+ DCL.umscnt(180, 30, 0)
748
+ DCL.grswnd(xdeg[0],xdeg[-1],ydeg[0],ydeg[-1])
749
+ DCL.grssim(0.3,0,0)
750
+ DCL.grstxy(-180, 180, 0, 90 )
751
+ DCL.umpset('lglobe', true)
752
+ DCL.umpfit
753
+ DCL.grstrf
754
+ #DCL.udcntz(z[true,ny/2+1..-1])
755
+ DCL.uepset("ltone",true)
756
+ DCL.udcntz(z[true,ny/2+1..-1])
757
+ vfratio, flenmax =
758
+ DCLExt.flow_vect_anyproj(u, v,
759
+ xdeg, ydeg,
760
+ 1.0,1,1,true,nil,0.3)
761
+ #DCLExt.flow_vect_anyproj(u[true,ny/2..-1], v[true,ny/2..-1],
762
+ # xdeg, ydeg[ny/2..-1])
763
+ DCLExt.unit_vect_single(vfratio, flenmax)
764
+ DCL.umplim
765
+
766
+ ## for datetime_ax
767
+ date_from = DateTime.parse('2005-06-30 17:00')
768
+ date_to = DateTime.parse('2005-07-01 5:00')
769
+ date_from2 = DateTime.parse('2005-06-29 17:00')
770
+ date_to2 = DateTime.parse('2005-07-02 5:00')
771
+
772
+ any_offst = 10
773
+
774
+ DCL.grfrm
775
+ DCL.grswnd(0.0, date_to-date_from, any_offst, date_to2-date_from2+any_offst)
776
+ DCL.grsvpt(0.2, 0.8, 0.2, 0.8)
777
+ DCL.grstrn(1)
778
+ DCL.grstrf
779
+ DCLExt.datetime_ax(date_from, date_to, 'year'=&gt;true)
780
+ DCLExt.datetime_ax(date_from, date_to, 'cside'=&gt;'t', 'year'=&gt;true)
781
+ DCLExt.datetime_ax(date_from2, date_to2, 'yax'=&gt;true)
782
+ DCLExt.datetime_ax(date_from2, date_to2, 'yax'=&gt;true, 'cside'=&gt;'r')
783
+ DCL.uxsttl('b','TIME AND DATE',0.0)
784
+ DCL.uysttl('l','TIME AND DATE',0.0)
785
+
786
+ DCL.grfrm
787
+ DCL.grswnd(0.0, date_to-date_from, 0, date_to2-date_from2)
788
+ DCL.grsvpt(0.2, 0.8, 0.2, 0.8)
789
+ DCL.grstrn(1)
790
+ DCL.grstrf
791
+ DCL.uzpset('inner',-1)
792
+ DCLExt.datetime_ax(date_from, date_to, 'dtick2'=&gt;2)
793
+ DCLExt.datetime_ax(date_from, date_to, 'cside'=&gt;'t', 'dtick2'=&gt;2)
794
+ DCL.uzpset('inner',1)
795
+ DCLExt.datetime_ax(date_from2, date_to2, 'yax'=&gt;true,
796
+ 'dtick1'=&gt;2, 'dtick2'=&gt;24)
797
+ DCLExt.datetime_ax(date_from2, date_to2, 'yax'=&gt;true, 'cside'=&gt;'r',
798
+ 'dtick1'=&gt;2, 'dtick2'=&gt;24)
799
+ DCL.uxsttl('b','TIME AND DATE',0.0)
800
+ DCL.uysttl('l','TIME AND DATE',0.0)
801
+
802
+ ## for date_ax
803
+ date_from = DateTime.parse('1995-06-30 17:00')
804
+ date_to = DateTime.parse('2000-02-01 5:00')
805
+ any_offst = 10
806
+
807
+ 3.times do
808
+ DCL.grfrm
809
+ DCL.grswnd(0.0, date_to-date_from, any_offst, date_to-date_from+any_offst)
810
+ DCL.grsvpt(0.2, 0.8, 0.2, 0.8)
811
+ DCL.grstrn(1)
812
+ DCL.grstrf
813
+ #DCL.uzpset("irotcyl",0)
814
+ #DCL.uzpset("irotcxb",1)
815
+ DCLExt.date_ax(date_from, date_to)
816
+ DCLExt.date_ax(date_from, date_to, "yax"=&gt;true)
817
+ date_to = date_to &gt;&gt; 15*12
818
+ end</pre>
819
+
820
+ </body>
821
+ </html>