1

私はpython2.5を実行していて、astLibライブラリを使用して天文画像のWCS情報を分析しようとしています。次のスケルトンコードでオブジェクトをインスタンス化しようとします。

from astLib import astWCS

w = astWCS.WCS('file.fits') # error here

ここで、file.fitsは、有効なフィットファイルを指す文字列です。

pyfitsヘッダーオブジェクトを渡す別の方法を使用しようとしましたが、これも失敗します。

import pyfits
from astLib import astWCS

f = pyfits.open('file.fits')
header = f[0].header
f.close()

w = astWCS.WCS(header, mode='pyfits') # error here also

エラーは次のとおりです。

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/astro/phrfbf/build/lib/python2.6/site-packages/astLib/astWCS.py", line 79, in __init__
    self.updateFromHeader()
  File "/home/astro/phrfbf/build/lib/python2.6/site-packages/astLib/astWCS.py", line 119, in updateFromHeader
    self.WCSStructure=wcs.wcsinit(cardstring)
  File "/home/astro/phrfbf/build/lib/python2.6/site-packages/PyWCSTools/wcs.py", line 70, in wcsinit
    return _wcs.wcsinit(*args)
TypeError: in method 'wcsinit', argument 1 of type 'char *'

ipythonで実行すると、pastebinで完全なエラーが発生します

astWCSモジュールがラップされたバージョンのWCStoolsであることは知っていますが、残りのコードはPythonであるため、Pythonモジュールを使用したいと思います。

誰かがこの問題を手伝うことができますか?

4

2 に答える 2

1

このライブラリの更新バージョンで問題が修正されたことがわかりました。皆さんの助けに感謝します。

于 2010-03-10T00:26:58.877 に答える
0

すみません、見たほうがよかったです。ペーストビンをより詳細に見ると、私が考えることができる唯一のエラーは、何らかの理由でヘッダーにユニコードが含まれていることです。に変換できずchar *、エラーが発生します。ヘッダーで何かを検索しようとしましたが、すべて問題ないようです。これを行って、出力を別のペーストビンに投稿できますか?

import pyfits

f = pyfits.open('file.fits')
header = f[0].header
f.close()

for x, i in enumerate(header.iteritems()):
    if len(str(i[1])) >= 70:
        print x, str(i[1])

cardlist = header.ascardlist() 
cardstring = "" 
for card in cardlist: 
    cardstring = cardstring + str(card)

print repr(cardstring)

または、fitsファイルのヘッダーで「面白い」文字を確認できる場合は、それらを削除すると問題が解決するはずです。

于 2010-01-14T02:58:36.527 に答える