gphys 1.1.1a

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 (428) hide show
  1. data/ChangeLog +1777 -0
  2. data/LICENSE.txt +34 -0
  3. data/README +33 -0
  4. data/Rakefile +57 -0
  5. data/TODO_ep_flux +6 -0
  6. data/bin/gdir_client +27 -0
  7. data/bin/gdir_server +129 -0
  8. data/bin/gpaop +146 -0
  9. data/bin/gpcat +148 -0
  10. data/bin/gpcut +102 -0
  11. data/bin/gpedit +228 -0
  12. data/bin/gplist +68 -0
  13. data/bin/gpmath +120 -0
  14. data/bin/gpmaxmin +128 -0
  15. data/bin/gpprint +60 -0
  16. data/bin/gpvect +706 -0
  17. data/bin/gpview +704 -0
  18. data/bin/grads2nc_with_gphys +61 -0
  19. data/doc/attribute.html +19 -0
  20. data/doc/attributenetcdf.html +15 -0
  21. data/doc/axis.html +376 -0
  22. data/doc/coordmapping.html +111 -0
  23. data/doc/coordtransform.html +36 -0
  24. data/doc/derivative/gphys-derivative.html +80 -0
  25. data/doc/derivative/index.html +21 -0
  26. data/doc/derivative/index.rd +14 -0
  27. data/doc/derivative/math-doc/document/document.css +30 -0
  28. data/doc/derivative/math-doc/document/document.html +57 -0
  29. data/doc/derivative/math-doc/document/images.aux +1 -0
  30. data/doc/derivative/math-doc/document/images.log +385 -0
  31. data/doc/derivative/math-doc/document/images.pl +186 -0
  32. data/doc/derivative/math-doc/document/images.tex +364 -0
  33. data/doc/derivative/math-doc/document/img1.png +0 -0
  34. data/doc/derivative/math-doc/document/img10.png +0 -0
  35. data/doc/derivative/math-doc/document/img11.png +0 -0
  36. data/doc/derivative/math-doc/document/img12.png +0 -0
  37. data/doc/derivative/math-doc/document/img13.png +0 -0
  38. data/doc/derivative/math-doc/document/img14.png +0 -0
  39. data/doc/derivative/math-doc/document/img15.png +0 -0
  40. data/doc/derivative/math-doc/document/img16.png +0 -0
  41. data/doc/derivative/math-doc/document/img17.png +0 -0
  42. data/doc/derivative/math-doc/document/img18.png +0 -0
  43. data/doc/derivative/math-doc/document/img19.png +0 -0
  44. data/doc/derivative/math-doc/document/img2.png +0 -0
  45. data/doc/derivative/math-doc/document/img20.png +0 -0
  46. data/doc/derivative/math-doc/document/img21.png +0 -0
  47. data/doc/derivative/math-doc/document/img22.png +0 -0
  48. data/doc/derivative/math-doc/document/img23.png +0 -0
  49. data/doc/derivative/math-doc/document/img24.png +0 -0
  50. data/doc/derivative/math-doc/document/img25.png +0 -0
  51. data/doc/derivative/math-doc/document/img26.png +0 -0
  52. data/doc/derivative/math-doc/document/img27.png +0 -0
  53. data/doc/derivative/math-doc/document/img28.png +0 -0
  54. data/doc/derivative/math-doc/document/img29.png +0 -0
  55. data/doc/derivative/math-doc/document/img3.png +0 -0
  56. data/doc/derivative/math-doc/document/img30.png +0 -0
  57. data/doc/derivative/math-doc/document/img4.png +0 -0
  58. data/doc/derivative/math-doc/document/img5.png +0 -0
  59. data/doc/derivative/math-doc/document/img6.png +0 -0
  60. data/doc/derivative/math-doc/document/img7.png +0 -0
  61. data/doc/derivative/math-doc/document/img8.png +0 -0
  62. data/doc/derivative/math-doc/document/img9.png +0 -0
  63. data/doc/derivative/math-doc/document/index.html +57 -0
  64. data/doc/derivative/math-doc/document/labels.pl +13 -0
  65. data/doc/derivative/math-doc/document/next.png +0 -0
  66. data/doc/derivative/math-doc/document/next_g.png +0 -0
  67. data/doc/derivative/math-doc/document/node1.html +238 -0
  68. data/doc/derivative/math-doc/document/node2.html +75 -0
  69. data/doc/derivative/math-doc/document/prev.png +0 -0
  70. data/doc/derivative/math-doc/document/prev_g.png +0 -0
  71. data/doc/derivative/math-doc/document/up.png +0 -0
  72. data/doc/derivative/math-doc/document/up_g.png +0 -0
  73. data/doc/derivative/math-doc/document.pdf +0 -0
  74. data/doc/derivative/math-doc/document.tex +158 -0
  75. data/doc/derivative/numru-derivative.html +129 -0
  76. data/doc/ep_flux/ep_flux.html +469 -0
  77. data/doc/ep_flux/ggraph_on_merdional_section.html +71 -0
  78. data/doc/ep_flux/index.html +31 -0
  79. data/doc/ep_flux/index.rd +24 -0
  80. data/doc/ep_flux/math-doc/document/WARNINGS +1 -0
  81. data/doc/ep_flux/math-doc/document/contents.png +0 -0
  82. data/doc/ep_flux/math-doc/document/crossref.png +0 -0
  83. data/doc/ep_flux/math-doc/document/document.css +30 -0
  84. data/doc/ep_flux/math-doc/document/document.html +101 -0
  85. data/doc/ep_flux/math-doc/document/images.aux +1 -0
  86. data/doc/ep_flux/math-doc/document/images.log +1375 -0
  87. data/doc/ep_flux/math-doc/document/images.pl +1328 -0
  88. data/doc/ep_flux/math-doc/document/images.tex +1471 -0
  89. data/doc/ep_flux/math-doc/document/img1.png +0 -0
  90. data/doc/ep_flux/math-doc/document/img10.png +0 -0
  91. data/doc/ep_flux/math-doc/document/img100.png +0 -0
  92. data/doc/ep_flux/math-doc/document/img101.png +0 -0
  93. data/doc/ep_flux/math-doc/document/img102.png +0 -0
  94. data/doc/ep_flux/math-doc/document/img103.png +0 -0
  95. data/doc/ep_flux/math-doc/document/img104.png +0 -0
  96. data/doc/ep_flux/math-doc/document/img105.png +0 -0
  97. data/doc/ep_flux/math-doc/document/img106.png +0 -0
  98. data/doc/ep_flux/math-doc/document/img107.png +0 -0
  99. data/doc/ep_flux/math-doc/document/img108.png +0 -0
  100. data/doc/ep_flux/math-doc/document/img109.png +0 -0
  101. data/doc/ep_flux/math-doc/document/img11.png +0 -0
  102. data/doc/ep_flux/math-doc/document/img110.png +0 -0
  103. data/doc/ep_flux/math-doc/document/img111.png +0 -0
  104. data/doc/ep_flux/math-doc/document/img112.png +0 -0
  105. data/doc/ep_flux/math-doc/document/img113.png +0 -0
  106. data/doc/ep_flux/math-doc/document/img114.png +0 -0
  107. data/doc/ep_flux/math-doc/document/img115.png +0 -0
  108. data/doc/ep_flux/math-doc/document/img116.png +0 -0
  109. data/doc/ep_flux/math-doc/document/img117.png +0 -0
  110. data/doc/ep_flux/math-doc/document/img118.png +0 -0
  111. data/doc/ep_flux/math-doc/document/img119.png +0 -0
  112. data/doc/ep_flux/math-doc/document/img12.png +0 -0
  113. data/doc/ep_flux/math-doc/document/img120.png +0 -0
  114. data/doc/ep_flux/math-doc/document/img121.png +0 -0
  115. data/doc/ep_flux/math-doc/document/img122.png +0 -0
  116. data/doc/ep_flux/math-doc/document/img123.png +0 -0
  117. data/doc/ep_flux/math-doc/document/img124.png +0 -0
  118. data/doc/ep_flux/math-doc/document/img125.png +0 -0
  119. data/doc/ep_flux/math-doc/document/img126.png +0 -0
  120. data/doc/ep_flux/math-doc/document/img127.png +0 -0
  121. data/doc/ep_flux/math-doc/document/img128.png +0 -0
  122. data/doc/ep_flux/math-doc/document/img129.png +0 -0
  123. data/doc/ep_flux/math-doc/document/img13.png +0 -0
  124. data/doc/ep_flux/math-doc/document/img130.png +0 -0
  125. data/doc/ep_flux/math-doc/document/img131.png +0 -0
  126. data/doc/ep_flux/math-doc/document/img132.png +0 -0
  127. data/doc/ep_flux/math-doc/document/img133.png +0 -0
  128. data/doc/ep_flux/math-doc/document/img134.png +0 -0
  129. data/doc/ep_flux/math-doc/document/img135.png +0 -0
  130. data/doc/ep_flux/math-doc/document/img136.png +0 -0
  131. data/doc/ep_flux/math-doc/document/img137.png +0 -0
  132. data/doc/ep_flux/math-doc/document/img138.png +0 -0
  133. data/doc/ep_flux/math-doc/document/img139.png +0 -0
  134. data/doc/ep_flux/math-doc/document/img14.png +0 -0
  135. data/doc/ep_flux/math-doc/document/img140.png +0 -0
  136. data/doc/ep_flux/math-doc/document/img141.png +0 -0
  137. data/doc/ep_flux/math-doc/document/img142.png +0 -0
  138. data/doc/ep_flux/math-doc/document/img143.png +0 -0
  139. data/doc/ep_flux/math-doc/document/img144.png +0 -0
  140. data/doc/ep_flux/math-doc/document/img145.png +0 -0
  141. data/doc/ep_flux/math-doc/document/img146.png +0 -0
  142. data/doc/ep_flux/math-doc/document/img147.png +0 -0
  143. data/doc/ep_flux/math-doc/document/img148.png +0 -0
  144. data/doc/ep_flux/math-doc/document/img149.png +0 -0
  145. data/doc/ep_flux/math-doc/document/img15.png +0 -0
  146. data/doc/ep_flux/math-doc/document/img150.png +0 -0
  147. data/doc/ep_flux/math-doc/document/img151.png +0 -0
  148. data/doc/ep_flux/math-doc/document/img152.png +0 -0
  149. data/doc/ep_flux/math-doc/document/img153.png +0 -0
  150. data/doc/ep_flux/math-doc/document/img154.png +0 -0
  151. data/doc/ep_flux/math-doc/document/img155.png +0 -0
  152. data/doc/ep_flux/math-doc/document/img156.png +0 -0
  153. data/doc/ep_flux/math-doc/document/img157.png +0 -0
  154. data/doc/ep_flux/math-doc/document/img158.png +0 -0
  155. data/doc/ep_flux/math-doc/document/img159.png +0 -0
  156. data/doc/ep_flux/math-doc/document/img16.png +0 -0
  157. data/doc/ep_flux/math-doc/document/img160.png +0 -0
  158. data/doc/ep_flux/math-doc/document/img161.png +0 -0
  159. data/doc/ep_flux/math-doc/document/img162.png +0 -0
  160. data/doc/ep_flux/math-doc/document/img163.png +0 -0
  161. data/doc/ep_flux/math-doc/document/img164.png +0 -0
  162. data/doc/ep_flux/math-doc/document/img165.png +0 -0
  163. data/doc/ep_flux/math-doc/document/img166.png +0 -0
  164. data/doc/ep_flux/math-doc/document/img167.png +0 -0
  165. data/doc/ep_flux/math-doc/document/img168.png +0 -0
  166. data/doc/ep_flux/math-doc/document/img169.png +0 -0
  167. data/doc/ep_flux/math-doc/document/img17.png +0 -0
  168. data/doc/ep_flux/math-doc/document/img170.png +0 -0
  169. data/doc/ep_flux/math-doc/document/img171.png +0 -0
  170. data/doc/ep_flux/math-doc/document/img172.png +0 -0
  171. data/doc/ep_flux/math-doc/document/img173.png +0 -0
  172. data/doc/ep_flux/math-doc/document/img174.png +0 -0
  173. data/doc/ep_flux/math-doc/document/img175.png +0 -0
  174. data/doc/ep_flux/math-doc/document/img176.png +0 -0
  175. data/doc/ep_flux/math-doc/document/img177.png +0 -0
  176. data/doc/ep_flux/math-doc/document/img178.png +0 -0
  177. data/doc/ep_flux/math-doc/document/img179.png +0 -0
  178. data/doc/ep_flux/math-doc/document/img18.png +0 -0
  179. data/doc/ep_flux/math-doc/document/img180.png +0 -0
  180. data/doc/ep_flux/math-doc/document/img181.png +0 -0
  181. data/doc/ep_flux/math-doc/document/img182.png +0 -0
  182. data/doc/ep_flux/math-doc/document/img183.png +0 -0
  183. data/doc/ep_flux/math-doc/document/img184.png +0 -0
  184. data/doc/ep_flux/math-doc/document/img185.png +0 -0
  185. data/doc/ep_flux/math-doc/document/img186.png +0 -0
  186. data/doc/ep_flux/math-doc/document/img187.png +0 -0
  187. data/doc/ep_flux/math-doc/document/img188.png +0 -0
  188. data/doc/ep_flux/math-doc/document/img189.png +0 -0
  189. data/doc/ep_flux/math-doc/document/img19.png +0 -0
  190. data/doc/ep_flux/math-doc/document/img190.png +0 -0
  191. data/doc/ep_flux/math-doc/document/img191.png +0 -0
  192. data/doc/ep_flux/math-doc/document/img192.png +0 -0
  193. data/doc/ep_flux/math-doc/document/img193.png +0 -0
  194. data/doc/ep_flux/math-doc/document/img194.png +0 -0
  195. data/doc/ep_flux/math-doc/document/img195.png +0 -0
  196. data/doc/ep_flux/math-doc/document/img196.png +0 -0
  197. data/doc/ep_flux/math-doc/document/img197.png +0 -0
  198. data/doc/ep_flux/math-doc/document/img198.png +0 -0
  199. data/doc/ep_flux/math-doc/document/img199.png +0 -0
  200. data/doc/ep_flux/math-doc/document/img2.png +0 -0
  201. data/doc/ep_flux/math-doc/document/img20.png +0 -0
  202. data/doc/ep_flux/math-doc/document/img200.png +0 -0
  203. data/doc/ep_flux/math-doc/document/img21.png +0 -0
  204. data/doc/ep_flux/math-doc/document/img22.png +0 -0
  205. data/doc/ep_flux/math-doc/document/img23.png +0 -0
  206. data/doc/ep_flux/math-doc/document/img24.png +0 -0
  207. data/doc/ep_flux/math-doc/document/img25.png +0 -0
  208. data/doc/ep_flux/math-doc/document/img26.png +0 -0
  209. data/doc/ep_flux/math-doc/document/img27.png +0 -0
  210. data/doc/ep_flux/math-doc/document/img28.png +0 -0
  211. data/doc/ep_flux/math-doc/document/img29.png +0 -0
  212. data/doc/ep_flux/math-doc/document/img3.png +0 -0
  213. data/doc/ep_flux/math-doc/document/img30.png +0 -0
  214. data/doc/ep_flux/math-doc/document/img31.png +0 -0
  215. data/doc/ep_flux/math-doc/document/img32.png +0 -0
  216. data/doc/ep_flux/math-doc/document/img33.png +0 -0
  217. data/doc/ep_flux/math-doc/document/img34.png +0 -0
  218. data/doc/ep_flux/math-doc/document/img35.png +0 -0
  219. data/doc/ep_flux/math-doc/document/img36.png +0 -0
  220. data/doc/ep_flux/math-doc/document/img37.png +0 -0
  221. data/doc/ep_flux/math-doc/document/img38.png +0 -0
  222. data/doc/ep_flux/math-doc/document/img39.png +0 -0
  223. data/doc/ep_flux/math-doc/document/img4.png +0 -0
  224. data/doc/ep_flux/math-doc/document/img40.png +0 -0
  225. data/doc/ep_flux/math-doc/document/img41.png +0 -0
  226. data/doc/ep_flux/math-doc/document/img42.png +0 -0
  227. data/doc/ep_flux/math-doc/document/img43.png +0 -0
  228. data/doc/ep_flux/math-doc/document/img44.png +0 -0
  229. data/doc/ep_flux/math-doc/document/img45.png +0 -0
  230. data/doc/ep_flux/math-doc/document/img46.png +0 -0
  231. data/doc/ep_flux/math-doc/document/img47.png +0 -0
  232. data/doc/ep_flux/math-doc/document/img48.png +0 -0
  233. data/doc/ep_flux/math-doc/document/img49.png +0 -0
  234. data/doc/ep_flux/math-doc/document/img5.png +0 -0
  235. data/doc/ep_flux/math-doc/document/img50.png +0 -0
  236. data/doc/ep_flux/math-doc/document/img51.png +0 -0
  237. data/doc/ep_flux/math-doc/document/img52.png +0 -0
  238. data/doc/ep_flux/math-doc/document/img53.png +0 -0
  239. data/doc/ep_flux/math-doc/document/img54.png +0 -0
  240. data/doc/ep_flux/math-doc/document/img55.png +0 -0
  241. data/doc/ep_flux/math-doc/document/img56.png +0 -0
  242. data/doc/ep_flux/math-doc/document/img57.png +0 -0
  243. data/doc/ep_flux/math-doc/document/img58.png +0 -0
  244. data/doc/ep_flux/math-doc/document/img59.png +0 -0
  245. data/doc/ep_flux/math-doc/document/img6.png +0 -0
  246. data/doc/ep_flux/math-doc/document/img60.png +0 -0
  247. data/doc/ep_flux/math-doc/document/img61.png +0 -0
  248. data/doc/ep_flux/math-doc/document/img62.png +0 -0
  249. data/doc/ep_flux/math-doc/document/img63.png +0 -0
  250. data/doc/ep_flux/math-doc/document/img64.png +0 -0
  251. data/doc/ep_flux/math-doc/document/img65.png +0 -0
  252. data/doc/ep_flux/math-doc/document/img66.png +0 -0
  253. data/doc/ep_flux/math-doc/document/img67.png +0 -0
  254. data/doc/ep_flux/math-doc/document/img68.png +0 -0
  255. data/doc/ep_flux/math-doc/document/img69.png +0 -0
  256. data/doc/ep_flux/math-doc/document/img7.png +0 -0
  257. data/doc/ep_flux/math-doc/document/img70.png +0 -0
  258. data/doc/ep_flux/math-doc/document/img71.png +0 -0
  259. data/doc/ep_flux/math-doc/document/img72.png +0 -0
  260. data/doc/ep_flux/math-doc/document/img73.png +0 -0
  261. data/doc/ep_flux/math-doc/document/img74.png +0 -0
  262. data/doc/ep_flux/math-doc/document/img75.png +0 -0
  263. data/doc/ep_flux/math-doc/document/img76.png +0 -0
  264. data/doc/ep_flux/math-doc/document/img77.png +0 -0
  265. data/doc/ep_flux/math-doc/document/img78.png +0 -0
  266. data/doc/ep_flux/math-doc/document/img79.png +0 -0
  267. data/doc/ep_flux/math-doc/document/img8.png +0 -0
  268. data/doc/ep_flux/math-doc/document/img80.png +0 -0
  269. data/doc/ep_flux/math-doc/document/img81.png +0 -0
  270. data/doc/ep_flux/math-doc/document/img82.png +0 -0
  271. data/doc/ep_flux/math-doc/document/img83.png +0 -0
  272. data/doc/ep_flux/math-doc/document/img84.png +0 -0
  273. data/doc/ep_flux/math-doc/document/img85.png +0 -0
  274. data/doc/ep_flux/math-doc/document/img86.png +0 -0
  275. data/doc/ep_flux/math-doc/document/img87.png +0 -0
  276. data/doc/ep_flux/math-doc/document/img88.png +0 -0
  277. data/doc/ep_flux/math-doc/document/img89.png +0 -0
  278. data/doc/ep_flux/math-doc/document/img9.png +0 -0
  279. data/doc/ep_flux/math-doc/document/img90.png +0 -0
  280. data/doc/ep_flux/math-doc/document/img91.png +0 -0
  281. data/doc/ep_flux/math-doc/document/img92.png +0 -0
  282. data/doc/ep_flux/math-doc/document/img93.png +0 -0
  283. data/doc/ep_flux/math-doc/document/img94.png +0 -0
  284. data/doc/ep_flux/math-doc/document/img95.png +0 -0
  285. data/doc/ep_flux/math-doc/document/img96.png +0 -0
  286. data/doc/ep_flux/math-doc/document/img97.png +0 -0
  287. data/doc/ep_flux/math-doc/document/img98.png +0 -0
  288. data/doc/ep_flux/math-doc/document/img99.png +0 -0
  289. data/doc/ep_flux/math-doc/document/index.html +101 -0
  290. data/doc/ep_flux/math-doc/document/internals.pl +258 -0
  291. data/doc/ep_flux/math-doc/document/labels.pl +265 -0
  292. data/doc/ep_flux/math-doc/document/next.png +0 -0
  293. data/doc/ep_flux/math-doc/document/next_g.png +0 -0
  294. data/doc/ep_flux/math-doc/document/node1.html +104 -0
  295. data/doc/ep_flux/math-doc/document/node10.html +164 -0
  296. data/doc/ep_flux/math-doc/document/node11.html +86 -0
  297. data/doc/ep_flux/math-doc/document/node12.html +166 -0
  298. data/doc/ep_flux/math-doc/document/node13.html +897 -0
  299. data/doc/ep_flux/math-doc/document/node14.html +1065 -0
  300. data/doc/ep_flux/math-doc/document/node15.html +72 -0
  301. data/doc/ep_flux/math-doc/document/node16.html +81 -0
  302. data/doc/ep_flux/math-doc/document/node2.html +82 -0
  303. data/doc/ep_flux/math-doc/document/node3.html +91 -0
  304. data/doc/ep_flux/math-doc/document/node4.html +149 -0
  305. data/doc/ep_flux/math-doc/document/node5.html +330 -0
  306. data/doc/ep_flux/math-doc/document/node6.html +99 -0
  307. data/doc/ep_flux/math-doc/document/node7.html +98 -0
  308. data/doc/ep_flux/math-doc/document/node8.html +83 -0
  309. data/doc/ep_flux/math-doc/document/node9.html +140 -0
  310. data/doc/ep_flux/math-doc/document/prev.png +0 -0
  311. data/doc/ep_flux/math-doc/document/prev_g.png +0 -0
  312. data/doc/ep_flux/math-doc/document/up.png +0 -0
  313. data/doc/ep_flux/math-doc/document/up_g.png +0 -0
  314. data/doc/ep_flux/math-doc/document.pdf +0 -0
  315. data/doc/ep_flux/math-doc/document.tex +2018 -0
  316. data/doc/gdir.html +412 -0
  317. data/doc/gdir_client.html +16 -0
  318. data/doc/gdir_connect_ftp-like.html +61 -0
  319. data/doc/gdir_server.html +45 -0
  320. data/doc/ggraph.html +1615 -0
  321. data/doc/gpcat.html +44 -0
  322. data/doc/gpcut.html +41 -0
  323. data/doc/gphys.html +532 -0
  324. data/doc/gphys_fft.html +324 -0
  325. data/doc/gphys_grads_io.html +69 -0
  326. data/doc/gphys_grib_io.html +82 -0
  327. data/doc/gphys_io.html +120 -0
  328. data/doc/gphys_io_common.html +18 -0
  329. data/doc/gphys_netcdf_io.html +283 -0
  330. data/doc/gplist.html +24 -0
  331. data/doc/gpmath.html +51 -0
  332. data/doc/gpmaxmin.html +31 -0
  333. data/doc/gpprint.html +34 -0
  334. data/doc/gpview.html +270 -0
  335. data/doc/grads2nc_with_gphys.html +21 -0
  336. data/doc/grads_gridded.html +307 -0
  337. data/doc/grib.html +144 -0
  338. data/doc/grid.html +212 -0
  339. data/doc/index.html +133 -0
  340. data/doc/index.rd +127 -0
  341. data/doc/netcdf_convention.html +136 -0
  342. data/doc/unumeric.html +176 -0
  343. data/doc/update +64 -0
  344. data/doc/varray.html +299 -0
  345. data/doc/varraycomposite.html +67 -0
  346. data/ext_coord.c +209 -0
  347. data/ext_init.c +7 -0
  348. data/extconf.rb +42 -0
  349. data/install.rb +130 -0
  350. data/interpo.c +497 -0
  351. data/lib/numru/dcl_mouse.rb +71 -0
  352. data/lib/numru/dclext_datetime_ax.rb +220 -0
  353. data/lib/numru/derivative.rb +348 -0
  354. data/lib/numru/ganalysis/covariance.rb +154 -0
  355. data/lib/numru/ganalysis/eof.rb +298 -0
  356. data/lib/numru/ganalysis/histogram.rb +252 -0
  357. data/lib/numru/ganalysis/met.rb +317 -0
  358. data/lib/numru/ganalysis/planet.rb +182 -0
  359. data/lib/numru/ganalysis.rb +7 -0
  360. data/lib/numru/gdir.rb +1038 -0
  361. data/lib/numru/gdir_connect_ftp-like.rb +149 -0
  362. data/lib/numru/ggraph.rb +5838 -0
  363. data/lib/numru/ggraph_on_merdional_section.rb +178 -0
  364. data/lib/numru/gphys/assoccoords.rb +359 -0
  365. data/lib/numru/gphys/attribute.rb +129 -0
  366. data/lib/numru/gphys/attributenetcdf.rb +80 -0
  367. data/lib/numru/gphys/axis.rb +963 -0
  368. data/lib/numru/gphys/coordmapping.rb +286 -0
  369. data/lib/numru/gphys/coordtransform.rb +209 -0
  370. data/lib/numru/gphys/derivative.rb +314 -0
  371. data/lib/numru/gphys/ep_flux.rb +868 -0
  372. data/lib/numru/gphys/gpcommon.rb +52 -0
  373. data/lib/numru/gphys/gphys.rb +1207 -0
  374. data/lib/numru/gphys/gphys_fft.rb +886 -0
  375. data/lib/numru/gphys/gphys_grads_io.rb +212 -0
  376. data/lib/numru/gphys/gphys_grib_io.rb +214 -0
  377. data/lib/numru/gphys/gphys_gtool3_io.rb +162 -0
  378. data/lib/numru/gphys/gphys_hdfeos5_io.rb +672 -0
  379. data/lib/numru/gphys/gphys_io.rb +452 -0
  380. data/lib/numru/gphys/gphys_io_common.rb +126 -0
  381. data/lib/numru/gphys/gphys_netcdf_io.rb +800 -0
  382. data/lib/numru/gphys/gphys_nusdas_io.rb +132 -0
  383. data/lib/numru/gphys/grads_gridded.rb +1638 -0
  384. data/lib/numru/gphys/grib.rb +2049 -0
  385. data/lib/numru/gphys/grib_params.rb +1465 -0
  386. data/lib/numru/gphys/grid.rb +723 -0
  387. data/lib/numru/gphys/gtool3.rb +771 -0
  388. data/lib/numru/gphys/interpolate.rb +854 -0
  389. data/lib/numru/gphys/narray_ext.rb +34 -0
  390. data/lib/numru/gphys/netcdf_convention.rb +406 -0
  391. data/lib/numru/gphys/subsetmapping.rb +332 -0
  392. data/lib/numru/gphys/unumeric.rb +522 -0
  393. data/lib/numru/gphys/varray.rb +1109 -0
  394. data/lib/numru/gphys/varraycomposite.rb +415 -0
  395. data/lib/numru/gphys/varraygrads.rb +225 -0
  396. data/lib/numru/gphys/varraygrib.rb +177 -0
  397. data/lib/numru/gphys/varraygtool3.rb +226 -0
  398. data/lib/numru/gphys/varrayhdfeos5.rb +451 -0
  399. data/lib/numru/gphys/varraynetcdf.rb +350 -0
  400. data/lib/numru/gphys/varraynusdas.rb +59 -0
  401. data/lib/numru/gphys.rb +9 -0
  402. data/lib/numru/htdir.rb +170 -0
  403. data/multibitIO.c +567 -0
  404. data/sample/cira86_to_nc.rb +122 -0
  405. data/sample/druby_cli1.rb +21 -0
  406. data/sample/druby_cli2.rb +34 -0
  407. data/sample/druby_serv1.rb +30 -0
  408. data/sample/druby_serv2.rb +64 -0
  409. data/sample/ep_flux/demo_NCEP_1.rb +48 -0
  410. data/sample/ep_flux/demo_NCEP_2.rb +57 -0
  411. data/sample/ep_flux/demo_NCEP_3.rb +81 -0
  412. data/sample/ggraph_latlon_labelling_dr002690.rb +159 -0
  413. data/sample/ggraph_mapfit-axes_dr002687.rb +131 -0
  414. data/sample/map_projection.rb +121 -0
  415. data/sample/ncep_theta_coord.rb +79 -0
  416. data/test/eof_slp.rb +28 -0
  417. data/test/mltbit.dat +0 -0
  418. data/test/test_ep_flux.rb +533 -0
  419. data/test/test_multibitIO.rb +19 -0
  420. data/testdata/T.jan.ctl +12 -0
  421. data/testdata/T.jan.dat +0 -0
  422. data/testdata/T.jan.grib +0 -0
  423. data/testdata/T.jan.nc +0 -0
  424. data/testdata/T.jan.packed.withmiss.nc +0 -0
  425. data/testdata/UV.jan.nc +0 -0
  426. data/testdata/assoc_crds.nc +0 -0
  427. data/testdata/cira86.dat +1332 -0
  428. metadata +621 -0
@@ -0,0 +1,451 @@
1
+ require "numru/hdfeos5"
2
+ require "numru/gphys/varray"
3
+ ####require "numru/gphys/attributehdfeos5"
4
+
5
+ module NumRu
6
+
7
+ class VArrayHE5SwField < VArray
8
+
9
+ ## < initialization redefined > ##
10
+
11
+ def initialize(aHE5SwField)
12
+ @name = aHE5SwField.name
13
+ @mapping = nil
14
+ @varray = nil
15
+ if ! aHE5SwField.is_a?(HE5SwField)
16
+ raise ArgumentError,"Not a HE5SwField"
17
+ end
18
+ @ary = aHE5SwField
19
+ @attr = Attribute.new
20
+ aHE5SwField.att_names.each{|name|
21
+ @attr[name.downcase] = aHE5SwField.get_att(name).to_s
22
+ @attr["long_name"] = aHE5SwField.get_att(name).to_s if name == "Title" # For SMILES /MLS
23
+ }
24
+ end
25
+
26
+ def inspect
27
+ "<'#{@name}' in '#{@ary.swath.file.path}' #{@ary.ntype}#{shape_current.inspect}>"
28
+ end
29
+
30
+ class << self
31
+
32
+ def new2(swath, name, ntype, dimensions, vary=nil)
33
+ dimensions = dimensions.join(',')
34
+ va = new( swath.def_var(name, ntype, dimensions) )
35
+ if vary
36
+ vary.att_names.each{|name| va.set_att(name, vary.get_att(name))}
37
+ end
38
+ va
39
+ end
40
+ alias def_var new2
41
+
42
+ def new3(swath, name, ntype, dimensions, vary=nil)
43
+ dimensions = dimensions.join(',')
44
+ va = new( swath.def_geo(name, ntype, dimensions) )
45
+ if vary
46
+ vary.att_names.each{|name| va.set_att(name, vary.get_att(name))}
47
+ end
48
+ va
49
+ end
50
+ alias def_geo new3
51
+
52
+
53
+ ## < additional class methods > ##
54
+
55
+ def write(file, vary, rename=nil, dimnames=nil)
56
+ raise ArgumentError, "1st arg: not a HE5Sw" if !file.is_a?(HE5Sw)
57
+ raise ArgumentError, "2nd arg: not a VArray" if !vary.is_a?(VArray)
58
+ rank=vary.rank
59
+ if dimnames == nil
60
+ if vary.is_a?(VArrayHE5SwField)
61
+ dimnames = vary.dim_names
62
+ else
63
+ dimnames=Array.new
64
+ for i in 0...rank
65
+ dimnames[i]='x'+i.to_s
66
+ end
67
+ end
68
+ elsif( rank != dimnames.length)
69
+ raise ArgumentError,
70
+ "# of dim names does not agree with the rank of the VArray"
71
+ end
72
+ fdimnms = file.dim_names
73
+ begin
74
+ shape = vary.shape
75
+ rescue StandardError, NameError
76
+ shape = vary.shape_ul0
77
+ end
78
+ dims = Array.new
79
+ for i in 0...rank
80
+ nm = dimnames[i]
81
+ if fdimnms.include?(nm)
82
+ dims[i] = nm
83
+ else
84
+ dims[i] = file.defdim(nm.name,shape[i])
85
+ end
86
+ end
87
+ nm = ( rename || vary.name )
88
+ val = vary.val
89
+ newvary = new2(file, nm, vary.typecode, dims, vary)
90
+ newvary.val = val
91
+ return newvary
92
+ end
93
+ end
94
+
95
+ ## < redefined instance methods > ##
96
+
97
+ def val
98
+ return @ary.get
99
+ end
100
+
101
+ def val=(narray)
102
+ if narray.is_a?(Numeric)
103
+ @ary.put( narray )
104
+ else
105
+ narray = __check_ary_class(narray)
106
+ slicer = (0...rank).collect{|i|
107
+ (shape_ul0[i] != 0) ? true : 0...narray.shape[i]
108
+ }
109
+ @ary[*slicer] = narray
110
+ narray
111
+ end
112
+ end
113
+
114
+ def shape
115
+ raise "The shape method is not available. Use shape_ul0 or shape_current instead."
116
+ end
117
+
118
+
119
+ def ntype
120
+ @ary.ntype
121
+ end
122
+
123
+ def shape_ul0
124
+ @ary.shape_ul0
125
+ end
126
+
127
+ def shape_current
128
+ @ary.shape_current
129
+ end
130
+
131
+ def total
132
+ len = 1
133
+ @ary.shape_current.each{|i| len *= i}
134
+ len
135
+ end
136
+ alias length total
137
+
138
+ def rank
139
+ @ary.rank
140
+ end
141
+
142
+ undef reshape!
143
+
144
+ def dim_names
145
+ @ary.dim_names
146
+ end
147
+
148
+ def file
149
+ @ary.swath
150
+ end
151
+ end # class VArrayHE5Sw
152
+
153
+ class VArrayHE5GdField < VArray
154
+
155
+ ## < initialization redefined > ##
156
+
157
+ def initialize(aHE5GdField)
158
+ @name = aHE5GdField.name
159
+ @mapping = nil
160
+ @varray = nil
161
+ if ! aHE5GdField.is_a?(HE5GdField)
162
+ raise ArgumentError,"Not a HE5GdField"
163
+ end
164
+ @ary = aHE5GdField
165
+ @attr = Attribute.new
166
+ aHE5GdField.att_names.each{|name|
167
+ @attr[name.downcase] = aHE5GdField.get_att(name).to_s
168
+ @attr["long_name"] = aHE5GdField.get_att(name).to_s if name == "Title" # For SMILES /MLS
169
+ }
170
+ end
171
+
172
+ def inspect
173
+ "<'#{@name}' in '#{@ary.grid.file.path}' #{@ary.ntype}#{shape_current.inspect}>"
174
+ end
175
+
176
+ class << self
177
+
178
+ def new2(grid, name, ntype, dimensions, vary=nil)
179
+ dimensions = dimensions.join(',')
180
+
181
+ va = new( grid.def_var(name, ntype, dimensions) )
182
+ if vary
183
+ vary.att_names.each{|name| va.set_att(name, vary.get_att(name))}
184
+ end
185
+ va
186
+ end
187
+ alias def_var new2
188
+
189
+
190
+ ## < additional class methods > ##
191
+
192
+ def write(file, vary, rename=nil, dimnames=nil)
193
+ raise ArgumentError, "1st arg: not a HE5Gd" if !file.is_a?(HE5Gd)
194
+ raise ArgumentError, "2nd arg: not a VArray" if !vary.is_a?(VArray)
195
+ rank=vary.rank
196
+ if dimnames == nil
197
+ if vary.is_a?(VArrayHE5GdField)
198
+ dimnames = vary.dim_names
199
+ else
200
+ dimnames=Array.new
201
+ for i in 0...rank
202
+ dimnames[i]='x'+i.to_s
203
+ end
204
+ end
205
+ elsif( rank != dimnames.length)
206
+ raise ArgumentError,
207
+ "# of dim names does not agree with the rank of the VArray"
208
+ end
209
+ fdimnms = file.dim_names
210
+ begin
211
+ shape = vary.shape
212
+ rescue StandardError, NameError
213
+ shape = vary.shape_ul0
214
+ end
215
+ dims = Array.new
216
+ for i in 0...rank
217
+ nm = dimnames[i]
218
+ if fdimnms.include?(nm)
219
+ dims[i] = nm
220
+ else
221
+ dims[i] = file.defdim(nm.name,shape[i])
222
+ end
223
+ end
224
+ nm = ( rename || vary.name )
225
+ val = vary.val
226
+ newvary = new2(file, nm, vary.typecode, dims, vary)
227
+ newvary.val = val
228
+ return newvary
229
+ end
230
+ end
231
+
232
+ ## < redefined instance methods > ##
233
+
234
+ def val
235
+ return @ary.get
236
+ end
237
+
238
+ def val=(narray)
239
+ if narray.is_a?(Numeric)
240
+ @ary.put( narray )
241
+ else
242
+ narray = __check_ary_class(narray)
243
+ slicer = (0...rank).collect{|i|
244
+ (shape_ul0[i] != 0) ? true : 0...narray.shape[i]
245
+ }
246
+ @ary[*slicer] = narray
247
+ narray
248
+ end
249
+ end
250
+
251
+ def shape
252
+ raise "The shape method is not available. Use shape_ul0 or shape_current instead."
253
+ end
254
+
255
+
256
+ def ntype
257
+ @ary.ntype
258
+ end
259
+
260
+ def shape_ul0
261
+ @ary.shape_ul0
262
+ end
263
+
264
+ def shape_current
265
+ @ary.shape_current
266
+ end
267
+
268
+ def total
269
+ len = 1
270
+ @ary.shape_current.each{|i| len *= i}
271
+ len
272
+ end
273
+ alias length total
274
+
275
+ def rank
276
+ @ary.rank
277
+ end
278
+
279
+ undef reshape!
280
+
281
+ def dim_names
282
+ @ary.dim_names
283
+ end
284
+
285
+ def file
286
+ @ary.grid
287
+ end
288
+ end # class VArrayHE5Gd
289
+
290
+ class VArrayHE5ZaField < VArray
291
+ ## < initialization redefined > ##
292
+
293
+ def initialize(aHE5ZaField)
294
+ @name = aHE5ZaField.name
295
+ @mapping = nil
296
+ @varray = nil
297
+ if ! aHE5ZaField.is_a?(HE5ZaField)
298
+ raise ArgumentError,"Not a HE5ZaField"
299
+ end
300
+ @ary = aHE5ZaField
301
+ @attr = Attribute.new
302
+ aHE5ZaField.att_names.each{|name|
303
+ @attr[name.downcase] = aHE5ZaField.get_att(name).to_s
304
+ @attr["long_name"] = aHE5ZaField.get_att(name).to_s if name == "Title" # For SMILES /MLS
305
+ }
306
+ end
307
+
308
+ def inspect
309
+ "<'#{@name}' in '#{@ary.za.file.path}' #{@ary.ntype}#{shape_current.inspect}>"
310
+ end
311
+
312
+ class << self
313
+
314
+ def new2(za, name, ntype, dimensions, vary=nil)
315
+ dimensions = dimensions.join(',')
316
+ va = new( za.def_var(name, ntype, dimensions) )
317
+ if vary
318
+ vary.att_names.each{|name| va.set_att(name, vary.get_att(name))}
319
+ end
320
+ va
321
+ end
322
+ alias def_var new2
323
+
324
+ ## < additional class methods > ##
325
+
326
+ def write(file, vary, rename=nil, dimnames=nil)
327
+ raise ArgumentError, "1st arg: not a HE5Za" if !file.is_a?(HE5Za)
328
+ raise ArgumentError, "2nd arg: not a VArray" if !vary.is_a?(VArray)
329
+ rank=vary.rank
330
+ if dimnames == nil
331
+ if vary.is_a?(VArrayHE5ZaField)
332
+ dimnames = vary.dim_names
333
+ else
334
+ dimnames=Array.new
335
+ for i in 0...rank
336
+ dimnames[i]='x'+i.to_s
337
+ end
338
+ end
339
+ elsif( rank != dimnames.length)
340
+ raise ArgumentError,
341
+ "# of dim names does not agree with the rank of the VArray"
342
+ end
343
+ fdimnms = file.dim_names
344
+ begin
345
+ shape = vary.shape
346
+ rescue StandardError, NameError
347
+ shape = vary.shape_ul0
348
+ end
349
+ dims = Array.new
350
+ for i in 0...rank
351
+ nm = dimnames[i]
352
+ if fdimnms.include?(nm)
353
+ dims[i] = nm
354
+ else
355
+ dims[i] = file.defdim(nm.name,shape[i])
356
+ end
357
+ end
358
+ nm = ( rename || vary.name )
359
+ val = vary.val
360
+ newvary = new2(file, nm, vary.typecode, dims, vary)
361
+ newvary.val = val
362
+ return newvary
363
+ end
364
+ end
365
+
366
+ ## < redefined instance methods > ##
367
+
368
+ def val
369
+ return @ary.get
370
+ end
371
+
372
+ def val=(narray)
373
+ if narray.is_a?(Numeric)
374
+ @ary.put( narray )
375
+ else
376
+ narray = __check_ary_class(narray)
377
+ slicer = (0...rank).collect{|i|
378
+ (shape_ul0[i] != 0) ? true : 0...narray.shape[i]
379
+ }
380
+ @ary[*slicer] = narray
381
+ narray
382
+ end
383
+ end
384
+
385
+ def shape
386
+ raise "The shape method is not available. Use shape_ul0 or shape_current instead."
387
+ end
388
+
389
+
390
+ def ntype
391
+ @ary.ntype
392
+ end
393
+
394
+ def shape_ul0
395
+ @ary.shape_ul0
396
+ end
397
+
398
+ def shape_current
399
+ @ary.shape_current
400
+ end
401
+
402
+ def total
403
+ len = 1
404
+ @ary.shape_current.each{|i| len *= i}
405
+ len
406
+ end
407
+ alias length total
408
+
409
+ def rank
410
+ @ary.rank
411
+ end
412
+
413
+ undef reshape!
414
+
415
+ def dim_names
416
+ @ary.dim_names
417
+ end
418
+
419
+ def file
420
+ @ary.grid
421
+ end
422
+ end # class VArrayHE5Za
423
+
424
+ end # module NumRu
425
+
426
+ ###########################################################
427
+ ### < test >
428
+
429
+ if $0 == __FILE__
430
+ # $DEBUG = true
431
+ include NumRu
432
+ file = HE5.open("tmp.he5","w")
433
+ swath = file.create_swath("test2")
434
+ dims = [ swath.defdim("x",10), swath.defdim("t",2) ]
435
+ x = VArrayHE5SwField.new2(swath,"x","H5T_NATIVE_FLOAT",dims[0..0])
436
+ x.set_att("units", "km")
437
+ x.val = 10
438
+
439
+ y = VArrayHE5SwField.new3(swath,"time","H5T_NATIVE_DOUBLE",dims[0..0])
440
+ y.set_att("units", "s")
441
+
442
+ z = VArrayHE5SwField.def_geo(swath,"Latitude","H5T_NATIVE_FLOAT",dims[0..1])
443
+ z.set_att("units", "deg")
444
+
445
+ v = VArrayHE5SwField.new2(swath,"v","H5T_NATIVE_FLOAT",dims)
446
+ v.set_att("units","m/s")
447
+ v[0..-1,0] = 99.0
448
+ v[0..-1,1] = 66.0
449
+ v_ = VArrayHE5SwField.def_var(swath,"v_","H5T_NATIVE_FLOAT",["x","t"])
450
+ w = VArrayHE5SwField.write(swath,v,"w")
451
+ end