gphys 1.5.0 → 1.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +7 -0
  2. data/ChangeLog +7414 -0
  3. data/LICENSE.txt +1 -1
  4. data/Rakefile +0 -2
  5. data/doc/derivative/math-doc/document/images.log +385 -0
  6. data/doc/ep_flux/math-doc/document/images.log +1375 -0
  7. data/doc/ganalysis/doc/NumRu.html +203 -0
  8. data/doc/ganalysis/doc/NumRu/GAnalysis.html +931 -0
  9. data/doc/ganalysis/doc/NumRu/GAnalysis/BetaPlane.html +574 -0
  10. data/doc/ganalysis/doc/NumRu/GAnalysis/Fitting.html +576 -0
  11. data/doc/ganalysis/doc/NumRu/GAnalysis/LogP.html +425 -0
  12. data/doc/ganalysis/doc/NumRu/GAnalysis/Met.html +2021 -0
  13. data/doc/ganalysis/doc/NumRu/GAnalysis/MetZ.html +524 -0
  14. data/doc/ganalysis/doc/NumRu/GAnalysis/Planet.html +1047 -0
  15. data/doc/ganalysis/doc/NumRu/GAnalysis/QG.html +794 -0
  16. data/doc/ganalysis/doc/NumRu/GAnalysis/QG/Uninitialized.html +215 -0
  17. data/doc/ganalysis/doc/NumRu/GAnalysis/QG_common.html +603 -0
  18. data/doc/ganalysis/doc/NumRu/GAnalysis/QG_sphere.html +760 -0
  19. data/doc/ganalysis/doc/NumRu/GAnalysis/QG_sphere_common.html +251 -0
  20. data/doc/ganalysis/doc/NumRu/GAnalysis/QG_sphere_div.html +424 -0
  21. data/doc/ganalysis/doc/NumRu/GAnalysis/SigmaCoord.html +321 -0
  22. data/doc/ganalysis/doc/NumRu/GGraph.html +334 -0
  23. data/doc/ganalysis/doc/NumRu/GPhys.html +579 -0
  24. data/doc/ganalysis/doc/Object.html +210 -0
  25. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/beta_plane_rb.html +60 -0
  26. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/covariance_rb.html +56 -0
  27. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/eof_rb.html +64 -0
  28. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/fitting_rb.html +54 -0
  29. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/histogram_rb.html +58 -0
  30. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/log_p_rb.html +60 -0
  31. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/met_rb.html +60 -0
  32. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/met_z_rb.html +58 -0
  33. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/planet_rb.html +58 -0
  34. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/qg_rb.html +64 -0
  35. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/sigma_coord_rb.html +56 -0
  36. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis_rb.html +98 -0
  37. data/doc/ganalysis/doc/created.rid +13 -0
  38. data/doc/ganalysis/doc/images/brick.png +0 -0
  39. data/doc/ganalysis/doc/images/brick_link.png +0 -0
  40. data/doc/ganalysis/doc/images/bug.png +0 -0
  41. data/doc/ganalysis/doc/images/bullet_black.png +0 -0
  42. data/doc/ganalysis/doc/images/bullet_toggle_minus.png +0 -0
  43. data/doc/ganalysis/doc/images/bullet_toggle_plus.png +0 -0
  44. data/doc/ganalysis/doc/images/date.png +0 -0
  45. data/doc/ganalysis/doc/images/find.png +0 -0
  46. data/doc/ganalysis/doc/images/loadingAnimation.gif +0 -0
  47. data/doc/ganalysis/doc/images/macFFBgHack.png +0 -0
  48. data/doc/ganalysis/doc/images/package.png +0 -0
  49. data/doc/ganalysis/doc/images/page_green.png +0 -0
  50. data/doc/ganalysis/doc/images/page_white_text.png +0 -0
  51. data/doc/ganalysis/doc/images/page_white_width.png +0 -0
  52. data/doc/ganalysis/doc/images/plugin.png +0 -0
  53. data/doc/ganalysis/doc/images/ruby.png +0 -0
  54. data/doc/ganalysis/doc/images/tag_green.png +0 -0
  55. data/doc/ganalysis/doc/images/wrench.png +0 -0
  56. data/doc/ganalysis/doc/images/wrench_orange.png +0 -0
  57. data/doc/ganalysis/doc/images/zoom.png +0 -0
  58. data/doc/ganalysis/doc/index.html +383 -0
  59. data/doc/ganalysis/doc/js/darkfish.js +118 -0
  60. data/doc/ganalysis/doc/js/jquery.js +32 -0
  61. data/doc/ganalysis/doc/js/quicksearch.js +114 -0
  62. data/doc/ganalysis/doc/js/thickbox-compressed.js +10 -0
  63. data/doc/ganalysis/doc/rdoc.css +763 -0
  64. data/ext/numru/gphys/ext_init.c +1 -0
  65. data/ext/numru/gphys/quad_mesh_sample.c +478 -0
  66. data/gphys.gemspec +2 -2
  67. data/lib/numru/dclext.rb +394 -14
  68. data/lib/numru/derivative.rb +6 -0
  69. data/lib/numru/ganalysis/qg.rb +6 -4
  70. data/lib/numru/ggraph.rb +41 -8
  71. data/lib/numru/gphys/gphys.rb +62 -14
  72. data/lib/numru/gphys/gphys_io.rb +4 -4
  73. data/lib/numru/gphys/version.rb +2 -2
  74. metadata +84 -79
  75. data/.gitignore +0 -14
  76. data/TODO_ep_flux +0 -6
  77. data/gphys-bigmem.gemspec +0 -44
  78. data/install.rb +0 -130
  79. data/sample/cira86_to_nc.rb +0 -122
  80. data/sample/druby_cli1.rb +0 -23
  81. data/sample/druby_cli2.rb +0 -28
  82. data/sample/druby_serv1.rb +0 -30
  83. data/sample/druby_serv2.rb +0 -51
  84. data/sample/ep_flux/demo_NCEP_1.rb +0 -48
  85. data/sample/ep_flux/demo_NCEP_2.rb +0 -57
  86. data/sample/ep_flux/demo_NCEP_3.rb +0 -81
  87. data/sample/ggraph_latlon_labelling_dr002690.rb +0 -159
  88. data/sample/ggraph_mapfit-axes_dr002687.rb +0 -131
  89. data/sample/map_projection.rb +0 -121
  90. data/sample/ncep_theta_coord.rb +0 -79
  91. data/test_old/eof_slp.rb +0 -28
  92. data/test_old/mltbit.dat +0 -0
  93. data/test_old/test_ep_flux.rb +0 -533
  94. data/test_old/test_multibitIO.rb +0 -19
@@ -1,48 +0,0 @@
1
- =begin
2
- =demo_NCEP_1.rb
3
-
4
- a demo program for GPhys::EP_Flux. show sample code to for calculating
5
- EP-Flux and other physical values, and save as a NetCDF file.
6
-
7
- USAGE
8
- % ruby demo_NCEP_1.rb
9
-
10
- Note
11
- This program requires testdata. The URL is
12
-
13
- http://dennou-k.gfd-dennou.org/arch/ruby/products/ep_flux/testdata.tar.gz
14
-
15
- =end
16
-
17
- require 'numru/gphys'
18
- require 'numru/gphys/ep_flux'
19
- include NumRu
20
-
21
- datadir = "./testdata/"
22
- gp_u = GPhys::IO.open( datadir+"UWND_NCEP.nc", "uwnd")
23
- gp_v = GPhys::IO.open( datadir+"VWND_NCEP.nc", "vwnd")
24
- gp_omega = GPhys::IO.open( datadir+"OMEGA_NCEP.nc", "omega")
25
- gp_t = GPhys::IO.open( datadir+"TEMP_NCEP.nc", "temp")
26
-
27
- epflx_y, epflx_z, v_rmean, w_rmean, gp_lat, = ary =
28
- GPhys::EP_Flux::ep_full_sphere(gp_u, gp_v, gp_omega, gp_t, true)
29
- gp_lat.rename('phi')
30
-
31
- ary.each{|gp| # This part will not
32
- gp.data.att_names.each{|nm| # be needed in future.
33
- gp.data.del_att(nm) if /^valid_/ =~ nm # (Even now, it is not
34
- } # needed if the valid
35
- } # range is wide enough)
36
-
37
- epflx_div = GPhys::EP_Flux::div_sphere(epflx_y, epflx_z)
38
- strm_rmean = GPhys::EP_Flux::strm_rmean(v_rmean)
39
-
40
- ofile = NetCDF.create("epflx_NCEP.nc")
41
-
42
- ary.each{|gp|
43
- GPhys::IO.write(ofile, gp)
44
- }
45
- GPhys::IO.write(ofile, epflx_div)
46
- GPhys::IO.write(ofile, strm_rmean)
47
-
48
- ofile.close
@@ -1,57 +0,0 @@
1
- =begin
2
- =demo_NCEP_2.rb
3
-
4
- a demo program with GPhys::NetCDF_IO::each_along_dims_write, which
5
- is Iterator to process GPhys objects too big to read on memory at once.
6
- this program show same performance with demo_NCEP_1.rb.
7
-
8
- USAGE
9
- % ruby demo_NCEP_2.rb
10
-
11
- Note
12
- This program requires testdata. The URL is written in demo_NCEP_1.rb
13
-
14
- =end
15
-
16
- require 'numru/gphys'
17
- require 'numru/gphys/ep_flux'
18
- include NumRu
19
-
20
- datadir = "./testdata/"
21
- gp_u = GPhys::IO.open( datadir+"UWND_NCEP.nc", "uwnd")
22
- gp_v = GPhys::IO.open( datadir+"VWND_NCEP.nc", "vwnd")
23
- gp_omega = GPhys::IO.open( datadir+"OMEGA_NCEP.nc", "omega")
24
- gp_t = GPhys::IO.open( datadir+"TEMP_NCEP.nc", "temp")
25
-
26
- ofile = NetCDF.create("epflx_NCEP.nc")
27
-
28
- nt = gp_u.shape[-1]
29
- i = 0
30
- GPhys::IO.each_along_dims_write([gp_u, gp_v, gp_omega, gp_t], ofile, -1){
31
- |u, v, omega, t|
32
- i += 1
33
- print "processing #{i} / #{nt} ..\n" if (i % (nt/20+1))==1
34
-
35
- epflx_y, epflx_z, v_rmean, w_rmean, gp_lat, gp_z, u_mean, theta_mean,
36
- uv_dash, vt_dash, uw_dash, dtheta_dz = ary =
37
- GPhys::EP_Flux::ep_full_sphere(u, v, omega, t, true)
38
-
39
- ary.each{|gp| # This part will not
40
- gp.data.att_names.each{|nm| # be needed in future.
41
- gp.data.del_att(nm) if /^valid_/ =~ nm # (Even now, it is not
42
- } # needed if the valid
43
- } # range is wide enough)
44
-
45
- epflx_div = GPhys::EP_Flux::div_sphere(epflx_y, epflx_z)
46
- strm_rmean = GPhys::EP_Flux::strm_rmean(v_rmean)
47
-
48
- if i==1 # time independent => write only once
49
- gp_lat.rename('phi')
50
- GPhys::IO.write(ofile, gp_lat)
51
- GPhys::IO.write(ofile, gp_z)
52
- end
53
- [ epflx_y, epflx_z, v_rmean, w_rmean, strm_rmean, epflx_div, u_mean, theta_mean,
54
- uv_dash, vt_dash, uw_dash, dtheta_dz ]
55
- }
56
-
57
- ofile.close
@@ -1,81 +0,0 @@
1
- =begin
2
- =demo_NCEP_3.rb
3
-
4
- a demo program for drawing EP-Flux vector and Residual mean circulation.
5
-
6
- USAGE
7
- % ruby demo_NCEP_3.rb
8
-
9
- Note
10
- This program requires testdata. The URL is written in demo_NCEP_1.rb
11
-
12
- =end
13
-
14
- require 'numru/gphys'
15
- require 'numru/gphys/ep_flux'
16
- require 'numru/ggraph_on_merdional_section'
17
- include NumRu
18
-
19
- epflx_fnm = './epflx_NCEP.nc'
20
-
21
- if File::exist?(epflx_fnm)
22
-
23
- epflx_y = GPhys::IO.open(epflx_fnm, 'epflx_y')
24
- epflx_z = GPhys::IO.open(epflx_fnm, 'epflx_z')
25
- epflx_div = GPhys::IO.open(epflx_fnm, 'epflx_div')
26
- v_rmean = GPhys::IO.open(epflx_fnm, 'v_rmean')
27
- w_rmean = GPhys::IO.open(epflx_fnm, 'w_rmean')
28
- strm_rmean = GPhys::IO.open(epflx_fnm, 'strm_rmean')
29
-
30
- else
31
-
32
- datadir = "./testdata/"
33
- gp_u = GPhys::IO.open( datadir+"UWND_NCEP.nc", "uwnd")
34
- gp_v = GPhys::IO.open( datadir+"VWND_NCEP.nc", "vwnd")
35
- gp_omega = GPhys::IO.open( datadir+"OMEGA_NCEP.nc", "omega")
36
- gp_t = GPhys::IO.open( datadir+"TEMP_NCEP.nc", "temp")
37
-
38
- epflx_y, epflx_z, v_rmean, w_rmean= ary =
39
- GPhys::EP_Flux::ep_full_sphere(gp_u, gp_v, gp_omega, gp_t, true)
40
-
41
- ary.each{|gp| # This part will not
42
- gp.data.att_names.each{|nm| # be needed in future.
43
- gp.data.del_att(nm) if /^valid_/ =~ nm # (Even now, it is not
44
- } # needed if the valid
45
- } # range is wide enough)
46
-
47
- epflx_div = GPhys::EP_Flux::div_sphere(epflx_y, epflx_z)
48
- strm_rmean = GPhys::EP_Flux::strm_rmean(v_rmean)
49
-
50
- end
51
-
52
-
53
- DCL.gropn(1)
54
- DCL::sglset('LFULL', true) # use full area
55
- DCL::slrat(1.0, 0.85) # set aspect ratio of drwable area
56
- DCL.sgpset('lcntl', false) # don't rede control character.
57
- DCL.sgpset('lfprop',true) # use prportional font
58
- DCL.uzfact(0.6) # set character size
59
-
60
- ## show vector (Fy, Fz)
61
- fy = epflx_y.mean('time')
62
- fz = epflx_z.mean('time')
63
- epdiv = epflx_div.mean('time')
64
-
65
- GGraph::set_fig('view'=>[0.15, 0.85, 0.25, 0.55])
66
- GGraph::set_fig('itr'=>2) # contour && tone only
67
- GGraph::tone(epdiv) # tone
68
- GGraph::contour(epdiv,false) # contour
69
- xfact, yfact = GGraph::vector_on_merdional_section(fy, fz, false,
70
- 'fact'=>3.0,'xintv'=>1,'unit'=>true, 'annot'=>false
71
- )
72
-
73
- ## show residual mean merdional circulation (cut nearly surface and Antarctica)
74
- vrm = v_rmean.cut('lat'=>-70..90, 'level'=>850..100).mean('time')
75
- wrm = w_rmean.cut('lat'=>-70..90, 'level'=>850..100).mean('time')
76
- strm = strm_rmean.cut('lat'=>-70..90, 'level'=>850..100).mean('time')
77
- GGraph::contour(strm, true, 'nlev'=>25)
78
- GGraph::vector_on_merdional_section(vrm, wrm, false,
79
- 'fact'=>2.0,'xintv'=>1,'unit'=>true, 'annot'=>false
80
- )
81
- DCL.grcls
@@ -1,159 +0,0 @@
1
- ## from [dennou-ruby:002690] by koshiro
2
- ## Sample of axis-drwaing options: 'xmaplabel', 'ymaplabel' in GGraph,
3
- ## which labels axes bettern than in the default drwaing when itr==10
4
- ## uses 90E, 90W, etc instead of 90, 270, etc.
5
-
6
- require 'numru/ggraph'
7
- include NumRu
8
-
9
- wsn = ( ARGV[0] ? ARGV[0].to_i : 1 )
10
-
11
- path = '../testdata/T.jan.nc'
12
- var = 'T'
13
- gp = GPhys::IO.open(path,var)
14
-
15
- DCL.swpset('ldump',true) if wsn == 4
16
- DCL.gropn(wsn)
17
- DCL.sldiv('y',3,2)
18
- #DCL.uzfact(0.8)
19
- DCL.sgpset('lcntl',false)
20
-
21
- GGraph.set_map('coast_world'=>true)
22
-
23
- gpjpn = gp.cut(110..160,10..70,false)
24
-
25
- itr = 10
26
-
27
- # contour
28
- GGraph.next_fig('itr'=>itr)
29
- GGraph.contour(gp, true,'map_axes'=>true,'title'=>'default axes')
30
-
31
- GGraph.next_fig('itr'=>itr)
32
- GGraph.next_axes('xmaplabel'=>'lon','ymaplabel'=>'lat')
33
- GGraph.contour(gp, true,'map_axes'=>true,'title'=>'lon/lat axes')
34
-
35
- GGraph.next_fig('itr'=>itr)
36
- GGraph.next_axes('xmaplabel'=>'lon','ymaplabel'=>'lat','xtickint'=>30, 'ytickint'=>10, 'xlabelint'=>90, 'ylabelint'=>30)
37
- GGraph.contour(gp, true,'map_axes'=>true,'title'=>'lon/lat axes (set interval)')
38
-
39
- # tone
40
- GGraph.next_fig('itr'=>itr)
41
- GGraph.tone(gp, true,'map_axes'=>true,'title'=>'default axes')
42
-
43
- GGraph.next_fig('itr'=>itr)
44
- GGraph.next_axes('xmaplabel'=>'lon','ymaplabel'=>'lat')
45
- GGraph.tone(gp, true,'map_axes'=>true,'title'=>'lon/lat axes')
46
-
47
- GGraph.next_fig('itr'=>itr)
48
- GGraph.next_axes('xmaplabel'=>'lon','ymaplabel'=>'lat','xtickint'=>30, 'ytickint'=>10, 'xlabelint'=>90, 'ylabelint'=>30)
49
- GGraph.tone(gp, true,'map_axes'=>true,'title'=>'lon/lat axes (set interval)')
50
-
51
-
52
- # tone & contour
53
- GGraph.next_fig('itr'=>itr)
54
- GGraph.tone(gpjpn, true,'map_axes'=>true,'title'=>'default axes')
55
- GGraph.contour( gpjpn, false )
56
-
57
- GGraph.next_fig('itr'=>itr)
58
- GGraph.next_axes('xmaplabel'=>'lon','ymaplabel'=>'lat')
59
- GGraph.tone(gpjpn, true,'map_axes'=>true,'title'=>'lon/lat axes')
60
- GGraph.contour( gpjpn, false )
61
-
62
- GGraph.next_fig('itr'=>itr)
63
- GGraph.next_axes('xmaplabel'=>'lon','ymaplabel'=>'lat','xtickint'=>10, 'ytickint'=>10, 'xlabelint'=>30, 'ylabelint'=>30)
64
- GGraph.tone(gpjpn, true,'map_axes'=>true,'title'=>'lon/lat axes (set interval)')
65
- GGraph.contour( gpjpn, false )
66
-
67
-
68
- # vector ('flow_vect'=>false)
69
- GGraph.next_fig('itr'=>itr)
70
- GGraph.vector(gpjpn,gpjpn, true,'map_axes'=>true,'title'=>'default axes','flow_vect'=>false,'unit_vect'=>true)
71
-
72
- GGraph.next_fig('itr'=>itr)
73
- GGraph.next_axes('xmaplabel'=>'lon','ymaplabel'=>'lat')
74
- GGraph.vector(gpjpn,gpjpn, true,'map_axes'=>true,'title'=>'lon/lat axes','flow_vect'=>false,'unit_vect'=>true)
75
-
76
- GGraph.next_fig('itr'=>itr)
77
- GGraph.next_axes('xmaplabel'=>'lon','ymaplabel'=>'lat','xtickint'=>10, 'ytickint'=>10, 'xlabelint'=>30, 'ylabelint'=>30)
78
- GGraph.vector(gpjpn,gpjpn, true,'map_axes'=>true,'title'=>'lon/lat axes (set interval)','flow_vect'=>false,'unit_vect'=>true)
79
-
80
- # vector ('flow_vect'=>true)
81
- GGraph.next_fig('itr'=>itr)
82
- GGraph.vector(gpjpn,gpjpn, true,'map_axes'=>true,'title'=>'default axes','unit_vect'=>true)
83
-
84
- GGraph.next_fig('itr'=>itr)
85
- GGraph.next_axes('xmaplabel'=>'lon','ymaplabel'=>'lat')
86
- GGraph.vector(gpjpn,gpjpn, true,'map_axes'=>true,'title'=>'lon/lat axes','unit_vect'=>true)
87
-
88
- GGraph.next_fig('itr'=>itr)
89
- GGraph.next_axes('xmaplabel'=>'lon','ymaplabel'=>'lat','xtickint'=>10, 'ytickint'=>10, 'xlabelint'=>30, 'ylabelint'=>30)
90
- GGraph.vector(gpjpn,gpjpn, true,'map_axes'=>true,'title'=>'lon/lat axes (set interval)','unit_vect'=>true)
91
-
92
- DCL.grfrm
93
- DCL.grfrm
94
- DCL.grfrm
95
-
96
- ### DCLExt::lon_ax, DCLExt::lat_ax
97
-
98
- DCL.grfrm
99
- DCL.grswnd(0.0, 360.0, -90.0, 90.0)
100
- DCL.grsvpt(0.15, 0.95, 0.3, 0.7)
101
- DCL.grstrn(1)
102
- DCL.grstrf
103
- DCLExt.lon_ax
104
- DCLExt.lat_ax
105
- DCLExt.lon_ax('cside'=>'t')
106
- DCLExt.lat_ax('cside'=>'r')
107
-
108
- DCL.grfrm
109
- DCL.grswnd(0.0, 360.0, -90.0, 90.0)
110
- DCL.grsvpt(0.15, 0.95, 0.3, 0.7)
111
- DCL.grstrn(1)
112
- DCL.grstrf
113
- DCLExt.lon_ax('dtick1'=>30, 'dtick2'=>90)
114
- DCLExt.lat_ax('dtick1'=>10, 'dtick2'=>30)
115
- DCLExt.lon_ax('cside'=>'t', 'dtick1'=>30, 'dtick2'=>90)
116
- DCLExt.lat_ax('cside'=>'r', 'dtick1'=>10, 'dtick2'=>30)
117
-
118
- DCL.grfrm
119
- DCL.grswnd(-90.0, 90.0, 0.0, 360.0)
120
- DCL.grsvpt(0.15, 0.95, 0.3, 0.7)
121
- DCL.grstrn(1)
122
- DCL.grstrf
123
- DCLExt.lon_ax('yax'=>true,'dtick1'=>30, 'dtick2'=>90)
124
- DCLExt.lat_ax('xax'=>true,'dtick1'=>10, 'dtick2'=>30)
125
- DCLExt.lon_ax('yax'=>true,'cside'=>'r', 'dtick1'=>30, 'dtick2'=>90)
126
- DCLExt.lat_ax('xax'=>true,'cside'=>'t', 'dtick1'=>10, 'dtick2'=>30)
127
-
128
- DCL.grfrm
129
- DCL.grswnd(90.0, -90.0, 360.0, 0.0)
130
- DCL.grsvpt(0.15, 0.95, 0.3, 0.7)
131
- DCL.grstrn(1)
132
- DCL.grstrf
133
- DCLExt.lon_ax('yax'=>true,'dtick1'=>30, 'dtick2'=>90)
134
- DCLExt.lat_ax('xax'=>true,'dtick1'=>10, 'dtick2'=>30)
135
- DCLExt.lon_ax('yax'=>true,'cside'=>'r', 'dtick1'=>30, 'dtick2'=>90)
136
- DCLExt.lat_ax('xax'=>true,'cside'=>'t', 'dtick1'=>10, 'dtick2'=>30)
137
-
138
- DCL.grfrm
139
- DCL.grswnd(-90.0, 90.0, 1000.0, 1.0)
140
- DCL.grsvpt(0.15, 0.95, 0.3, 0.7)
141
- DCL.grstrn(2)
142
- DCL.grstrf
143
- DCL.ulpset('iytype',3)
144
- DCL.ulylog('l', 3, 9)
145
- DCL.ulylog('r', 3, 9)
146
- DCLExt.lat_ax('xax'=>true,'dtick1'=>10, 'dtick2'=>30)
147
- DCLExt.lat_ax('xax'=>true,'cside'=>'t', 'dtick1'=>10, 'dtick2'=>30)
148
-
149
- DCL.grfrm
150
- DCL.grswnd(-180.0, 180.0, -90.0, 90.0)
151
- DCL.grsvpt(0.15, 0.95, 0.3, 0.7)
152
- DCL.grstrn(1)
153
- DCL.grstrf
154
- DCLExt.lon_ax('dtick1'=>30, 'dtick2'=>90)
155
- DCLExt.lat_ax('dtick1'=>10, 'dtick2'=>30)
156
- DCLExt.lon_ax('cside'=>'t', 'dtick1'=>30, 'dtick2'=>90)
157
- DCLExt.lat_ax('cside'=>'r', 'dtick1'=>10, 'dtick2'=>30)
158
-
159
- DCL.grcls
@@ -1,131 +0,0 @@
1
- ## from [dennou-ruby:002687] by koshiro
2
- ## simultaneous map-fitting and axes-drawing when itr=10
3
-
4
- require 'numru/ggraph'
5
- include NumRu
6
-
7
- wsn = ( ARGV[0] ? ARGV[0].to_i : 1 )
8
-
9
- path = '../testdata/T.jan.nc'
10
- var = 'T'
11
- gp = GPhys::IO.open(path,var)
12
-
13
- DCL.swpset('ldump',true) if wsn == 4
14
- DCL.gropn(wsn)
15
- DCL.sldiv('t',3,2)
16
- DCL.uzfact(0.8)
17
- DCL.sgpset('lcntl',false)
18
-
19
- GGraph.set_map('coast_world'=>true)
20
-
21
- gpjpn = gp.cut(110..160,10..70,false)
22
-
23
- itr = 10
24
-
25
- # contour
26
- GGraph.next_fig('itr'=>itr)
27
- GGraph.contour(gp,true,'title'=>'map_fit=T, map_axes=F (default)')
28
-
29
- GGraph.next_fig('itr'=>itr)
30
- GGraph.contour(gp, true,'map_axes'=>true,'title'=>'map_fit=T map_axes=T')
31
-
32
- GGraph.next_fig('itr'=>itr,'map_fit'=>false)
33
- GGraph.contour(gp,true,'map_axes'=>false,'title'=>'map_fit=F map_axes=F' )
34
-
35
- GGraph.next_fig('itr'=>itr,'map_fit'=>false)
36
- GGraph.contour(gp,true,'map_axes'=>true,'title'=>'map_fit=F map_axes=T')
37
-
38
- GGraph.next_fig('itr'=>itr,'map_fit'=>false,'map_axis'=>[0,0,0],'map_window'=>[-120,120,-60,60])
39
- GGraph.contour(gp,true,'map_axes'=>false,'title'=>'map_fit=F map_axes=F map_axis & map_window' )
40
-
41
- GGraph.next_fig('itr'=>itr,'map_fit'=>false,'map_axis'=>[0,0,0],'map_window'=>[-120,120,-60,60])
42
- GGraph.contour(gp,true,'map_axes'=>true,'title'=>'map_fit=F map_axes=T map_axis & map_window')
43
-
44
-
45
- # tone
46
- GGraph.next_fig('itr'=>itr)
47
- GGraph.tone(gp,true,'title'=>'map_fit=T, map_axes=F (default)')
48
-
49
- GGraph.next_fig('itr'=>itr)
50
- GGraph.tone(gp, true,'map_axes'=>true,'title'=>'map_fit=T map_axes=T')
51
-
52
- GGraph.next_fig('itr'=>itr,'map_fit'=>false)
53
- GGraph.tone(gp,true,'map_axes'=>false,'title'=>'map_fit=F map_axes=F' )
54
-
55
- GGraph.next_fig('itr'=>itr,'map_fit'=>false)
56
- GGraph.tone(gp,true,'map_axes'=>true,'title'=>'map_fit=F map_axes=T')
57
-
58
- GGraph.next_fig('itr'=>itr,'map_fit'=>false,'map_axis'=>[0,0,0],'map_window'=>[-120,120,-60,60])
59
- GGraph.tone(gp,true,'map_axes'=>false,'title'=>'map_fit=F map_axes=F map_axis & map_window' )
60
-
61
- GGraph.next_fig('itr'=>itr,'map_fit'=>false,'map_axis'=>[0,0,0],'map_window'=>[-120,120,-60,60])
62
- GGraph.tone(gp,true,'map_axes'=>true,'title'=>'map_fit=F map_axes=T map_axis & map_window')
63
-
64
-
65
- # tone & contour
66
- GGraph.next_fig('itr'=>itr)
67
- GGraph.tone(gpjpn,true,'title'=>'map_fit=T, map_axes=F (default)')
68
- GGraph.contour( gpjpn, false )
69
-
70
- GGraph.next_fig('itr'=>itr)
71
- GGraph.tone(gpjpn, true,'map_axes'=>true,'title'=>'map_fit=T map_axes=T')
72
- GGraph.contour( gpjpn, false )
73
-
74
- GGraph.next_fig('itr'=>itr,'map_fit'=>false)
75
- GGraph.tone(gpjpn,true,'map_axes'=>false,'title'=>'map_fit=F map_axes=F' )
76
- GGraph.contour( gpjpn, false )
77
-
78
- GGraph.next_fig('itr'=>itr,'map_fit'=>false)
79
- GGraph.tone(gpjpn,true,'map_axes'=>true,'title'=>'map_fit=F map_axes=T')
80
- GGraph.contour( gpjpn, false )
81
-
82
- GGraph.next_fig('itr'=>itr,'map_fit'=>false,'map_axis'=>[0,0,0],'map_window'=>[90,180,0,90])
83
- GGraph.tone(gpjpn,true,'map_axes'=>false,'title'=>'map_fit=F map_axes=F map_axis & map_window' )
84
- GGraph.contour( gpjpn, false )
85
-
86
- GGraph.next_fig('itr'=>itr,'map_fit'=>false,'map_axis'=>[0,0,0],'map_window'=>[90,180,0,90])
87
- GGraph.tone(gpjpn,true,'map_axes'=>true,'title'=>'map_fit=F map_axes=T map_axis & map_window')
88
- GGraph.contour( gpjpn, false )
89
-
90
-
91
- # vector ('flow_vect'=>false)
92
- GGraph.next_fig('itr'=>itr)
93
- GGraph.vector(gpjpn,gpjpn,true,'title'=>'map_fit=T, map_axes=F (default)','flow_vect'=>false,'unit_vect'=>true)
94
-
95
- GGraph.next_fig('itr'=>itr)
96
- GGraph.vector(gpjpn,gpjpn, true,'map_axes'=>true,'title'=>'map_fit=T map_axes=T','flow_vect'=>false,'unit_vect'=>true)
97
-
98
- GGraph.next_fig('itr'=>itr,'map_fit'=>false)
99
- GGraph.vector(gpjpn,gpjpn,true,'map_axes'=>false,'title'=>'map_fit=F map_axes=F' ,'flow_vect'=>false,'unit_vect'=>true)
100
-
101
- GGraph.next_fig('itr'=>itr,'map_fit'=>false)
102
- GGraph.vector(gpjpn,gpjpn,true,'map_axes'=>true,'title'=>'map_fit=F map_axes=T','unit_vect'=>true,'flow_vect'=>false,'unit_vect'=>true)
103
-
104
- GGraph.next_fig('itr'=>itr,'map_fit'=>false,'map_axis'=>[0,0,0],'map_window'=>[90,180,0,90])
105
- GGraph.vector(gpjpn,gpjpn,true,'map_axes'=>false,'title'=>'map_fit=F map_axes=F map_axis & map_window','flow_vect'=>false,'unit_vect'=>true)
106
-
107
- GGraph.next_fig('itr'=>itr,'map_fit'=>false,'map_axis'=>[0,0,0],'map_window'=>[90,180,0,90])
108
- GGraph.vector(gpjpn,gpjpn,true,'map_axes'=>true,'title'=>'map_fit=F map_axes=T map_axis & map_window','flow_vect'=>false,'unit_vect'=>true)
109
-
110
-
111
- # vector ('flow_vect'=>true)
112
- GGraph.next_fig('itr'=>itr)
113
- GGraph.vector(gpjpn,gpjpn,true,'title'=>'map_fit=T, map_axes=F (default)','unit_vect'=>true)
114
-
115
- GGraph.next_fig('itr'=>itr)
116
- GGraph.vector(gpjpn,gpjpn, true,'map_axes'=>true,'title'=>'map_fit=T map_axes=T','unit_vect'=>true)
117
-
118
- GGraph.next_fig('itr'=>itr,'map_fit'=>false)
119
- GGraph.vector(gpjpn,gpjpn,true,'map_axes'=>false,'title'=>'map_fit=F map_axes=F','unit_vect'=>true)
120
-
121
- GGraph.next_fig('itr'=>itr,'map_fit'=>false)
122
- GGraph.vector(gpjpn,gpjpn,true,'map_axes'=>true,'title'=>'map_fit=F map_axes=T','unit_vect'=>true,'unit_vect'=>true)
123
-
124
- GGraph.next_fig('itr'=>itr,'map_fit'=>false,'map_axis'=>[0,0,0],'map_window'=>[90,180,0,90])
125
- GGraph.vector(gpjpn,gpjpn,true,'map_axes'=>false,'title'=>'map_fit=F map_axes=F map_axis & map_window','unit_vect'=>true)
126
-
127
- GGraph.next_fig('itr'=>itr,'map_fit'=>false,'map_axis'=>[0,0,0],'map_window'=>[90,180,0,90])
128
- GGraph.vector(gpjpn,gpjpn,true,'map_axes'=>true,'title'=>'map_fit=F map_axes=T map_axis & map_window','unit_vect'=>true)
129
-
130
-
131
- DCL.grcls