gphys 1.2.2.1 → 1.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>