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

[dennou-ruby:003670] Re: GPhys#cyclic_ext の拡張



神代さん

竹広です. お返事ありがとうございます. 
うーむ, 手もとで困っていないなら話が進みませんねぇ. 

なんとか 3 月のワークショップを機会に取り込まれると
ありがたいですが...

                    Takepiro(竹広真一)@数理解析研究所. 京都大学
                      	E-mail:takepiro@xxxxxxxxxxxxxx
			       takepiro@xxxxxxxxxxxxxxxxxxxx

> 神代です。
> 
> cyclic_ext の拡張はやめて、cut を拡張をしようという話ですが、その後進んでないです。
> 3月のワークショップ(僕は今年は参加できませんが)に間に合うといいのかなーと漠然と思っていた程度で、まだ手をつけてないです、すみません。
> # 手元の仕事では、不採用になったほうの方法で、とりあえず困らなくなったので、個人的にはモチベーション低下してまして…
> 
> 2014/01/15 17:24、Shin-ichi Takehiro <takepiro@xxxxxxxxxxxxxx> のメッセージ:
> 
> > 神代さま, 堀之内さま
> > 
> > 竹広です. 1 月前に出た GPhys#cyclic_ext の拡張のお話, 
> > その後進んでいないでしょうか. 需要が高いので早くできると
> > 嬉しく思いますが, 開発予定はどうでしょう?
> > 
> >                    Takepiro(竹広真一)@数理解析研究所. 京都大学
> >                          E-mail:takepiro@xxxxxxxxxxxxxx
> >                   takepiro@xxxxxxxxxxxxxxxxxxxx
> > 
> > 
> >> 神代さま
> >> 
> >>> サブセットを取る場合, たとえば0-360度でデータが格納されているとき
> >>> に, 0度をまたいだ領域を取りたいことがよくあって, 困ります.
> >>> これを簡単にできるように, ...
> >> 
> >> 提案ありがとうございます。需要はよくわかります。
> >> (現状でも数行でできますが,一発でできるように
> >> したいですね。できれば cut が自動的に対応してれるのが
> >> いいのではないでしょうか。)
> >> 
> >> 今回の実装案は,[0, 360) のデータを例えば 270〜450度として切り出
> >> すお膳立て( [0, 720) への拡張だけ) をサポートするということですよね。
> >> でも,そもそも 270〜450度としてでなく -90〜90度として切り出したく
> >> ないですか。(それはサポートしてないですね。)
> >> 
> >> 望ましい方向性についてちょっと考えてみました。
> >> 
> >> 筋がよいのは Axis クラスで対応することだろうと
> >> 思います。cut の cyclic 対応版をつくり,
> >> self.cyclic_extendible? で (ここで self は Axis オブジェクト),
> >> cut 指定が1点(Numeric)または範囲 (Range) なら
> >> そっちを使うようにする(cutメソッドに直接サイクリック対応を
> >> 書き足すとコードがごちゃごちゃしそうなので適宜下請けを作って分離す
> >> るのが良い気がします。実装は Axis#modulo を使ってよろしくやる)。
> >> 
> >> # 参考例: lib/numru/gphys/derivative.rb l.124 ( __deriv メソッド)
> >> 
> >> おそらくこれだけで GPhys#cut は cyclic な場合に対応するよう
> >> になると思いますが,どうでしょう。
> >> 
> >> ちなみに cyclic_extendible? を使う場合の制限事項は,もとの格子が,
> >> あと1点伸ばせばちょうど一周という場合しか true にならないという
> >> ことです。この制限があると実装は簡単になりますが,例えばすでに2
> >> 周分に伸びてるデータは扱えない。これに対応するのも難しくはないで
> >> しょうが,まあいいですかね。
> >> 
> >> なお,今見ると Axis#cyclic? , Axis#cyclic_extendible? 
> >> の実装は変えたほうがいいと思いますが,あくまでその中身の
> >> 話なので,使うのは問題ないはずです。
> >> 
> >> GPhys#cyclic_ext は描画のための方便としてわりと初期に作ったもので,
> >> あとから Axis に cyclic? 等のメソッドを作った際に書き直すべ
> >> きでした(です)。ちゃんとそうしてれば GPhys#cyclic_ext を
> >> 拡張しようとは思わなかったでしょうね。すみません。
> >> 
> >>> 堀之内さま, みなさま:
> >>> 
> >>> 神代です.
> >>> 
> >>> 以前他の方からも要望があったような気がしますが, GPhysで経度方向に
> >>> サブセットを取る場合, たとえば0-360度でデータが格納されているとき
> >>> に, 0度をまたいだ領域を取りたいことがよくあって, 困ります.
> >>> これを簡単にできるように, cyclic_ext メソッドを拡張したらどうかな
> >>> と思いました.
> >>> 
> >>> cyclic_ext の最後にいくつ伸ばすかの引数を新しく加えます. デフォル
> >>> トを1にしておけば, 既存プログラムの変更は不要です.
> >>> 実用的には, 単純に2倍の範囲にする cyclic_ext2 を用意しておいて,
> >>> それをさらに cut で経度範囲指定, という感じで使えば, あまり悩まず
> >>> にさくっとできるかなと思います.
> >>> 
> >>> そのように実装してみたパッチを添付します. いかがでしょうか...?
> >>> 
> >>> --
> >>> 神代 剛 (こうしろ つよし)
> >>> 気象研究所気候研究部第四研究室 支援研究員
> >> 
> >> 堀之内 武
> >> 北海道大学 地球環境科学研究院 地球圏科学部門
> >> 〒060-0810 札幌市北区北10条西5丁目
> > 
> 
>