gphys 1.1.1a

Sign up to get free protection for your applications and to get access to all the features.
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,61 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ ##############################################################
4
+ =begin
5
+ = NAME
6
+
7
+ grads2nc_with_gphys - GrADS to NetCDF converter
8
+
9
+ = WARNING
10
+
11
+ Not efficient if the GrADS file has many variables.
12
+
13
+ = USAGE
14
+
15
+ % grads2nc_with_gphys infilename outfilename [-v varname1 [varname2 ...]]
16
+
17
+ = EXAMPLE
18
+
19
+ % grads2nc_with_gphys ../testdata/T.jan.ctl tmp.nc
20
+ % grads2nc_with_gphys ../testdata/T.jan.ctl tmp.nc -v T
21
+
22
+ =end
23
+ ##############################################################
24
+
25
+ usage = "\n\n"+<<EOS
26
+ #{$0}: GrADS to NetCDF converter.
27
+
28
+ USAGE:
29
+ % #{$0} infilename outfilename [-v varname1 [varname2 ...]]
30
+ Here, the -v option is used to limit variables to copy
31
+ (all variables are copied by default). Note that to copy many
32
+ variables may not be effifient.
33
+ EOS
34
+
35
+ # < interpret command-line arguments >
36
+
37
+ varnames = nil
38
+ if ARGV[2] == '-v'
39
+ varnames = []
40
+ (ARGV.length-3).times{ varnames.unshift( ARGV.pop ) }
41
+ ARGV.pop
42
+ end
43
+
44
+ if ARGV.length != 2
45
+ raise usage
46
+ else
47
+ infilename, outfilename = ARGV[0..1]
48
+ end
49
+
50
+ # < convert >
51
+
52
+ require "numru/gphys"
53
+ include NumRu
54
+ grfile = GrADS_Gridded.open(infilename)
55
+ varnames = grfile.varnames if !varnames
56
+ out_file = NetCDF.create(outfilename)
57
+ varnames.each do |varname|
58
+ temp = GPhys::GrADS_IO.open(grfile,varname)
59
+ GPhys::NetCDF_IO.write(out_file,temp)
60
+ end
61
+ out_file.close
@@ -0,0 +1,19 @@
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/attribute.rb</title>
8
+ </head>
9
+ <body>
10
+ <h1><a name="label-0" id="label-0">class Attribute &lt; Hash</a></h1><!-- RDLabel: "class Attribute < Hash" -->
11
+ <p>A Hash class compatible with NetCDF attributes.</p>
12
+ <ul>
13
+ <li>Values are restricted to NetCDFAttr values</li>
14
+ <li>Keys must be String or Symbol (Symbol is converted into String such that
15
+ they are used interchangeably. E.g., attr[:units] == attr["units"] )</li>
16
+ </ul>
17
+
18
+ </body>
19
+ </html>
@@ -0,0 +1,15 @@
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/attributenetcdf.rb</title>
8
+ </head>
9
+ <body>
10
+ <h1><a name="label:0" id="label:0">class Attribute_NetCDF</a></h1><!-- RDLabel: "class Attribute_NetCDF" -->
11
+ <p>A class to handle NetCDF attributes in the same way as in the
12
+ NumRu::Attribute class.</p>
13
+
14
+ </body>
15
+ </html>
data/doc/axis.html ADDED
@@ -0,0 +1,376 @@
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/axis.rb</title>
8
+ </head>
9
+ <body>
10
+ <h1><a name="label-0" id="label-0">class NumRu::Axis</a></h1><!-- RDLabel: "class NumRu::Axis" -->
11
+ <p>A class of to handle a descretized physical coordinate.</p>
12
+ <h2><a name="label-1" id="label-1">Overview</a></h2><!-- RDLabel: "Overview" -->
13
+ <p>An NumRu::Axis object is meant to represent a dimension in a NumRu::Grid
14
+ object, which is used in NumRu::Grid (Hereafter, NumRu:: is omitted).
15
+ An Axis has 1-dimensional data on grid-point posisions as a VArray.
16
+ In addition, it can have supplementary data (as VArray objects).</p>
17
+ <p>Three types of axes are supported in this class:</p>
18
+ <pre>1. Simple (mostly point-sampled) axes
19
+ 2. Cell-type axes. In this case, grid points are either
20
+ at cell boundaries or within the cells (oftern at the center).
21
+ 3. Simple ("bare") indexing (without particular physical meaning)</pre>
22
+ <p>In most applications, the 1st type would be enough, but
23
+ the 2nd type would be useful for some type of numerical
24
+ simulation. The 3rd is not physical and may not be considered as
25
+ "axes", but this could be convenient for some practical applications.</p>
26
+ <h2><a name="label-2" id="label-2">Class Methods</a></h2><!-- RDLabel: "Class Methods" -->
27
+ <dl>
28
+ <dt><h4><a name="label-3" id="label-3"><code>Axis.new(<var>cell</var>=<var>false</var>,<var>bare_index</var>=<var>false</var>,<var>name</var>=<var>nil</var>)</code></a></h4></dt><!-- RDLabel: "Axis.new" -->
29
+ <dd>
30
+ <p>Constructor. The first two arguments are to specify one of the
31
+ types explained above.</p>
32
+ <p>ARGUMENTS</p>
33
+ <ul>
34
+ <li>cell (true or false)</li>
35
+ <li>bare_index (true or false)</li>
36
+ <li>name (String or nil): the default name (when nil) is "noname"</li>
37
+ </ul>
38
+ <p>RETURN VALUE</p>
39
+ <ul>
40
+ <li>an Axis</li>
41
+ </ul></dd>
42
+ <dt><h4><a name="label-4" id="label-4"><code>Axis.defined_operations</code></a></h4></dt><!-- RDLabel: "Axis.defined_operations" -->
43
+ <dd>
44
+ <p>Returns the name of the methods defined in Axis to do
45
+ some operation along the axis.</p>
46
+ <p>RETURN VALUE</p>
47
+ <ul>
48
+ <li>an Array of String. Current default value is ["integrate","average"].</li>
49
+ </ul></dd>
50
+ <dt><h4><a name="label-5" id="label-5"><code>Axis.humane_messaging = <var>t_or_f</var></code></a></h4></dt><!-- RDLabel: "Axis.humane_messaging = t_or_f" -->
51
+ <dd>
52
+ If false is given, the [] method is changed to return a naive
53
+ straightforward message if the axis is lost. -- By default,
54
+ it returns a fancy but sometimes unwanted message if the
55
+ axis is the time with since field in the form of yyyy-mm-dd.... </dd>
56
+ </dl>
57
+ <h2><a name="label-6" id="label-6">Instance Methods</a></h2><!-- RDLabel: "Instance Methods" -->
58
+ <dl>
59
+ <dt><h4><a name="label-7" id="label-7"><code>name=(<var>nm</var>)</code></a></h4></dt><!-- RDLabel: "name=" -->
60
+ <dd>
61
+ <p>Set a name.</p>
62
+ <p>ARGUMENTS</p>
63
+ <ul>
64
+ <li>name (String)</li>
65
+ </ul>
66
+ <p>RETURN VALUE</p>
67
+ <ul>
68
+ <li>name (the argument)</li>
69
+ </ul></dd>
70
+ <dt><h4><a name="label-8" id="label-8"><code>name</code></a></h4></dt><!-- RDLabel: "name" -->
71
+ <dd>
72
+ <p>Returns the name.</p>
73
+ <p>RETURN VALUE</p>
74
+ <ul>
75
+ <li>a String</li>
76
+ </ul></dd>
77
+ <dt><h4><a name="label-9" id="label-9"><code>cell?</code></a></h4></dt><!-- RDLabel: "cell?" -->
78
+ <dd>
79
+ <p>Whether or not self is a cell-type axis.</p>
80
+ <p>RETURN VALUE</p>
81
+ <ul>
82
+ <li>true or false</li>
83
+ </ul></dd>
84
+ <dt><h4><a name="label-10" id="label-10"><code>cell_center?</code></a></h4></dt><!-- RDLabel: "cell_center?" -->
85
+ <dd>
86
+ <p>Whether or not self represents data points within the cells (which is
87
+ often, but not necessarily, the centers of the cells).</p>
88
+ <p>RETURN VALUE</p>
89
+ <ul>
90
+ <li>true, false, or nil (when the axis is not cell-type)</li>
91
+ </ul></dd>
92
+ <dt><h4><a name="label-11" id="label-11"><code>cell_bounds?</code></a></h4></dt><!-- RDLabel: "cell_bounds?" -->
93
+ <dd>
94
+ <p>Whether or not self represents data points at the cell bondaries.</p>
95
+ <p>RETURN VALUE</p>
96
+ <ul>
97
+ <li>true, false, or nil (when the axis is not cell-type)</li>
98
+ </ul></dd>
99
+ <dt><h4><a name="label-12" id="label-12"><code>bare_index?</code></a></h4></dt><!-- RDLabel: "bare_index?" -->
100
+ <dd>
101
+ <p>Whether or not self is of the bare-index type.</p>
102
+ <p>RETURN VALUE</p>
103
+ <ul>
104
+ <li>true or false.</li>
105
+ </ul></dd>
106
+ <dt><h4><a name="label-13" id="label-13"><code>flatten</code></a></h4></dt><!-- RDLabel: "flatten" -->
107
+ <dd>
108
+ <p>Returns the VArray objects in self as a flat Array. No cloning is made.</p>
109
+ <p>RETURN VALUE</p>
110
+ <ul>
111
+ <li>an Array of VArray objects.</li>
112
+ </ul></dd>
113
+ <dt><h4><a name="label-14" id="label-14"><code>each_varray</code></a></h4></dt><!-- RDLabel: "each_varray" -->
114
+ <dd>
115
+ <p>Iterator for each VArray object in self (dependent on <a href="#label-13">flatten</a>.</p>
116
+ <p>RETURN VALUE</p>
117
+ <ul>
118
+ <li>an Array of VArray objects (same as <a href="#label-13">flatten</a>).</li>
119
+ </ul></dd>
120
+ <dt><h4><a name="label-15" id="label-15"><code>copy</code></a></h4></dt><!-- RDLabel: "copy" -->
121
+ <dd>
122
+ <p>Make a deep clone onto memory.
123
+ All the VArray objects in the return value will be
124
+ of the root class of VArray.</p>
125
+ <p>RETURN VALUE</p>
126
+ <ul>
127
+ <li>an Axis</li>
128
+ </ul></dd>
129
+ <dt><h4><a name="label-16" id="label-16"><code>collect</code></a></h4></dt><!-- RDLabel: "collect" -->
130
+ <dd>
131
+ <p>This method is like <a href="#label-15">copy</a>, but it is the 'collect'
132
+ iterator for each VArray in self (block required).</p>
133
+ <p>RETURN VALUE</p>
134
+ <ul>
135
+ <li>an Axis</li>
136
+ </ul></dd>
137
+ <dt><h4><a name="label-17" id="label-17"><code>pos=(<var>pos</var>)</code></a></h4></dt><!-- RDLabel: "pos=" -->
138
+ <dd>
139
+ <p>Sets the grid-point positions (disretized coordinate values).</p>
140
+ <p>ARGUMENTS</p>
141
+ <ul>
142
+ <li>pos (a 1D VArray)</li>
143
+ </ul>
144
+ <p>RETURN VALUE</p>
145
+ <ul>
146
+ <li>pos (the argument)</li>
147
+ </ul></dd>
148
+ <dt><h4><a name="label-18" id="label-18"><code>set_pos(<var>pos</var>)</code></a></h4></dt><!-- RDLabel: "set_pos" -->
149
+ <dd>
150
+ <p>Sets the grid-point positions (disretized coordinate values).</p>
151
+ <p>ARGUMENTS</p>
152
+ <ul>
153
+ <li>pos (a 1D VArray)</li>
154
+ </ul>
155
+ <p>RETURN VALUE</p>
156
+ <ul>
157
+ <li>self</li>
158
+ </ul></dd>
159
+ <dt><h4><a name="label-19" id="label-19"><code>pos</code></a></h4></dt><!-- RDLabel: "pos" -->
160
+ <dd>
161
+ <p>Returns the grid-point positions (disretized coordinate values).</p>
162
+ <p>RETURN VALUE</p>
163
+ <ul>
164
+ <li>a VArray (no duplication is made)</li>
165
+ </ul></dd>
166
+ <dt><h4><a name="label-20" id="label-20"><code>cell_center</code></a></h4></dt><!-- RDLabel: "cell_center" -->
167
+ <dd>
168
+ <p>When cell-type, returns the positions of grid points at cell centers.</p>
169
+ <p>RETURN VALUE</p>
170
+ <ul>
171
+ <li>a VArray (no duplication is made)</li>
172
+ </ul></dd>
173
+ <dt><h4><a name="label-21" id="label-21"><code>cell_bounds</code></a></h4></dt><!-- RDLabel: "cell_bounds" -->
174
+ <dd>
175
+ <p>When cell-type, returns the positions of grid points at cell boundaries.</p>
176
+ <p>RETURN VALUE</p>
177
+ <ul>
178
+ <li>a VArray (no duplication is made)</li>
179
+ </ul></dd>
180
+ <dt><h4><a name="label-22" id="label-22"><code>length</code></a></h4></dt><!-- RDLabel: "length" -->
181
+ <dd>
182
+ <p>Returns the length of the axis.</p>
183
+ <p>RETURN VALUE</p>
184
+ <ul>
185
+ <li>an Integer</li>
186
+ </ul></dd>
187
+ <dt><h4><a name="label-23" id="label-23"><code>set_cell(<var>center</var>, <var>bounds</var>, <var>name</var>=<var>nil</var>)</code></a></h4></dt><!-- RDLabel: "set_cell" -->
188
+ <dd>
189
+ <p>Set up cell-type axis, by giving both the cell centers and boundaries.
190
+ Completion of the set up is deferred until one of <a href="#label-25">set_pos_to_center</a>
191
+ and <a href="#label-26">set_pos_to_bounds</a> is called.</p>
192
+ <p>ARGUMENTS</p>
193
+ <ul>
194
+ <li>center (a 1D VArray)</li>
195
+ <li>bounds (a 1D VArray)</li>
196
+ <li>name (String)</li>
197
+ </ul>
198
+ <p>RETURN VALUE</p>
199
+ <ul>
200
+ <li>self</li>
201
+ </ul></dd>
202
+ <dt><h4><a name="label-24" id="label-24"><code>set_cell_guess_bounds(<var>center</var>, <var>name</var>=<var>nil</var>)</code></a></h4></dt><!-- RDLabel: "set_cell_guess_bounds" -->
203
+ <dd>
204
+ <p>Set up cell-type axis, by specifing only the cell centers
205
+ and deriving bounds with a naive assumption.</p>
206
+ <p>ARGUMENTS</p>
207
+ <ul>
208
+ <li>center (a 1D VArray)</li>
209
+ <li>name (String)</li>
210
+ </ul>
211
+ <p>RETURN VALUE</p>
212
+ <ul>
213
+ <li>self</li>
214
+ </ul></dd>
215
+ <dt><h4><a name="label-25" id="label-25"><code>set_pos_to_center</code></a></h4></dt><!-- RDLabel: "set_pos_to_center" -->
216
+ <dd>
217
+ Set the position of the current axis to the centers of the cells.
218
+ This or <a href="#label-26">set_pos_to_bounds</a> is needed to complete the set up
219
+ with set_cell_* methods.</dd>
220
+ <dt><h4><a name="label-26" id="label-26"><code>set_pos_to_bounds</code></a></h4></dt><!-- RDLabel: "set_pos_to_bounds" -->
221
+ <dd>
222
+ Set the position of the current axis to the cell bondaries.
223
+ This or <a href="#label-25">set_pos_to_center</a> is needed to complete the set up
224
+ with set_cell_* methods.</dd>
225
+ <dt><h4><a name="label-27" id="label-27"><code>set_aux(<var>name</var>,<var>vary</var>)</code></a></h4></dt><!-- RDLabel: "set_aux" -->
226
+ <dd>
227
+ <p>Set auxiliary data</p>
228
+ <p>ARGUMENTS</p>
229
+ <ul>
230
+ <li>name (String) a tag to express the kind of the data</li>
231
+ <li>vary (a VArray) the data</li>
232
+ </ul>
233
+ <p>RETURN VALUE</p>
234
+ <ul>
235
+ <li>vary (the 2nd argument)</li>
236
+ </ul></dd>
237
+ <dt><h4><a name="label-28" id="label-28"><code>get_aux(<var>name</var>)</code></a></h4></dt><!-- RDLabel: "get_aux" -->
238
+ <dd>
239
+ <p>Returns auxiliary data</p>
240
+ <p>ARGUMENTS</p>
241
+ <ul>
242
+ <li>name (String) a tag to express the kind of the data (see <a href="#label-27">set_aux</a>).</li>
243
+ </ul>
244
+ <p>RETURN VALUE</p>
245
+ <ul>
246
+ <li>a VArray</li>
247
+ </ul></dd>
248
+ <dt><h4><a name="label-29" id="label-29"><code>aux_names</code></a></h4></dt><!-- RDLabel: "aux_names" -->
249
+ <dd>
250
+ <p>Returns a list of the names of auxiliary data</p>
251
+ <p>RETURN VALUE</p>
252
+ <ul>
253
+ <li>an Array of String</li>
254
+ </ul></dd>
255
+ <dt><h4><a name="label-30" id="label-30"><code>to_gphys(<var>datavary1d</var>=<var>nil</var>)</code></a></h4></dt><!-- RDLabel: "to_gphys" -->
256
+ <dd>
257
+ <p>To construct a GPhys object from an Axis.</p>
258
+ <p>ARGUMENTS</p>
259
+ <ul>
260
+ <li>datavary1d (nil or VArray) :
261
+ If nil, the position object of self becomes the main data object.
262
+ If a VArray, it is used as the main data object.</li>
263
+ </ul>
264
+ <p>RETURN VALUE</p>
265
+ <ul>
266
+ <li>a GPhys</li>
267
+ </ul></dd>
268
+ <dt><h4><a name="label-31" id="label-31"><code>[<var>slicer</var>]</code></a></h4></dt><!-- RDLabel: "[]" -->
269
+ <dd>
270
+ <p>Returns a subset. Its specification is the same as in NArray.</p>
271
+ <p>RETURN VALUE</p>
272
+ <ul>
273
+ <li>an Axis</li>
274
+ </ul></dd>
275
+ <dt><h4><a name="label-32" id="label-32"><code>cut(<var>coord_cutter</var>)</code></a></h4></dt><!-- RDLabel: "cut" -->
276
+ <dd>
277
+ <p>Similar to <a href="#label-31">[]</a>, but is based on the physical coordinate.</p>
278
+ <p>RETURN VALUE</p>
279
+ <ul>
280
+ <li>an Axis</li>
281
+ </ul></dd>
282
+ <dt><h4><a name="label-33" id="label-33"><code>cut_rank_conserving(<var>coord_cutter</var>)</code></a></h4></dt><!-- RDLabel: "cut_rank_conserving" -->
283
+ <dd>
284
+ <p>Similar to <a href="#label-32">cut</a>, but is always rank-conserving. That is,
285
+ a subset specification like [i] is treated as [i..i]</p>
286
+ <p>RETURN VALUE</p>
287
+ <ul>
288
+ <li>an Axis</li>
289
+ </ul></dd>
290
+ <dt><h4><a name="label-34" id="label-34"><code>integrate(<var>ary</var>,<var>dim</var>)</code></a></h4></dt><!-- RDLabel: "integrate" -->
291
+ <dd>
292
+ <p>Does integration along the axis</p>
293
+ <p>ARGUMENTS</p>
294
+ <ul>
295
+ <li>ary (NArray or NArray-like multi-dimensional data class)
296
+ the data, whose dim-th dimension must have the same length as the axis.</li>
297
+ <li>dim (Integer) : The dimension of ary, to which the operation is applied.</li>
298
+ </ul>
299
+ <p>RETURN VALUE</p>
300
+ <ul>
301
+ <li>an obejct with the same class as ary, or of a Numeric
302
+ class if ary is 1D.</li>
303
+ </ul></dd>
304
+ <dt><h4><a name="label-35" id="label-35"><code>integ_weight</code></a></h4></dt><!-- RDLabel: "integ_weight" -->
305
+ <dd>
306
+ Returns the integration weight (whose default is nil).</dd>
307
+ <dt><h4><a name="label-36" id="label-36"><code>integ_weight=(<var>wgt</var>)</code></a></h4></dt><!-- RDLabel: "integ_weight=" -->
308
+ <dd>
309
+ Sets the integration weight (whose default is nil).</dd>
310
+ <dt><h4><a name="label-37" id="label-37"><code>average(<var>ary</var>,<var>dim</var>)</code></a></h4></dt><!-- RDLabel: "average" -->
311
+ <dd>
312
+ <p>Similar to <a href="#label-34">integrate</a>, but does averaging</p>
313
+ <p>ARGUMENTS</p>
314
+ <ul>
315
+ <li>see <a href="#label-34">integrate</a></li>
316
+ </ul>
317
+ <p>RETURN VALUE</p>
318
+ <ul>
319
+ <li>see <a href="#label-34">integrate</a></li>
320
+ </ul></dd>
321
+ <dt><h4><a name="label-38" id="label-38"><code>average_weight</code></a></h4></dt><!-- RDLabel: "average_weight" -->
322
+ <dd>
323
+ Returns the integration weight (whose default is nil).</dd>
324
+ <dt><h4><a name="label-39" id="label-39"><code>average_weight=(<var>wgt</var>)</code></a></h4></dt><!-- RDLabel: "average_weight=" -->
325
+ <dd>
326
+ Sets the integration weight (whose default is nil).</dd>
327
+ <dt><h4><a name="label-40" id="label-40"><code>draw_positive</code></a></h4></dt><!-- RDLabel: "draw_positive" -->
328
+ <dd>
329
+ <p>Returns the direction to plot the axis, which relies on the
330
+ VArray#axis_draw_positive method.</p>
331
+ <p>RETURN VALUE</p>
332
+ <ul>
333
+ <li>one of the following:
334
+ <ul>
335
+ <li>true: axis should be drawn in the increasing order (to right/upward)</li>
336
+ <li>false: axis should be drawn in the decreasing order</li>
337
+ <li>nil: not specified</li>
338
+ </ul></li>
339
+ </ul></dd>
340
+ <dt><h4><a name="label-41" id="label-41"><code>cyclic?</code></a></h4></dt><!-- RDLabel: "cyclic?" -->
341
+ <dd>
342
+ <p>Returns whether the axis is cyclic.
343
+ (Relies on the VArray#axis_cyclic? method.)</p>
344
+ <p>RETURN VALUE</p>
345
+ <ul>
346
+ <li>one of the following:
347
+ <ul>
348
+ <li>true: cyclic</li>
349
+ <li>false: not cyclic</li>
350
+ <li>nil: not specified</li>
351
+ </ul></li>
352
+ </ul></dd>
353
+ <dt><h4><a name="label-42" id="label-42"><code>modulo</code></a></h4></dt><!-- RDLabel: "modulo" -->
354
+ <dd>
355
+ <p>Returns the modulo of a cyclic axis
356
+ (Relies on the VArray#axis_modulo method.)</p>
357
+ <p>RETURN VALUE</p>
358
+ <ul>
359
+ <li>one of the following:
360
+ <ul>
361
+ <li>Float if the modulo is defined</li>
362
+ <li>nil if modulo is not found</li>
363
+ </ul></li>
364
+ </ul></dd>
365
+ <dt><h4><a name="label-43" id="label-43"><code>cyclic_extendible?</code></a></h4></dt><!-- RDLabel: "cyclic_extendible?" -->
366
+ <dd>
367
+ <p>Returns whether the axis is cyclic and appropriate to extend.
368
+ (Relies on the VArray#axis_cyclic_extendible? method.)</p>
369
+ <p>RETURN VALUE</p>
370
+ <ul>
371
+ <li>true or false</li>
372
+ </ul></dd>
373
+ </dl>
374
+
375
+ </body>
376
+ </html>
@@ -0,0 +1,111 @@
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/coordmapping.rb</title>
8
+ </head>
9
+ <body>
10
+ <h1><a name="label:0" id="label:0">class CoordMapping</a></h1><!-- RDLabel: "class CoordMapping" -->
11
+ <h2><a name="label:1" id="label:1">Overview</a></h2><!-- RDLabel: "Overview" -->
12
+ <p>Mapping of a coordinate to another. It supports analytic and
13
+ grid-point-based mapping in subclasses. Here in this root
14
+ CoordMapping class only the invariant unity mapping (or no mapping)
15
+ is defined.</p>
16
+ <h2><a name="label:2" id="label:2">Class methods</a></h2><!-- RDLabel: "Class methods" -->
17
+ <dl>
18
+ <dt><h4><a name="label:3" id="label:3"><code>CoordMapping.new</code></a></h4></dt><!-- RDLabel: "CoordMapping.new" -->
19
+ <dd>
20
+ <p>Constructor. One or more arguments can be needed in subclasses</p></dd>
21
+ </dl>
22
+ <h2><a name="label:4" id="label:4">Methods</a></h2><!-- RDLabel: "Methods" -->
23
+ <dl>
24
+ <dt><h4><a name="label:5" id="label:5"><code>map(<var>x</var>,<var>y</var>,<var>z</var>,...)</code></a></h4></dt><!-- RDLabel: "map" -->
25
+ <dd>
26
+ <p>Maps data point(s)</p>
27
+ <p>ARGUMENTS</p>
28
+ <ul>
29
+ <li>x,y,z,... (one or more Numeric or NArray) : data points.
30
+ Mapping is made of [x,y,z,..] (if Numeric) or
31
+ [x[0],y[0],z[0],..], [x[1],y[1],z[1],..], ..(if NArray).
32
+ Thus, the number of arguments must be equal to the rank of
33
+ the mapping. Also, their lengths must agree with each other.</li>
34
+ </ul>
35
+ <p>RETURN VALUE</p>
36
+ <ul>
37
+ <li>Array of p,q,r,... (Numeric or NArray) : mapping result</li>
38
+ </ul></dd>
39
+ <dt><h4><a name="label:6" id="label:6"><code>map_grid(<var>x</var>,<var>y</var>,<var>z</var>,...)</code></a></h4></dt><!-- RDLabel: "map_grid" -->
40
+ <dd>
41
+ <p>Same as <a href="#label:5">map</a> but for a regular grid.</p>
42
+ <p>ARGUMENTS</p>
43
+ <ul>
44
+ <li>x,y,z,... (one or more 1D NArray) : coordinate values of
45
+ a regular grid [x_i, y_j, z_k,..]. The shape of the grid is thus
46
+ [x.length, y.length, z.length,..]. This method needs no redefinition,
47
+ since it calls <a href="#label:5">map</a> inside.</li>
48
+ </ul></dd>
49
+ <dt><h4><a name="label:7" id="label:7"><code>inverse_map(<var>p</var>,<var>q</var>,<var>r</var>,...)</code></a></h4></dt><!-- RDLabel: "inverse_map" -->
50
+ <dd>
51
+ <p>Inversely maps data point(s).</p>
52
+ <p>ARGUMENTS</p>
53
+ <ul>
54
+ <li>p,q,r,... (one or more Numeric or NArray) : data points.
55
+ Inverse mapping is made of [p,q,r,..] (if Numeric) or
56
+ [p[0],q[0],r[0],..], [p[1],q[1],r[1],..], ..(if NArray).
57
+ Thus, the number of arguments must be equal to the rank of
58
+ the mapping. Also, if NArray, their lengths must agree with each other.</li>
59
+ </ul>
60
+ <p>RETURN VALUE</p>
61
+ <ul>
62
+ <li>Array of x,y,z,... (Numeric or NArray) : inverse mapping result</li>
63
+ </ul></dd>
64
+ <dt><h4><a name="label:8" id="label:8"><code>inverse</code></a></h4></dt><!-- RDLabel: "inverse" -->
65
+ <dd>
66
+ <p>Returns the inverse mapping.</p>
67
+ <p>RETURN VALUE</p>
68
+ <ul>
69
+ <li>a CoordMapping</li>
70
+ </ul></dd>
71
+ <dt><h4><a name="label:9" id="label:9"><code>inversion_rigorous?</code></a></h4></dt><!-- RDLabel: "inversion_rigorous?" -->
72
+ <dd>
73
+ <p>Whether the inversion is rigorous (analytical)</p>
74
+ <p>RETURN VALUE</p>
75
+ <ul>
76
+ <li>true or false</li>
77
+ </ul></dd>
78
+ </dl>
79
+ <h1><a name="label:10" id="label:10">class LinearCoordMapping &lt; CoordMapping</a></h1><!-- RDLabel: "class LinearCoordMapping < CoordMapping" -->
80
+ <h2><a name="label:11" id="label:11">Overview</a></h2><!-- RDLabel: "Overview" -->
81
+ <p>Linear coordinate mapping expressed as offset + factor*x,
82
+ where offset is a vector (NVect) and factor is a matrix (NMatrix).</p>
83
+ <p>Methods listed below are only those newly defined or those whose
84
+ arguments are changed.</p>
85
+ <h2><a name="label:12" id="label:12">Class methods</a></h2><!-- RDLabel: "Class methods" -->
86
+ <dl>
87
+ <dt><h4><a name="label:13" id="label:13"><code>LinearCoordMapping.new(<var>offset</var>=<var>nil</var>, <var>factor</var>=<var>nil</var>)</code></a></h4></dt><!-- RDLabel: "LinearCoordMapping.new" -->
88
+ <dd>
89
+ <p>Constructor. If one of offset and factor is not
90
+ specified (nil), a zero vector / a unit matrix is used (at least
91
+ one of them must be given).</p>
92
+ <p>ARGUMENTS</p>
93
+ <ul>
94
+ <li>offset (NVector or nil) : the offset. Its length represents the rank
95
+ of mapping. (if nil a zero vector is assumed)</li>
96
+ <li>factor (NMatrix or nil) : the factor. For consistency,
97
+ ( offset.length == factor.shape[0] == factor.shape[1] ) is required.</li>
98
+ </ul></dd>
99
+ </dl>
100
+ <h2><a name="label:14" id="label:14">Methods</a></h2><!-- RDLabel: "Methods" -->
101
+ <dl>
102
+ <dt><h4><a name="label:15" id="label:15"><code>offset</code></a></h4></dt><!-- RDLabel: "offset" -->
103
+ <dd>
104
+ <p>Returns the internally stored offset.</p></dd>
105
+ <dt><h4><a name="label:16" id="label:16"><code>factor</code></a></h4></dt><!-- RDLabel: "factor" -->
106
+ <dd>
107
+ <p>Returns the internally stored factor.</p></dd>
108
+ </dl>
109
+
110
+ </body>
111
+ </html>
@@ -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>