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
オブジェクトは結果オブジェクトに用いられる.