[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:003670] Re: GPhys#cyclic_ext の拡張
- To: dennou-ruby@xxxxxxxxxxx
- Subject: [dennou-ruby:003670] Re: GPhys#cyclic_ext の拡張
- From: Shin-ichi Takehiro <takepiro@xxxxxxxxxxxxxx>
- Date: Thu, 16 Jan 2014 09:26:34 +0900
神代さん
竹広です. お返事ありがとうございます.
うーむ, 手もとで困っていないなら話が進みませんねぇ.
なんとか 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丁目
> >
>
>