最終更新:
keisuketsushima 2011年11月19日(土) 22:03:08履歴
一度ではメモリに読み込めないような大きいGPhysオブジェクトを処理するイテレータ。
loopdimsで指定された次元でGPhysオブジェクト(gphyses)を分割してループする。ブロックの返り値がArrayの場合、それはGPhysオブジェクトで構成されていると考えてよい。このメソッドの返り値は、あたかもイテレーションが全く行われていないかのように、全ての結果が再構成されているArrayとなる。これはGPhys::IO.each_along_dims_writeの振る舞いと同じである。ブロックの返り値がArrayでない場合、このメソッドはnilを返す。
loopdimsで指定された次元でGPhysオブジェクト(gphyses)を分割してループする。ブロックの返り値がArrayの場合、それはGPhysオブジェクトで構成されていると考えてよい。このメソッドの返り値は、あたかもイテレーションが全く行われていないかのように、全ての結果が再構成されているArrayとなる。これはGPhys::IO.each_along_dims_writeの振る舞いと同じである。ブロックの返り値がArrayでない場合、このメソッドはnilを返す。
- GPhys::IO.each_along_dims_writeと異なり、このメソッドの結果はファイルに書き込まれないので、ブロックの返り値としてGPhysのArrayを挿入する場合は注意する。おそらく、入力データよりもそれらのサイズを小さくする必要がある。
- gphyses (GPhys or Array of GPhys) : 処理されるGPhysオブジェクト。これらは全てloopdimsで指定された次元を持っていなければならず、その長さはファイルによって異なってはならない。その他の次元は任意であり、例えばloopdims==["time"]である限り、gphysesは[a(lon,lat,time), b(lat,time)]であってもよい
- loopdims (Array of String or Integer) : (Stringならば)名前、(Integerならば)ゼロからカウント
- expected block : gphyses中のGPhysオブジェクトの内でarguments == numberである個数
- ブロックの返り値がArrayの場合、全ての結果が書きこまれているGPhysオブジェクト(このArrayはGPhysオブジェクトで必ず構成されている)。ブロックの返り値がArrayでない場合、nilが返される
- 以下は例外を発生させる(引数についての例外も含む)
- loopdimsで指定されている次元がgphyses中のGPhysオブジェクトで共有されていない
- ブロックの返り値はArrayだが、それがGPhysオブジェクトで構成されていない
- (ブロックの返り値がArrayの場合に限り)ループのために使われている次元(loopdims)が、返されるGPhysオブジェクトから除かれている
name=と同様だが、selfが返される。
- replace_valと異なり、vの内容はコピーされる
- このメソッドはval=と同様だが、数値データオブジェクトは全てvで置き換わる。もしデータがファイル中にある場合、これはあまり意味がない(ファイルは書き換えられず、メモリ上にGPhysオブジェクトを取得するのみ)
- typecodeも参照
- ntypeも参照
[]と同様だが、部分集合は物理座標系で指定される
- pattern 1 : []のものと同様。1番目の引数が1次元目の部分集合を指定する
- pattern 2: Hashオブジェクト。そのキーは軸の名前
cutと同様だが、あらゆる次元(長さは1でもよい)も除去せず階数を維持する
coerceに似ているが、数値型を変えずに形状を変えるだけ。
shape_currentのエイリアス。
周期的に次元を拡張する。
この拡張は一つの格子点を追加することで一周できる場合のみ行われる。よって、360を法とする座標変数[0,90,180,270]におけるデータが([0,90,180,270,360]へと)拡張される。ただし、[0,90,180]にあるデータは同様の法では拡張されない。この場合はselfが返る。
この拡張は一つの格子点を追加することで一周できる場合のみ行われる。よって、360を法とする座標変数[0,90,180,270]におけるデータが([0,90,180,270,360]へと)拡張される。ただし、[0,90,180]にあるデータは同様の法では拡張されない。この場合はselfが返る。
最新コメント