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,136 @@
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/netcdf_convention.rb</title>
8
+ </head>
9
+ <body>
10
+ <h2><a name="label-0" id="label-0">INDEX</a></h2><!-- RDLabel: "INDEX" -->
11
+ <ul>
12
+ <li><a href="#label-1">module NumRu::NetCDF_Conventions</a></li>
13
+ <li><a href="#label-6">module NumRu::NetCDF_Convention_Users_Guide</a>
14
+ <ul>
15
+ <li><a href="#label-15">module NumRu::NetCDF_Convention_Users_Guide::Attribute_Mixin</a></li>
16
+ <li><a href="#label-18">module NumRu::NetCDF_Convention_Users_Guide::VArray_Mixin</a></li>
17
+ </ul></li>
18
+ <li><a href="#label-20">module NumRu::NetCDF_Convention_Wind_Profiler</a></li>
19
+ </ul>
20
+ <h1><a name="label-1" id="label-1">module NumRu::NetCDF_Conventions</a></h1><!-- RDLabel: "module NumRu::NetCDF_Conventions" -->
21
+ <p>NetCDF_Conventions is the general handler of NetCDF conventions for the
22
+ GPhys library.</p>
23
+ <h2><a name="label-2" id="label-2">Module Functions</a></h2><!-- RDLabel: "Module Functions" -->
24
+ <dl>
25
+ <dt><h4><a name="label-3" id="label-3"><code>find( <var>netcdf</var> )</code></a></h4></dt><!-- RDLabel: "find" -->
26
+ <dd>
27
+ <p>Figures out what NetCDF convention a netcdf file is following.</p>
28
+ <p>ARGUMENTS</p>
29
+ <ul>
30
+ <li><var>netcdf</var> (NetCDF): the file</li>
31
+ </ul>
32
+ <p>RETURN VALUE</p>
33
+ <ul>
34
+ <li>a Module (NumRu::NetCDF_Convention_Users_Guide etc.)</li>
35
+ </ul>
36
+ <p>REMARK</p>
37
+ <ul>
38
+ <li>The convention is figured out from the 'Conventions' global attribute.
39
+ You can instead fix the convention by using <a href="#label-4">fix_to</a>.</li>
40
+ </ul></dd>
41
+ <dt><h4><a name="label-4" id="label-4"><code>fix_to( <var>convention</var> )</code></a></h4></dt><!-- RDLabel: "fix_to" -->
42
+ <dd>
43
+ <p>Fix the convention to be returned by <a href="#label-3">find</a> regardless the value
44
+ of the 'Conventions' attribute.</p>
45
+ <p>ARGUMENTS</p>
46
+ <ul>
47
+ <li><var>convention</var> (Module): NumRu::NetCDF_Convention_Users_Guide etc.</li>
48
+ </ul>
49
+ <p>RETURN VALUE</p>
50
+ <ul>
51
+ <li>convention</li>
52
+ </ul></dd>
53
+ <dt><h4><a name="label-5" id="label-5"><code>add_history(<var>netcdf</var>, <var>str</var>=<var>nil</var>)</code></a></h4></dt><!-- RDLabel: "add_history" -->
54
+ <dd>
55
+ <p>Adds a line to the 'history' global convention of <var>netcdf</var>.
56
+ The line consists of date, time, user name, and <var>str</var>
57
+ if present (e.g., '2004-03-02 17:52:25 JST horinout&gt; '+str).</p>
58
+ <p>ARGUMENTS</p>
59
+ <ul>
60
+ <li><var>netcdf</var> (NetCDF): the file in which the history is updated</li>
61
+ <li><var>str</var> (nil or String): if present, added to the end of the line.</li>
62
+ </ul></dd>
63
+ </dl>
64
+ <h1><a name="label-6" id="label-6">module NumRu::NetCDF_Convention_Users_Guide</a></h1><!-- RDLabel: "module NumRu::NetCDF_Convention_Users_Guide" -->
65
+ <p>The NetCDF Users Guide Convention
66
+ (http://www.unidata.ucar.edu/packages/netcdf/docs.html).</p>
67
+ <h2><a name="label-7" id="label-7">Constants</a></h2><!-- RDLabel: "Constants" -->
68
+ <dl>
69
+ <dt><h4><a name="label-8" id="label-8"><code>Attribute_Mixin</code></a></h4></dt><!-- RDLabel: "Attribute_Mixin" -->
70
+ </dl>
71
+ <p>See below: <a href="#label-15">module NumRu::NetCDF_Convention_Users_Guide::Attribute_Mixin</a>.</p>
72
+ <dl>
73
+ <dt><h4><a name="label-9" id="label-9"><code>VArray_Mixin</code></a></h4></dt><!-- RDLabel: "VArray_Mixin" -->
74
+ </dl>
75
+ <p>See below: <a href="#label-18">module NumRu::NetCDF_Convention_Users_Guide::VArray_Mixin</a>.</p>
76
+ <h2><a name="label-10" id="label-10">Module Functions</a></h2><!-- RDLabel: "Module Functions" -->
77
+ <dl>
78
+ <dt><h4><a name="label-11" id="label-11"><code>to_s</code></a></h4></dt><!-- RDLabel: "to_s" -->
79
+ <dd>
80
+ Returns a string to be used as representing the convention.
81
+ The Users Guide Convention does not have one, so a string
82
+ was tentatively assigned by Horinouchi.</dd>
83
+ <dt><h4><a name="label-12" id="label-12"><code>coord_var_names(<var>ncvar</var>)</code></a></h4></dt><!-- RDLabel: "coord_var_names" -->
84
+ <dd>
85
+ <p>Returns the names of coordinate variables for all the dimensions
86
+ of <var>ncvar</var>.</p>
87
+ <p>ARGUMENTS</p>
88
+ <ul>
89
+ <li><var>ncvar</var> (NetCDFVar)</li>
90
+ </ul>
91
+ <p>RETURN VALUE</p>
92
+ <ul>
93
+ <li>Array of strings, whose length is the rank of <var>ncvar</var>.</li>
94
+ </ul></dd>
95
+ <dt><h4><a name="label-13" id="label-13"><code>cell_bounds?(<var>coord_var</var>)</code></a></h4></dt><!-- RDLabel: "cell_bounds?" -->
96
+ <dd>
97
+ Document to be written. (returns false&amp;nil in this convention.)
98
+ Might be reorganized in future when the gtool4 convention is supported.</dd>
99
+ <dt><h4><a name="label-14" id="label-14"><code>cell_center?(<var>coord_var</var>)</code></a></h4></dt><!-- RDLabel: "cell_center?" -->
100
+ <dd>
101
+ Document to be written. (returns false&amp;nil in this convention.)
102
+ Might be reorganized in future when the gtool4 convention is supported.</dd>
103
+ </dl>
104
+ <p>--------------------------------------------------</p>
105
+ <h2><a name="label-15" id="label-15">module NumRu::NetCDF_Convention_Users_Guide::Attribute_Mixin</a></h2><!-- RDLabel: "module NumRu::NetCDF_Convention_Users_Guide::Attribute_Mixin" -->
106
+ <p>The module to be mixed in NumRu::AttributeNetCDF.</p>
107
+ <h3><a name="label-16" id="label-16">Instance Methods</a></h3><!-- RDLabel: "Instance Methods" -->
108
+ <p>Methods below will become sigular methods of NumRu::AttributeNetCDF.</p>
109
+ <dl>
110
+ <dt><h4><a name="label-17" id="label-17"><code>copy(<var>to</var>=<var>nil</var>)</code></a></h4></dt><!-- RDLabel: "copy" -->
111
+ <dd>
112
+ Same as super (the one overridden by this method),
113
+ but edits some standard attributes if to is nil (copy onto memory)):
114
+ <ul>
115
+ <li>scale_factor, add_offset: removed, since data copying includes
116
+ "unpaking" by interpreting them</li>
117
+ <li>valid_*, missing_value: unpacked if packed.</li>
118
+ <li>_FillValue, FORTRAN_format, C_format: eliminated</li>
119
+ </ul></dd>
120
+ </dl>
121
+ <p>---------------------------------------------------</p>
122
+ <h2><a name="label-18" id="label-18">module NumRu::NetCDF_Convention_Users_Guide::VArray_Mixin</a></h2><!-- RDLabel: "module NumRu::NetCDF_Convention_Users_Guide::VArray_Mixin" -->
123
+ <p>The module to be mixed in NumRu::VArrayNetCDF.</p>
124
+ <h3><a name="label-19" id="label-19">Instance Methods</a></h3><!-- RDLabel: "Instance Methods" -->
125
+ <p>Currently none, meaning is that no modification is made
126
+ in VArrayNetCDF.</p>
127
+ <p>---------------------------------------------------------------------</p>
128
+ <h1><a name="label-20" id="label-20">module NumRu::NetCDF_Convention_Wind_Profiler</a></h1><!-- RDLabel: "module NumRu::NetCDF_Convention_Wind_Profiler" -->
129
+ <p>The Wind Profiler convention
130
+ (http://www.kurasc.kyoto-u.ac.jp/radar-group/wind_profiler_conventions/).</p>
131
+ <p>Inherits NetCDF_Convention_Users_Guide and makes appropriate redefinitions.
132
+ See <a href="#label-6">module NumRu::NetCDF_Convention_Users_Guide</a> for the description
133
+ of constants and module functions.</p>
134
+
135
+ </body>
136
+ </html>
@@ -0,0 +1,176 @@
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/unumeric.rb</title>
8
+ </head>
9
+ <body>
10
+ <h1><a name="label-0" id="label-0">class NumRu::UNumeric</a></h1><!-- RDLabel: "class NumRu::UNumeric" -->
11
+ <p>Class of Numeric with Units.</p>
12
+ <p>Dependent on
13
+ <a href="http://ruby.gfd-dennou.org/products/numru=units">NumRu::Units</a>
14
+ and Rational, a standard library.</p>
15
+ <h2><a name="label-1" id="label-1">Class Methods</a></h2><!-- RDLabel: "Class Methods" -->
16
+ <dl>
17
+ <dt><h4><a name="label-2" id="label-2"><code>new(<var>val</var>, <var>uni</var>)</code></a></h4></dt><!-- RDLabel: "new" -->
18
+ <dd>
19
+ <p>Constractor.</p>
20
+ <p>ARGUMENTS</p>
21
+ <ul>
22
+ <li><var>val</var> (Numeric)</li>
23
+ <li><var>units</var> (NumRu::Units or String): if string, internally converted to
24
+ a NumRu::Units</li>
25
+ </ul></dd>
26
+ <dt><h4><a name="label-3" id="label-3"><code>[val, <var>uni</var>]</code></a></h4></dt><!-- RDLabel: "[val, uni]" -->
27
+ <dd>
28
+ Same as new</dd>
29
+ <dt><h4><a name="label-4" id="label-4"><code>from_date(<var>date</var>, <var>units</var>)</code></a></h4></dt><!-- RDLabel: "from_date" -->
30
+ <dd>
31
+ <p>Convert a DateTime (or Date) to a UNUmeric</p>
32
+ <p>ARGUMENTS</p>
33
+ <ul>
34
+ <li>date (Date or DateTime)</li>
35
+ <li>units (Units or String) : units of the UNumeric to be created</li>
36
+ </ul></dd>
37
+ </dl>
38
+ <h2><a name="label-5" id="label-5">Methods</a></h2><!-- RDLabel: "Methods" -->
39
+ <dl>
40
+ <dt><h4><a name="label-6" id="label-6"><code>val</code></a></h4></dt><!-- RDLabel: "val" -->
41
+ <dd>
42
+ RETURN VALUE
43
+ <ul>
44
+ <li>the value (Numeric)</li>
45
+ </ul></dd>
46
+ <dt><h4><a name="label-7" id="label-7"><code>units</code></a></h4></dt><!-- RDLabel: "units" -->
47
+ <dd>
48
+ RETURN VALUE
49
+ <ul>
50
+ <li>the units (NumRu::Units)</li>
51
+ </ul></dd>
52
+ <dt><h4><a name="label-8" id="label-8"><code>inspect</code></a></h4></dt><!-- RDLabel: "inspect" -->
53
+ <dd>
54
+ RETURN VALUE
55
+ <ul>
56
+ <li>a String (e.g., '1 m')</li>
57
+ </ul></dd>
58
+ <dt><h4><a name="label-9" id="label-9"><code>to_s</code></a></h4></dt><!-- RDLabel: "to_s" -->
59
+ <dd>
60
+ aliasesed to <a href="#label-8">inspect</a>.</dd>
61
+ <dt><h4><a name="label-10" id="label-10"><code>to_f</code></a></h4></dt><!-- RDLabel: "to_f" -->
62
+ <dd>
63
+ RETURN VALUE
64
+ <ul>
65
+ <li>val.to_f</li>
66
+ </ul></dd>
67
+ <dt><h4><a name="label-11" id="label-11"><code>to_i</code></a></h4></dt><!-- RDLabel: "to_i" -->
68
+ <dd>
69
+ RETURN VALUE
70
+ <ul>
71
+ <li>val.to_i</li>
72
+ </ul></dd>
73
+ <dt><h4><a name="label-12" id="label-12"><code>convert(<var>to_units</var>)</code></a></h4></dt><!-- RDLabel: "convert" -->
74
+ <dd>
75
+ <p>Convert to <var>to_units</var>.</p>
76
+ <p>RETURN VALUE</p>
77
+ <ul>
78
+ <li>a UNumeric</li>
79
+ </ul>
80
+ <p>EXCEPTION</p>
81
+ <ul>
82
+ <li>when the current units is incompatible with to_units.</li>
83
+ </ul></dd>
84
+ <dt><h4><a name="label-13" id="label-13"><code>convert2</code></a></h4></dt><!-- RDLabel: "convert2" -->
85
+ <dd>
86
+ <p>Same as <a href="#label-12">convert</a>, but returns <var>self</var> if the units are
87
+ incompatible (Warned).</p>
88
+ <p>EXCEPTION</p>
89
+ <ul>
90
+ <li>none</li>
91
+ </ul>
92
+ <p>WARING MADE</p>
93
+ <p>Warning is made to $stderr if the following
94
+ condition is satisfied.</p>
95
+ <ul>
96
+ <li>the units of <var>self</var> and <var>to_units</var> are incompatible.</li>
97
+ </ul></dd>
98
+ <dt><h4><a name="label-14" id="label-14"><code>coerce(<var>other</var>)</code></a></h4></dt><!-- RDLabel: "coerce" -->
99
+ <dd>
100
+ As you know. Can handle Numeric, Array, NArray.
101
+ NOTE: VArray and GPhys know UNumeric.</dd>
102
+ <dt><h4><a name="label-15" id="label-15"><code>*(<var>other</var>)</code></a></h4></dt><!-- RDLabel: "*" -->
103
+ <dd>
104
+ <p>Multiplication. Knows Numeric, UNumeric, VArray, and GPhys.
105
+ The units are multipled too. (if other is Numeric, it is assumed
106
+ to be non-dimension)</p>
107
+ <p>RETURN VALUE</p>
108
+ <ul>
109
+ <li>a UNumeric, VArray, or GPhys</li>
110
+ </ul></dd>
111
+ <dt><h4><a name="label-16" id="label-16"><code>/(<var>other</var>)</code></a></h4></dt><!-- RDLabel: "/" -->
112
+ <dd>
113
+ Division. See <a href="#label-15">*</a>.</dd>
114
+ <dt><h4><a name="label-17" id="label-17"><code>+(<var>other</var>)</code></a></h4></dt><!-- RDLabel: "+" -->
115
+ <dd>
116
+ <p>Addition. Knows Numeric, UNumeric, VArray, and GPhys.
117
+ The return value will have the units of <var>self</var>.</p>
118
+ <p>SPECIAL REMARK!</p>
119
+ <p>If <var>other</var> has units within a factor and/or offset
120
+ of difference, It is CONVERTED before addition (by using <a href="#label-13">convert2</a>)!</p>
121
+ <p>RETURN VALUE</p>
122
+ <ul>
123
+ <li>a UNumeric, VArray, or GPhys</li>
124
+ </ul>
125
+ <p>WARING MADE </p>
126
+ <p>Warning is made to $stderr if the following
127
+ condition is satisfied.</p>
128
+ <ul>
129
+ <li>the units of <var>self</var> and <var>to_units</var> are incompatible.</li>
130
+ <li><var>other</var> is Numeric.</li>
131
+ </ul></dd>
132
+ <dt><h4><a name="label-18" id="label-18"><code>-(<var>other</var>)</code></a></h4></dt><!-- RDLabel: "-" -->
133
+ <dd>
134
+ Subtraction. See <a href="#label-17">+</a>.</dd>
135
+ <dt><h4><a name="label-19" id="label-19"><code>**(<var>num</var>)</code></a></h4></dt><!-- RDLabel: "**" -->
136
+ <dd>
137
+ Power.</dd>
138
+ <dt><h4><a name="label-20" id="label-20"><code>abs</code></a></h4></dt><!-- RDLabel: "abs" -->
139
+ <dd>
140
+ Absolute value. Other math functions are also avialable as instance
141
+ methods.</dd>
142
+ <dt><h4><a name="label-21" id="label-21"><code>to_datetime(<var>eps_sec</var>=<var>0</var>.<var>0</var>)</code></a></h4></dt><!-- RDLabel: "to_datetime" -->
143
+ <dd>
144
+ <p>Convert a time UNumeric into a DateTime</p>
145
+ <p>ARGUMENTS</p>
146
+ <ul>
147
+ <li>eps_sec (Float) : Magic epsilon to prevent the round-off of
148
+ DateTime [seconds]. Recommended value is 0.1.</li>
149
+ </ul>
150
+ <p>RETURN VALUE</p>
151
+ <ul>
152
+ <li>a DateTime </li>
153
+ </ul>
154
+ <p>EXCEPTION</p>
155
+ <ul>
156
+ <li>raised if self does not have a time unit with a since field</li>
157
+ </ul></dd>
158
+ <dt><h4><a name="label-22" id="label-22"><code>strftime(<var>fmt</var>)</code></a></h4></dt><!-- RDLabel: "strftime" -->
159
+ <dd>
160
+ <p>Text expression of the date and time of a time UNumeric.
161
+ Implemented as</p>
162
+ <pre>self.to_datetime(0.1).strftime(fmt)</pre>
163
+ <p>ARGUMENTS</p>
164
+ <ul>
165
+ <li><p>fmt (Sting) : the format. Try</p>
166
+ <pre>% man 3 strftime</pre>
167
+ <p>to find how to write it.</p></li>
168
+ </ul>
169
+ <p>RETURN VALUE</p>
170
+ <ul>
171
+ <li>a String</li>
172
+ </ul></dd>
173
+ </dl>
174
+
175
+ </body>
176
+ </html>
@@ -0,0 +1,69 @@
1
+ #!/bin/csh
2
+
3
+ set sources = ( \
4
+ ../lib/numru/gphys/attribute.rb \
5
+ ../lib/numru/gphys/attributenetcdf.rb \
6
+ ../lib/numru/gphys/axis.rb \
7
+ ../lib/numru/gphys/coordmapping.rb \
8
+ ../lib/numru/gphys/coordtransform.rb \
9
+ ### ../lib/numru/gphys/derivative.rb \
10
+ ### ../lib/numru/gphys/ep_flux.rb \
11
+ ../lib/numru/gphys/gphys.rb \
12
+ ../lib/numru/gphys/gphys_fft.rb \
13
+ ../lib/numru/gphys/gphys_grads_io.rb \
14
+ ../lib/numru/gphys/gphys_grib_io.rb \
15
+ ../lib/numru/gphys/gphys_io.rb \
16
+ ../lib/numru/gphys/gphys_io_common.rb \
17
+ ../lib/numru/gphys/gphys_netcdf_io.rb \
18
+ ../lib/numru/gphys/grads_gridded.rb \
19
+ ../lib/numru/gphys/grib.rb \
20
+ # ../lib/numru/gphys/grib_params.rb \
21
+ ../lib/numru/gphys/grid.rb \
22
+ ../lib/numru/gphys/netcdf_convention.rb \
23
+ # ../lib/numru/gphys/subsetmapping.rb \
24
+ ../lib/numru/gphys/unumeric.rb \
25
+ ../lib/numru/gphys/varray.rb \
26
+ ../lib/numru/gphys/varraycomposite.rb \
27
+ # ../lib/numru/gphys/varraygrads.rb \
28
+ # ../lib/numru/gphys/varraygrib.rb \
29
+ # ../lib/numru/gphys/varraynetcdf.rb \
30
+ ### ../lib/numru/derivative.rb \
31
+ ../lib/numru/ggraph.rb \
32
+ ../lib/numru/dclext.rb \
33
+ ../lib/numru/gdir.rb \
34
+ ### ../lib/numru/ggraph_on_merdional_section.rb \
35
+ ### ../lib/numru/gphys.rb \
36
+ ../bin/grads2nc_with_gphys \
37
+ ../bin/gdir_server \
38
+ ../bin/gpcat \
39
+ ../bin/gpcut \
40
+ ../bin/gplist \
41
+ ../bin/gpmath \
42
+ ../bin/gpmaxmin \
43
+ ../bin/gpprint \
44
+ ../bin/gpview \
45
+ ../lib/numru/gdir_connect_ftp-like.rb \
46
+ index.rd \
47
+ )
48
+
49
+ foreach source ( $sources )
50
+ set html = `echo $source | sed -e 's/^.*\///' -e 's/\.rb$//' -e 's/\.rd$//' -e 's/$/.html/'`
51
+ if ( `test ! -f $html && echo 1` ) then
52
+ #< html file does not exist >
53
+ rd2 $source | sed -e 's/<dt>/<dt><h4>/' -e 's/<\/dt>/<\/h4><\/dt>/' | \
54
+ sed -e "s/<title>Untitled<\/title>/<title>`echo ${source} | sed 's/\//\\\//g'`<\/title>/" \
55
+ >! $html
56
+ # Here, the title replacement is for backward compatibility
57
+ echo '* Created ' $html
58
+ else if ( `/usr/bin/test $source -nt $html && echo 1` ) then
59
+ #< html file exists but the source file is newer >
60
+ rd2 $source | sed -e 's/<dt>/<dt><h4>/' -e 's/<\/dt>/<\/h4><\/dt>/' | \
61
+ sed -e "s/<title>Untitled<\/title>/<title>`echo ${source} | sed 's/\//\\\//g'`<\/title>/" \
62
+ >! tmp.html
63
+ # Here, the title replacement is for backward compatibility
64
+ diff tmp.html $html > /dev/null || \mv tmp.html $html \
65
+ && echo '* Updated ' $html
66
+ endif
67
+ end
68
+
69
+ #\rm -f tmp.html
@@ -0,0 +1,8 @@
1
+ #!/bin/bash
2
+
3
+ cd ganalysis
4
+
5
+ ganal_top=../../lib/numru/ganalysis.rb
6
+ ganal_libs="../../lib/numru/ganalysis/*.rb"
7
+
8
+ rdoc -e UTF-8 --title "NumRu::GAnalysis" --main=$ganal_top $ganal_top $ganal_libs
@@ -0,0 +1,299 @@
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/varray.rb</title>
8
+ </head>
9
+ <body>
10
+ <h1><a name="label-0" id="label-0">class NumRu::VArray</a></h1><!-- RDLabel: "class NumRu::VArray" -->
11
+ <p>VArray is a Virtual Array class, in which a multi-dimensional array data is
12
+ stored on memory (NArray, NArrayMiss) or in file (NetCDFVar etc).
13
+ The in-file data handling is left to subclasses such as VArrayNetCDF,
14
+ and this base class handles the following two cases:</p>
15
+ <ol>
16
+ <li>Data are stored on memory using NArray</li>
17
+ <li>Subset of another VArray (possibly a subclass such as VArrayNetCDF).</li>
18
+ </ol>
19
+ <p>Perhaps the latter case needs more explanation. Here, a VArray is defined
20
+ as a subset of another VArray, so the current VArray has only the link
21
+ and info on how the subset is mapped to the other VArray.</p>
22
+ <p>A VArray behaves just like a NArray, i.e., a numeric multi-dimensional
23
+ array. The important difference is that a VArray has a name and can
24
+ have "attributes" like a NetCDF variable. Therefore, VArray can perfectly
25
+ represent a NetCDFVar, which is realized by a sub-class VArrayNetCDF.</p>
26
+ <p>NOMENCLATURE</p>
27
+ <ul>
28
+ <li>value(s): The multi-dimensional numeric array contained in the VArray,
29
+ or its contents</li>
30
+ <li>attribute(s): A combination of name and data that describes a VArray.
31
+ Often realized by NumRu::Attribute class (or it is a NetCDFAttr in
32
+ VArrayNetCDF). The name must be a string, and the type of attribute
33
+ values is restricted to a few classes for compatibility with
34
+ NetCDFAttr (See NumRu::Attribute)</li>
35
+ </ul>
36
+ <h2><a name="label-1" id="label-1">Class Methods</a></h2><!-- RDLabel: "Class Methods" -->
37
+ <dl>
38
+ <dt><h4><a name="label-2" id="label-2"><code>VArray.new(<var>narray</var>=<var>nil</var>, <var>attr</var>=<var>nil</var>, <var>name</var>=<var>nil</var>)</code></a></h4></dt><!-- RDLabel: "VArray.new" -->
39
+ <dd>
40
+ <p>A constructor</p>
41
+ <p>ARGUMENTS</p>
42
+ <ul>
43
+ <li>narray (NArray or NArrayMiss; default:nil) The array to be held.
44
+ (nil is used to initialize a mapping to another VArray by a protected
45
+ method).</li>
46
+ <li>attr (NumRu::Attribute; default:nil) Attributes. If nil, an empty </li>
47
+ </ul>
48
+ <pre>attribute object is created and stored.</pre>
49
+ <ul>
50
+ <li>name (String; default nil) Name of the VArray. If nil, it is named "noname".</li>
51
+ </ul>
52
+ <p>RETURN VALUE</p>
53
+ <ul>
54
+ <li>a VArray</li>
55
+ </ul>
56
+ <p>EXAMPLE</p>
57
+ <pre>na = NArray.int(6,3).indgen!
58
+ va1 = VArray.new( na, nil, "test" )</pre></dd>
59
+ <dt><h4><a name="label-3" id="label-3"><code>VArray.new2(<var>ntype</var>, <var>shape</var>, <var>attr</var>=<var>nil</var>, <var>name</var>=<var>nil</var>)</code></a></h4></dt><!-- RDLabel: "VArray.new2" -->
60
+ <dd>
61
+ <p>Another constructor. Uses parameters to initialize a NArray to hold.</p>
62
+ <p>ARGUMENTS</p>
63
+ <ul>
64
+ <li>ntype (String or NArray constants): Numeric type of the NArray to be
65
+ held (e.g., "sfloat", "float", NArray::SFLOAT, NArray::FLOAT)</li>
66
+ <li>shape (Array of Integers): shape of the NArray</li>
67
+ <li>attr (Attribute; default:nil) Attributes. If nil, an empty attribute
68
+ object is created and stored.</li>
69
+ <li>name (String; default nil) Name of the VArray.</li>
70
+ </ul>
71
+ <p>RETURN VALUE</p>
72
+ <ul>
73
+ <li>a VArray</li>
74
+ </ul></dd>
75
+ </dl>
76
+ <h2><a name="label-4" id="label-4">Instance Methods</a></h2><!-- RDLabel: "Instance Methods" -->
77
+ <dl>
78
+ <dt><h4><a name="label-5" id="label-5"><code>val</code></a></h4></dt><!-- RDLabel: "val" -->
79
+ <dd>
80
+ <p>Returns the values as a NArray (or NArrayMiss).</p>
81
+ <p>This is the case even when the VArray is a mapping to another. Also,
82
+ this method is to be redefined in subclasses to do the same thing.</p>
83
+ <p>ARGUMENTS -- none</p>
84
+ <p>RETURN VALUE</p>
85
+ <ul>
86
+ <li>a NArray (or NArrayMiss)</li>
87
+ </ul></dd>
88
+ <dt><h4><a name="label-6" id="label-6"><code>val=(<var>narray</var>)</code></a></h4></dt><!-- RDLabel: "val=" -->
89
+ <dd>
90
+ <p>Set values.</p>
91
+ <p>The whole values are set. If you want to set partly, use <a href="#label-9">[]=</a>.
92
+ In this method, values are read from narray and set into the internal
93
+ value holder. Thus, for exampled, the numeric type is not changed
94
+ regardress the numeric type of narray. Use <a href="#label-7">replace_val</a> to
95
+ replace entirely with narray.</p>
96
+ <p>ARGUMENTS</p>
97
+ <ul>
98
+ <li>narray (NArray or NArrayMiss or Numeric): If Numeric, the whole
99
+ values are set to be equal to it. If NArray (or NArrayMiss), its
100
+ shape must agree with the shape of the VArray.</li>
101
+ </ul></dd>
102
+ <dt><h4><a name="label-7" id="label-7"><code>replace_val(<var>narray</var>)</code></a></h4></dt><!-- RDLabel: "replace_val" -->
103
+ <dd>
104
+ <p>Replace the internal array data with the object narray.
105
+ Use <a href="#label-6">val=</a> if you want to copy the values of narray.</p>
106
+ <p>ARGUMENTS</p>
107
+ <ul>
108
+ <li>narray (NArray or NArrayMiss): as pxlained above.
109
+ Its shape must agree with the shape of the VArray (self).</li>
110
+ </ul>
111
+ <p>RETURN VALUE</p>
112
+ <ul>
113
+ <li>if (self.class == VArray), self;
114
+ otherwise (if self.class is a subclass of VArray), a new VArray.</li>
115
+ </ul></dd>
116
+ <dt><h4><a name="label-8" id="label-8"><code>[]</code></a></h4></dt><!-- RDLabel: "[]" -->
117
+ <dd>
118
+ Get a subset. Its usage is the same as NArray#[]</dd>
119
+ <dt><h4><a name="label-9" id="label-9"><code>[] = </code></a></h4></dt><!-- RDLabel: "[]=" -->
120
+ <dd>
121
+ Set a subset. Its usage is the same as NArray#[]=</dd>
122
+ <dt><h4><a name="label-10" id="label-10"><code>attr</code></a></h4></dt><!-- RDLabel: "attr" -->
123
+ <dd>
124
+ To be undefined.</dd>
125
+ <dt><h4><a name="label-11" id="label-11"><code>ntype</code></a></h4></dt><!-- RDLabel: "ntype" -->
126
+ <dd>
127
+ <p>Returns the numeric type.</p>
128
+ <p>ARGUMENTS -- none</p>
129
+ <p>RETURN VALUE</p>
130
+ <ul>
131
+ <li>a String ("byte", "sint", "int", "sfloat", "float", "scomplex"
132
+ "complex", or "obj"). It can be used in NArray.new to initialize
133
+ another NArray.</li>
134
+ </ul></dd>
135
+ <dt><h4><a name="label-12" id="label-12"><code>rank</code></a></h4></dt><!-- RDLabel: "rank" -->
136
+ <dd>
137
+ Returns the rank (number of dimensions)</dd>
138
+ <dt><h4><a name="label-13" id="label-13"><code>shape</code></a></h4></dt><!-- RDLabel: "shape" -->
139
+ <dd>
140
+ Returns the shape</dd>
141
+ <dt><h4><a name="label-14" id="label-14"><code>shape_current</code></a></h4></dt><!-- RDLabel: "shape_current" -->
142
+ <dd>
143
+ aliased to <a href="#label-13">shape</a>.</dd>
144
+ <dt><h4><a name="label-15" id="label-15"><code>length</code></a></h4></dt><!-- RDLabel: "length" -->
145
+ <dd>
146
+ Returns the length of the VArray</dd>
147
+ <dt><h4><a name="label-16" id="label-16"><code>typecode</code></a></h4></dt><!-- RDLabel: "typecode" -->
148
+ <dd>
149
+ Returns the NArray typecode</dd>
150
+ <dt><h4><a name="label-17" id="label-17"><code>name</code></a></h4></dt><!-- RDLabel: "name" -->
151
+ <dd>
152
+ <p>Returns the name</p>
153
+ <p>RETURN VALUE</p>
154
+ <ul>
155
+ <li>(String) name of the VArray</li>
156
+ </ul></dd>
157
+ <dt><h4><a name="label-18" id="label-18"><code>name=(<var>nm</var>)</code></a></h4></dt><!-- RDLabel: "name=" -->
158
+ <dd>
159
+ <p>Changes the name.</p>
160
+ <p>ARGUMENTS</p>
161
+ <ul>
162
+ <li>nm(String): the new name.</li>
163
+ </ul>
164
+ <p>RETURN VALUE</p>
165
+ <ul>
166
+ <li>nm</li>
167
+ </ul></dd>
168
+ <dt><h4><a name="label-19" id="label-19"><code>rename!(<var>nm</var>)</code></a></h4></dt><!-- RDLabel: "rename!" -->
169
+ <dd>
170
+ <p>Changes the name (Same as <a href="#label-18">name=</a>, but returns self)</p>
171
+ <p>ARGUMENTS</p>
172
+ <ul>
173
+ <li>nm(String): the new name.</li>
174
+ </ul>
175
+ <p>RETURN VALUE</p>
176
+ <ul>
177
+ <li>self</li>
178
+ </ul></dd>
179
+ <dt><h4><a name="label-20" id="label-20"><code>rename(<var>nm</var>)</code></a></h4></dt><!-- RDLabel: "rename" -->
180
+ <dd>
181
+ <p>Same as rename! but duplicate the VArray object and set its name.</p>
182
+ <p>This method may not be supported in sub-classes, since it is sometimes
183
+ problematic not to change the original.</p></dd>
184
+ <dt><h4><a name="label-21" id="label-21"><code>copy(<var>to</var>=<var>nil</var>)</code></a></h4></dt><!-- RDLabel: "copy" -->
185
+ <dd>
186
+ <p>Copy a VArray. If to is nil, works as the deep cloning (duplication of the entire object).</p>
187
+ <p>Both the values and the attributes are copied.</p>
188
+ <p>ARGUMENTS</p>
189
+ <ul>
190
+ <li>to (VArray (possibly a subclass) or nil): The VArray to which the
191
+ copying is made.</li>
192
+ </ul></dd>
193
+ <dt><h4><a name="label-22" id="label-22"><code>reshape!( *<var>shape</var> )</code></a></h4></dt><!-- RDLabel: "reshape!" -->
194
+ <dd>
195
+ <p>Changes the shape without changing the total size. May not be available in subclasses.</p>
196
+ <p>ARGUMENTS</p>
197
+ <ul>
198
+ <li>shape (Array of Integer): new shape</li>
199
+ </ul>
200
+ <p>RETURN VALUE</p>
201
+ <ul>
202
+ <li>self</li>
203
+ </ul>
204
+ <p>EXAMPLE</p>
205
+ <pre>vary = VArray.new2( "float", [10,2])
206
+ vary.reshape!(5,4) # changes the vary
207
+ vary.copy.reshape!(2,2,5) # make a deep clone and change it
208
+ # This always works with a VArray subclass, since vary.copy
209
+ # makes a deep clone to VArray with NArray.</pre></dd>
210
+ <dt><h4><a name="label-23" id="label-23"><code>file</code></a></h4></dt><!-- RDLabel: "file" -->
211
+ <dd>
212
+ <p>Returns a file object if the data of the VArray is in a file, nil if it is on memory</p>
213
+ <p>ARGUMENTS</p>
214
+ <ul>
215
+ <li>none</li>
216
+ </ul>
217
+ <p>RETURN VALUE</p>
218
+ <ul>
219
+ <li>an object representing the file in which data are stored. Its class
220
+ depends on the file type. nil is returned if the data is not in a file.</li>
221
+ </ul></dd>
222
+ <dt><h4><a name="label-24" id="label-24"><code>transpose(*<var>dims</var>)</code></a></h4></dt><!-- RDLabel: "transpose" -->
223
+ <dd>
224
+ Transpose. Argument specification is as in NArray.</dd>
225
+ <dt><h4><a name="label-25" id="label-25"><code>reshape(*<var>shape</var>)</code></a></h4></dt><!-- RDLabel: "reshape" -->
226
+ <dd>
227
+ Reshape. Argument specification is as in NArray.</dd>
228
+ <dt><h4><a name="label-26" id="label-26"><code>axis_draw_positive</code></a></h4></dt><!-- RDLabel: "axis_draw_positive" -->
229
+ <dd>
230
+ <p>Returns the direction to plot the axis (meaningful only if self is a
231
+ coordinate variable.) </p>
232
+ <p>The current implementation is based on NetCDF conventions,
233
+ so REDEFINE IT IN SUBCLASSES if it is not appropriate.</p>
234
+ <p>RETURN VALUE</p>
235
+ <ul>
236
+ <li>one of the following:
237
+ <ul>
238
+ <li>true: axis should be drawn in the increasing order (to right/upward)</li>
239
+ <li>false: axis should be drawn in the decreasing order</li>
240
+ <li>nil: not specified</li>
241
+ </ul></li>
242
+ </ul></dd>
243
+ <dt><h4><a name="label-27" id="label-27"><code>axis_cyclic?</code></a></h4></dt><!-- RDLabel: "axis_cyclic?" -->
244
+ <dd>
245
+ <p>Returns whether the axis is cyclic (meaningful only if self is a
246
+ coordinate variable.) </p>
247
+ <p>The current implementation is based on NetCDF conventions,
248
+ so REDEFINE IT IN SUBCLASSES if it is not appropriate.</p>
249
+ <p>RETURN VALUE</p>
250
+ <ul>
251
+ <li>one of the following:
252
+ <ul>
253
+ <li>true: cyclic</li>
254
+ <li>false: not cyclic</li>
255
+ <li>nil: not specified</li>
256
+ </ul></li>
257
+ </ul></dd>
258
+ <dt><h4><a name="label-28" id="label-28"><code>axis_modulo</code></a></h4></dt><!-- RDLabel: "axis_modulo" -->
259
+ <dd>
260
+ <p>Returns the modulo of a cyclic axis (meaningful only if self is a
261
+ coordinate variable and it is cyclic.) </p>
262
+ <p>The current implementation is based on NetCDF conventions,
263
+ so REDEFINE IT IN SUBCLASSES if it is not appropriate.</p>
264
+ <p>RETURN VALUE</p>
265
+ <ul>
266
+ <li>one of the following:
267
+ <ul>
268
+ <li>Float if the modulo is defined</li>
269
+ <li>nil if modulo is not found</li>
270
+ </ul></li>
271
+ </ul></dd>
272
+ <dt><h4><a name="label-29" id="label-29"><code>axis_cyclic_extendible?</code></a></h4></dt><!-- RDLabel: "axis_cyclic_extendible?" -->
273
+ <dd>
274
+ (meaningful only if self is a coordinate variable.)
275
+ Returns true if self is cyclic and it is suitable to exend
276
+ cyclically (having the distance between both ends
277
+ equal to (modulo - dx), where dx is the mean increment).</dd>
278
+ <dt><h4><a name="label-30" id="label-30"><code>coerce(<var>other</var>)</code></a></h4></dt><!-- RDLabel: "coerce" -->
279
+ <dd>
280
+ For Numeric operators. (If you do not know it, see a manual or book of Ruby)</dd>
281
+ </dl>
282
+ <h2><a name="label-31" id="label-31">Methods compatible with NArray</a></h2><!-- RDLabel: "Methods compatible with NArray" -->
283
+ <p>VArray is a numeric multi-dimensional array, so it supports most of the
284
+ methods and operators in NArray. Here, the name of those methods are just
285
+ quoted. See the documentation of NArray for their usage.</p>
286
+ <h3><a name="label-32" id="label-32">Math functions</a></h3><!-- RDLabel: "Math functions" -->
287
+ <h4><a name="label-33" id="label-33">sqrt, exp, log, log10, log2, sin, cos, tan, sinh, cosh, tanh, asin, acos, atan, asinh, acosh, atanh, csc, sec, cot, csch, sech, coth, acsc, asec, acot, acsch, asech, acoth</a></h4><!-- RDLabel: "sqrt, exp, log, log10, log2, sin, cos, tan, sinh, cosh, tanh, asin, acos, atan, asinh, acosh, atanh, csc, sec, cot, csch, sech, coth, acsc, asec, acot, acsch, asech, acoth" -->
288
+ <h3><a name="label-34" id="label-34">Binary operators</a></h3><!-- RDLabel: "Binary operators" -->
289
+ <h4><a name="label-35" id="label-35">-, +, *, /, %, **, .add!, .sub!, .mul!, .div!, mod!, &gt;, &gt;=, &lt;, &lt;=, &amp;, |, ^, .eq, .ne, .gt, .ge, .lt, .le, .and, .or, .xor, .not</a></h4><!-- RDLabel: "-, +, *, /, %, **, .add!, .sub!, .mul!, .div!, mod!, >, >=, <, <=, &, |, ^, .eq, .ne, .gt, .ge, .lt, .le, .and, .or, .xor, .not" -->
290
+ <h3><a name="label-36" id="label-36">Unary operators</a></h3><!-- RDLabel: "Unary operators" -->
291
+ <h4><a name="label-37" id="label-37">~ - +</a></h4><!-- RDLabel: "~ - +" -->
292
+ <h3><a name="label-38" id="label-38">Mean etc</a></h3><!-- RDLabel: "Mean etc" -->
293
+ <h4><a name="label-39" id="label-39">mean, sum, stddev, min, max, median</a></h4><!-- RDLabel: "mean, sum, stddev, min, max, median" -->
294
+ <h3><a name="label-40" id="label-40">Other methods</a></h3><!-- RDLabel: "Other methods" -->
295
+ <p>These methods returns a NArray (not a VArray).</p>
296
+ <h4><a name="label-41" id="label-41">all?, any?, none?, where, where2, floor, ceil, round, to_f, to_i, to_a</a></h4><!-- RDLabel: "all?, any?, none?, where, where2, floor, ceil, round, to_f, to_i, to_a" -->
297
+
298
+ </body>
299
+ </html>