CCD Data類

スタート

データを取得する

1つを作ることができます CCDData オブジェクトは任意の類似配列のデータから使用する astropy.nddata 便利です。

>>> import numpy as np
>>> from astropy.nddata import CCDData
>>> ccd = CCDData(np.arange(10), unit="adu")

舞台裏では、これは可能な場合にデータへの参照(データのコピーではなく)を作成するので、 ccd 下位データを修正します。

You are required to provide a unit for your data. The most frequently used units for these objects are likely to be adu, photon, and electron, which can be set either by providing the string name of the unit (as in the example above) or from unit objects:

>>> from astropy import units as u
>>> ccd_photon = CCDData([1, 2, 3], unit=u.photon)
>>> ccd_electron = CCDData([1, 2, 3], unit="electron")

もしあなたが好きなら not 単位機能をご利用の場合は、特殊な単位をご利用ください u.dimensionless_unscaled あなたが作ったのは CCDData 写真:

>>> ccd_unitless = CCDData(np.zeros((10, 10)),
...                        unit=u.dimensionless_unscaled)

A CCDData オブジェクトはFITSファイル名やURLから初期化することもできます:

>>> ccd = CCDData.read('my_file.fits', unit="adu")  
>>> ccd = CCDData.read('http://data.astropy.org/tutorials/FITS-images/HorseHead.fits', unit="adu", cache=True)  

FITSファイルに単位があれば(はい BUNIT キーワード)は使われますが read FITSファイルの任意の単位を代替します。

単位が何であっても何の制限もない-どの単位でもよい astropy.units あるいはあなたが自分で作った他のものは機能するだろう。

また、ユーザは、FITSファイルにおいて使用する拡張子を指定することもできる:

>>> ccd = CCDData.read('my_file.fits', hdu=1, unit="adu")  

もし hdu 指定されていなければ、データが主拡張にあると仮定する。主拡張にデータがない場合には、画像データを含む最初の拡張が使用される。

メタデータ.

FITSファイルから初期化すると, header 属性はFITSファイルのヘッダを用いて初期化する.メタデータは任意の辞書またはクラス辞書オブジェクトによって提供されることができる任意の辞書またはクラス辞書オブジェクトによって提供されることができる。

>>> ccd_simple = CCDData(np.arange(10), unit="adu")
>>> my_meta = {'observer': 'Edwin Hubble', 'exposure': 30.0}
>>> ccd_simple.header = my_meta  # or use ccd_simple.meta = my_meta

メタデータが大文字を区別するかどうかはその初期化方式に依存する.例えば、FITSタイトルは大文字と小文字を区別しませんが、Python辞書は大文字と小文字を区別します。

データを取得する

A CCDData 対象の行為は numpy 配列(もし CCDData マスクが設定されており、基礎データ(どのマスクも無視)が通過する data 属性:

>>> ccd_masked = CCDData([1, 2, 3], unit="adu", mask=[0, 0, 1])
>>> 2 * np.ones(3) * ccd_masked   # one return value will be masked
masked_array(data=[2.0, 4.0, --],
             mask=[False, False,  True],
       fill_value=1e+20)
>>> 2 * np.ones(3) * ccd_masked.data   # ignores the mask  
array([2., 4., 6.])

強制的に変換することができます numpy アレイは:

>>> np.asarray(ccd_masked)
array([1, 2, 3])
>>> np.ma.array(ccd_masked.data, mask=ccd_masked.mask)
masked_array(data=[1, 2, --],
             mask=[False, False,  True],
       fill_value=999999)

1つは変換のための CCDData HDUに適したリストにオブジェクトを追加してもよい。メタデータをFITSヘッダに変換します。

>>> hdulist = ccd_masked.to_hdu()

FITSファイルを直接書き込むこともできます。

>>> ccd_masked.write('my_image.fits')

仮面と旗

それは次のような状況では必要ではないにもかかわらず CCDData 画像を作成した後、マスクおよび/またはフラグを指定することもできます。

マスクはブール配列でその大きさと True 特定の画素をマスクすべきであることを示す( i.e. 算術演算や集約には含まれない).

フラグは、形状がデータ形状に一致する1つまたは複数の追加配列(任意のタイプ)である。特に有用なフラグタイプは、ビットプレーンであり、ビットプレーンおよび関数に関するより多くの詳細な情報 astropy これらをバイナリマスクに変換する機能を提供しますので、参照されたい ビットマスクおよびマスク配列を処理するためのユーティリティ関数 それがそうです。設定フラグの詳細については、ご参照ください NDData それがそうです。

WCS

♪the wcs 対象の属性 CCDData オブジェクトは2つの方法で設定することができる.

  • もし CCDData オブジェクトは,タイトルにWCSキーワードを含むFITSファイルから作成され, wcs 属性は、 WCS FITSヘッダの情報を使用して作成されます。

  • WCSは以下の場合にも提供可能である. CCDData 相手は使う wcs 論争する。

いずれにしても wcs 属性は最新のままで、もし CCDData 画像はカットされます。

不確定度

不確実性を直接設定することができます方法は StdDevUncertainty 対象優先:

>>> data = np.random.normal(size=(10, 10), loc=1.0, scale=0.1)
>>> ccd = CCDData(data, unit="electron")
>>> from astropy.nddata.nduncertainty import StdDevUncertainty
>>> uncertainty = 0.1 * ccd.data  # can be any array whose shape matches the data
>>> my_uncertainty = StdDevUncertainty(uncertainty)
>>> ccd.uncertainty = my_uncertainty

あるいは提供することで ndarray データと同じ形状をしています

>>> ccd.uncertainty = 0.1 * ccd.data  
INFO: array provided for uncertainty; assuming it is a StdDevUncertainty. [...]

この場合不確実性は StdDevUncertainty それがそうです。

エラー伝搬の他の2つの不確実性のクラスもサポートしています VarianceUncertainty そして InverseVariance それがそうです。誤り伝播を有効にするためには,これら3つの不確実性のうちの1つを用いる必要がある. CCDData それがそうです。

潜在的な不確実性へのアクセスをご希望の場合は、ご利用ください .array 属性:

>>> ccd.uncertainty.array  
array(...)

画像に基づく算術演算

方法は算術演算を実行する。 CCDData 画像と数字、1つ astropy Quantity (単位付きの数字)または別の CCDData イメージ。

これらの方法を使用して、エラー(エラーが相関しない場合)を正確に伝播し、任意の必要な単位変換を処理し、マスクを適切に適用することができる。結果のメタデータは not もし2つの操作が CCDData 物体です。

>>> result = ccd.multiply(0.2 * u.adu)
>>> uncertainty_ratio = result.uncertainty.array[0, 0]/ccd.uncertainty.array[0, 0]
>>> round(uncertainty_ratio, 5)   
0.2
>>> result.unit
Unit("adu electron")

注釈

付属定食. ccdproc 多くの一般的なデータ削減操作に機能を提供する。これらの関数は、結果のための合理的なヘッダを構築しようと試み、ヘッダに関数動作を記録する機構を提供する。

算術演算子 *, /, `` +``,そして - あります。 not カバーされる。

注釈

2つの画像が異なるWCS値を持つ場合 wcs 初めての CCDData オブジェクトは結果オブジェクトに用いられる.