applyTransformation と同じ画像の歪みを行いますか? この関数 applyTransformation はまだありますか?
また、applyShear 関数については、せん断のみを適用し、他のレンズ効果は適用しません。つまり、倍率やその他の高次効果は適用しませんよね?
applyTransformation と同じ画像の歪みを行いますか? この関数 applyTransformation はまだありますか?
また、applyShear 関数については、せん断のみを適用し、他のレンズ効果は適用しません。つまり、倍率やその他の高次効果は適用しませんよね?
書かれたすべてのドキュメント、例、およびソース コードは、GitHub の次の場所にあります。 https://github.com/GalSim-developers/GalSim
最初にそこを見ることをお勧めします。質問に直接答えるドキュメントがない場合applyShear
は、説明している機能のソース コードをいつでも調べることができます。
幸運を
上記の ne1410s からの応答に追加したいと思います (彼または彼女の投稿にコメントする評判ポイントがありません)。
その優れた情報に加えて、ほとんどの標準機能の完全なドキュメントストリングがあり、python help() ルーチンを使用してチェックアウトできます。
import galsim
help(galsim.GSObject.applyShear)
applyShear() の場合、このルーチンは GalSim の最新バージョンでは廃止されていますが、docstring はまだ存在しており、ユーザーに新しい機能を示しています。古いバージョンの GalSim については、applyShear() がどのように機能するかを説明する完全な docstring があります。
要約すると、GalSim リポジトリにアクセスすると、次の方法でヘルプを取得できます。
そして、help() を介してアクセスできる個々のルーチンの docstring があります。通常、ルーチンの動作を理解するためにソース コードを読む必要はありません。
バージョン 1.1 では、メソッドapplyShear
とapplyTransformation
は廃止されました。推奨される使用方法は nowshear
とtransform
です。
このshear
方法は通常、 として使用されますsheared_obj = obj.shear(g1=g1, g2=g2)
。ここでg1
、g2
は、適用される減少したせん断の成分です。e1
、e2
(せん断ではなく歪み)、またはg
、beta
またはe
、beta
(大きさと位置角度を与える)、その他の可能性を指定することもできます。GalSim でせん断を指定する方法の詳細については、Shear
クラスのドキュメントを参照してください。
どのようにせん断を指定しても、shear
メソッドは、総フラックスを維持する方法で、指定された表面輝度プロファイルをその量だけせん断します。
このtransform
方法は、任意の 2x2 座標変換行列で変換できるという点で、やや一般的です。具体的にはdudx
、任意のヤコビアンを指定します。この方法では、せん断と同等の変換を適用できますが、ヤコビアンの正しい項を手動で計算する必要があります。 dudy
dvdx
dvdy
もう 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 ドキュメント のトップ レベルから移動してみてください。