1

applyTransformation と同じ画像の歪みを行いますか? この関数 applyTransformation はまだありますか?

また、applyShear 関数については、せん断のみを適用し、他のレンズ効果は適用しません。つまり、倍率やその他の高次効果は適用しませんよね?

4

3 に答える 3

2

書かれたすべてのドキュメント、例、およびソース コードは、GitHub の次の場所にあります。 https://github.com/GalSim-developers/GalSim

最初にそこを見ることをお勧めします。質問に直接答えるドキュメントがない場合applyShearは、説明している機能のソース コードをいつでも調べることができます。

幸運を

于 2014-12-15T11:03:44.790 に答える
1

上記の ne1410s からの応答に追加したいと思います (彼または彼女の投稿にコメントする評判ポイントがありません)。

その優れた情報に加えて、ほとんどの標準機能の完全なドキュメントストリングがあり、python help() ルーチンを使用してチェックアウトできます。

import galsim
help(galsim.GSObject.applyShear)

applyShear() の場合、このルーチンは GalSim の最新バージョンでは廃止されていますが、docstring はまだ存在しており、ユーザーに新しい機能を示しています。古いバージョンの GalSim については、applyShear() がどのように機能するかを説明する完全な docstring があります。

要約すると、GalSim リポジトリにアクセスすると、次の方法でヘルプを取得できます。

  1. examples/ のデモを参照してください (それらは広範囲にコメントされています)。
  2. doc/ のクイック リファレンス ガイドを参照してください。
  3. http://galsim-developers.github.io/GalSim/で、すべてのドキュメント文字列を含む完全なドキュメントにアクセスしてください。

そして、help() を介してアクセスできる個々のルーチンの docstring があります。通常、ルーチンの動作を理解するためにソース コードを読む必要はありません。

于 2014-12-15T13:31:34.203 に答える
1

バージョン 1.1 では、メソッドapplyShearapplyTransformationは廃止されました。推奨される使用方法は nowsheartransformです。

このshear方法は通常、 として使用されますsheared_obj = obj.shear(g1=g1, g2=g2)。ここでg1g2は、適用される減少したせん断の成分です。e1e2(せん断ではなく歪み)、またはgbetaまたはebeta(大きさと位置角度を与える)、その他の可能性を指定することもできます。GalSim でせん断を指定する方法の詳細については、Shearクラスのドキュメントを参照してください。

どのようにせん断を指定しても、shearメソッドは、総フラックスを維持する方法で、指定された表面輝度プロファイルをその量だけせん断します。

このtransform方法は、任意の 2x2 座標変換行列で変換できるという点で、やや一般的です。具体的にはdudx、任意のヤコビアンを指定します。この方法では、せん断と同等の変換を適用できますが、ヤコビアンの正しい項を手動で計算する必要があります。 dudydvdxdvdy

もう 1 つの違いは、transform必ずしもフラックスが保持されないことです。フラックスは、ヤコビアンが単位行列式を持つ場合にのみ保存されます。したがって、ユースケースによっては、完了時に行列式によってフラックスを再スケーリングする必要がある場合があります。

私の推測では、ほとんどの場合、shearではなくtransform. サンプル ユース ケースを次に示します ( GalSim の例のディレクトリにある demo5.py から取得)

gal = galsim.Exponential(flux=1., half_light_radius=gal_re)

[...] 

for [...]:
    # Now in a loop to draw many versions of this galaxy with different shears, etc.

    # Make a new copy of the galaxy with an applied e1/e2-type distortion 
    # by specifying the ellipticity and a real-space position angle
    this_gal = gal.shear(e=ellip, beta=beta)

    # Apply the gravitational reduced shear by specifying g1/g2
    this_gal = this_gal.shear(g1=gal_g1, g2=gal_g2)

    [...]

お役に立てれば。

注: 上記のリンクは 2014 年 12 月現在のものです。それらが古くなった場合は、Doxygen ドキュメント のトップ レベルから移動してみてください。

于 2014-12-16T02:22:33.193 に答える