[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:002680] Grid#cut の挙動



hirocyと申します.

GPhysを大変便利に使わせていただいています.ありがとうございます.
使っていて,以下の挙動に気づきましたので報告します.
GPhysのバージョンは0.5.1です.Mac OS X 10.4 にて動かしています.

・Grid/Axisに対するcutの結果が,Grid/Axisではなく,Arrayになっている.
(cutしたGrid/Axisとslicerからなるsize=2の配列になっている)

具体的には以下です.
チュートリアルで使われているNetCDFファイルをサンプルとしています.

irb(main):001:0> gphys = GPhys::IO.open('T.jan.nc', 'T')
=> <GPhys grid=<3D grid <axis pos=<'lon' in 'T.jan.nc'  sfloat[36]>>
        <axis pos=<'lat' in 'T.jan.nc'  sfloat[19]>>
        <axis pos=<'level' in 'T.jan.nc'  sfloat[9]>>>
   data=<'T' in 'T.jan.nc'  sfloat[36, 19, 9]>>
irb(main):002:0> grid = gphys.grid_copy
=> <3D grid <axis pos=<'lon' sfloat[36] val=[0.0,10.0,20.0,30.0,...]>>
        <axis pos=<'lat' sfloat[19] val=[90.0,80.0,70.0,60.0,...]>>
        <axis pos=<'level' sfloat[9] val=[1000.0,850.0,600.0,400.0,...]>>>
irb(main):003:0> grid[false].class
=> NumRu::Grid
irb(main):004:0> grid.cut(false).class
=> Array
irb(main):005:0> grid.axis('lon')[true].class
=> NumRu::Axis
irb(main):006:0> grid.axis('lon').cut(true).class
=> Array

なお,GPhysに対するcutは[]と同じ結果を返します.

リファレンスマニュアルでは,cutと[]の挙動は領域の指定方法の違いだけ,と
なっていますので,仕様またはマニュアルのいずれかを直す必要があるかと
思います.いかがでしょう.

-- 
// hirocy