gphys 1.5.2 → 1.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/ChangeLog +134 -48
 - data/LICENSE.txt +1 -1
 - data/bin/gpprint +61 -8
 - data/bin/gpview +13 -2
 - data/ext/numru/gphys/dim_op.c +217 -0
 - data/gphys.gemspec +2 -3
 - data/lib/numru/dclext.rb +13 -4
 - data/lib/numru/ggraph.rb +45 -19
 - data/lib/numru/gphys/axis.rb +29 -2
 - data/lib/numru/gphys/gphys.rb +26 -1
 - data/lib/numru/gphys/gphys_dim_op.rb +87 -6
 - data/lib/numru/gphys/gphys_netcdf_io.rb +1 -0
 - data/lib/numru/gphys/grads_gridded.rb +6 -3
 - data/lib/numru/gphys/version.rb +1 -1
 - metadata +4 -18
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 13c32ab65077429fc0f5c4799d6986e2cb672dfa
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: b6cd30441caba1b246ae90b6ae9b8f090364cbce
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: cc75b8a323b972ace9a8b0beb53fbedf8165409d9613f655bfaf08090c751fa8c4b594f09d51c53b8592a4c9b3be85e32447792cb78bf3ab7f94772aea3d78b2
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: c25b9805785e96f88ecf47e37855169cc4efecc29520d3df74da9385d57c811bd5de44c8f684fdcdc9cf5657972e69338c6699e906a90099f040d517ba5b9725
         
     | 
    
        data/ChangeLog
    CHANGED
    
    | 
         @@ -1,3 +1,113 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            2018-01-26  Takeshi Horinouchi
         
     | 
| 
      
 2 
     | 
    
         
            +
            updated the years
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            M	LICENSE.txt
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            2018-01-26  Takeshi Horinouchi
         
     | 
| 
      
 7 
     | 
    
         
            +
            To release ver.1.5.3
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            M	lib/numru/gphys/version.rb
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            2018-01-26  Takeshi Horinouchi
         
     | 
| 
      
 12 
     | 
    
         
            +
            regression_line : added options annot_cor and annot_r2
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            M	lib/numru/ggraph.rb
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            2018-01-26  Takeshi Horinouchi
         
     | 
| 
      
 17 
     | 
    
         
            +
            Changed to use first2Dreally & first1Dreally where appropriate
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            M	lib/numru/ggraph.rb
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            2018-01-26  Takeshi Horinouchi
         
     | 
| 
      
 22 
     | 
    
         
            +
            Added new mehotds: firstNDreally, first1Dreally, first2Dreally etc
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            M	lib/numru/gphys/gphys.rb
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            2018-01-26  Takeshi Horinouchi
         
     | 
| 
      
 27 
     | 
    
         
            +
            Made the following methods class methods of GPhys (in addition to being private methods as before): c_running_mean, c_running_mean_2D, c_bin_mean, c_bin_sum
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            M	ext/numru/gphys/dim_op.c
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            2017-12-25  Takeshi Horinouchi
         
     | 
| 
      
 32 
     | 
    
         
            +
            bug fix
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
            M	lib/numru/gphys/gphys_dim_op.rb
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
            2017-12-23  Takeshi Horinouchi
         
     | 
| 
      
 37 
     | 
    
         
            +
            write_grid: To handle (avoid) multiple output of associated coordinates
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
            M	lib/numru/gphys/gphys_netcdf_io.rb
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
            2017-12-23  Takeshi Horinouchi
         
     | 
| 
      
 42 
     | 
    
         
            +
            	modified:   lib/numru/gphys/gphys_netcdf_io.rb
         
     | 
| 
      
 43 
     | 
    
         
            +
            runnin_mean : Changed the default boundary condition to nil (automatic selection among BC_SIMPLE & BC_CYCLIC)
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
            M	lib/numru/gphys/gphys_dim_op.rb
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
            2017-12-14  Takeshi Horinouchi
         
     | 
| 
      
 48 
     | 
    
         
            +
            Merge branch 'master' of dennou-k.gfd-dennou.org:/GFD_Dennou_Club/ftp/arch/ruby/products/gphys/git_repos/gphys
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
            2017-12-14  Takeshi Horinouchi
         
     | 
| 
      
 51 
     | 
    
         
            +
            added a new method GPhys#running_mean_2D, which is good for data with missing.
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
            M	ext/numru/gphys/dim_op.c
         
     | 
| 
      
 54 
     | 
    
         
            +
            M	lib/numru/gphys/gphys_dim_op.rb
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
            2017-12-14  Takeshi Horinouchi
         
     | 
| 
      
 57 
     | 
    
         
            +
            bug fix
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
            M	lib/numru/gphys/axis.rb
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
            2017-12-14  Takeshi Horinouchi
         
     | 
| 
      
 62 
     | 
    
         
            +
            updated gemspec file
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
            M	gphys.gemspec
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
            2017-07-15  Satoki Tsujino
         
     | 
| 
      
 67 
     | 
    
         
            +
            bug fix (bi and bj in lib/numru/gphys/grads_gridded.rb).
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
            M	lib/numru/gphys/grads_gridded.rb
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
            2017-07-14  Takeshi Horinouchi
         
     | 
| 
      
 72 
     | 
    
         
            +
            bug fix (thanks to dvdvlop emails from Tsujino&Otobe san on 2017-0714)
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
            M	lib/numru/gphys/grads_gridded.rb
         
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
      
 76 
     | 
    
         
            +
            2017-07-07  Takeshi Horinouchi
         
     | 
| 
      
 77 
     | 
    
         
            +
            Merge remote-tracking branch 'origin/master'
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
            2017-07-07  Takeshi Horinouchi
         
     | 
| 
      
 80 
     | 
    
         
            +
            bug fix
         
     | 
| 
      
 81 
     | 
    
         
            +
             
     | 
| 
      
 82 
     | 
    
         
            +
            M	lib/numru/dclext.rb
         
     | 
| 
      
 83 
     | 
    
         
            +
             
     | 
| 
      
 84 
     | 
    
         
            +
            2017-06-07  takepiro
         
     | 
| 
      
 85 
     | 
    
         
            +
            * bin/gpview: int option bug fixed.
         
     | 
| 
      
 86 
     | 
    
         
            +
            * bin/gpprint: options added.
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
      
 88 
     | 
    
         
            +
            M	bin/gpprint
         
     | 
| 
      
 89 
     | 
    
         
            +
            M	bin/gpview
         
     | 
| 
      
 90 
     | 
    
         
            +
             
     | 
| 
      
 91 
     | 
    
         
            +
            2017-05-20  Takeshi Horinouchi
         
     | 
| 
      
 92 
     | 
    
         
            +
            further update
         
     | 
| 
      
 93 
     | 
    
         
            +
             
     | 
| 
      
 94 
     | 
    
         
            +
            M	lib/numru/dclext.rb
         
     | 
| 
      
 95 
     | 
    
         
            +
             
     | 
| 
      
 96 
     | 
    
         
            +
            2017-05-16  Takeshi Horinouchi
         
     | 
| 
      
 97 
     | 
    
         
            +
            Added a new method Axis#nearest_index
         
     | 
| 
      
 98 
     | 
    
         
            +
             
     | 
| 
      
 99 
     | 
    
         
            +
            M	lib/numru/gphys/axis.rb
         
     | 
| 
      
 100 
     | 
    
         
            +
             
     | 
| 
      
 101 
     | 
    
         
            +
            2017-05-16  Takeshi Horinouchi
         
     | 
| 
      
 102 
     | 
    
         
            +
            complement to the previous commit
         
     | 
| 
      
 103 
     | 
    
         
            +
             
     | 
| 
      
 104 
     | 
    
         
            +
            M	lib/numru/dclext.rb
         
     | 
| 
      
 105 
     | 
    
         
            +
             
     | 
| 
      
 106 
     | 
    
         
            +
            2017-05-07  Takeshi Horinouchi
         
     | 
| 
      
 107 
     | 
    
         
            +
            DCLExt::ue_linear_levels : added handling of NaN
         
     | 
| 
      
 108 
     | 
    
         
            +
             
     | 
| 
      
 109 
     | 
    
         
            +
            M	lib/numru/dclext.rb
         
     | 
| 
      
 110 
     | 
    
         
            +
             
     | 
| 
       1 
111 
     | 
    
         
             
            2017-04-17  Takeshi Horinouchi
         
     | 
| 
       2 
112 
     | 
    
         
             
            1.5.1 --> 1.5.2
         
     | 
| 
       3 
113 
     | 
    
         | 
| 
         @@ -137,8 +247,7 @@ M	ext/numru/gphys/ext_init.c 
     | 
|
| 
       137 
247 
     | 
    
         
             
            2016-06-08  Takeshi Horinouchi
         
     | 
| 
       138 
248 
     | 
    
         
             
            file renamed (git mv)
         
     | 
| 
       139 
249 
     | 
    
         | 
| 
       140 
     | 
    
         
            -
             
     | 
| 
       141 
     | 
    
         
            -
            A	ext/numru/gphys/quad_mesh_sample.c
         
     | 
| 
      
 250 
     | 
    
         
            +
            R100	ext/numru/gphys/mesh_resample.c	ext/numru/gphys/quad_mesh_sample.c
         
     | 
| 
       142 
251 
     | 
    
         | 
| 
       143 
252 
     | 
    
         
             
            2016-06-08  Takeshi Horinouchi
         
     | 
| 
       144 
253 
     | 
    
         
             
            created an efficient quadrilateral mesh resampler
         
     | 
| 
         @@ -403,18 +512,12 @@ move extension files to ext/numru/gphys/ 
     | 
|
| 
       403 
512 
     | 
    
         | 
| 
       404 
513 
     | 
    
         
             
            extension files should be located in "ext/" directory.
         
     | 
| 
       405 
514 
     | 
    
         | 
| 
       406 
     | 
    
         
            -
             
     | 
| 
       407 
     | 
    
         
            -
             
     | 
| 
       408 
     | 
    
         
            -
             
     | 
| 
       409 
     | 
    
         
            -
             
     | 
| 
       410 
     | 
    
         
            -
             
     | 
| 
       411 
     | 
    
         
            -
             
     | 
| 
       412 
     | 
    
         
            -
            A	ext/numru/gphys/multibitIO.c
         
     | 
| 
       413 
     | 
    
         
            -
            D	ext_coord.c
         
     | 
| 
       414 
     | 
    
         
            -
            D	ext_init.c
         
     | 
| 
       415 
     | 
    
         
            -
            D	extconf.rb
         
     | 
| 
       416 
     | 
    
         
            -
            D	interpo.c
         
     | 
| 
       417 
     | 
    
         
            -
            D	multibitIO.c
         
     | 
| 
      
 515 
     | 
    
         
            +
            R100	dim_op.c	ext/numru/gphys/dim_op.c
         
     | 
| 
      
 516 
     | 
    
         
            +
            R100	ext_coord.c	ext/numru/gphys/ext_coord.c
         
     | 
| 
      
 517 
     | 
    
         
            +
            R100	ext_init.c	ext/numru/gphys/ext_init.c
         
     | 
| 
      
 518 
     | 
    
         
            +
            R100	extconf.rb	ext/numru/gphys/extconf.rb
         
     | 
| 
      
 519 
     | 
    
         
            +
            R100	interpo.c	ext/numru/gphys/interpo.c
         
     | 
| 
      
 520 
     | 
    
         
            +
            R100	multibitIO.c	ext/numru/gphys/multibitIO.c
         
     | 
| 
       418 
521 
     | 
    
         | 
| 
       419 
522 
     | 
    
         
             
            2015-03-10  Shin-ichi Takehiro
         
     | 
| 
       420 
523 
     | 
    
         
             
            bin/gpview: History removes from the output of --help
         
     | 
| 
         @@ -920,14 +1023,10 @@ M	lib/numru/gphys/grid.rb 
     | 
|
| 
       920 
1023 
     | 
    
         
             
            2014-05-06  Takeshi Horinouchi
         
     | 
| 
       921 
1024 
     | 
    
         
             
            Moved old tests (which do not use unit test) from test/ to test_old/
         
     | 
| 
       922 
1025 
     | 
    
         | 
| 
       923 
     | 
    
         
            -
             
     | 
| 
       924 
     | 
    
         
            -
             
     | 
| 
       925 
     | 
    
         
            -
             
     | 
| 
       926 
     | 
    
         
            -
             
     | 
| 
       927 
     | 
    
         
            -
            A	test_old/eof_slp.rb
         
     | 
| 
       928 
     | 
    
         
            -
            A	test_old/mltbit.dat
         
     | 
| 
       929 
     | 
    
         
            -
            A	test_old/test_ep_flux.rb
         
     | 
| 
       930 
     | 
    
         
            -
            A	test_old/test_multibitIO.rb
         
     | 
| 
      
 1026 
     | 
    
         
            +
            R100	test/eof_slp.rb	test_old/eof_slp.rb
         
     | 
| 
      
 1027 
     | 
    
         
            +
            R100	test/mltbit.dat	test_old/mltbit.dat
         
     | 
| 
      
 1028 
     | 
    
         
            +
            R100	test/test_ep_flux.rb	test_old/test_ep_flux.rb
         
     | 
| 
      
 1029 
     | 
    
         
            +
            R100	test/test_multibitIO.rb	test_old/test_multibitIO.rb
         
     | 
| 
       931 
1030 
     | 
    
         | 
| 
       932 
1031 
     | 
    
         
             
            2014-05-06  Takeshi Horinouchi
         
     | 
| 
       933 
1032 
     | 
    
         
             
            Unit test for Axis class
         
     | 
| 
         @@ -1042,16 +1141,11 @@ Revert "the extention library is moved into ext/" 
     | 
|
| 
       1042 
1141 
     | 
    
         | 
| 
       1043 
1142 
     | 
    
         
             
            This reverts commit 9c59f9b4131150bfbc3d7a3087af8c8f1df90c47.
         
     | 
| 
       1044 
1143 
     | 
    
         | 
| 
       1045 
     | 
    
         
            -
             
     | 
| 
       1046 
     | 
    
         
            -
             
     | 
| 
       1047 
     | 
    
         
            -
             
     | 
| 
       1048 
     | 
    
         
            -
             
     | 
| 
       1049 
     | 
    
         
            -
             
     | 
| 
       1050 
     | 
    
         
            -
            A	ext_coord.c
         
     | 
| 
       1051 
     | 
    
         
            -
            A	ext_init.c
         
     | 
| 
       1052 
     | 
    
         
            -
            A	extconf.rb
         
     | 
| 
       1053 
     | 
    
         
            -
            A	interpo.c
         
     | 
| 
       1054 
     | 
    
         
            -
            A	multibitIO.c
         
     | 
| 
      
 1144 
     | 
    
         
            +
            R100	ext/ext_coord.c	ext_coord.c
         
     | 
| 
      
 1145 
     | 
    
         
            +
            R100	ext/ext_init.c	ext_init.c
         
     | 
| 
      
 1146 
     | 
    
         
            +
            R100	ext/extconf.rb	extconf.rb
         
     | 
| 
      
 1147 
     | 
    
         
            +
            R100	ext/interpo.c	interpo.c
         
     | 
| 
      
 1148 
     | 
    
         
            +
            R100	ext/multibitIO.c	multibitIO.c
         
     | 
| 
       1055 
1149 
     | 
    
         | 
| 
       1056 
1150 
     | 
    
         
             
            2013-04-15  Takeshi Horinouchi
         
     | 
| 
       1057 
1151 
     | 
    
         
             
            Revert "Updated extconf.rb; added $vendorarchdir to the search path etc."
         
     | 
| 
         @@ -1076,16 +1170,11 @@ M	.gitignore 
     | 
|
| 
       1076 
1170 
     | 
    
         
             
            2013-03-28  Takeshi Horinouchi
         
     | 
| 
       1077 
1171 
     | 
    
         
             
            the extention library is moved into ext/
         
     | 
| 
       1078 
1172 
     | 
    
         | 
| 
       1079 
     | 
    
         
            -
             
     | 
| 
       1080 
     | 
    
         
            -
             
     | 
| 
       1081 
     | 
    
         
            -
             
     | 
| 
       1082 
     | 
    
         
            -
             
     | 
| 
       1083 
     | 
    
         
            -
             
     | 
| 
       1084 
     | 
    
         
            -
            D	ext_coord.c
         
     | 
| 
       1085 
     | 
    
         
            -
            D	ext_init.c
         
     | 
| 
       1086 
     | 
    
         
            -
            D	extconf.rb
         
     | 
| 
       1087 
     | 
    
         
            -
            D	interpo.c
         
     | 
| 
       1088 
     | 
    
         
            -
            D	multibitIO.c
         
     | 
| 
      
 1173 
     | 
    
         
            +
            R100	ext_coord.c	ext/ext_coord.c
         
     | 
| 
      
 1174 
     | 
    
         
            +
            R100	ext_init.c	ext/ext_init.c
         
     | 
| 
      
 1175 
     | 
    
         
            +
            R100	extconf.rb	ext/extconf.rb
         
     | 
| 
      
 1176 
     | 
    
         
            +
            R100	interpo.c	ext/interpo.c
         
     | 
| 
      
 1177 
     | 
    
         
            +
            R100	multibitIO.c	ext/multibitIO.c
         
     | 
| 
       1089 
1178 
     | 
    
         | 
| 
       1090 
1179 
     | 
    
         
             
            2013-03-27  Takeshi Horinouchi
         
     | 
| 
       1091 
1180 
     | 
    
         
             
            (test) deleted the dummy file
         
     | 
| 
         @@ -1100,8 +1189,7 @@ A	tmp.txt 
     | 
|
| 
       1100 
1189 
     | 
    
         
             
            2013-03-27  Takeshi Horinouchi
         
     | 
| 
       1101 
1190 
     | 
    
         
             
            Renamed the current ChangeLog to back up.
         
     | 
| 
       1102 
1191 
     | 
    
         | 
| 
       1103 
     | 
    
         
            -
             
     | 
| 
       1104 
     | 
    
         
            -
            D	ChangeLog
         
     | 
| 
      
 1192 
     | 
    
         
            +
            R100	ChangeLog	.ChangeLog.until201303
         
     | 
| 
       1105 
1193 
     | 
    
         | 
| 
       1106 
1194 
     | 
    
         
             
            2013-03-27  Takeshi Horinouchi
         
     | 
| 
       1107 
1195 
     | 
    
         
             
            Registered files (patterns) to ignore in the repository
         
     | 
| 
         @@ -4001,8 +4089,7 @@ M	lib/numru/vizshot.rb 
     | 
|
| 
       4001 
4089 
     | 
    
         
             
            2006-08-31  horinout
         
     | 
| 
       4002 
4090 
     | 
    
         
             
            	* lib/numru/vizshot.rb <-- lib/numru/easyviz.rb : renamed
         
     | 
| 
       4003 
4091 
     | 
    
         | 
| 
       4004 
     | 
    
         
            -
             
     | 
| 
       4005 
     | 
    
         
            -
            A	lib/numru/vizshot.rb
         
     | 
| 
      
 4092 
     | 
    
         
            +
            R096	lib/numru/easyviz.rb	lib/numru/vizshot.rb
         
     | 
| 
       4006 
4093 
     | 
    
         | 
| 
       4007 
4094 
     | 
    
         
             
            2006-08-31  horinout
         
     | 
| 
       4008 
4095 
     | 
    
         
             
            	  * support dump_code_and_data
         
     | 
| 
         @@ -6179,8 +6266,7 @@ Mon Jan 10  2005   T Horinouchi (partly < D Tsukahara) 
     | 
|
| 
       6179 
6266 
     | 
    
         
             
            M	ChangeLog
         
     | 
| 
       6180 
6267 
     | 
    
         
             
            A	bin/gpprint
         
     | 
| 
       6181 
6268 
     | 
    
         
             
            A	bin/gpview
         
     | 
| 
       6182 
     | 
    
         
            -
             
     | 
| 
       6183 
     | 
    
         
            -
            A	bin/grads2nc_with_gphys
         
     | 
| 
      
 6269 
     | 
    
         
            +
            R084	bin/grads2nc.rb	bin/grads2nc_with_gphys
         
     | 
| 
       6184 
6270 
     | 
    
         
             
            D	bin/install.rb
         
     | 
| 
       6185 
6271 
     | 
    
         
             
            M	install.rb
         
     | 
| 
       6186 
6272 
     | 
    
         | 
    
        data/LICENSE.txt
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            GPhys is copyrighted free software by Takeshi Horinouchi and
         
     | 
| 
       2 
2 
     | 
    
         
             
            GFD Dennou Club (http://www.gfd-dennou.org/).
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
     | 
    
         
            -
            Copyright 2003- 
     | 
| 
      
 4 
     | 
    
         
            +
            Copyright 2003-2018 (C) Takeshi Horinouchi and GFD Dennou Club
         
     | 
| 
       5 
5 
     | 
    
         
             
            (http://www.gfd-dennou.org/) All rights reserved.
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
            Redistribution and use in source and binary forms, with or without
         
     | 
    
        data/bin/gpprint
    CHANGED
    
    | 
         @@ -14,18 +14,29 @@ texts with line feeding to avoid long lines and are made to stdout. 
     | 
|
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
            = USAGE
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
       17 
     | 
    
         
            -
                 % gpprint url
         
     | 
| 
      
 17 
     | 
    
         
            +
                 % gpprint [options] url
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
            where the format of the url is 
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
       21 
21 
     | 
    
         
             
                 path[@|/]varname[,dimname=pos1[:pos2[:thinning_intv]][,dimname=...]]
         
     | 
| 
       22 
22 
     | 
    
         | 
| 
      
 23 
     | 
    
         
            +
            = OPTIONS
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            :-h, --help
         
     | 
| 
      
 26 
     | 
    
         
            +
               print this message.
         
     | 
| 
      
 27 
     | 
    
         
            +
            :-l, --long
         
     | 
| 
      
 28 
     | 
    
         
            +
               print with "%f".
         
     | 
| 
      
 29 
     | 
    
         
            +
            :-e, --exp
         
     | 
| 
      
 30 
     | 
    
         
            +
               print with "%e".
         
     | 
| 
      
 31 
     | 
    
         
            +
            :-f format, --fmt format
         
     | 
| 
      
 32 
     | 
    
         
            +
               set print format. 
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
       23 
34 
     | 
    
         
             
            = EXAMPLES
         
     | 
| 
       24 
35 
     | 
    
         | 
| 
       25 
36 
     | 
    
         
             
                % gpprint data.nc@temp
         
     | 
| 
       26 
     | 
    
         
            -
                % gpprint data.nc@temp,lon=135.0
         
     | 
| 
       27 
     | 
    
         
            -
                % gpprint data.nc@temp,lon=130:150,lat=0
         
     | 
| 
       28 
     | 
    
         
            -
                % gpprint data.nc@temp,lon=130:150,lat=0:90:2
         
     | 
| 
      
 37 
     | 
    
         
            +
                % gpprint -l data.nc@temp,lon=135.0
         
     | 
| 
      
 38 
     | 
    
         
            +
                % gpprint -e data.nc@temp,lon=130:150,lat=0
         
     | 
| 
      
 39 
     | 
    
         
            +
                % gpprint -f " %10.3f," data.nc@temp,lon=130:150,lat=0:90:2
         
     | 
| 
       29 
40 
     | 
    
         | 
| 
       30 
41 
     | 
    
         
             
            = HISTORY
         
     | 
| 
       31 
42 
     | 
    
         | 
| 
         @@ -36,6 +47,7 @@ where the format of the url is 
     | 
|
| 
       36 
47 
     | 
    
         
             
              2005/08/23  S Takehiro (common methods to gp* command moved to gpcommon.rb)
         
     | 
| 
       37 
48 
     | 
    
         
             
              2010/03/10  Y SASAKI (change help block into RD format)
         
     | 
| 
       38 
49 
     | 
    
         
             
              2012/02/19  S Takehiro (description for gturl format updated)
         
     | 
| 
      
 50 
     | 
    
         
            +
              2017/04/02  S Takehiro (options added)
         
     | 
| 
       39 
51 
     | 
    
         | 
| 
       40 
52 
     | 
    
         
             
            =end
         
     | 
| 
       41 
53 
     | 
    
         
             
            ##################################################
         
     | 
| 
         @@ -44,15 +56,56 @@ require "numru/gphys" 
     | 
|
| 
       44 
56 
     | 
    
         
             
            require "numru/gphys/gpcommon"
         
     | 
| 
       45 
57 
     | 
    
         
             
            include NumRu
         
     | 
| 
       46 
58 
     | 
    
         | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
      
 59 
     | 
    
         
            +
            require "getoptlong"
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
            #---------------------- Option Configuration ----------------------
         
     | 
| 
      
 62 
     | 
    
         
            +
            parser = GetoptLong.new(
         
     | 
| 
      
 63 
     | 
    
         
            +
              ["--exp",      "-e", GetoptLong::NO_ARGUMENT      ],
         
     | 
| 
      
 64 
     | 
    
         
            +
              ["--long",     "-l", GetoptLong::NO_ARGUMENT      ],
         
     | 
| 
      
 65 
     | 
    
         
            +
              ["--fmt",      "-f", GetoptLong::REQUIRED_ARGUMENT],
         
     | 
| 
      
 66 
     | 
    
         
            +
              ["--help",     "-h", GetoptLong::NO_ARGUMENT      ])
         
     | 
| 
      
 67 
     | 
    
         
            +
            begin
         
     | 
| 
      
 68 
     | 
    
         
            +
              parser.each{|opt, arg|
         
     | 
| 
      
 69 
     | 
    
         
            +
                case opt
         
     | 
| 
      
 70 
     | 
    
         
            +
                when "--exp"  then eval "$OPT_exp=true"
         
     | 
| 
      
 71 
     | 
    
         
            +
                when "--long" then eval "$OPT_long=true"
         
     | 
| 
      
 72 
     | 
    
         
            +
                when "--fmt"  then eval "$OPT_fmt='#{arg}'"
         
     | 
| 
      
 73 
     | 
    
         
            +
                when "--help" then eval "$OPT_help=true"
         
     | 
| 
      
 74 
     | 
    
         
            +
                else
         
     | 
| 
      
 75 
     | 
    
         
            +
                  raise "must not happen"
         
     | 
| 
      
 76 
     | 
    
         
            +
                end
         
     | 
| 
      
 77 
     | 
    
         
            +
              }
         
     | 
| 
      
 78 
     | 
    
         
            +
              rescue GetoptLong::AmbigousOption, GetoptLong::InvalidOption,
         
     | 
| 
      
 79 
     | 
    
         
            +
                      GetoptLong::MissingArgument, 
         
     | 
| 
      
 80 
     | 
    
         
            +
                      GetoptLong::NeedlessArgument => err
         
     | 
| 
      
 81 
     | 
    
         
            +
                help
         
     | 
| 
      
 82 
     | 
    
         
            +
                $srderr.puts err.message
         
     | 
| 
      
 83 
     | 
    
         
            +
                exit 1
         
     | 
| 
      
 84 
     | 
    
         
            +
            end
         
     | 
| 
      
 85 
     | 
    
         
            +
             
     | 
| 
      
 86 
     | 
    
         
            +
            #------------------------ Help message ------------------------
         
     | 
| 
      
 87 
     | 
    
         
            +
            if $OPT_help then
         
     | 
| 
      
 88 
     | 
    
         
            +
              help
         
     | 
| 
      
 89 
     | 
    
         
            +
              exit(0)
         
     | 
| 
      
 90 
     | 
    
         
            +
            end
         
     | 
| 
       48 
91 
     | 
    
         | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
      
 92 
     | 
    
         
            +
            #------------------------ Help message ------------------------
         
     | 
| 
       50 
93 
     | 
    
         
             
            gturl = ARGV[0]
         
     | 
| 
       51 
94 
     | 
    
         
             
            gp = GPhys::IO.open_gturl(gturl)
         
     | 
| 
       52 
95 
     | 
    
         | 
| 
       53 
     | 
    
         
            -
            new_line_int =  
     | 
| 
      
 96 
     | 
    
         
            +
            new_line_int = 5
         
     | 
| 
      
 97 
     | 
    
         
            +
             
     | 
| 
       54 
98 
     | 
    
         
             
            first_dim_len = (gp.shape[0]||1)
         
     | 
| 
       55 
     | 
    
         
            -
             
     | 
| 
      
 99 
     | 
    
         
            +
            if $OPT_fmt then
         
     | 
| 
      
 100 
     | 
    
         
            +
              fmt=$OPT_fmt
         
     | 
| 
      
 101 
     | 
    
         
            +
            elsif $OPT_exp then
         
     | 
| 
      
 102 
     | 
    
         
            +
              fmt=" %e,"
         
     | 
| 
      
 103 
     | 
    
         
            +
            elsif $OPT_long then
         
     | 
| 
      
 104 
     | 
    
         
            +
              fmt=" %f,"
         
     | 
| 
      
 105 
     | 
    
         
            +
            else
         
     | 
| 
      
 106 
     | 
    
         
            +
              fmt=" %g,"
         
     | 
| 
      
 107 
     | 
    
         
            +
            end
         
     | 
| 
      
 108 
     | 
    
         
            +
             
     | 
| 
       56 
109 
     | 
    
         
             
            i = 1
         
     | 
| 
       57 
110 
     | 
    
         
             
            gp.val.each do |v| 
         
     | 
| 
       58 
111 
     | 
    
         
             
              printf(fmt,v)
         
     | 
    
        data/bin/gpview
    CHANGED
    
    | 
         @@ -317,6 +317,7 @@ For multiple GPhys variables, 
     | 
|
| 
       317 
317 
     | 
    
         
             
            #   2015/03/10  S Takehiro (History removes from the output of --help option)
         
     | 
| 
       318 
318 
     | 
    
         
             
            #   2015/09/05  Y O Takahashi && S Takehiro (add option --delay)
         
     | 
| 
       319 
319 
     | 
    
         
             
            #   2015/09/06  Y O Takahashi && S Takehiro (defalt wsn number changed)
         
     | 
| 
      
 320 
     | 
    
         
            +
            #   2017/06/07  S Takehiro (int option bug fix)
         
     | 
| 
       320 
321 
     | 
    
         
             
            #
         
     | 
| 
       321 
322 
     | 
    
         
             
            #################################################
         
     | 
| 
       322 
323 
     | 
    
         
             
            require "getoptlong"        # for option_parse
         
     | 
| 
         @@ -397,13 +398,23 @@ def draw_setup 
     | 
|
| 
       397 
398 
     | 
    
         
             
              min_range,  max_range  = __split_range($OPT_range)
         
     | 
| 
       398 
399 
     | 
    
         
             
              min_crange, max_crange = __split_range($OPT_crange)
         
     | 
| 
       399 
400 
     | 
    
         
             
              min_srange, max_srange = __split_range($OPT_srange)
         
     | 
| 
      
 401 
     | 
    
         
            +
              if ( $OPT_cint   || $OPT_interval || $OPT_int )
         
     | 
| 
      
 402 
     | 
    
         
            +
                cont_interval = ( $OPT_cint   || $OPT_interval || $OPT_int ).to_f
         
     | 
| 
      
 403 
     | 
    
         
            +
              else
         
     | 
| 
      
 404 
     | 
    
         
            +
                cont_interval = nil
         
     | 
| 
      
 405 
     | 
    
         
            +
              end
         
     | 
| 
      
 406 
     | 
    
         
            +
              if ( $OPT_sint   || $OPT_interval || $OPT_int )
         
     | 
| 
      
 407 
     | 
    
         
            +
                tone_interval =  ( $OPT_sint   || $OPT_interval || $OPT_int ).to_f
         
     | 
| 
      
 408 
     | 
    
         
            +
              else
         
     | 
| 
      
 409 
     | 
    
         
            +
                tone_interval = nil
         
     | 
| 
      
 410 
     | 
    
         
            +
              end
         
     | 
| 
       400 
411 
     | 
    
         
             
              GGraph.set_linear_contour_options(
         
     | 
| 
       401 
     | 
    
         
            -
                                                'int' =>  
     | 
| 
      
 412 
     | 
    
         
            +
                                                'int' => cont_interval, 
         
     | 
| 
       402 
413 
     | 
    
         
             
                                                'min' => ( min_crange  || min_range ),
         
     | 
| 
       403 
414 
     | 
    
         
             
                                                'max' => ( max_crange  || max_range )
         
     | 
| 
       404 
415 
     | 
    
         
             
                                                )
         
     | 
| 
       405 
416 
     | 
    
         
             
              GGraph.set_linear_tone_options(
         
     | 
| 
       406 
     | 
    
         
            -
                                                'int' =>  
     | 
| 
      
 417 
     | 
    
         
            +
                                                'int' => tone_interval,
         
     | 
| 
       407 
418 
     | 
    
         
             
                                                'min' => ( min_srange  || min_range ),
         
     | 
| 
       408 
419 
     | 
    
         
             
                                                'max' => ( max_srange  || max_range )
         
     | 
| 
       409 
420 
     | 
    
         
             
                                             )
         
     | 
    
        data/ext/numru/gphys/dim_op.c
    CHANGED
    
    | 
         @@ -31,6 +31,9 @@ enum bc_type { 
     | 
|
| 
       31 
31 
     | 
    
         
             
            #define ID3z(i,j,k) ((i) + (j)*n0 + (k)*n0*nz)
         
     | 
| 
       32 
32 
     | 
    
         
             
            #define ID3c(i,j,k) ((i) + (j)*n0 + (k)*n0*nc)
         
     | 
| 
       33 
33 
     | 
    
         
             
            #define ID2(i,j) ((i) + (j)*n0)
         
     | 
| 
      
 34 
     | 
    
         
            +
            #define ID5(i,j,k,l,m) ((i) + (j)*ni + (k)*ni*nd1 + (l)*ni*nd1*no1 + (m)*ni*nd1*no1*nd2)
         
     | 
| 
      
 35 
     | 
    
         
            +
            #define NMax(i,j) ( (i) >= (j) ? (i) : (j) )
         
     | 
| 
      
 36 
     | 
    
         
            +
            #define NMin(i,j) ( (i) <= (j) ? (i) : (j) )
         
     | 
| 
       34 
37 
     | 
    
         | 
| 
       35 
38 
     | 
    
         
             
            static int
         
     | 
| 
       36 
39 
     | 
    
         
             
            convol_result_length(na_shape_t n1, na_shape_t wlen, int ibc)
         
     | 
| 
         @@ -410,6 +413,215 @@ running_mean(int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       410 
413 
     | 
    
         
             
                return vo;
         
     | 
| 
       411 
414 
     | 
    
         
             
            }
         
     | 
| 
       412 
415 
     | 
    
         | 
| 
      
 416 
     | 
    
         
            +
            /* Running tile (2D) mean for data with missing.
         
     | 
| 
      
 417 
     | 
    
         
            +
               (if no missing, you can just run the 1D running mean twice.)
         
     | 
| 
      
 418 
     | 
    
         
            +
             */
         
     | 
| 
      
 419 
     | 
    
         
            +
            static void 
         
     | 
| 
      
 420 
     | 
    
         
            +
            running_mean_2D_miss(zi, ni,nd1,no1,nd2,no2,
         
     | 
| 
      
 421 
     | 
    
         
            +
                                 with_w1, w1, wlen1, ibc1, with_w2, w2, wlen2, ibc2,
         
     | 
| 
      
 422 
     | 
    
         
            +
                                 zmiss, nminvalid, zo)
         
     | 
| 
      
 423 
     | 
    
         
            +
                // IN
         
     | 
| 
      
 424 
     | 
    
         
            +
                double *zi;
         
     | 
| 
      
 425 
     | 
    
         
            +
                na_shape_t ni,nd1,no1,nd2,no2;  /* treated as 5D array (inner => outer) */
         
     | 
| 
      
 426 
     | 
    
         
            +
                int with_w1, with_w2;
         
     | 
| 
      
 427 
     | 
    
         
            +
                double *w1, *w2;
         
     | 
| 
      
 428 
     | 
    
         
            +
                na_shape_t wlen1, wlen2;
         
     | 
| 
      
 429 
     | 
    
         
            +
                int ibc1, ibc2;
         
     | 
| 
      
 430 
     | 
    
         
            +
                double zmiss;
         
     | 
| 
      
 431 
     | 
    
         
            +
                int nminvalid;
         
     | 
| 
      
 432 
     | 
    
         
            +
                // OUT
         
     | 
| 
      
 433 
     | 
    
         
            +
                double *zo;   //  must have been set to 0 everywhere
         
     | 
| 
      
 434 
     | 
    
         
            +
            {
         
     | 
| 
      
 435 
     | 
    
         
            +
                na_shape_t i,j1,k1,j2,k2,m1,m2, jj1, jj2;
         
     | 
| 
      
 436 
     | 
    
         
            +
                na_shape_t mstr1, mend1, mstr2, mend2;
         
     | 
| 
      
 437 
     | 
    
         
            +
                na_shape_t wlhs1, wlhs2;
         
     | 
| 
      
 438 
     | 
    
         
            +
                double wsum, wv;
         
     | 
| 
      
 439 
     | 
    
         
            +
                int nm;
         
     | 
| 
      
 440 
     | 
    
         
            +
             
     | 
| 
      
 441 
     | 
    
         
            +
                wlhs1 = (wlen1 - 1)/2;  // e.g. 7->3, 6->2
         
     | 
| 
      
 442 
     | 
    
         
            +
                wlhs2 = (wlen2 - 1)/2;  // e.g. 7->3, 6->2
         
     | 
| 
      
 443 
     | 
    
         
            +
             
     | 
| 
      
 444 
     | 
    
         
            +
                // < weighted running mean >
         
     | 
| 
      
 445 
     | 
    
         
            +
             
     | 
| 
      
 446 
     | 
    
         
            +
                if ( !( ibc1 == BC_SIMPLE || ibc1 == BC_CYCLIC ) ) {
         
     | 
| 
      
 447 
     | 
    
         
            +
            	rb_raise(rb_eArgError,"Undefined boundary condision(1st D) (%d)", ibc1);
         
     | 
| 
      
 448 
     | 
    
         
            +
                }
         
     | 
| 
      
 449 
     | 
    
         
            +
                if ( !( ibc2 == BC_SIMPLE || ibc2 == BC_CYCLIC ) ) {
         
     | 
| 
      
 450 
     | 
    
         
            +
            	rb_raise(rb_eArgError,"Undefined boundary condision(2nd D) (%d)", ibc2);
         
     | 
| 
      
 451 
     | 
    
         
            +
                }
         
     | 
| 
      
 452 
     | 
    
         
            +
             
     | 
| 
      
 453 
     | 
    
         
            +
                for (k2=0; k2<no2; k2++) {
         
     | 
| 
      
 454 
     | 
    
         
            +
                    for (j2=0; j2<nd2; j2++) {
         
     | 
| 
      
 455 
     | 
    
         
            +
                        for (k1=0; k1<no1; k1++) {
         
     | 
| 
      
 456 
     | 
    
         
            +
                            for (j1=0; j1<nd1; j1++) {
         
     | 
| 
      
 457 
     | 
    
         
            +
                                for (i=0; i<ni; i++) {
         
     | 
| 
      
 458 
     | 
    
         
            +
                                    wsum = 0.0;
         
     | 
| 
      
 459 
     | 
    
         
            +
                                    nm = 0;
         
     | 
| 
      
 460 
     | 
    
         
            +
                                    if (ibc1==BC_SIMPLE) {
         
     | 
| 
      
 461 
     | 
    
         
            +
                                        mstr1 = NMax(0,wlhs1-j1);
         
     | 
| 
      
 462 
     | 
    
         
            +
                                        mend1 = NMin(wlen1,nd1+wlhs1-j1);
         
     | 
| 
      
 463 
     | 
    
         
            +
                                    } else {  /* BC_CYCLIC */
         
     | 
| 
      
 464 
     | 
    
         
            +
                                        mstr1 = 0;
         
     | 
| 
      
 465 
     | 
    
         
            +
                                        mend1 = wlen1;
         
     | 
| 
      
 466 
     | 
    
         
            +
                                    }
         
     | 
| 
      
 467 
     | 
    
         
            +
                                    if (ibc2==BC_SIMPLE) {
         
     | 
| 
      
 468 
     | 
    
         
            +
                                        mstr2 = NMax(0,wlhs2-j2);
         
     | 
| 
      
 469 
     | 
    
         
            +
                                        mend2 = NMin(wlen2,nd2+wlhs2-j2);
         
     | 
| 
      
 470 
     | 
    
         
            +
                                    } else {  /* BC_CYCLIC */
         
     | 
| 
      
 471 
     | 
    
         
            +
                                        mstr2 = 0;
         
     | 
| 
      
 472 
     | 
    
         
            +
                                        mend2 = wlen2;
         
     | 
| 
      
 473 
     | 
    
         
            +
                                    }
         
     | 
| 
      
 474 
     | 
    
         
            +
                                    for (m2=mstr2; m2<mend2; m2++) {
         
     | 
| 
      
 475 
     | 
    
         
            +
                                        for (m1=mstr1; m1<mend1; m1++) {
         
     | 
| 
      
 476 
     | 
    
         
            +
                                            jj2 = j2-wlhs2+m2;
         
     | 
| 
      
 477 
     | 
    
         
            +
                                            jj1 = j1-wlhs1+m1;
         
     | 
| 
      
 478 
     | 
    
         
            +
                                            if (ibc1==BC_CYCLIC) {
         
     | 
| 
      
 479 
     | 
    
         
            +
                                                if ( jj1 < 0 ) {
         
     | 
| 
      
 480 
     | 
    
         
            +
                                                    jj1 += nd1;
         
     | 
| 
      
 481 
     | 
    
         
            +
                                                } else {
         
     | 
| 
      
 482 
     | 
    
         
            +
                                                    jj1 %= nd1;
         
     | 
| 
      
 483 
     | 
    
         
            +
                                                }
         
     | 
| 
      
 484 
     | 
    
         
            +
                                            }
         
     | 
| 
      
 485 
     | 
    
         
            +
                                            if (ibc2==BC_CYCLIC) {
         
     | 
| 
      
 486 
     | 
    
         
            +
                                                if ( jj2 < 0 ) {
         
     | 
| 
      
 487 
     | 
    
         
            +
                                                    jj2 += nd2;
         
     | 
| 
      
 488 
     | 
    
         
            +
                                                } else {
         
     | 
| 
      
 489 
     | 
    
         
            +
                                                    jj2 %= nd2;
         
     | 
| 
      
 490 
     | 
    
         
            +
                                                }
         
     | 
| 
      
 491 
     | 
    
         
            +
                                            }
         
     | 
| 
      
 492 
     | 
    
         
            +
                                            if ( zi[ID5(i,jj1,k1,jj2,k2)] != zmiss ) {
         
     | 
| 
      
 493 
     | 
    
         
            +
                                                wv = 1.0;
         
     | 
| 
      
 494 
     | 
    
         
            +
                                                if(with_w1){ wv *= w1[m1]; }
         
     | 
| 
      
 495 
     | 
    
         
            +
                                                if(with_w2){ wv *= w2[m2]; }
         
     | 
| 
      
 496 
     | 
    
         
            +
                                                zo[ID5(i,j1,k1,j2,k2)] +=
         
     | 
| 
      
 497 
     | 
    
         
            +
                                                    wv*zi[ID5(i,jj1,k1,jj2,k2)];
         
     | 
| 
      
 498 
     | 
    
         
            +
                                                wsum += wv;
         
     | 
| 
      
 499 
     | 
    
         
            +
                                                nm++;
         
     | 
| 
      
 500 
     | 
    
         
            +
                                            }
         
     | 
| 
      
 501 
     | 
    
         
            +
                                        }
         
     | 
| 
      
 502 
     | 
    
         
            +
                                    }
         
     | 
| 
      
 503 
     | 
    
         
            +
                                    if (nm >= nminvalid) {
         
     | 
| 
      
 504 
     | 
    
         
            +
                                        zo[ID5(i,j1,k1,j2,k2)] /= wsum;
         
     | 
| 
      
 505 
     | 
    
         
            +
                                    } else {
         
     | 
| 
      
 506 
     | 
    
         
            +
                                        zo[ID5(i,j1,k1,j2,k2)] = zmiss;
         
     | 
| 
      
 507 
     | 
    
         
            +
                                    }
         
     | 
| 
      
 508 
     | 
    
         
            +
                                }
         
     | 
| 
      
 509 
     | 
    
         
            +
                            }
         
     | 
| 
      
 510 
     | 
    
         
            +
                        }
         
     | 
| 
      
 511 
     | 
    
         
            +
                    }
         
     | 
| 
      
 512 
     | 
    
         
            +
                }
         
     | 
| 
      
 513 
     | 
    
         
            +
            }
         
     | 
| 
      
 514 
     | 
    
         
            +
             
     | 
| 
      
 515 
     | 
    
         
            +
            // driver of running_mean_2D_miss
         
     | 
| 
      
 516 
     | 
    
         
            +
            // (no-missing version is not needed)
         
     | 
| 
      
 517 
     | 
    
         
            +
            // 
         
     | 
| 
      
 518 
     | 
    
         
            +
            static VALUE
         
     | 
| 
      
 519 
     | 
    
         
            +
            running_mean_2D(obj, vi, dim1, len_or_wgt1, bc1, dim2, len_or_wgt2, bc2,
         
     | 
| 
      
 520 
     | 
    
         
            +
                            missv, nminvalid)
         
     | 
| 
      
 521 
     | 
    
         
            +
                VALUE obj;
         
     | 
| 
      
 522 
     | 
    
         
            +
                VALUE vi;     // input NArray
         
     | 
| 
      
 523 
     | 
    
         
            +
                VALUE dim1;   // Integer 
         
     | 
| 
      
 524 
     | 
    
         
            +
                VALUE len_or_wgt1;   // weight 1D NArray or Integer (length of uniform wgt)
         
     | 
| 
      
 525 
     | 
    
         
            +
                VALUE bc1 ;   // boundary condition (Integer)
         
     | 
| 
      
 526 
     | 
    
         
            +
                VALUE dim2;   // Integer 
         
     | 
| 
      
 527 
     | 
    
         
            +
                VALUE len_or_wgt2;   // weight 1D NArray or Integer (length of uniform wgt)
         
     | 
| 
      
 528 
     | 
    
         
            +
                VALUE bc2 ;   // boundary condition (Integer)
         
     | 
| 
      
 529 
     | 
    
         
            +
                VALUE missv;  // missing value in vi
         
     | 
| 
      
 530 
     | 
    
         
            +
                VALUE nminvalid;  // miminum count of non-missing vales
         
     | 
| 
      
 531 
     | 
    
         
            +
            {
         
     | 
| 
      
 532 
     | 
    
         
            +
                struct NARRAY *na;
         
     | 
| 
      
 533 
     | 
    
         
            +
                VALUE wgt;
         
     | 
| 
      
 534 
     | 
    
         
            +
                na_shape_t *shi, wlen1, wlen2;
         
     | 
| 
      
 535 
     | 
    
         
            +
                int with_w1, with_w2;
         
     | 
| 
      
 536 
     | 
    
         
            +
                na_shape_t ni,nd1,no1,nd2,no2;
         
     | 
| 
      
 537 
     | 
    
         
            +
                double *zi, *w1, *w2, zmiss;
         
     | 
| 
      
 538 
     | 
    
         
            +
                int d1, d2, i, rank, ibc1, ibc2;
         
     | 
| 
      
 539 
     | 
    
         
            +
                VALUE vo;
         
     | 
| 
      
 540 
     | 
    
         
            +
                na_shape_t *sho, n1o;
         
     | 
| 
      
 541 
     | 
    
         
            +
                int nminvalid_;  // miminum count of non-missing vales
         
     | 
| 
      
 542 
     | 
    
         
            +
                double *zo;
         
     | 
| 
      
 543 
     | 
    
         
            +
             
     | 
| 
      
 544 
     | 
    
         
            +
                // < process arguments >
         
     | 
| 
      
 545 
     | 
    
         
            +
             
     | 
| 
      
 546 
     | 
    
         
            +
                if (!IsNArray(vi)) { rb_raise(rb_eArgError,"1st arg must be a NArray"); }
         
     | 
| 
      
 547 
     | 
    
         
            +
                vi = na_cast_object(vi, NA_DFLOAT);
         
     | 
| 
      
 548 
     | 
    
         
            +
                rank = NA_RANK(vi);
         
     | 
| 
      
 549 
     | 
    
         
            +
                if (rank < 2) { rb_raise(rb_eArgError,"rank 1st arg must be >= 2"); }
         
     | 
| 
      
 550 
     | 
    
         
            +
                zi = NA_PTR_TYPE(vi, double *);
         
     | 
| 
      
 551 
     | 
    
         
            +
                GetNArray(vi, na);
         
     | 
| 
      
 552 
     | 
    
         
            +
                shi = na->shape;
         
     | 
| 
      
 553 
     | 
    
         
            +
             
     | 
| 
      
 554 
     | 
    
         
            +
                d1 = NUM2INT( dim1 );
         
     | 
| 
      
 555 
     | 
    
         
            +
                d2 = NUM2INT( dim2 );
         
     | 
| 
      
 556 
     | 
    
         
            +
                nminvalid_ = NUM2INT( nminvalid );
         
     | 
| 
      
 557 
     | 
    
         
            +
             
     | 
| 
      
 558 
     | 
    
         
            +
                if (d1 >= d2) { rb_raise(rb_eArgError,"d1 < d2 is required"); }
         
     | 
| 
      
 559 
     | 
    
         
            +
                if (d2 >= rank) { rb_raise(rb_eArgError,"d2 must be < rank"); }
         
     | 
| 
      
 560 
     | 
    
         
            +
             
     | 
| 
      
 561 
     | 
    
         
            +
                with_w1 = IsNArray(len_or_wgt1);
         
     | 
| 
      
 562 
     | 
    
         
            +
                if (with_w1)  {
         
     | 
| 
      
 563 
     | 
    
         
            +
                    wgt = len_or_wgt1;
         
     | 
| 
      
 564 
     | 
    
         
            +
                    if (NA_RANK(wgt)!=1){rb_raise(rb_eArgError,"wgt1 must be a 1D NArray");}
         
     | 
| 
      
 565 
     | 
    
         
            +
                    wgt = na_cast_object(wgt, NA_DFLOAT);
         
     | 
| 
      
 566 
     | 
    
         
            +
                    wlen1 = NA_TOTAL(wgt);
         
     | 
| 
      
 567 
     | 
    
         
            +
                    w1 = NA_PTR_TYPE(wgt, double *);
         
     | 
| 
      
 568 
     | 
    
         
            +
                } else {
         
     | 
| 
      
 569 
     | 
    
         
            +
                    wlen1 = NUM2INT( len_or_wgt1 );
         
     | 
| 
      
 570 
     | 
    
         
            +
                    w1 == NULL; /* will not be used */
         
     | 
| 
      
 571 
     | 
    
         
            +
                }
         
     | 
| 
      
 572 
     | 
    
         
            +
             
     | 
| 
      
 573 
     | 
    
         
            +
                with_w2 = IsNArray(len_or_wgt2);
         
     | 
| 
      
 574 
     | 
    
         
            +
                if (with_w2)  {
         
     | 
| 
      
 575 
     | 
    
         
            +
                    wgt = len_or_wgt2;
         
     | 
| 
      
 576 
     | 
    
         
            +
                    if (NA_RANK(wgt)!=1){rb_raise(rb_eArgError,"wgt2 must be a 1D NArray");}
         
     | 
| 
      
 577 
     | 
    
         
            +
                    wgt = na_cast_object(wgt, NA_DFLOAT);
         
     | 
| 
      
 578 
     | 
    
         
            +
                    wlen2 = NA_TOTAL(wgt);
         
     | 
| 
      
 579 
     | 
    
         
            +
                    w2 = NA_PTR_TYPE(wgt, double *);
         
     | 
| 
      
 580 
     | 
    
         
            +
                } else {
         
     | 
| 
      
 581 
     | 
    
         
            +
                    wlen2 = NUM2INT( len_or_wgt2 );
         
     | 
| 
      
 582 
     | 
    
         
            +
                    w2 == NULL; /* will not be used */
         
     | 
| 
      
 583 
     | 
    
         
            +
                }
         
     | 
| 
      
 584 
     | 
    
         
            +
             
     | 
| 
      
 585 
     | 
    
         
            +
                ibc1 = NUM2INT( bc1 );
         
     | 
| 
      
 586 
     | 
    
         
            +
                ibc2 = NUM2INT( bc2 );
         
     | 
| 
      
 587 
     | 
    
         
            +
             
     | 
| 
      
 588 
     | 
    
         
            +
                zmiss = NUM2DBL(missv);
         
     | 
| 
      
 589 
     | 
    
         
            +
             
     | 
| 
      
 590 
     | 
    
         
            +
             
     | 
| 
      
 591 
     | 
    
         
            +
                // < shape as 5D >
         
     | 
| 
      
 592 
     | 
    
         
            +
             
     | 
| 
      
 593 
     | 
    
         
            +
                nd1 = shi[d1];   // length of the dim to filter
         
     | 
| 
      
 594 
     | 
    
         
            +
                if (wlen1 >= nd1) {rb_raise(rb_eArgError,"filter len >= len of the dim1");}
         
     | 
| 
      
 595 
     | 
    
         
            +
                nd2 = shi[d2];   // length of the dim to filter
         
     | 
| 
      
 596 
     | 
    
         
            +
                if (wlen2 >= nd1) {rb_raise(rb_eArgError,"filter len >= len of the dim2");}
         
     | 
| 
      
 597 
     | 
    
         
            +
             
     | 
| 
      
 598 
     | 
    
         
            +
                ni = no1 = no2 = 1;
         
     | 
| 
      
 599 
     | 
    
         
            +
                for (i=0; i<d1; i++) {
         
     | 
| 
      
 600 
     | 
    
         
            +
            	ni *= shi[i];   // total lengths of dims before d
         
     | 
| 
      
 601 
     | 
    
         
            +
                }
         
     | 
| 
      
 602 
     | 
    
         
            +
                for (i=d1+1; i<d2; i++) {
         
     | 
| 
      
 603 
     | 
    
         
            +
            	no1 *= shi[i];   // total lengths of dims after d
         
     | 
| 
      
 604 
     | 
    
         
            +
                }
         
     | 
| 
      
 605 
     | 
    
         
            +
                for (i=d2+1; i<rank; i++) {
         
     | 
| 
      
 606 
     | 
    
         
            +
            	no2 *= shi[i];   // total lengths of dims after d
         
     | 
| 
      
 607 
     | 
    
         
            +
                }
         
     | 
| 
      
 608 
     | 
    
         
            +
             
     | 
| 
      
 609 
     | 
    
         
            +
                // < initialize the NArray to ruturn >
         
     | 
| 
      
 610 
     | 
    
         
            +
             
     | 
| 
      
 611 
     | 
    
         
            +
                sho = shi; // Limited to shape conserved cases
         
     | 
| 
      
 612 
     | 
    
         
            +
                vo = na_make_object(NA_DFLOAT, rank, sho, cNArray);
         
     | 
| 
      
 613 
     | 
    
         
            +
                GetNArray(vo, na);
         
     | 
| 
      
 614 
     | 
    
         
            +
                na_clear_data(na);
         
     | 
| 
      
 615 
     | 
    
         
            +
                zo = NA_PTR_TYPE(vo, double *);
         
     | 
| 
      
 616 
     | 
    
         
            +
             
     | 
| 
      
 617 
     | 
    
         
            +
                // < do the job >
         
     | 
| 
      
 618 
     | 
    
         
            +
                running_mean_2D_miss(zi, ni,nd1,no1,nd2,no2,
         
     | 
| 
      
 619 
     | 
    
         
            +
                                     with_w1, w1, wlen1, ibc1, with_w2, w2, wlen2, ibc2,
         
     | 
| 
      
 620 
     | 
    
         
            +
                                     zmiss, nminvalid_, zo);
         
     | 
| 
      
 621 
     | 
    
         
            +
             
     | 
| 
      
 622 
     | 
    
         
            +
                return vo;
         
     | 
| 
      
 623 
     | 
    
         
            +
            }
         
     | 
| 
      
 624 
     | 
    
         
            +
             
     | 
| 
       413 
625 
     | 
    
         
             
            static void 
         
     | 
| 
       414 
626 
     | 
    
         
             
            bin_mean_nomiss(zi,n0,n1,n2, len, zo)
         
     | 
| 
       415 
627 
     | 
    
         
             
                // IN
         
     | 
| 
         @@ -1209,10 +1421,15 @@ init_gphys_dim_op() 
     | 
|
| 
       1209 
1421 
     | 
    
         | 
| 
       1210 
1422 
     | 
    
         
             
                cGPhys = rb_define_class_under(mNumRu, "GPhys", rb_cObject);
         
     | 
| 
       1211 
1423 
     | 
    
         
             
                rb_define_private_method(cGPhys, "c_running_mean", running_mean, -1);
         
     | 
| 
      
 1424 
     | 
    
         
            +
                rb_define_private_method(cGPhys, "c_running_mean_2D", running_mean_2D, 9);
         
     | 
| 
      
 1425 
     | 
    
         
            +
                rb_define_singleton_method(cGPhys, "c_running_mean", running_mean, -1);
         
     | 
| 
      
 1426 
     | 
    
         
            +
                rb_define_singleton_method(cGPhys, "c_running_mean_2D", running_mean_2D, 9);
         
     | 
| 
       1212 
1427 
     | 
    
         | 
| 
       1213 
1428 
     | 
    
         
             
                cVArray = rb_define_class_under(mNumRu, "VArray", rb_cObject);
         
     | 
| 
       1214 
1429 
     | 
    
         
             
                rb_define_private_method(cVArray, "c_bin_mean", bin_mean, -1);
         
     | 
| 
       1215 
1430 
     | 
    
         
             
                rb_define_private_method(cVArray, "c_bin_sum", bin_sum, -1);
         
     | 
| 
      
 1431 
     | 
    
         
            +
                rb_define_singleton_method(cGPhys, "c_bin_mean", bin_mean, -1);
         
     | 
| 
      
 1432 
     | 
    
         
            +
                rb_define_singleton_method(cGPhys, "c_bin_sum", bin_sum, -1);
         
     | 
| 
       1216 
1433 
     | 
    
         | 
| 
       1217 
1434 
     | 
    
         
             
                rb_define_private_method(cVArray, "c_cum_sum", cum_sum, 2);
         
     | 
| 
       1218 
1435 
     | 
    
         
             
                rb_define_singleton_method(cGPhys, "c_cell_integ_irreg", 
         
     | 
    
        data/gphys.gemspec
    CHANGED
    
    | 
         @@ -26,7 +26,7 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       26 
26 
     | 
    
         
             
              spec.test_files    = spec.files.grep(%r{^(test|test_old|sample|testdata)/})
         
     | 
| 
       27 
27 
     | 
    
         
             
              spec.extensions << "ext/numru/gphys/extconf.rb"
         
     | 
| 
       28 
28 
     | 
    
         | 
| 
       29 
     | 
    
         
            -
              spec.post_install_message = "Thanks for installing! You can add extra libraries (i.e., ruby-lapack, rb- 
     | 
| 
      
 29 
     | 
    
         
            +
              spec.post_install_message = "Thanks for installing! You can add extra libraries (i.e., ruby-lapack, rb-gsl) to enjoy powerful calculating and handling datasets."
         
     | 
| 
       30 
30 
     | 
    
         | 
| 
       31 
31 
     | 
    
         
             
              spec.required_ruby_version = Gem::Requirement.new(">= 1.8")
         
     | 
| 
       32 
32 
     | 
    
         | 
| 
         @@ -37,8 +37,7 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       37 
37 
     | 
    
         
             
              spec.add_runtime_dependency(%q<ruby-netcdf>, [">= 0.6.6"])
         
     | 
| 
       38 
38 
     | 
    
         
             
              spec.add_runtime_dependency(%q<ruby-dcl>, [">= 1.6.1"])
         
     | 
| 
       39 
39 
     | 
    
         
             
              spec.add_runtime_dependency(%q<ruby-fftw3>, [">= 0.3"])
         
     | 
| 
       40 
     | 
    
         
            -
              #spec.add_runtime_dependency(%q<gsl>, [">= 1.14"])
         
     | 
| 
       41 
     | 
    
         
            -
              spec.add_runtime_dependency(%q<rb-gsl>, [">= 1.14"])
         
     | 
| 
      
 40 
     | 
    
         
            +
              #spec.add_runtime_dependency(%q<rb-gsl>, [">= 1.14"])
         
     | 
| 
       42 
41 
     | 
    
         
             
              #spec.add_runtime_dependency(%q<ruby-lapack>, [">= 1.5"])
         
     | 
| 
       43 
42 
     | 
    
         
             
              #spec.add_development_dependency(%q<rb-grib>, [">= 0.2.0"])
         
     | 
| 
       44 
43 
     | 
    
         
             
            end
         
     | 
    
        data/lib/numru/dclext.rb
    CHANGED
    
    | 
         @@ -927,6 +927,11 @@ module NumRu 
     | 
|
| 
       927 
927 
     | 
    
         
             
                # * inf_max  false: no extension, true: extend to +infty, nil: same
         
     | 
| 
       928 
928 
     | 
    
         
             
                #   but for max is replaced by +infty, rather than extending 
         
     | 
| 
       929 
929 
     | 
    
         
             
                def ue_linear_levels(min, max, dx, lbound=false, inf_min=false, inf_max=false)
         
     | 
| 
      
 930 
     | 
    
         
            +
             
     | 
| 
      
 931 
     | 
    
         
            +
                  if !min || ( min.is_a?(Float) && min.nan? )|| !max || ( max.is_a?(Float) && max.nan? )
         
     | 
| 
      
 932 
     | 
    
         
            +
                    return [0.0]
         
     | 
| 
      
 933 
     | 
    
         
            +
                  end
         
     | 
| 
      
 934 
     | 
    
         
            +
             
     | 
| 
       930 
935 
     | 
    
         
             
                  if dx > 0
         
     | 
| 
       931 
936 
     | 
    
         
             
                    dz = dx.to_f
         
     | 
| 
       932 
937 
     | 
    
         
             
                  else
         
     | 
| 
         @@ -1219,7 +1224,8 @@ module NumRu 
     | 
|
| 
       1219 
1224 
     | 
    
         
             
                    # draw frame, tick lines, and labels
         
     | 
| 
       1220 
1225 
     | 
    
         
             
                    if fmt
         
     | 
| 
       1221 
1226 
     | 
    
         
             
                      cfmt_bk = DCL::uyqfmt
         
     | 
| 
       1222 
     | 
    
         
            -
                      DCL::uysfmt(fmt)
         
     | 
| 
      
 1227 
     | 
    
         
            +
                      #DCL::uysfmt(fmt)
         
     | 
| 
      
 1228 
     | 
    
         
            +
                      DCL::uspset('cyfmt',fmt)
         
     | 
| 
       1223 
1229 
     | 
    
         
             
                    end
         
     | 
| 
       1224 
1230 
     | 
    
         | 
| 
       1225 
1231 
     | 
    
         
             
                    DCL::usyaxs(axside)
         
     | 
| 
         @@ -1232,14 +1238,16 @@ module NumRu 
     | 
|
| 
       1232 
1238 
     | 
    
         
             
                    DCL::uxaxdv("b",1,index) if !inf0
         
     | 
| 
       1233 
1239 
     | 
    
         
             
                    DCL::uxaxdv("t",1,index) if !inf1
         
     | 
| 
       1234 
1240 
     | 
    
         | 
| 
       1235 
     | 
    
         
            -
                    DCL::uysfmt(cfmt_bk) if fmt
         
     | 
| 
      
 1241 
     | 
    
         
            +
                    #DCL::uysfmt(cfmt_bk) if fmt
         
     | 
| 
      
 1242 
     | 
    
         
            +
                    DCL::uspset('cyfmt',cfmt_bk) if fmt
         
     | 
| 
       1236 
1243 
     | 
    
         | 
| 
       1237 
1244 
     | 
    
         
             
                  else  ## landscape ##
         
     | 
| 
       1238 
1245 
     | 
    
         | 
| 
       1239 
1246 
     | 
    
         
             
                    # draw frame, tick lines, and labels
         
     | 
| 
       1240 
1247 
     | 
    
         
             
                    if fmt
         
     | 
| 
       1241 
1248 
     | 
    
         
             
                      cfmt_bk = DCL::uxqfmt
         
     | 
| 
       1242 
     | 
    
         
            -
                      DCL::uxsfmt(fmt)
         
     | 
| 
      
 1249 
     | 
    
         
            +
                      #DCL::uxsfmt(fmt)
         
     | 
| 
      
 1250 
     | 
    
         
            +
                      DCL::uspset('cxfmt',fmt)
         
     | 
| 
       1243 
1251 
     | 
    
         
             
                    end
         
     | 
| 
       1244 
1252 
     | 
    
         | 
| 
       1245 
1253 
     | 
    
         
             
                    DCL::usxaxs(axside)
         
     | 
| 
         @@ -1252,7 +1260,8 @@ module NumRu 
     | 
|
| 
       1252 
1260 
     | 
    
         
             
                    DCL::uyaxdv("l",1,index) if !inf0
         
     | 
| 
       1253 
1261 
     | 
    
         
             
                    DCL::uyaxdv("r",1,index) if !inf1
         
     | 
| 
       1254 
1262 
     | 
    
         | 
| 
       1255 
     | 
    
         
            -
                    DCL::uxsfmt(cfmt_bk) if fmt
         
     | 
| 
      
 1263 
     | 
    
         
            +
                    #DCL::uxsfmt(cfmt_bk) if fmt
         
     | 
| 
      
 1264 
     | 
    
         
            +
                    DCL::uspset('cxfmt',cfmt_bk) if fmt
         
     | 
| 
       1256 
1265 
     | 
    
         
             
                  end
         
     | 
| 
       1257 
1266 
     | 
    
         | 
| 
       1258 
1267 
     | 
    
         
             
                  DCLExt.color_bar_title_units(vxmin, vxmax, vymin, vymax, portrait, voff, 
         
     | 
    
        data/lib/numru/ggraph.rb
    CHANGED
    
    | 
         @@ -47,7 +47,7 @@ require "numru/dclext" 
     | 
|
| 
       47 
47 
     | 
    
         
             
              * ((<next_map>))
         
     | 
| 
       48 
48 
     | 
    
         
             
                Set the option values effective only in the next call of ((<map>))
         
     | 
| 
       49 
49 
     | 
    
         
             
              * ((<line>))
         
     | 
| 
       50 
     | 
    
         
            -
                Plot a poly-line by selecting the first dimension 
     | 
| 
      
 50 
     | 
    
         
            +
                Plot a poly-line by selecting the first dimension
         
     | 
| 
       51 
51 
     | 
    
         
             
                if (({gphys})) is more than 2D.
         
     | 
| 
       52 
52 
     | 
    
         
             
              * ((<set_line>))
         
     | 
| 
       53 
53 
     | 
    
         
             
                Change the default option values for ((<line>)).
         
     | 
| 
         @@ -66,7 +66,7 @@ require "numru/dclext" 
     | 
|
| 
       66 
66 
     | 
    
         
             
              * ((<tone_and_contour>))
         
     | 
| 
       67 
67 
     | 
    
         
             
                Calls ((<tone>)) and ((<contour>)) successively. 
         
     | 
| 
       68 
68 
     | 
    
         
             
              * ((<contour>))
         
     | 
| 
       69 
     | 
    
         
            -
                Contour plot by selecting the first 2 dimensions 
     | 
| 
      
 69 
     | 
    
         
            +
                Contour plot by selecting the first 2 dimensions
         
     | 
| 
       70 
70 
     | 
    
         
             
                if (({gphys})) is more than 3D.
         
     | 
| 
       71 
71 
     | 
    
         
             
              * ((<set_contour>))
         
     | 
| 
       72 
72 
     | 
    
         
             
                Set options for contour in general.
         
     | 
| 
         @@ -84,7 +84,7 @@ require "numru/dclext" 
     | 
|
| 
       84 
84 
     | 
    
         
             
                is effective only for the next call of ((<contour>)).
         
     | 
| 
       85 
85 
     | 
    
         
             
              * ((<tone>))
         
     | 
| 
       86 
86 
     | 
    
         
             
                Color tone or shading by selecting the first 2 dimensions
         
     | 
| 
       87 
     | 
    
         
            -
                 
     | 
| 
      
 87 
     | 
    
         
            +
                if (({gphys})) is more than 3D.
         
     | 
| 
       88 
88 
     | 
    
         
             
              * ((<color_bar >)) Color bar
         
     | 
| 
       89 
89 
     | 
    
         
             
              * ((<set_tone_levels>))
         
     | 
| 
       90 
90 
     | 
    
         
             
                Set tone levels for ((<tone>)) explicitly by values.
         
     | 
| 
         @@ -511,7 +511,7 @@ library if you like. 
     | 
|
| 
       511 
511 
     | 
    
         
             
                * see ((<map>)).
         
     | 
| 
       512 
512 
     | 
    
         | 
| 
       513 
513 
     | 
    
         
             
            ---line(gphys, newframe=true, options=nil)
         
     | 
| 
       514 
     | 
    
         
            -
                Plot a poly-line by selecting the first dimension 
     | 
| 
      
 514 
     | 
    
         
            +
                Plot a poly-line by selecting the first dimension
         
     | 
| 
       515 
515 
     | 
    
         
             
                if (({gphys})) is more than 2D.
         
     | 
| 
       516 
516 
     | 
    
         | 
| 
       517 
517 
     | 
    
         
             
                ARGUMENTS
         
     | 
| 
         @@ -742,7 +742,7 @@ library if you like. 
     | 
|
| 
       742 
742 
     | 
    
         
             
                * Requires numru-misc-0.0.6 or later.
         
     | 
| 
       743 
743 
     | 
    
         | 
| 
       744 
744 
     | 
    
         
             
            ---contour(gphys, newframe=true, options=nil)
         
     | 
| 
       745 
     | 
    
         
            -
                Contour plot by selecting the first 2 dimensions 
     | 
| 
      
 745 
     | 
    
         
            +
                Contour plot by selecting the first 2 dimensions
         
     | 
| 
       746 
746 
     | 
    
         
             
                if (({gphys})) is more than 3D.
         
     | 
| 
       747 
747 
     | 
    
         | 
| 
       748 
748 
     | 
    
         
             
                Contour levels are determined as follows:
         
     | 
| 
         @@ -858,7 +858,7 @@ library if you like. 
     | 
|
| 
       858 
858 
     | 
    
         | 
| 
       859 
859 
     | 
    
         
             
            ---tone(gphys, newframe=true, options=nil)
         
     | 
| 
       860 
860 
     | 
    
         
             
                Color tone or shading by selecting the first 2 dimensions
         
     | 
| 
       861 
     | 
    
         
            -
                 
     | 
| 
      
 861 
     | 
    
         
            +
                if (({gphys})) is more than 3D.
         
     | 
| 
       862 
862 
     | 
    
         | 
| 
       863 
863 
     | 
    
         
             
                Tone levels are determined as follows:
         
     | 
| 
       864 
864 
     | 
    
         
             
                * Tone levels are set in this method if not set by
         
     | 
| 
         @@ -1905,7 +1905,7 @@ module NumRu 
     | 
|
| 
       1905 
1905 
     | 
    
         
             
                  ['mean', nil, 'An Array to be pathed to the GPhys#mean method to take mean of the data before plotting (order applied: slice -> cut -> mean)']
         
     | 
| 
       1906 
1906 
     | 
    
         
             
                )
         
     | 
| 
       1907 
1907 
     | 
    
         | 
| 
       1908 
     | 
    
         
            -
                def data_prep_2D(gps, newframe, opts)
         
     | 
| 
      
 1908 
     | 
    
         
            +
                def data_prep_2D(gps, newframe, opts, len1ok: false)
         
     | 
| 
       1909 
1909 
     | 
    
         
             
                  opend_here = []
         
     | 
| 
       1910 
1910 
     | 
    
         
             
                  gps.collect!{|gp| 
         
     | 
| 
       1911 
1911 
     | 
    
         
             
                    if gp.is_a?(String)
         
     | 
| 
         @@ -1921,7 +1921,11 @@ module NumRu 
     | 
|
| 
       1921 
1921 
     | 
    
         
             
                      end
         
     | 
| 
       1922 
1922 
     | 
    
         
             
                    end
         
     | 
| 
       1923 
1923 
     | 
    
         
             
                    gp = gp.mean(*opts['mean']) if opts['mean']
         
     | 
| 
       1924 
     | 
    
         
            -
                     
     | 
| 
      
 1924 
     | 
    
         
            +
                    if len1ok
         
     | 
| 
      
 1925 
     | 
    
         
            +
                      gp = gp.first2D
         
     | 
| 
      
 1926 
     | 
    
         
            +
                    else
         
     | 
| 
      
 1927 
     | 
    
         
            +
                      gp = gp.first2Dreally
         
     | 
| 
      
 1928 
     | 
    
         
            +
                    end
         
     | 
| 
       1925 
1929 
     | 
    
         
             
                    gp = gp.transpose(1,0) if opts['transpose'] || opts['exchange']
         
     | 
| 
       1926 
1930 
     | 
    
         
             
                    if opts['xintv'] || opts['yintv']
         
     | 
| 
       1927 
1931 
     | 
    
         
             
                      gp = gp.copy
         
     | 
| 
         @@ -1981,7 +1985,7 @@ module NumRu 
     | 
|
| 
       1981 
1985 
     | 
    
         
             
                  [xd, yd, closer, *gps]
         
     | 
| 
       1982 
1986 
     | 
    
         
             
                end
         
     | 
| 
       1983 
1987 
     | 
    
         | 
| 
       1984 
     | 
    
         
            -
                def data_prep_1D(gphys, opts)
         
     | 
| 
      
 1988 
     | 
    
         
            +
                def data_prep_1D(gphys, opts, len1ok: false)
         
     | 
| 
       1985 
1989 
     | 
    
         
             
                  gp = gphys
         
     | 
| 
       1986 
1990 
     | 
    
         
             
                  if gp.is_a?(String)
         
     | 
| 
       1987 
1991 
     | 
    
         
             
                    gp = GPhys::IO.str2gphys(gp) 
         
     | 
| 
         @@ -1998,7 +2002,11 @@ module NumRu 
     | 
|
| 
       1998 
2002 
     | 
    
         
             
                    end
         
     | 
| 
       1999 
2003 
     | 
    
         
             
                  end
         
     | 
| 
       2000 
2004 
     | 
    
         
             
                  gp = gp.mean(*opts['mean']) if opts['mean']
         
     | 
| 
       2001 
     | 
    
         
            -
                   
     | 
| 
      
 2005 
     | 
    
         
            +
                  if len1ok
         
     | 
| 
      
 2006 
     | 
    
         
            +
                    gp = gp.first1D
         
     | 
| 
      
 2007 
     | 
    
         
            +
                  else
         
     | 
| 
      
 2008 
     | 
    
         
            +
                    gp = gp.first1Dreally
         
     | 
| 
      
 2009 
     | 
    
         
            +
                  end
         
     | 
| 
       2002 
2010 
     | 
    
         
             
                  window = ( @@next_fig['window'] if @@next_fig ) || @@fig['window']
         
     | 
| 
       2003 
2011 
     | 
    
         
             
                  window = ( window ? window.dup : [nil, nil, nil, nil])
         
     | 
| 
       2004 
2012 
     | 
    
         
             
                  max = opts['max']; min = opts['min']
         
     | 
| 
         @@ -2016,7 +2024,7 @@ module NumRu 
     | 
|
| 
       2016 
2024 
     | 
    
         
             
                  [xd, yd, closer, gp, window]
         
     | 
| 
       2017 
2025 
     | 
    
         
             
                end        
         
     | 
| 
       2018 
2026 
     | 
    
         | 
| 
       2019 
     | 
    
         
            -
                def data_prep_1D2(fx, fy, opts)
         
     | 
| 
      
 2027 
     | 
    
         
            +
                def data_prep_1D2(fx, fy, opts, len1ok: false)
         
     | 
| 
       2020 
2028 
     | 
    
         
             
                  gpx = fx
         
     | 
| 
       2021 
2029 
     | 
    
         
             
                  gpy = fy
         
     | 
| 
       2022 
2030 
     | 
    
         
             
                  to_close = Array.new
         
     | 
| 
         @@ -2043,18 +2051,26 @@ module NumRu 
     | 
|
| 
       2043 
2051 
     | 
    
         
             
                    end
         
     | 
| 
       2044 
2052 
     | 
    
         
             
                  end
         
     | 
| 
       2045 
2053 
     | 
    
         
             
                  gpx = gpx.mean(*opts['mean']) if opts['mean']
         
     | 
| 
       2046 
     | 
    
         
            -
                   
     | 
| 
      
 2054 
     | 
    
         
            +
                  if len1ok
         
     | 
| 
      
 2055 
     | 
    
         
            +
                    gpx = gpx.first1D
         
     | 
| 
      
 2056 
     | 
    
         
            +
                  else
         
     | 
| 
      
 2057 
     | 
    
         
            +
                    gpx = gpx.first1Dreally
         
     | 
| 
      
 2058 
     | 
    
         
            +
                  end
         
     | 
| 
       2047 
2059 
     | 
    
         | 
| 
       2048 
2060 
     | 
    
         
             
                  gpy = gpy[*opts['slice']] if opts['slice']
         
     | 
| 
       2049 
2061 
     | 
    
         
             
                  if (cut = opts['cut'])  # substitution, not ==
         
     | 
| 
       2050 
2062 
     | 
    
         
             
                    if cut.is_a?(Array) 
         
     | 
| 
       2051 
2063 
     | 
    
         
             
                      gpy = gpy.cut(*cut) 
         
     | 
| 
       2052 
2064 
     | 
    
         
             
                    else
         
     | 
| 
       2053 
     | 
    
         
            -
                      gpy = gpy.cut(cut) 
     | 
| 
      
 2065 
     | 
    
         
            +
                      gpy = gpy.cut(cut)
         
     | 
| 
       2054 
2066 
     | 
    
         
             
                    end
         
     | 
| 
       2055 
2067 
     | 
    
         
             
                  end
         
     | 
| 
       2056 
2068 
     | 
    
         
             
                  gpy = gpy.mean(*opts['mean']) if opts['mean']
         
     | 
| 
       2057 
     | 
    
         
            -
                   
     | 
| 
      
 2069 
     | 
    
         
            +
                  if len1ok
         
     | 
| 
      
 2070 
     | 
    
         
            +
                    gpy = gpy.first1D
         
     | 
| 
      
 2071 
     | 
    
         
            +
                  else
         
     | 
| 
      
 2072 
     | 
    
         
            +
                    gpy = gpy.first1Dreally
         
     | 
| 
      
 2073 
     | 
    
         
            +
                  end
         
     | 
| 
       2058 
2074 
     | 
    
         | 
| 
       2059 
2075 
     | 
    
         
             
                  [gpx, gpy, closer]
         
     | 
| 
       2060 
2076 
     | 
    
         
             
                end        
         
     | 
| 
         @@ -2256,7 +2272,7 @@ module NumRu 
     | 
|
| 
       2256 
2272 
     | 
    
         
             
                    @@next_mark = nil
         
     | 
| 
       2257 
2273 
     | 
    
         
             
                  end
         
     | 
| 
       2258 
2274 
     | 
    
         
             
                  opts = @@mark_options.interpret(options)
         
     | 
| 
       2259 
     | 
    
         
            -
                  x, y, closer, gp, window = data_prep_1D(gphys, opts)
         
     | 
| 
      
 2275 
     | 
    
         
            +
                  x, y, closer, gp, window = data_prep_1D(gphys, opts, len1ok: true)
         
     | 
| 
       2260 
2276 
     | 
    
         
             
                  if newframe
         
     | 
| 
       2261 
2277 
     | 
    
         
             
                    fig(x, y, {'window'=>window})
         
     | 
| 
       2262 
2278 
     | 
    
         
             
                    axes_or_map_and_ttl(gp, opts, x, y)
         
     | 
| 
         @@ -3230,6 +3246,8 @@ module NumRu 
     | 
|
| 
       3230 
3246 
     | 
    
         
             
                  ['x_given_y', false, 'If false (default), regress y for given x. If true, x given y.'],
         
     | 
| 
       3231 
3247 
     | 
    
         
             
                  ['annot_slope', nil, 'Whether to show the slope on the right margin. nil: show when itr=1,4, do not show when itr=2,3; true: show; false: not show'],
         
     | 
| 
       3232 
3248 
     | 
    
         
             
                  ['annot_intercept', false, '[Meaningful only when itr=1 (linear scaling plot)] if true, show the intercept on the right margin'],
         
     | 
| 
      
 3249 
     | 
    
         
            +
                  ['annot_cor', false, 'Whether to show correlation coefficient on the right margin.'],
         
     | 
| 
      
 3250 
     | 
    
         
            +
                  ['annot_r2', false, 'Whether to show squared correlation coefficient on the right margin.'],
         
     | 
| 
       3233 
3251 
     | 
    
         
             
                  ['limit', false, 'If true, regression line is shown only over the range between max and min of the independent variable. If false, regression line is written over the whole range of the independent variable'],
         
     | 
| 
       3234 
3252 
     | 
    
         
             
                  ['clip', true, "If true, use DCL's clipping not to show the line outside the viewport"],
         
     | 
| 
       3235 
3253 
     | 
    
         
             
                  ['index', 1, 'line index'],
         
     | 
| 
         @@ -3289,7 +3307,7 @@ module NumRu 
     | 
|
| 
       3289 
3307 
     | 
    
         
             
                  xr = NArray.sfloat(2)  # --> x ends of the regression line
         
     | 
| 
       3290 
3308 
     | 
    
         
             
                  yr = NArray.sfloat(2)  # --> y ends of the regression line
         
     | 
| 
       3291 
3309 
     | 
    
         
             
                  if y_given_x
         
     | 
| 
       3292 
     | 
    
         
            -
                    a,b = linear_regression(xs,ys)
         
     | 
| 
      
 3310 
     | 
    
         
            +
                    a,b,r2 = linear_regression(xs,ys)
         
     | 
| 
       3293 
3311 
     | 
    
         
             
                    if opts["limit"]
         
     | 
| 
       3294 
3312 
     | 
    
         
             
                      xr[0] = x.min
         
     | 
| 
       3295 
3313 
     | 
    
         
             
                      xr[1] = x.max
         
     | 
| 
         @@ -3300,7 +3318,7 @@ module NumRu 
     | 
|
| 
       3300 
3318 
     | 
    
         
             
                    yrs = a + b*xrs
         
     | 
| 
       3301 
3319 
     | 
    
         
             
                    yr = !ylog ? yrs : NMath::exp(yrs)
         
     | 
| 
       3302 
3320 
     | 
    
         
             
                  else
         
     | 
| 
       3303 
     | 
    
         
            -
                    a,b = linear_regression(ys,xs)
         
     | 
| 
      
 3321 
     | 
    
         
            +
                    a,b,r2 = linear_regression(ys,xs)
         
     | 
| 
       3304 
3322 
     | 
    
         
             
                    if opts["limit"]
         
     | 
| 
       3305 
3323 
     | 
    
         
             
                      yr[0] = y.min
         
     | 
| 
       3306 
3324 
     | 
    
         
             
                      yr[1] = y.max
         
     | 
| 
         @@ -3318,6 +3336,8 @@ module NumRu 
     | 
|
| 
       3318 
3336 
     | 
    
         | 
| 
       3319 
3337 
     | 
    
         
             
                  ai = opts['annot_intercept'] || opts['annot_intercept'].nil? && itr==1
         
     | 
| 
       3320 
3338 
     | 
    
         
             
                  as = opts['annot_slope'] || opts['annot_slope'].nil? && (itr==1 or itr==4)
         
     | 
| 
      
 3339 
     | 
    
         
            +
                  ac = opts['annot_cor']
         
     | 
| 
      
 3340 
     | 
    
         
            +
                  ar2 = opts['annot_r2']
         
     | 
| 
       3321 
3341 
     | 
    
         
             
                  if as && ai 
         
     | 
| 
       3322 
3342 
     | 
    
         
             
                    if y_given_x
         
     | 
| 
       3323 
3343 
     | 
    
         
             
                      annot = ["regr  y=a+bx:", 
         
     | 
| 
         @@ -3326,6 +3346,8 @@ module NumRu 
     | 
|
| 
       3326 
3346 
     | 
    
         
             
                      annot = ["regr  x=a+by:", 
         
     | 
| 
       3327 
3347 
     | 
    
         
             
                               "  a=#{DCL.chval('A',a)}", "  b=#{DCL.chval('A',b)}"]
         
     | 
| 
       3328 
3348 
     | 
    
         
             
                    end
         
     | 
| 
      
 3349 
     | 
    
         
            +
                    annot.push(sprintf("r=%-.3g",Math.sqrt(r2))) if ac
         
     | 
| 
      
 3350 
     | 
    
         
            +
                    annot.push(sprintf("r2=%-.3g",r2)) if ar2
         
     | 
| 
       3329 
3351 
     | 
    
         
             
                    annotate(annot, @@nannot)
         
     | 
| 
       3330 
3352 
     | 
    
         
             
                  elsif as  
         
     | 
| 
       3331 
3353 
     | 
    
         
             
                    if y_given_x
         
     | 
| 
         @@ -3333,10 +3355,12 @@ module NumRu 
     | 
|
| 
       3333 
3355 
     | 
    
         
             
                    else
         
     | 
| 
       3334 
3356 
     | 
    
         
             
                      annot = ["regress x given y:", " x(y) slope: #{DCL.chval('A',b)}"]
         
     | 
| 
       3335 
3357 
     | 
    
         
             
                    end
         
     | 
| 
      
 3358 
     | 
    
         
            +
                    annot.push(sprintf("r=%-.3g",Math.sqrt(r2))) if ac
         
     | 
| 
      
 3359 
     | 
    
         
            +
                    annot.push(sprintf("r2=%-.3g",r2)) if ar2
         
     | 
| 
       3336 
3360 
     | 
    
         
             
                    annotate(annot, @@nannot)
         
     | 
| 
       3337 
3361 
     | 
    
         
             
                  end
         
     | 
| 
       3338 
3362 
     | 
    
         | 
| 
       3339 
     | 
    
         
            -
                  [a,b]
         
     | 
| 
      
 3363 
     | 
    
         
            +
                  [a,b,r2]
         
     | 
| 
       3340 
3364 
     | 
    
         
             
                end
         
     | 
| 
       3341 
3365 
     | 
    
         
             
              end
         
     | 
| 
       3342 
3366 
     | 
    
         | 
| 
         @@ -3347,7 +3371,9 @@ module NumRu 
     | 
|
| 
       3347 
3371 
     | 
    
         
             
                my = y.mean
         
     | 
| 
       3348 
3372 
     | 
    
         
             
                b = cxy/cxx
         
     | 
| 
       3349 
3373 
     | 
    
         
             
                a = my - b*mx
         
     | 
| 
       3350 
     | 
    
         
            -
                 
     | 
| 
      
 3374 
     | 
    
         
            +
                cyy, ndiv = NMMath.covariance(y,y)
         
     | 
| 
      
 3375 
     | 
    
         
            +
                r2 = cxy/Math.sqrt(cxx*cyy)
         
     | 
| 
      
 3376 
     | 
    
         
            +
                [a,b,r2]
         
     | 
| 
       3351 
3377 
     | 
    
         
             
              end
         
     | 
| 
       3352 
3378 
     | 
    
         | 
| 
       3353 
3379 
     | 
    
         
             
              def linear_reg_slope_error(x,y,a,b)
         
     | 
    
        data/lib/numru/gphys/axis.rb
    CHANGED
    
    | 
         @@ -600,7 +600,7 @@ module NumRu 
     | 
|
| 
       600 
600 
     | 
    
         
             
            	 self
         
     | 
| 
       601 
601 
     | 
    
         
             
                  end
         
     | 
| 
       602 
602 
     | 
    
         
             
                  def get_aux(name)
         
     | 
| 
       603 
     | 
    
         
            -
            	 @aux[name]
         
     | 
| 
      
 603 
     | 
    
         
            +
            	 @aux && @aux[name]
         
     | 
| 
       604 
604 
     | 
    
         
             
                  end
         
     | 
| 
       605 
605 
     | 
    
         
             
                  def aux_names
         
     | 
| 
       606 
606 
     | 
    
         
             
            	 @aux ? @aux.keys : []
         
     | 
| 
         @@ -890,7 +890,25 @@ module NumRu 
     | 
|
| 
       890 
890 
     | 
    
         
             
                  end
         
     | 
| 
       891 
891 
     | 
    
         
             
                  private :_cut_
         
     | 
| 
       892 
892 
     | 
    
         | 
| 
       893 
     | 
    
         
            -
                   
     | 
| 
      
 893 
     | 
    
         
            +
                  # Find index nearest to loc
         
     | 
| 
      
 894 
     | 
    
         
            +
                  #
         
     | 
| 
      
 895 
     | 
    
         
            +
                  # * loc (Numeric, Date, DateTime)
         
     | 
| 
      
 896 
     | 
    
         
            +
                  #
         
     | 
| 
      
 897 
     | 
    
         
            +
                  # Return value: the index (Integer)
         
     | 
| 
      
 898 
     | 
    
         
            +
                  def nearest_index(loc)
         
     | 
| 
      
 899 
     | 
    
         
            +
                    if loc.class <= Date
         
     | 
| 
      
 900 
     | 
    
         
            +
                      loc = UNumeric.from_date(loc,pos.units,self.pos.get_att('calendar')).val
         
     | 
| 
      
 901 
     | 
    
         
            +
                    end
         
     | 
| 
      
 902 
     | 
    
         
            +
                    ax = self.pos.val
         
     | 
| 
      
 903 
     | 
    
         
            +
                    if cyclic_extendible?
         
     | 
| 
      
 904 
     | 
    
         
            +
                      dx, base = _cyclic_dx(ax-loc, modulo)
         
     | 
| 
      
 905 
     | 
    
         
            +
                    else
         
     | 
| 
      
 906 
     | 
    
         
            +
                      dx = (ax-loc).abs
         
     | 
| 
      
 907 
     | 
    
         
            +
                    end
         
     | 
| 
      
 908 
     | 
    
         
            +
                    idx = _minloc_(dx)
         
     | 
| 
      
 909 
     | 
    
         
            +
                  end
         
     | 
| 
      
 910 
     | 
    
         
            +
             
     | 
| 
      
 911 
     | 
    
         
            +
                  def _minloc_(a)  # private to be used in nearest_index (for cut etc)
         
     | 
| 
       894 
912 
     | 
    
         
             
                    # Developper's MEMO: Such a method should be supported in NArray
         
     | 
| 
       895 
913 
     | 
    
         
             
                    minloc = 0  # initialization
         
     | 
| 
       896 
914 
     | 
    
         
             
                    for i in 0...(a.length-1)   # here, do not assume monotonic
         
     | 
| 
         @@ -1158,7 +1176,16 @@ if $0 == __FILE__ 
     | 
|
| 
       1158 
1176 
     | 
    
         | 
| 
       1159 
1177 
     | 
    
         
             
               p "## test join (cell)"
         
     | 
| 
       1160 
1178 
     | 
    
         
             
               axcel_c2 = Axis.new(true).set_cell(xc+10,xb+10)
         
     | 
| 
      
 1179 
     | 
    
         
            +
               axcel_c2.set_aux('aux1',xc*10)
         
     | 
| 
       1161 
1180 
     | 
    
         
             
               axcel_c2.set_pos_to_center
         
     | 
| 
       1162 
1181 
     | 
    
         
             
               jax = Axis.join([axcel_c,axcel_c2])
         
     | 
| 
       1163 
1182 
     | 
    
         
             
               p jax, jax.name, jax.pos.val.to_a, jax.cell_bounds.val.to_a
         
     | 
| 
      
 1183 
     | 
    
         
            +
             
     | 
| 
      
 1184 
     | 
    
         
            +
               p "## test neaest index"
         
     | 
| 
      
 1185 
     | 
    
         
            +
               loc = 1.1
         
     | 
| 
      
 1186 
     | 
    
         
            +
               p axpt, loc, axpt.nearest_index(loc)
         
     | 
| 
      
 1187 
     | 
    
         
            +
               xc.put_att("modulo",[10.0])
         
     | 
| 
      
 1188 
     | 
    
         
            +
               axpt_cyc = Axis.new().set_pos(xc)
         
     | 
| 
      
 1189 
     | 
    
         
            +
               loc = -8.5
         
     | 
| 
      
 1190 
     | 
    
         
            +
               p axpt_cyc, axpt_cyc.modulo, loc, axpt.nearest_index(loc)
         
     | 
| 
       1164 
1191 
     | 
    
         
             
            end
         
     | 
    
        data/lib/numru/gphys/gphys.rb
    CHANGED
    
    | 
         @@ -805,7 +805,7 @@ module NumRu 
     | 
|
| 
       805 
805 
     | 
    
         
             
                  ## For graphics -->
         
     | 
| 
       806 
806 
     | 
    
         
             
                  def first3D
         
     | 
| 
       807 
807 
     | 
    
         
             
            	raise "rank less than 3" if rank < 3
         
     | 
| 
       808 
     | 
    
         
            -
            	self[true,true,*([0]*(rank-3))]
         
     | 
| 
      
 808 
     | 
    
         
            +
            	self[true,true,true,*([0]*(rank-3))]
         
     | 
| 
       809 
809 
     | 
    
         
             
                  end
         
     | 
| 
       810 
810 
     | 
    
         
             
                  def first2D
         
     | 
| 
       811 
811 
     | 
    
         
             
            	raise "rank less than 2" if rank < 2
         
     | 
| 
         @@ -815,6 +815,31 @@ module NumRu 
     | 
|
| 
       815 
815 
     | 
    
         
             
            	raise "rank less than 1" if rank < 1
         
     | 
| 
       816 
816 
     | 
    
         
             
            	self[true,*([0]*(rank-1))]
         
     | 
| 
       817 
817 
     | 
    
         
             
                  end
         
     | 
| 
      
 818 
     | 
    
         
            +
                  def firstNDreally(nd)
         
     | 
| 
      
 819 
     | 
    
         
            +
                    sh = shape_current
         
     | 
| 
      
 820 
     | 
    
         
            +
                    n = 0
         
     | 
| 
      
 821 
     | 
    
         
            +
                    sel = sh.map do |len|
         
     | 
| 
      
 822 
     | 
    
         
            +
                      if len > 1 && n < nd
         
     | 
| 
      
 823 
     | 
    
         
            +
                        n += 1
         
     | 
| 
      
 824 
     | 
    
         
            +
                        true
         
     | 
| 
      
 825 
     | 
    
         
            +
                      else
         
     | 
| 
      
 826 
     | 
    
         
            +
                        0
         
     | 
| 
      
 827 
     | 
    
         
            +
                      end
         
     | 
| 
      
 828 
     | 
    
         
            +
                    end
         
     | 
| 
      
 829 
     | 
    
         
            +
                    if n<nd
         
     | 
| 
      
 830 
     | 
    
         
            +
                      raise "Invalid shape #{sh} (not really #{nd}D or greater): # of dims with len>1 is fewer than #{nd}"
         
     | 
| 
      
 831 
     | 
    
         
            +
                    end
         
     | 
| 
      
 832 
     | 
    
         
            +
                    self[*sel]
         
     | 
| 
      
 833 
     | 
    
         
            +
                  end
         
     | 
| 
      
 834 
     | 
    
         
            +
                  def first3Dreally
         
     | 
| 
      
 835 
     | 
    
         
            +
                    firstNDreally(3)
         
     | 
| 
      
 836 
     | 
    
         
            +
                  end
         
     | 
| 
      
 837 
     | 
    
         
            +
                  def first2Dreally
         
     | 
| 
      
 838 
     | 
    
         
            +
                    firstNDreally(2)
         
     | 
| 
      
 839 
     | 
    
         
            +
                  end
         
     | 
| 
      
 840 
     | 
    
         
            +
                  def first1Dreally
         
     | 
| 
      
 841 
     | 
    
         
            +
                    firstNDreally(1)
         
     | 
| 
      
 842 
     | 
    
         
            +
                  end
         
     | 
| 
       818 
843 
     | 
    
         
             
                  ## <-- For graphics
         
     | 
| 
       819 
844 
     | 
    
         | 
| 
       820 
845 
     | 
    
         
             
                  def coerce(other)
         
     | 
| 
         @@ -20,15 +20,16 @@ module NumRu 
     | 
|
| 
       20 
20 
     | 
    
         
             
                # * len_or_wgt : If Integer, specifies the length; if 1D NArray,
         
     | 
| 
       21 
21 
     | 
    
         
             
                #   specifies the weight (e.g., NArray[1.0, 2.0, 1.0] for
         
     | 
| 
       22 
22 
     | 
    
         
             
                #   the 1-2-1 smooting)
         
     | 
| 
       23 
     | 
    
         
            -
                # * bc (Integer; optional) :  
     | 
| 
       24 
     | 
    
         
            -
                #   *  
     | 
| 
      
 23 
     | 
    
         
            +
                # * bc (Integer; optional) : Specify one of the following:
         
     | 
| 
      
 24 
     | 
    
         
            +
                #   * nil (default) : choose BC_SIMPLE or BC_CYCLIC automatically
         
     | 
| 
      
 25 
     | 
    
         
            +
                #   * GPhys::BC_SIMPLE : Averaging is truncated at the boundaries
         
     | 
| 
       25 
26 
     | 
    
         
             
                #     (the number of grid points used is reduced near the boundaries).
         
     | 
| 
       26 
27 
     | 
    
         
             
                #     The shape of the object is conserved.
         
     | 
| 
       27 
28 
     | 
    
         
             
                #   * GPhys::BC_CYCLIC : Cyclic boundary condition. Shape conserved.
         
     | 
| 
       28 
29 
     | 
    
         
             
                #   * GPhys::BC_TRIM : Grids near the boundaries are trimmed to
         
     | 
| 
       29 
30 
     | 
    
         
             
                #     secure the number of grid points to average.
         
     | 
| 
       30 
31 
     | 
    
         
             
                #     Shape not conserved; length along the dim is reduced by (len-1).
         
     | 
| 
       31 
     | 
    
         
            -
                # * nminvalid (Integer; optional;  
     | 
| 
      
 32 
     | 
    
         
            +
                # * nminvalid (Integer; optional; default=1): 
         
     | 
| 
       32 
33 
     | 
    
         
             
                #   This parameter is used only when the data have missing.
         
     | 
| 
       33 
34 
     | 
    
         
             
                #   Minimum number of grid points needed for averaging.
         
     | 
| 
       34 
35 
     | 
    
         
             
                #   Must be from 1 to len.
         
     | 
| 
         @@ -40,15 +41,23 @@ module NumRu 
     | 
|
| 
       40 
41 
     | 
    
         
             
                # * If the length of the running mean is even number, fewer
         
     | 
| 
       41 
42 
     | 
    
         
             
                #   grid points are used from the "left" side; e.g.,
         
     | 
| 
       42 
43 
     | 
    
         
             
                #   If len is 6, result[2] is a mean over self[0]..self[5].
         
     | 
| 
       43 
     | 
    
         
            -
                # * Regardless the na_type of self, double is used for  
     | 
| 
      
 44 
     | 
    
         
            +
                # * Regardless the na_type of self, double is used for averaging, so:
         
     | 
| 
       44 
45 
     | 
    
         
             
                # * This method does not support complex numbers.
         
     | 
| 
       45 
46 
     | 
    
         
             
                # 
         
     | 
| 
       46 
     | 
    
         
            -
                def running_mean(dim, len_or_wgt=nil, bc= 
     | 
| 
      
 47 
     | 
    
         
            +
                def running_mean(dim, len_or_wgt=nil, bc=nil, nminvalid=1)
         
     | 
| 
       47 
48 
     | 
    
         | 
| 
       48 
49 
     | 
    
         
             
                  #< process arguments >
         
     | 
| 
       49 
50 
     | 
    
         | 
| 
       50 
51 
     | 
    
         
             
                  dim = dim_index(dim)  # to handle String or negative specification
         
     | 
| 
       51 
52 
     | 
    
         | 
| 
      
 53 
     | 
    
         
            +
                  if bc.nil?
         
     | 
| 
      
 54 
     | 
    
         
            +
                    if axis(dim).cyclic_extendible?
         
     | 
| 
      
 55 
     | 
    
         
            +
                      bc=BC_CYCLIC
         
     | 
| 
      
 56 
     | 
    
         
            +
                    else
         
     | 
| 
      
 57 
     | 
    
         
            +
                      bc=BC_SIMPLE
         
     | 
| 
      
 58 
     | 
    
         
            +
                    end
         
     | 
| 
      
 59 
     | 
    
         
            +
                  end
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
       52 
61 
     | 
    
         
             
                  case len_or_wgt
         
     | 
| 
       53 
62 
     | 
    
         
             
                  when nil
         
     | 
| 
       54 
63 
     | 
    
         
             
                    raise ArgumentError, "You need to specify the length (Integer) or the weight (1D NArray) as the 2nd argument"
         
     | 
| 
         @@ -95,6 +104,78 @@ module NumRu 
     | 
|
| 
       95 
104 
     | 
    
         | 
| 
       96 
105 
     | 
    
         
             
                end
         
     | 
| 
       97 
106 
     | 
    
         | 
| 
      
 107 
     | 
    
         
            +
                # Running mean along two dimensions (with optional weight specification).
         
     | 
| 
      
 108 
     | 
    
         
            +
                #
         
     | 
| 
      
 109 
     | 
    
         
            +
                # This method would be needed for data with missing. If the data
         
     | 
| 
      
 110 
     | 
    
         
            +
                # has no missing, you should apply running_mean consecutively
         
     | 
| 
      
 111 
     | 
    
         
            +
                # along the two dimensions you want, which will be faster and efficient.
         
     | 
| 
      
 112 
     | 
    
         
            +
                # 
         
     | 
| 
      
 113 
     | 
    
         
            +
                # However, if the data have missing, the results are not the same.
         
     | 
| 
      
 114 
     | 
    
         
            +
                # That's why this method is needed.
         
     | 
| 
      
 115 
     | 
    
         
            +
                # 
         
     | 
| 
      
 116 
     | 
    
         
            +
                # ARGUMENTS
         
     | 
| 
      
 117 
     | 
    
         
            +
                # * dim1 (Integer or String) : a dimension to apply the running mean
         
     | 
| 
      
 118 
     | 
    
         
            +
                # * dim2 (Integer or String) : another dimension to apply the running mean
         
     | 
| 
      
 119 
     | 
    
         
            +
                #   (dim1 must be smaller than dim2)
         
     | 
| 
      
 120 
     | 
    
         
            +
                # * len_or_wgt1 : If Integer, specifies the length of running mean for dim1.
         
     | 
| 
      
 121 
     | 
    
         
            +
                #   If 1D NArray, it specifies the weight (e.g., NArray[1.0, 2.0, 1.0] for
         
     | 
| 
      
 122 
     | 
    
         
            +
                #   the 1-2-1 smoothing)
         
     | 
| 
      
 123 
     | 
    
         
            +
                # * len_or_wgt2 : as len_or_wgt1 but for dim2.
         
     | 
| 
      
 124 
     | 
    
         
            +
                # * bc1 (Integer or nil; optional) : Specify one of the following for dim1:
         
     | 
| 
      
 125 
     | 
    
         
            +
                #   * nil : choose BC_SIMPLE or BC_CYCLIC automatically
         
     | 
| 
      
 126 
     | 
    
         
            +
                #   * GPhys::BC_SIMPLE : Averaging is truncated at the boundaries
         
     | 
| 
      
 127 
     | 
    
         
            +
                #     (the number of grid points used is reduced near the boundaries).
         
     | 
| 
      
 128 
     | 
    
         
            +
                #     The shape of the object is conserved.
         
     | 
| 
      
 129 
     | 
    
         
            +
                #   * GPhys::BC_CYCLIC : Cyclic boundary condition. Shape conserved.
         
     | 
| 
      
 130 
     | 
    
         
            +
                # * bc2 : as bc1 but for dim2.
         
     | 
| 
      
 131 
     | 
    
         
            +
                # * nminvalid (Integer; optional; default=1): 
         
     | 
| 
      
 132 
     | 
    
         
            +
                #   Minimum number of grid points needed to define the running mean
         
     | 
| 
      
 133 
     | 
    
         
            +
                #   (it is the number of valid data in the 2-dimensional tile).
         
     | 
| 
      
 134 
     | 
    
         
            +
                #
         
     | 
| 
      
 135 
     | 
    
         
            +
                def running_mean_2D(dim1, dim2, len_or_wgt1, len_or_wgt2,
         
     | 
| 
      
 136 
     | 
    
         
            +
                                    bc1=nil, bc2=nil,
         
     | 
| 
      
 137 
     | 
    
         
            +
                                    nminvalid=1)
         
     | 
| 
      
 138 
     | 
    
         
            +
             
     | 
| 
      
 139 
     | 
    
         
            +
                  dim1 = dim_index(dim1)  # to handle String or negative specification
         
     | 
| 
      
 140 
     | 
    
         
            +
                  dim2 = dim_index(dim2)  # to handle String or negative specification
         
     | 
| 
      
 141 
     | 
    
         
            +
             
     | 
| 
      
 142 
     | 
    
         
            +
                  if bc1.nil?
         
     | 
| 
      
 143 
     | 
    
         
            +
                    if axis(dim1).cyclic_extendible?
         
     | 
| 
      
 144 
     | 
    
         
            +
                      bc1=BC_CYCLIC
         
     | 
| 
      
 145 
     | 
    
         
            +
                    else
         
     | 
| 
      
 146 
     | 
    
         
            +
                      bc1=BC_SIMPLE
         
     | 
| 
      
 147 
     | 
    
         
            +
                    end
         
     | 
| 
      
 148 
     | 
    
         
            +
                  end
         
     | 
| 
      
 149 
     | 
    
         
            +
                  if bc2.nil?
         
     | 
| 
      
 150 
     | 
    
         
            +
                    if axis(dim2).cyclic_extendible?
         
     | 
| 
      
 151 
     | 
    
         
            +
                      bc2=BC_CYCLIC
         
     | 
| 
      
 152 
     | 
    
         
            +
                    else
         
     | 
| 
      
 153 
     | 
    
         
            +
                      bc2=BC_SIMPLE
         
     | 
| 
      
 154 
     | 
    
         
            +
                    end
         
     | 
| 
      
 155 
     | 
    
         
            +
                  end
         
     | 
| 
      
 156 
     | 
    
         
            +
             
     | 
| 
      
 157 
     | 
    
         
            +
                  vi = self.val
         
     | 
| 
      
 158 
     | 
    
         
            +
                  if vi.is_a?(NArray)
         
     | 
| 
      
 159 
     | 
    
         
            +
                    # Just for convenience.
         
     | 
| 
      
 160 
     | 
    
         
            +
                    self.running_mean(dim1, len_or_wgt1, bc1, nminvalid).running_mean(dim2, len_or_wgt2, bc2, nminvalid)
         
     | 
| 
      
 161 
     | 
    
         
            +
                  end
         
     | 
| 
      
 162 
     | 
    
         
            +
                  
         
     | 
| 
      
 163 
     | 
    
         
            +
                  if (vi.typecode > NArray::DFLOAT)
         
     | 
| 
      
 164 
     | 
    
         
            +
                    raise("This method supports only real or integer data")
         
     | 
| 
      
 165 
     | 
    
         
            +
                  end 
         
     | 
| 
      
 166 
     | 
    
         
            +
                  if vi.is_a?(NArrayMiss)
         
     | 
| 
      
 167 
     | 
    
         
            +
                    vi, missval = nam2na_missval(vi)
         
     | 
| 
      
 168 
     | 
    
         
            +
                    vo = c_running_mean_2D(vi, dim1,len_or_wgt1,bc1, dim2,len_or_wgt2,bc2,
         
     | 
| 
      
 169 
     | 
    
         
            +
                            missval, nminvalid)
         
     | 
| 
      
 170 
     | 
    
         
            +
                    vo = NArrayMiss.to_nam(vo, vo.ne(missval) )
         
     | 
| 
      
 171 
     | 
    
         
            +
                  else
         
     | 
| 
      
 172 
     | 
    
         
            +
                    raise("This method accepts only data with missing. If not, you should apply running_mean twice for dim1 & dim2, respectively")
         
     | 
| 
      
 173 
     | 
    
         
            +
                  end
         
     | 
| 
      
 174 
     | 
    
         
            +
             
     | 
| 
      
 175 
     | 
    
         
            +
                  vvo = VArray.new( vo, self.data, self.name )  # Inherit name & attrs
         
     | 
| 
      
 176 
     | 
    
         
            +
                  GPhys.new( self.grid, vvo )
         
     | 
| 
      
 177 
     | 
    
         
            +
                end
         
     | 
| 
      
 178 
     | 
    
         
            +
             
     | 
| 
       98 
179 
     | 
    
         
             
                # Binning along a dimension (mean)
         
     | 
| 
       99 
180 
     | 
    
         
             
                # 
         
     | 
| 
       100 
181 
     | 
    
         
             
                # The values are averaged every "len" grids; unlike running_mean
         
     | 
| 
         @@ -199,7 +280,7 @@ module NumRu 
     | 
|
| 
       199 
280 
     | 
    
         
             
                    acs = Array.new
         
     | 
| 
       200 
281 
     | 
    
         
             
                    assoccoordnames.each do |nm|
         
     | 
| 
       201 
282 
     | 
    
         
             
                      ac = assoc_coord_gphys(nm)
         
     | 
| 
       202 
     | 
    
         
            -
                      acs.push(ac) if !ac. 
     | 
| 
      
 283 
     | 
    
         
            +
                      acs.push(ac) if !ac.axnames.include?(dimname)
         
     | 
| 
       203 
284 
     | 
    
         
             
                    end
         
     | 
| 
       204 
285 
     | 
    
         
             
                    newgrid.set_assoc_coords(acs) if acs.length > 0
         
     | 
| 
       205 
286 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -428,6 +428,7 @@ module NumRu 
     | 
|
| 
       428 
428 
     | 
    
         
             
            	  newaxes.push( newax )
         
     | 
| 
       429 
429 
     | 
    
         
             
            	}
         
     | 
| 
       430 
430 
     | 
    
         
             
                    if acnms = grid_or_gphys.assoccoordnames
         
     | 
| 
      
 431 
     | 
    
         
            +
                      (nms = file.var_names) and acnms -= nms
         
     | 
| 
       431 
432 
     | 
    
         
             
                      acnms.each{|nm| 
         
     | 
| 
       432 
433 
     | 
    
         
             
                        acgp = grid_or_gphys.assoc_coord_gphys(nm)
         
     | 
| 
       433 
434 
     | 
    
         
             
                        VArrayNetCDF.write(file, acgp.data, nil, acgp.axnames)
         
     | 
| 
         @@ -919,7 +919,7 @@ EOS 
     | 
|
| 
       919 
919 
     | 
    
         | 
| 
       920 
920 
     | 
    
         
             
                    imax, jmax = isize.to_i, jsize.to_i
         
     | 
| 
       921 
921 
     | 
    
         
             
                    dx, dy = dx.to_f, dy.to_f
         
     | 
| 
       922 
     | 
    
         
            -
                    bi, bj =  
     | 
| 
      
 922 
     | 
    
         
            +
                    bi, bj = iref.to_f-1.0, jref.to_f-1.0
         
     | 
| 
       923 
923 
     | 
    
         
             
                    by, bx = latref.to_f, lonref.to_f
         
     | 
| 
       924 
924 
     | 
    
         
             
                    sy,sx = struelat.to_f, slon.to_f
         
     | 
| 
       925 
925 
     | 
    
         
             
                    sy2, = ntruelat.to_f
         
     | 
| 
         @@ -932,8 +932,11 @@ EOS 
     | 
|
| 
       932 
932 
     | 
    
         
             
                    unless sx.abs < 180
         
     | 
| 
       933 
933 
     | 
    
         
             
                      raise "parameter for standard is invalid"
         
     | 
| 
       934 
934 
     | 
    
         
             
                    end
         
     | 
| 
       935 
     | 
    
         
            -
                     
     | 
| 
       936 
     | 
    
         
            -
                      raise " 
     | 
| 
      
 935 
     | 
    
         
            +
                    if sy.abs > 90
         
     | 
| 
      
 936 
     | 
    
         
            +
                      raise "Invalid PDEF (in control file): |struelat|>90"
         
     | 
| 
      
 937 
     | 
    
         
            +
                    end
         
     | 
| 
      
 938 
     | 
    
         
            +
                    if sy2.abs > 90
         
     | 
| 
      
 939 
     | 
    
         
            +
                      raise "Invalid PDEF (in control file): |ntruelat|>90"
         
     | 
| 
       937 
940 
     | 
    
         
             
                    end
         
     | 
| 
       938 
941 
     | 
    
         
             
                    bx = bx*PI/180
         
     | 
| 
       939 
942 
     | 
    
         
             
                    by = by*PI/180
         
     | 
    
        data/lib/numru/gphys/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: gphys
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1.5. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.5.3
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Takeshi Horinouchi
         
     | 
| 
         @@ -12,7 +12,7 @@ authors: 
     | 
|
| 
       12 
12 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       13 
13 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       14 
14 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       15 
     | 
    
         
            -
            date:  
     | 
| 
      
 15 
     | 
    
         
            +
            date: 2018-01-26 00:00:00.000000000 Z
         
     | 
| 
       16 
16 
     | 
    
         
             
            dependencies:
         
     | 
| 
       17 
17 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       18 
18 
     | 
    
         
             
              name: narray
         
     | 
| 
         @@ -112,20 +112,6 @@ dependencies: 
     | 
|
| 
       112 
112 
     | 
    
         
             
                - - ">="
         
     | 
| 
       113 
113 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       114 
114 
     | 
    
         
             
                    version: '0.3'
         
     | 
| 
       115 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       116 
     | 
    
         
            -
              name: rb-gsl
         
     | 
| 
       117 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       118 
     | 
    
         
            -
                requirements:
         
     | 
| 
       119 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       120 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       121 
     | 
    
         
            -
                    version: '1.14'
         
     | 
| 
       122 
     | 
    
         
            -
              type: :runtime
         
     | 
| 
       123 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       124 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       125 
     | 
    
         
            -
                requirements:
         
     | 
| 
       126 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       127 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       128 
     | 
    
         
            -
                    version: '1.14'
         
     | 
| 
       129 
115 
     | 
    
         
             
            description: Comprehensive library for self-descriptive gridded physical data (in
         
     | 
| 
       130 
116 
     | 
    
         
             
              NetCDF, GrADS, or on memory) with graphics. This version works with Ruby 2.0.
         
     | 
| 
       131 
117 
     | 
    
         
             
            email:
         
     | 
| 
         @@ -642,7 +628,7 @@ licenses: 
     | 
|
| 
       642 
628 
     | 
    
         
             
            - BSD-2-Clause
         
     | 
| 
       643 
629 
     | 
    
         
             
            metadata: {}
         
     | 
| 
       644 
630 
     | 
    
         
             
            post_install_message: Thanks for installing! You can add extra libraries (i.e., ruby-lapack,
         
     | 
| 
       645 
     | 
    
         
            -
              rb- 
     | 
| 
      
 631 
     | 
    
         
            +
              rb-gsl) to enjoy powerful calculating and handling datasets.
         
     | 
| 
       646 
632 
     | 
    
         
             
            rdoc_options: []
         
     | 
| 
       647 
633 
     | 
    
         
             
            require_paths:
         
     | 
| 
       648 
634 
     | 
    
         
             
            - ext
         
     | 
| 
         @@ -659,7 +645,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       659 
645 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       660 
646 
     | 
    
         
             
            requirements: []
         
     | 
| 
       661 
647 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       662 
     | 
    
         
            -
            rubygems_version: 2.2. 
     | 
| 
      
 648 
     | 
    
         
            +
            rubygems_version: 2.5.2.1
         
     | 
| 
       663 
649 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       664 
650 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       665 
651 
     | 
    
         
             
            summary: A multi-purpose class to handle Gridded Physical quantities
         
     |