-1

適合ファイルからのデータの読み取りに問題があります。通常、fits ファイルからデータを読み取ることはできますが、いくつかの問題を引き起こすデータ ファイルがいくつかあります。3 つの列とヘッダーを含むファイルを読み込もうとすると、次のような数値の表しか表示されません。

[[ 64 195 45 ..., 0 0 0]]

これは整数であり、データ ファイルには実際には、次のように double と float を 3 つの列に含む 3 つの列が含まれている必要があります。

[9819.3801, 0.00000, 0.00000]

[9820.0025、5.50764e-16、1.62396e-16]

[820.6248、-3.75781e-17、1.51864e-16]

mrdfitsと呼ばれる IDL のパッケージを使用して値を取得できるため、これらの値を取得する必要があることはわかっています。適合ファイルに含まれるデータ型と形式を調べてみました。コードは次のようになります。

f=pyfits.open('filename')

dat =f[1].data

print f.info

>> No.    Name         Type      Cards   Dimensions   Format

>> 0    PRIMARY     PrimaryHDU       4  ()            uint8

>> 1    PRIMARY     PrimaryHDU     576  (156288, 1)   uint8

>> None

print pyfits.getval('filename','xtension',1)

>> BINTABLE

print dat

>> [[ 64 195  45 ...,   0   0   0]]

私の質問は基本的にです。非整数データの 3 つの列を取得できるように、データを読み取る別の方法はありますか? ファイルが通常とは異なる方法で読み取られるのは、ファイルが BINTABLE であるためでしょうか? 現在行っている方法以外に、3 つの列をロードできる別の方法はありますか? いくつかの点を明確にする必要がある場合は、質問してください。現時点で多くのことを試したので、どちらの方向に進むべきかわかりません. どんな助けでも大歓迎です!

4

1 に答える 1