Asterpy.io.Fits歴史

Astropyに組み込まれる前に astropy.io.fits package was a stand- alone package called PyFITS それがそうです。PyFITSは積極的にメンテナンスされておらず,その開発は現在Astropyに限られている.本ページには,PyFITSがAstropyに統合されるまでの発表履歴が記録されている.

3.4.0(2016-01-29)

これは,独立ソフトウェアパッケージとして発表された最新バージョンのPyFITSである.

3.3.0(2014-07-17)

新しい特徴.

  • Added new verification options fix+ignore, fix+warn, fix+exception, silentfix+ignore, silentfix+warn, and silentfix+exception which give more control over how to report fixable errors as opposed to unfixable errors. See the "Verification" section in the PyFITS documentation for more details.

API変更

  • ♪the pyfits.new_table 関数は現在完全に破棄されている(その使用範囲が広いことを考慮しても,長い間削除されない).

    逆に、もっと明確なものを使ってください pyfits.BinTableHDU.from_columns 新しいバイナリテーブルHDUの作成、および同様の pyfits.TableHDU.from_columns 新しいASCII表を作成するには、以下の操作を実行してください。その他の点では,以下と同様の論拠を受け入れる. pyfits.new_table これは今これらの包装だけです。

  • ♪the .fromstring HDUタイプごとのclassmethodは簡略化されているため,同人者と同様に,そのヘッダを含む文字列のみからHDUを初期化する. and データです。(宇宙望遠鏡/PyFITS#64)

  • 見出しワイルドカードマッチングの問題(例えば、 header['DATE*'] )をマッチングに使用することができます any キーワードに出現する可能性のある文字.従来,これは集合中の文字を含むキーワードのみにマッチしていた [0-9A-Za-z_] それがそうです。ハイフンに合わせることもできます - 他のキャラクターも慣例のように HIERARCH 記録値キーワードカードは、標準マッチングキーワードよりも広い範囲の有効文字を可能にする。

  • これは…。 last 以下のPyFITS v 3.1以来推奨されていないとラベル付けされたAPIを発行します:

    • ♪the CardList クラスは、古いヘッダ実装の一部である。

    • ♪the Card.key 属性です。使用 Card.keyword 代わりに。

    • ♪the Card.cardimage そして Card.ascardimage 属性です。簡単に使う Card.image あるいは…。 str(card) 代わりに。

    • ♪the create_card 工場機能。普通のものを使えばいいです Card 代わりに構造関数がある.

    • ♪the create_card_from_string 工場機能。使用 Card.fromstring 代わりに。

    • ♪the upper_key 機能します。使用 Card.normalize_keyword 方法(これはPyFITS自体以外で使用することはあまり不可能であるが,技術的には共通APIである).

    • の使い方 Header.update 使用 Header.update(keyword, value, comment) 論争する。 Header.update 類比的にのみ使用すべきである dict.update それがそうです。使用 Header.set 代わりに。

    • ♪the Header.ascard 属性です。使用 Header.cards 代わりにすべての Card タイトルの中のオブジェクト。

    • ♪the Header.rename_key 方法です。使用 Header.rename_keyword 代わりに。

    • ♪the Header.get_history 方法です。使用 header['HISTORY'] (通常のキーワード検索)です

    • ♪the Header.get_comment 方法です。使用 header['COMMENT'] 代わりに。

    • ♪the Header.toTxtFile 方法です。使用 header.totextfile 代わりに。

    • ♪the Header.fromTxtFile 方法です。使用 Header.fromtextfile 代わりに。

    • ♪the pyfits.tdump そして tcreate 機能します。使用 pyfits.tabledump そして pyfits.tableload それぞれです。

    • ♪the BinTableHDU.tdump そして tcreate 方法:研究方法。使用 BinTableHDU.dump そして BinTableHDU.load それぞれです。

    • ♪the txtfile パラメータは Header 構造関数。使用 Header.fromfile 代わりに。

    • ♪the startColumn そして endColumn のパラメータです。 FITS_record 構造関数。これらのコードはどのユーザコードによっても使用される可能性は低い。

    これらの推奨されていないインタフェースは、v 3.3バージョン以降のPyFITS開発バージョンから削除される(ただし、いずれのv 3.3.xエラー修復バージョンでも利用可能である)。

その他の変更と追加

  • PyFITSは統一されたライブラリに切り替えられており、翻訳することなくPython 2.5~3.4を同時にサポートすることができます。これが すべきではない 性能に重大な影響があるかどうかは不明ですが、明らかに遅くなった場合は報告してください。Python 2.5へのサポートは、PyFITS 3.3.xの後に終了します。

  • PyFITSではAPIを破棄した警告は現在デフォルトでつねに表示されている.これは,最近Astropyに対する類似した変更と一致している:https://github.com/Asterpy/Asterpy/Pull/1871は,ユーザが呼び出し可能なスクリプト中のPyFITS破棄警告を無効にする. pyfits.ignore_deprecation_warnings() PyFITSを導入した後.

  • Card 対象は新しいものを持っている is_blank 属性、その属性は戻ります True カードが空白のカード(キーワード、値、または注釈がない)を表す場合、 False そうでなければ。

誤って修復する

  • 空の“圧縮”画像をファイルに保存できない回帰を修復した(この場合,圧縮可能なものはあまりないため,引用符を用いたが,これを試みると崩れてしまう).(宇宙望遠鏡/PyFITS#69)

  • V 3.2.1で圧縮画像HDU(特に非空GZIP_COMPRESSED_DATA列を用いた圧縮画像)を書き込む際に導入可能な回帰が修復された。(宇宙望遠鏡/#71)

3.2.4(2014-06-02)

  • 何度も連続呼び出しを修復した writeto 方法は同じHDU上にあるが、異なるファイルへの移行は、破損したデータまたはクラッシュ後の最初の後の後続の呼び出しをもたらす可能性がある。(宇宙望遠鏡/PyFITS#40)

3.2.3(2014-05-14)

  • Python 3.4は名目上サポートされています。

  • 修復使用 tabledump そして tableload 各要素が単一のスカラー値の列ではなく1つの配列である配列列を含むテーブルを有する関数。(宇宙望遠鏡/PyFITS#22)

  • PyFITSがヘッダ値とアノテーションに改行を用いることを許す問題を修復した.(宇宙望遠鏡/PyFITS#51)

  • 固定酸洗 FITS_rec (表データ)オブジェクト。(宇宙望遠鏡/PyFITS#53)

  • プラットフォームアーキテクチャの不必要な検査を解消することにより,OSXに大型圧縮画像を書き込む際の挙動を改善した.(宇宙望遠鏡/PyFITS#57)

  • 類似ファイルのオブジェクトからFITファイルを読み込むことが許可されており、これらのオブジェクトはありません .closed 属性(したがって,“開く”と“閉じる”の概念さえない可能性がある).(宇宙望遠鏡/PyFITS#56)

  • 圧縮画像タイトルにアノテーションキーワードを繰り返し挿入する問題を修復した.(宇宙望遠鏡/PyFITS#58)

  • 見出しレビューカードの値が比較的小さい問題を修正した.(宇宙望遠鏡/PyFITS#59)

3.1.6(2014-05-14)

  • Python 3.4は名目上サポートされています。

  • 修復使用 tabledump そして tableload 各要素が単一のスカラー値の列ではなく1つの配列である配列列を含むテーブルを有する関数。(3.2.3から後方移植)

  • PyFITSがヘッダ値とアノテーションに改行を用いることを許す問題を修復した.(3.2.3から後方移植)

  • 固定酸洗 FITS_rec (表データ)オブジェクト。(3.2.3から後方移植)

  • プラットフォームアーキテクチャの不必要な検査を解消することにより,OSXに大型圧縮画像を書き込む際の挙動を改善した.(3.2.3から後方移植)

  • 類似ファイルのオブジェクトからFITファイルを読み込むことが許可されており、これらのオブジェクトはありません .closed 属性(したがって,“開く”と“閉じる”の概念さえない可能性がある).(3.2.3から後方移植)

  • 見出しレビューカードの値が比較的小さい問題を修正した.(3.2.3から後方移植)

3.2.2(2014-03-25)

  • 見出しワイルドカード文法を用いて記録値キーワードカードを削除した場合の回帰を修復した.この問題はV 3.2.1バージョンまでに修復する予定であった.

3.1.5(2014-03-25)

  • 見出しワイルドカード文法を用いて記録値キーワードカードを削除した場合の回帰を修復した.この問題はV 3.1.4が発表される前に修復する予定だった。

3.2.1(2014-03-04)

  • これから発売されるPython 3.4を名目上でサポートします。

  • 不足している機能を追加しました Header.insert() 方法:第1のパラメータとして整数インデックスを受け入れることに加えて、特定のキーワードに対して挿入された第1のパラメータとしてキーワード名を提供することをサポートする。それは今でもオプションのものをサポートしています after 論争する。もし…。 after=True 挿入操作は挿入点の上方ではなく挿入点の下方で行われる.(宇宙望遠鏡/PyFITS#12)

  • リストに割り当てられた値に対するブロードキャスト支援を修復した.(宇宙望遠鏡/PyFITS#48)

  • 見出しの細かい性能が改善されたグリップ。(宇宙望遠鏡/PyFITS#46)

  • 修復事例化 ColDefs 無効なオブジェクトを入力します。

  • 属性は、擬似符号なし整数を含む画像を開き、直ちに新しいファイルに書き込む問題が修復された。 writeto 方法:データを符号なしと識別するスケーリング係数を削除する.

  • 以下の命令を用いてファイルに書き込む際に発生したエラーを修復した. checksum=True 新しいファイルにチェックサムは追加されていません。(宇宙望遠鏡/PyFITS#8)

  • HDUのチェックサムを検証する際に、そのHDUのヘッダからチェックサムを完全に削除する問題(チェックサムが有効であっても)が修復された。

  • 圧縮画像上のチェックサムを修復しました ZHECKSUM そして ZDATASUM 元の画像HDUのチェックサムが含まれています CHECKSUM そして DATASUM 圧縮画像HDUのチェックサムを含む。この特性は3.2で支持されるべきであるが,この支持は誤りである.

  • 可変長配列列を含む既存表を新しいFITSファイルに書き込む場合,ファイルサイズが正しく計算できない場合があるという問題を修復した.これは新しいFITSファイルの破損を招く可能性がある。(宇宙望遠鏡/PyFITS#47)

  • ペアのヘッダを更新した問題 CompImageHDU 保存時に保持されていないオブジェクト.(宇宙望遠鏡/PyFITS#23)

  • ブル値を修復したのは True 整数1で置き換えることはできません False 0と、その逆も同様である。

  • 上記と同様の問題が修復されたが、デジタル値−現在、タイトル値を等価なデジタル値で置き換えると、値がアップ/ダウン変換される。例えば、‘0’を‘0.0’に置き換えると、‘0.0’がヘッダに書き込まれ、浮動小数点値として返される。同様に、浮動小数点数は整数に下方に変換することができる。(宇宙望遠鏡/PyFITS#49)

  • いくつかのPython 3互換性修復、特にこれからリリースされるPython 3.4と互換性があるためです。

  • ヘッダに無効終了カード(例えば“end=”)が含まれている場合に関連しないクラッシュが修復された.これは神秘的な追跡につながった。いま,このようなヘッダは“明示的意図”のターミネーターを検出し,その無効に関する警告を生成して修復する.(#217)

  • 一連のことを許す Column 主パラメータとして FITS_rec.from_columns 文書が提案したように、可能でなければならない。

  • Fitsdiffを修復した表示フォーマットの問題は,2つの浮動小数点数のビット数が同じであれば,ある小さいビット数までそれらの差が表示されない場合がある.(宇宙望遠鏡/PyFITS#21)

  • Python 2を修復した場合、非ASCII文字列を古い文字列に先頭値として指定することができるという問題があります str 対象と注釈 unicode 物体です。(宇宙望遠鏡/PyFITS#37)

3.1.4(2014-03-04)

  • 不足している機能を追加しました Header.insert() 方法:第1のパラメータとして整数インデックスを受け入れることに加えて、特定のキーワードに対して挿入された第1のパラメータとしてキーワード名を提供することをサポートする。それは今でもオプションのものをサポートしています after 論争する。もし…。 after=True 挿入操作は挿入点の上方ではなく挿入点の下方で行われる.(3.2.1から後方への移植)

  • 見出しの細かい性能が改善されたグリップ。(3.2.1から後方への移植)

  • 属性は、擬似符号なし整数を含む画像を開き、直ちに新しいファイルに書き込む問題が修復された。 writeto 方法:データを符号なしと識別するスケーリング係数を削除する.(3.2.1から後方への移植)

  • 以下の命令を用いてファイルに書き込む際に発生したエラーを修復した. checksum=True 新しいファイルにチェックサムは追加されていません。(3.2.1から後方への移植)

  • HDUのチェックサムを検証する際に、そのHDUのヘッダからチェックサムを完全に削除する問題(チェックサムが有効であっても)が修復された。(3.2.1から後方への移植)

  • 可変長配列列を含む既存表を新しいFITSファイルに書き込む場合,ファイルサイズが正しく計算できない場合があるという問題を修復した.これは新しいFITSファイルの破損を招く可能性がある。(3.2.1から後方への移植)

  • ブル値を修復したのは True 整数1で置き換えることはできません False 0と、その逆も同様である。(3.2.1から後方への移植)

  • 上記と同様の問題が修復されたが、デジタル値−現在、タイトル値を等価なデジタル値で置き換えると、値がアップ/ダウン変換される。例えば、‘0’を‘0.0’に置き換えると、‘0.0’がヘッダに書き込まれ、浮動小数点値として返される。同様に、浮動小数点数は整数に下方に変換することができる。(3.2.1から後方への移植)

  • ヘッダに無効終了カード(例えば“end=”)が含まれている場合に関連しないクラッシュが修復された.これは神秘的な追跡につながった。いま,このようなヘッダは“明示的意図”のターミネーターを検出し,その無効に関する警告を生成して修復する.(3.2.1から後方への移植)

  • Fitsdiffを修復した表示フォーマットの問題は,2つの浮動小数点数のビット数が同じであれば,ある小さいビット数までそれらの差が表示されない場合がある.(3.2.1から後方への移植)

  • Python 2を修復した場合、非ASCII文字列を古い文字列に先頭値として指定することができるという問題があります str 対象と注釈 unicode 物体です。(3.2.1から後方への移植)

3.0.13(2014-03-04)

  • 以下の命令を用いてファイルに書き込む際に発生したエラーを修復した. checksum=True 新しいファイルにチェックサムは追加されていません。(3.2.1から後方への移植)

  • HDUのチェックサムを検証する際に、そのHDUのヘッダからチェックサムを完全に削除する問題(チェックサムが有効であっても)が修復された。(3.2.1から後方への移植)

3.2(2013-11-26)

ハイライト。

  • CFITSIOによるバックエンドを書き換え,FITSファイルを処理するためのタイル圧縮を行った.これは現在,従来のようにCFITSIOを大量に修正するのではなく,標準的なCFITSIOを使用している.PyFITSには,最新バージョンのタイル画像約束(v 2.3)をサポートする独自のCFITSIO v 3.35バージョンが付属しているが,システム請負業者はそれを除去し,システム実装のCFITSIOバージョンを使用することを選択する可能性がある.より早いバージョンは実行可能かもしれませんが、3.28前のバージョンはまだテストされていません。(#169)

  • 列を用いたQフォーマット読み書きテーブルのサポートを加えた.Qフォーマットは、データ記述子として64ビットの整数を使用し、4 GBを超える可変長配列データを単一のテーブルで許容する点で、Pフォーマット(可変長配列)と同じである。(#160)

  • 擬似符号なし整数を含むリスト列の初期サポートを追加した.現在これは uint=True オプション;正しいBZEO値を有する任意のリストは、符号なし整数配列として解釈され、返されるであろう。

  • 表をいくつか再構成し FITS_rec モジュールは、FITバイナリおよびASCIIテーブルデータ構造の詳細を、それらをカプセル化するHDUデータ構造からよりよく分離するように構成されている。これらの変更の多くは、ユーザにとって明らかではないはずである(ただし、以下のAPI変更を参照)。

API変更

  • Assigning to values in ColDefs.names, ColDefs.formats, ColDefs.nulls and other attributes of ColDefs instances that return lists of column properties is no longer supported. Assigning to those lists will no longer update the corresponding columns. Instead, please just modify the Column instances directly (Column.name, Column.null, etc.)

  • ♪the pyfits.new_table 関数は“未定破棄”と表記される.これはそれが完全に除去されることを意味するのではなく、その機能が変化したことを意味するわけでもない。これは、将来的に(微妙に異なる場合)類似した機能を有する関数に置き換えられる可能性が高い。より良い方法(少し冗長でなければ)は使用である pyfits.FITS_rec.from_columns 新しいものを作るには FITS_rec 表--この表は同じインタフェースを持っています pyfits.new_table それがそうです。違うのは計画に戻ることです FITS_rec HDUインスタンスではなく、配列。これが FITS_rec そして,オブジェクトは以下のオブジェクトの構造関数におけるデータパラメータとして用いることができる. BinTableHDU (バイナリ表に適用される)または TableHDU (ASCII表に適用)。これは似たようなものです ImageHDU 画像配列を入力することで pyfits.FITS_rec.from_columns FITS列仕様からFITS互換再配列を作成するより簡単な方法である.

  • The updateHeader, updateHeaderData, and updateCompressedData methods of the CompDataHDU class are pending deprecation and moved to internal methods. The operation of these methods depended too much on internal state to be used safely by users; instead they are invoked automatically in the appropriate places when reading/writing compressed image HDUs.

  • ♪the CompDataHDU.compData 属性は廃棄を待っています代わりにより明確でPEP-8に対応しています CompDataHDU.compressed_data それがそうです。

  • の構造関数 CompDataHDU 新しいキーワードパラメータを受け入れるように変更されました。新しいキーワードパラメータは本質的に同じであるが,CamelCaseフォーマットではなくDOUTERTEL_SELECTEDフォーマットを採用している.古い論拠はまだ反対する必要がある.

  • The internal attributes of HDU classes _hdrLoc, _datLoc, and _datSpan have been replaced with _header_offset, _data_offset, and _data_size respectively. The old attribute names are still pending deprecation. This should only be of interest to advanced users who have created their own HDU subclasses.

  • The following previously deprecated functions and methods have been removed entirely: createCard, createCardFromString, upperKey, ColDefs.data, setExtensionNameCaseSensitive, _File.getfile, _TableBaseHDU.get_coldefs, Header.has_key, Header.ascardlist.

    以前のバージョンのPyFITS(>=3.0、<3.2)を使用してコードを実行すると python -Wd パラメータは,まだ使用されているすべての破棄されたインタフェースの警告を表示する.

  • Interfaces that were pending deprecation are now fully deprecated. These include: create_card, create_card_from_string, upper_key, Header.get_history, and Header.get_comment.

  • ♪the .name プロパティはHDUのヘッダに直接バインドされていますので .header['EXTNAME'] 変化もそうです .name その逆も同様である。

  • ♪the pyfits.file.PYTHON_MODES 定数DICTは改名されました pyfits.file.PYFITS_MODES その目的をよりよく反映している。しかし,クライアントコードはこれを用いることは少ない.PyFITS 3.4は古い名前のサポートを削除します。

その他の変更と追加

  • 新しい圧縮コードは,Tile圧縮仕様に準拠した最新バージョンに追加されたZQUANTIZやZDITHER 0キーワードのサポートも追加されている.これは、GZIPを使用した可逆圧縮をサポートすることを含む。(#198)デフォルトではジッタは使用されませんが、 SUBTRACTIVE_DITHER_1 そして SUBTRACTIVE_DITHER_2 メソッドは正しいリテラルを渡すことで quantize_method パラメータは CompImageHDU 構造関数。シードは手動で指定することができ、システムクロックまたはチェックサムに基づく方法を使用することもできる(通過 dither_seed 論争する。参照の文書 CompImageHDU もっと詳しい情報を知っています。(#198)(宇宙望遠鏡/PYFITS#32)

  • Qフォーマットをサポートすることによって、フラットタイル圧縮標準圧縮を使用した画像は、現在、4 GBよりも大きくすることができる。(#159)

  • すべてのHDUは今1つあります .ver .level 属性は、このHDUのヘッダからEXTVALとEXTLEVELキーワードの値を返す(存在する場合)。このオプションを追加するのは .name 属性は、タイトルからEXTNAME値を返す。

  • それは Column そして ColDefs クラスに新しいのがある .dtype 第1の場合には、列データのNumpyデータタイプが与えられ、後者の場合には、各テーブル行の完全なNumpy複合データタイプの属性が与えられる。

  • 作成された新しい表は、すべての文字列の値をデフォルトで“0.0”とすることが問題となります。現在、文字列列は、デフォルトの場合には空文字列で充填されているが、これは驚くべきデフォルト値ではないようであるが、古いバージョンのPyFITSを使用して作成されたテーブルとは異なる可能性がある。

  • Improved round-tripping and preservation of manually assigned column attributes (TNULLn, TSCALn, etc.) in table HDU headers. (astropy/astropy#996)

誤って修復する

  • あるいは、圧縮画像を含むバイナリテーブルは、平坦化圧縮約束とは無関係な他の列を含むことができる。これは一般的ではない用例だが、それは標準的に許容される。(#159)

  • いくつかのファイルI/Oルーチンは、オペレーティングシステム統合レベルファイルパターン(‘rb’,‘wb’,‘ab’など)間のより簡単で一致したマッピングを可能にするために修正される。また,PyFITSは“読むだけ”や“更新する”など,より多くの“PyFITS”に特化したパターンを使用している.すなわち,開いたファイルオブジェクトからFITSファイルを読み込むと,それが正しい機能(読み出し/書き込み/など)を持っていれば,その“モード”を開いてもかまわない.また、Python ioモジュールのファイルパターンに関するエラーは、2.6+バージョンで解決されました。(宇宙望遠鏡/PyFITS#33)

  • メモリ·マップ·ファイルへのリフレッシュが実現されていないシステム(すなわちGNU Hurd)上で発生する可能性のある曖昧な問題が修復された。(Astpy/Astpy#968)

3.1.3(2013-11-26)

  • NaNとInf浮動小数点値をヘッダ値として指定することは許されず,FITS規格はそれらを中で表す方式を定義していないためである.これは未定義であるため,前のアクションは意味がなく,無効なFITSファイルが生成される.(宇宙望遠鏡/PyFITS#11)

  • 64ビットOSXにおけるエラーに対する解決方法が追加されており、このエラーは、サイズが2^32バイトを超えるファイルを書き込む際に切断を引き起こす可能性がある。(宇宙望遠鏡/PyFITS#28)

  • 可変長配列列のTFORMnキーワード(フォーマットの最大配列長パラメータを省略したもの)は,バイナリに書き込むことで可変長配列列のTFORMnキーワードを正しく書き込むことができないという長期的な問題が修復された.これはV 3.1.2で修復されたと考えられるが、一般的なバイナリテーブルではなく、圧縮画像HDUのみを修復している。

  • メモリ·マップ·ファイルへのリフレッシュが実現されていないシステム(すなわちGNU Hurd)上で発生する可能性のある曖昧な問題が修復された。(バージョン3.2背面ポート)

3.0.12(2013-11-26)

  • NaNとInf浮動小数点値をヘッダ値として指定することは許されず,FITS規格はそれらを中で表す方式を定義していないためである.これは未定義であるため,前のアクションは意味がなく,無効なFITSファイルが生成される.(3.1.3から後方への移植)

  • 64ビットOSXにおけるエラーに対する解決方法が追加されており、このエラーは、サイズが2^32バイトを超えるファイルを書き込む際に切断を引き起こす可能性がある。(3.1.3から後方への移植)

  • 可変長配列列のTFORMnキーワード(フォーマットの最大配列長パラメータを省略したもの)は,バイナリに書き込むことで可変長配列列のTFORMnキーワードを正しく書き込むことができないという長期的な問題が修復された.これはV 3.1.2で修復されたと考えられるが、一般的なバイナリテーブルではなく、圧縮画像HDUのみを修復している。(3.1.3から後方への移植)

  • メモリ·マップ·ファイルへのリフレッシュが実現されていないシステム(すなわちGNU Hurd)上で発生する可能性のある曖昧な問題が修復された。(バージョン3.2背面ポート)

3.1.3(未発表)

  • NaNとInf浮動小数点値をヘッダ値として指定することは許されず,FITS規格はそれらを中で表す方式を定義していないためである.これは未定義であるため,前のアクションは意味がなく,無効なFITSファイルが生成される.(宇宙望遠鏡/PyFITS#11)

3.0.12(未発表)

  • NaNとInf浮動小数点値をヘッダ値として指定することは許されず,FITS規格はそれらを中で表す方式を定義していないためである.これは未定義であるため,前のアクションは意味がなく,無効なFITSファイルが生成される.(3.1.3から後方への移植)

  • 64ビットOSXにおけるエラーに対する解決方法が追加されており、このエラーは、サイズが2^32バイトを超えるファイルを書き込む際に切断を引き起こす可能性がある。(3.1.3から後方への移植)

3.1.2(2013-04-22)

  • Fitsdiffでファイルを開いた場合にエラーが発生し,例外メッセージは現在少なくともどのファイルに誤りがあるかを言及している.(#168)

  • 書き込み可能モードでファイル名でgzited FITSファイルを開くサポート(PyFITSサポートがgzipファイルに書き込まれてからしばらくが経過していますが、GzipFileオブジェクトをGzipFileオブジェクトに渡す場合のみ)が修復されました。 pyfits.open() いくつかのレガシーコードのせいで完全なgzipサポートを阻止した。(#195)

  • ASCIIテーブルに非浮動小数点ヌル値が含まれているが、タイトルに必要なTNULLnキーワードが欠落しているフォーマットエラーFITファイルのためのより有用なエラーメッセージが追加されている。(#197)

  • 圧縮画像を書き込む際に可変長配列列を正しく書き込むことができないTFORMnキーワード(フォーマットの最大配列長パラメータを省略している)の問題を修復した(明らかに長期的に存在する).(#199)

  • 可変長配列列を含む表の処理方式を少し再構成し,呼び出しを修復した2つの改良を加えた. pyfits.getdata 利便性関数は異常を招き,FITSファイルの既存のmmapからVLAデータの読み出しを許可する.(#200)

  • 多次元列を含む表(すなわちTDIMnキーワード)を開いて新しいファイルに書き込む際に発生する可能性のあるエラーを修復した.(#201)

  • CONSOLE_SCRIPTSエントリポイントを追加して、fitsdiffおよびfitscheckスクリプトをインストールします。この2つのスクリプトは、少なくともより良いWindowsサポートを提供することができます。現在,生成されたスクリプトはスクリプト/ディレクトリに明示的に定義されているスクリプトをカバーしている(これらのスクリプトは最初はわずかなスタブにすぎない).(#202)

  • Python 3上のエラーを修正し、Python 3で存在しないファイルを開けようとすると、無関係に見えるバックトラックにつながります。(#203)

  • FitsdiffにおけるNaNが異なる値を含む2つの見出しキーワードの誤りを修復した(#204)

  • Pyfitが読み出し専用権限に実装されていると,あるテストに失敗するというテストの1つの問題が修復された.(#208)

  • 事例化を修復した BinTableHDU ブールフィールドを含むNumpy配列からすべての値を変換する False それがそうです。(#215)

  • 修復された整数配列を Column() 列タイプの場合,同じバイト幅の浮動小数点数により列配列が混乱する.(#218)

  • Python 2でバイト文字列とUnicode文字列からContinueカードを作成する際の不一致動作を修復しました--現在はUnicode文字列からContinueカードを正しく作成することができます(ASCIIに変換できる限り)。(宇宙望遠鏡/PyFITS#1)

  • いくつかの列でTDIMnを使用して新しいテーブルを作成することは、崩壊をもたらす可能性があるいくつかの場合を修復しました。(宇宙望遠鏡/PyFITS#3)

  • 1番目の等号の後(値の前)にスペースのない階層キーワードが解析された場合の誤りを修復する.(宇宙望遠鏡/PyFITS#5)

  • 階層キーワード上の余分な先頭スペースがキーワードの一部とみなされることを防ぐ.(宇宙望遠鏡/PyFITS#6)

  • 見出し検証期間中に小文字を含む階層キーワードが誤って無効とラベル付けされた誤りを修復した.(宇宙望遠鏡/PyFITS#7)

  • (Space etelescope/PyFITS#7)に付随する問題を修正した. Header.index() メソッドは小文字を含む階層キーワードを正しく扱うことができない.

3.0.11(2013-04-17)

  • 書き込み可能モードでファイル名でgzited FITSファイルを開くサポート(PyFITSサポートがgzipファイルに書き込まれてからしばらくが経過していますが、GzipFileオブジェクトをGzipFileオブジェクトに渡す場合のみ)が修復されました。 pyfits.open() いくつかのレガシーコードのせいで完全なgzipサポートを阻止した。3.1.2から後方移植した。(#195)

  • ASCIIテーブルに非浮動小数点ヌル値が含まれているが、タイトルに必要なTNULLnキーワードが欠落しているフォーマットエラーFITファイルのためのより有用なエラーメッセージが追加されている。3.1.2から後方移植した。(#197)

  • 圧縮画像を書き込む際に可変長配列列を正しく書き込むことができないTFORMnキーワード(フォーマットの最大配列長パラメータを省略している)の問題を修復した(明らかに長期的に存在する).3.1.2から後方移植した。(#199)

  • 可変長配列列を含む表の処理方式を少し再構成し,呼び出しを修復した2つの改良を加えた. pyfits.getdata 利便性関数は異常を招き,FITSファイルの既存のmmapからVLAデータの読み出しを許可する.3.1.2から後方移植した。(#200)

  • 多次元列を含む表(すなわちTDIMnキーワード)を開いて新しいファイルに書き込む際に発生する可能性のあるエラーを修復した.3.1.2から後方移植した。(#201)

  • Python 3上のエラーを修正し、Python 3で存在しないファイルを開けようとすると、無関係に見えるバックトラックにつながります。3.1.2から後方移植した。(#203)

  • FitsdiffにおけるNaNが異なる値を含む2つの見出しキーワードの誤りを修復した3.1.2から後方移植した。(#204)

  • Pyfitが読み出し専用権限に実装されていると,あるテストに失敗するというテストの1つの問題が修復された.3.1.2から後方移植した。(#208)

  • 事例化を修復した BinTableHDU ブールフィールドを含むNumpy配列からすべての値を変換する False それがそうです。3.1.2から後方移植した。(#215)

  • 修復された整数配列を Column() 列タイプの場合,同じバイト幅の浮動小数点数により列配列が混乱する.3.1.2から後方移植した。(#218)

  • いくつかの列でTDIMnを使用して新しいテーブルを作成することは、崩壊をもたらす可能性があるいくつかの場合を修復しました。3.1.2から後方移植した。(宇宙望遠鏡/PyFITS#3)

3.1.1(2013-01-02)

これは3.1.xシリーズのエラー修復バージョンである.

誤って修復する

  • 圧縮画像HDUにおけるスケーリング画像および擬似符号なし整数画像の処理を改善する。通常のミラーHDUのように透明な働き方をしています do_not_scale_image_data そして uint 選択肢、そして scale_back そして save_backup それがそうです。♪the .scale() 方法ももっとよく動いています。(#88)

  • ファイルの読み出し時には、フォーマットエラーによる異常ではなく、EXTNAMEキーワードの非文字列値が許可される。書き込み時のEXTNAMEキーワードフォーマットの検証を追加した.(#96)

  • メインHDUにはEXTNAMEとEXTVERのサポートが追加されています。すなわち、EXTNAMEがヘッダに指定されている場合には、それも反映される .name 属性とin pyfits.info() それがそうです。これらのキーワードは過去にはメインHDUでは使用が禁止されていたが,最新バージョンのFITS規格ではこれらのキーワードの使用が許可されている.(#151)

  • HCOMPRESSは,フラットサイズが実際に2次元であれば,データ立方体(および高次元配列)を圧縮するために再利用することができる.実際,明示的に指定されていなくても,PyFITSは互換性のあるタイルサイズを自動的に使用する.(#171)

  • オプションを追加しました endcard パラメータ中の Header.fromtextfile() そして Header.totextfile() 方法:研究方法。でも…。 endcard=False これは合理的なデフォルト仮説であり,終端カードのFITSヘッダを含むテキストダンプが残っているため,これはより柔軟であるべきである.(#176)

  • 2つの空(すなわちゼロ行)テーブル上でfitsdiffを実行したときに発生する崩壊を修復した.(#178)

  • 更新モードにおいて、任意のデータが修正されていなくても、乗員HDUを含むファイルを開くことは、不要なファイル書き換えをもたらす可能性があるという問題が修復される。(#179)

  • 場合によってはPyFITSをNumpy 1.7とともに使用した場合にOSX上のファイルシステムのデッドロックを招く可能性のあるエラーが修復された.(#180)

  • 修復使用 ignore_comments 選択します。(#181)

  • FITS WCS変形紙記録値キーワードカードのいくつかのエラーを修復した。

    • それらはRVKのように見えるがRVKになるつもりはないカードは,RVK-コメントや歴史などのコメントキーワードとして過度に扱われている影響が特に大きい.(#183)

    • 標準FITSキーワードのみでタイトルからカードを探すには,つねにそのカードの元の値を返すべきである.このようにして、有効なRVKC上で発生するが所望の値ではないカードを含むカードは、依然として通常カードとみなされる。(#184)

    • 部分フィールド説明子のみのタイトルでRVKC(例えば、“DP 1.AXIS”ではなく“DP 1.AXIS”をルックアップする)は、ワイルドカードルックアップとして暗黙的にみなされる。(#184)

  • 2つのFITファイルを区別する際にクラッシュする問題が修復され、少なくとも1つのファイルは、テーブルではなく画像として識別されていない圧縮画像HDUを含む。(#187)

  • 修復された後方互換層における誤り CardList.index そして CardList.count 方法:研究方法。(#190)

  • 改善 __repr__ また,連続するカードに分割された長い値を持つカードのテキストファイル表示を行う.(#193)

  • 長(>72文字)の値を空(‘’)キーワードに割り当てることを試みたときに生じる崩壊を修復した.これも空白キーワードの表示方法を変えていますどのコメント内容が始まるまでにもちょうど8つのスペースがあります may ヘッダカードの正確な表示に影響を与え,これらのヘッダカードは空白キーワードカードが内容が開始される前により少ないスペースを持つことができると仮定している.しかし,現在の方法はFITS規格の要求をより満たしている.(#194)

3.0.10(2013-01-02)

  • 圧縮画像HDUにおけるスケーリング画像および擬似符号なし整数画像の処理を改善する。通常のミラーHDUのように透明な働き方をしています do_not_scale_image_data そして uint 選択肢、そして scale_back そして save_backup それがそうです。♪the .scale() 方法ももっとよく動いています。3.1.1から後方移植した。(#88)

  • ファイルの読み出し時には、フォーマットエラーによる異常ではなく、EXTNAMEキーワードの非文字列値が許可される。書き込み時のEXTNAMEキーワードフォーマットの検証を追加した.3.1.1から後方移植した。(#96)

  • メインHDUにはEXTNAMEとEXTVERのサポートが追加されています。すなわち、EXTNAMEがヘッダに指定されている場合には、それも反映される .name 属性とin pyfits.info() それがそうです。これらのキーワードは過去にはメインHDUではverbottenであったが,最新バージョンのFITS規格ではそれらを許可している.3.1.1から後方移植した。(#151)

  • HCOMPRESSは,フラットサイズが実際に2次元であれば,データ立方体(および高次元配列)を圧縮するために再利用することができる.実際,明示的に指定されていなくても,PyFITSは互換性のあるタイルサイズを自動的に使用することはない.3.1.1から後方移植した。(#171)

  • ゼロ幅表列を含むファイルを書く際のエラーを修復し,そのファイルではTFIELDSキーワードが誤って更新され,表が大きく読めなくなる.3.1.0から後方移植。(#174)

  • 更新モードにおいて、任意のデータが修正されていなくても、乗員HDUを含むファイルを開くことは、不要なファイル書き換えをもたらす可能性があるという問題が修復される。3.1.1から後方移植した。(#179)

  • 場合によってはPyFITSをNumpy 1.7とともに使用した場合にOSX上のファイルシステムのデッドロックを招く可能性のあるエラーが修復された.3.1.1から後方移植した。(#180)

3.1(2012-08-08)

ハイライト。

  • ♪the Header 対象は大幅に修正され CardList 対象は現在廃棄されている(それらの機能は統合されている Header 類)。詳細は以下のインタフェース変更を参照されたい.

  • 現在、デフォルトではメモリマッピングを使用してHDUデータにアクセスしています。詳細は以下のインタフェース変更を参照されたい.

  • 今は新しいバージョンが含まれています fitsdiff 2つのFITSファイルを比較するためのプログラムと、1つの新しいFITS比較APIとを備える。 fitsdiff それがそうです。以下の新しい機能を参照してください。

API変更

  • ♪the Header クラスは書き換えられ、 CardList 類は既に使用を放棄した.FITSヘッダを用いたほとんどの基本的な詳細は変更されておらず,多くのユーザはこれらの詳細に気づかない.しかし,高度なユーザとアプリケーション開発者が興味を持ついくつかの分野では異なる.変更の完全な詳細については,PyFITS文書中の“Header Interface Transition Guide”の部分を参照されたい.詳細および背景については、PyFITS Trac上のラベル#64を参照されたい。以下にいくつかのハイライトを示す。

    • Headerクラスは現在,Python dictインタフェースを完全に実現しており,dictと交換して使用することができ,キーはHeaderキーワードである.

    • 通常のキーワード割当てを用いて新しいキーワードを見出しに追加することができる(以前は使用する必要があった Header.update 新しいキーワードを追加します)。例えば:

      >>> header['NAXIS'] = 2
      

      既存の‘foo’キーワード(すでに存在する場合)を更新したり、辞書のように新しいキーワード(存在しなければ)を追加したりします。

    • タプル同時代入および注釈を使用することができる:

      >>> header['NAXIS'] = (2, 'Number of axes')
      
    • 新しいカードを追加/更新して特定の位置に追加することを確保しますので、ご利用ください Header.set() **

      >>> header.set('NAXIS', 2, 'Number of axes', after='BITPIX')
      

      これの動作原理は古いのと同じだ Header.update() それがそうです。 Header.update() まだ古い方法で働いているが、使用されていない。

    • でも…。 Card objects still exist, it generally is not necessary to work with them directly. Header.ascardlist()/Header.ascard 既に使用を放棄したので,使用すべきではない.直接訪問しなければならない Card 相手、ご利用ください Header.cards それがそうです。

    • カードの注釈にアクセスするには、カード自体を通過したり通過したりすることができます Header.comments それがそうです。例えば:

      >>> header.cards['NAXIS'].comment
      Number of axes
      >>> header.comments['NAXIS']
      Number of axes
      
    • Card 対象は現在交換してご利用いただけます (keyword, value, comment) 3-タプル。彼らはまだ .value そして .comment 属性も同様である.♪the .key 属性は名前を変更しました .keyword しかし一貫性を保つためには .key まだ支持されている(しかし使用されていない)。

  • 現在、デフォルトではメモリマッピングを使用してHDUデータにアクセスしています。つまり、 pyfits.open() 用途 memmap=True デフォルト値とします。これはほとんどの用例でより良い性能を提供しています-いくつかのI/O集約型アプリケーションだけがそうする必要はないかもしれませんデフォルトでmmapを有効にすることで,PyFITSがメモリマッピングデータを処理する際の大量のエラーを発見·修復することも可能である(多くのエラー修復はPyFITS 3.0.5に返信されている).(#85)

    • 新しいのです pyfits.USE_MEMMAP グローバル変数を追加した.集 pyfits.USE_MEMMAP = False ファイルを開くデフォルトメモリマッピング設定を変更する場合は、以下の操作を実行してください。これは,pyfitに埋め込まれたアプリケーションにおける振舞いを制御するために特に有用である.

    • 同じように新しいのは PYFITS_USE_MEMMAP 環境変数をサポートする.集 PYFITS_USE_MEMMAP = 0 お客様の環境でデフォルトのアクションを変更します。

  • ♪the size() HDUオブジェクト上の方法は .size 属性であるこの属性はHDUデータ部分のサイズ(バイト単位)を返し,多くの場合に相当する. hdu.data.nbytes (#83)

  • BinTableHDU.tdump そして BinTableHDU.tcreate 使用を放棄しました BinTableHDU.dump そして BinTableHDU.load 代わりに。新規メソッド出力表データのフォーマットは,従来のバージョンとはやや異なる,すなわち値ごとに引用符を付ける.このフォーマットは、以前のバージョンのPyFITSにおけるデータ転送と互換性があるが、古いバージョンの解析誤りのため、その逆も同様である。

  • 同じように pyfits.tdump そして pyfits.tcreate これらの方法の便利な関数バージョンは命名されました pyfits.tabledump そして pyfits.tableload それがそうです。古いバージョンは廃止されたが、現在の保存は後方互換性のためだ。(R 1125)

  • 新しいグローバル変数です pyfits.EXTENSION_NAME_CASE_SENSITIVE 入れられました。これは代替の役割を果たしている pyfits.setExtensionNameCaseSensitive それは捨てられず、未来のバージョンで削除されるかもしれない。拡張子を大文字と区別することを有効にする(すなわち、“sci”を“sci”と区別して扱う)セット pyfits.EXTENSION_NAME_CASE_SENSITIVE = True それがそうです。黙認する. False それがそうです。(R 1139)

  • 新しいグローバル構成変数 pyfits.STRIP_HEADER_WHITESPACE 入れられました。デフォルトの場合,ヘッダ中の文字列の値に末尾スペースが含まれていれば,その値を読み込む際にそのスペースを自動的に削除する.さてもし設定すれば pyfits.STRIP_HEADER_WHITESPACE = False すべてのスペースが保留されています。(#146)

  • 老の classExtensions 拡張機構(PyFITS 3.0では破棄された)は完全に除去される.私たちが知っている限り、それはどこでも使用されない。(R 1309)

  • PyFITSからの警告メッセージはPython警告APIを介して発行され,デフォルトのstdoutではなくstderrに出力される.PyFITSは,警告モジュールがどのストリームに出力されるかに関するデフォルトアクションを修正しない.(R 1319)

  • ♪the checksum はいの論点です。 pyfits.open() 現在値‘REMOVE’を受け取ると,既存のCHECKSUM/DATASUMキーワードを無視し,ファイルを保存する際に削除する.

新しい特徴.

  • 推奨する“Fits”拡張HDUタイプのサポートを追加します。FITS HDUは,そのデータセグメントにFITSファイル全体を埋め込む. FitsHDU オブジェクトの動作方式はPyFITSにおける他のHDUタイプと同じである.彼らの .data 属性は元のデータセットを返す.しかし彼らは特別なものを持っています .hdulist 属性は、データをFITファイルとして処理し、メモリ内のHDUListオブジェクトとして返す。FitsHDUオブジェクトはまだサポートされています FitsHDU.fromhdulist() 新しい方法に戻ります FitsHDU オブジェクトは、当該オブジェクトを埋め込むために提供されるHDUListである。(#80)

  • 新しいのを追加しました .is_image 属性は、HDUデータがテーブルまたは他のデータではなく“image”である場合、属性はTrueである。ここで“画像”の意味はかなり疎であり、大部分は主なまたは画像拡張HDU、または圧縮画像HDU(#71)を指すだけである。

  • Added an HDUList.fromstring classmethod which can parse a FITS file already in memory and instantiate and HDUList object from it. This could be useful for integrating PyFITS with other libraries that work on FITS file, such as CFITSIO. It may also be useful in streaming applications. The name is a slight misnomer, in that it actually accepts any Python object that implements the buffer interface, which includes bytes, bytearray, memoryview, numpy.ndarray, etc. (#90)

  • 新しいのを追加しました pyfits.diff FITSファイルを比較するためのツールを含むモジュール.ユーザーは使用することができます pyfits.diff.FITSDiff クラスは2つのFITSファイルを全体的に比較する.一つもあります pyfits.diff.HeaderDiff クラスは、2つのFITヘッダのみを他の同様のインターフェースと比較するために使用される。このインタフェースの詳細については,PyFITS文書を参照されたい.♪the pyfits.diff モジュールは新しい fitsdiff PyFITSとともに実装したプログラム.PyFITSをインストールした後、実行します fitsdiff --help 用法の詳細については、ご参照ください。

  • pyfits.open() 今から受け入れます scale_back 論争する。もし設定が True これは,ファイルが初めて開いたときのオリジナルBZEROおよびBSCALEパラメータ(あれば)およびオリジナルBITPIX自動スケーリングデータを使用する.たとえば,オリジナルBITPIXが16であれば,呼び出しに相当する. hdu.scale('int16', 'old') 電話する前に flush() あるいは…。 close() ファイルにあります。このオプションは、ファイル内のすべてのHDUに適用されます。(#120)

  • pyfits.open() 今から受け入れます save_backup 論争する。もし設定が True これは、元のファイルのバックアップを更新する前に、元のファイルのバックアップを自動的に保存することになる(もちろん、これは更新および追加モードにのみ適用される)。これは、ズーム画像データを処理する際に特に有用である可能性がある。(#121)

行動の変化

  • デフォルトの場合,PyFITSからの警告はstderrに出力されるのではなく,一定期間のようにstdoutに出力される.これは,多くのユーザの予想とは逆であり,PyFITSの出力をそのスクリプトの所望の出力から分離することを困難にしている.(R 1319)

誤って修復する

  • 据え置き pyfits.tcreate() )今 pyfits.tableload() )列定義ファイルで空行に遭遇した場合の方が丈夫です(#14)

  • Numpy 1.4以下(1.4はPyFITSによってサポートされている最新バージョンであるにもかかわらず)を使用して連続カードを処理する際に生じる可能性のあるかなりまれなクラッシュが修復された。(R 1330)

  • 据え置き _BaseHDU.fromstring このHDUのヘッダとデータを含む文字列/バッファからHDUオブジェクトを実際に正確にインスタンス化するために。これにより実施することができます HDUList.fromstring 以上のように。(#90)

  • いくつかの用例では,ヘッダ(軽度回復可能)フォーマットの誤った浮動小数点値が浮動小数点数に正しく返されていないまれな場合が修復されている.(#137)

  • 前の誤った推論が修復され、このエラーでは、小数点前のプリアンブルゼロを有する浮動小数点値は、ファイルの変更を保存する際にプリアンブルゼロ(例えば、不要に削除された)を削除する。“0.001”は“.001”に書き戻され,ファイルに他の変更がなくても).(#137)

  • CHECKSUMおよび/またはDATASUMキーワードを含むファイルを更新モードで開くと,ファイルを開いたときにCHECKSUM=FALSEであっても,CHECKSUM/DATASUMを更新して保持する.この行為変更は,チェックサムが意外に削除されることを防ぐことができる.(#148)

  • 以下の位置の誤りを修復した ImageHDU.scale(option='old') 全く機能していません画像を元のBSCALEやBZEO値に復元していません(#162)

  • ゼロ幅表列を含むファイルを書く際のエラーを修復し,そのファイルではTFIELDSキーワードが誤って更新され,表が大きく読めなくなる.この修復プログラムは、バージョン3.0.10の3.0.xシリーズに逆移植する。(#174)

3.0.9(2012-08-06)

これは3.0.xシリーズのエラー修復バージョンである.

誤って修復する

  • 据え置き Header.values()/Header.itervalues() そして Header.items()Header.iteritems() 重複キーワードの異なる値(特に履歴やコメントなどのコメントキーワード)を正しく返す.これにより、従来のヘッド実装は、PyFITS 3.1の新しい実現とやや互換性がある。(#127)

    注釈

    この修復は、以前のPyFITSバージョンの既存のアクションを変更しません。 Header.keys() 重複項が削除されたすべてのキーワードをタイトルに戻します。PyFITS 3.1はこのような行為を変更しているため, Header.keys() コピーが含まれています。

  • 以下の位置の誤りを修復した ImageHDU.scale(option='old') 全く機能していません画像を元のBSCALEやBZEO値に復元していません(#162)

  • “更新”モードで圧縮画像HDUを含むファイルを開いた後、何の変更もなく直ちに閉じることで、ファイルが不必要に書き換えられるエラーを招くことが修復された。(#167)

  • 圧縮画像データを書き込む際に発生する可能性のある2つのメモリリーク問題、または場合によっては、圧縮画像HDUを含むファイルを“更新”モードで開く際に発生する可能性のある2つのメモリリーク問題が修復される。(#168)

3.0.8(2012-06-04)

行動の変化

  • このバージョンの前に、画像データ部分は、非平凡なBSCALEおよび/またはBZEO値を有する画像であるスケーリングデータを処理することができない。従来,このような画像を節ごとに読み込むためには,節ごとにBSCALE+BZEROを手動で適用する必要があった.特筆すべきはこれらの章は did 擬似符号なし整数(シート状)をサポートする。この変更は、従来のBSCALE+BZEO値のサポートを拡張しただけである。

誤って修復する

  • ブーリアンリスト中の値の更新を阻止する誤りを修復した.これは、他の表の更新を保存することを阻止する可能性があるより深い問題の症状であることが証明されている。(#139)

  • 場合によっては、文字列“end”で終わるキーワード注釈が、ヘッダ(およびその点の後のファイルの残りの部分)を誤読させる可能性がある場合が修復される。(#142)

  • 画像データ節におけるスケーリング画像データと擬似符号なし整数のサポートを修復した. (hdu.section )である。以前、これは全く支持されていなかった。ある程度、支持が増加したと言われているが、これは欠陥があり、不完全である。今、この機能はもっとよく機能しているように見える。(#143)

  • 画像データの部分を指摘するために文書が修復された do 不連続スライスがサポートされています(そして長い間サポートされています)。文書はこれを反映するように更新されておらず、ユーザが連続したスライスのみをサポートすることを誤解し、いくつかの混乱を招いている。(#144)

  • 修復して作成した HDUList ファイルを書き込む前にオブジェクトを検証する場合,複数のマスタHDUを含むオブジェクトは無限再帰を招く.(#145)

  • 以前チェックサムおよび/またはDATASUMキーワードを持っていたファイルに更新保存されていたが、保存時にチェックサムが削除され、ファイルが少し破損して読み取り不能になる可能性がある珍しいが深刻な場合が修復された。(#147)

  • “非標準”ファイルを読み込む際の問題を修復しましたが、そのファイルの主なタイトルにはSIMPLE=Fが含まれています。PyFITSはこのようなファイルをどのように処理するかを保証していません。しかし,少なくともそれらのヘッドを読み取ることができるはずであり,可能であればデータを読み取ることもできる.このようなファイルの変更を保存するには、不要な有効なプライマリHDUの追加を試みるべきではありません。(#157)

  • 画像を開いたときのエラーを修復しました disable_image_compression = True すべての後続を無効にしました pyfits.open() 電話します。(R 1651)

3.0.7(2012-04-10)

行動の変化

  • GroupDataオブジェクトのスライスは、拡張MULTI-ROW_GROUPオブジェクトではなく、新しいGroupDataオブジェクトを返します。これは,PyFITS 3.0がFits_recスライスを修復する方式と類似しており,GroupDataを同時に修復すべきである.古い行動はエラーをもたらし、Numpy内部の関数は、スライスndarrayが新しいndarrayに戻ると予想される。これはまれな機能を持つまれな用例であるため,多くのユーザがこの変更の影響を受ける可能性は低い.

  • 従来はGroupDataオブジェクト中の個々のグループレコードを表すために用いられていたINTERNAL_GroupオブジェクトをGroupと改名し,現在はパブリックインタフェースである.しかし,Groupオブジェクトを直接作成する十分な理由はほとんどないため,“新しい特性”と見なすべきではない.

  • PyFITS 3.0.6によるトラブルを修正し,実際にHDUを拡張していなければ,EXTENDキーワードの値はつねにFに設定される.この値を修正する必要はありません。

誤って修復する

  • _Groupレコードオブジェクトではなく,スライス時に新たなGroupDataオブジェクトを返すためにGroupDataオブジェクトを修復した.より詳細については、上記の“行動変化”を参照されたい。

  • グループオブジェクトのスライス問題を修復した--従来はスライスすることは不可能であった.

  • それを可能にするのは np.bool_ 対象をヘッダ値とする.(#123)

  • EXTENDキーワードに対する厳しすぎる処理を修復しました;上記の“アクション変更”を参照してください。(#124)

  • 多くのHDUを修正したヘッダは、タイトルを変更する必要がなくても、PyFITSによって“修正された”と表記されて書き換えられる問題である。(#125)

  • ランダムグループHDUにおけるPTYPEnキーワードの値がファイル保存時にすべての小文字を強制された誤りを修復した.(#130)

  • 不必要なイントラネットの導入を削除した ExtensionHDU.__setattr__ 大量の拡張子を含むファイルを開くと,Julian Taylorの作用により,いくつかの速度低下や,他の小さな(でも無関係ではない)性能改善を招く.(#133)

  • PyFITSは,無効なヘッダ末尾パッド(すなわちスペースではなく空バイト)を含むヘッダブロックの回帰を解析できないことを修復した.このようなヘッダを再解析することができるが、このようなヘッダは有効なマッチングではないので警告が発行される。(#136)

  • 投機グループHDU中の表データがごみ集めされていないメモリ漏洩問題を修復した.(#138)

3.0.6(2012-02-29)

ハイライト。

このバージョンの主な原因は、PyFITS 3.0.5で導入された問題を修復したことであり、この問題では、“UPDATE”モードでのみスケーリングデータ(すなわち、非平凡なBSCALEおよびBZEROキーワードを使用する)を含むファイルを開くと、データが閉じると自動的に再スケーリングされてしまい、データを整数型から浮動小数点型に変換する可能性があり、アプリケーションがデータに触れていなくても同様である。現在,アプリケーションが実際にデータにアクセスした場合にのみ,PyFITSは拡張中のデータを再スケーリングする.したがって、“更新”モードでファイルを開いてタイトルを修正したり、新しい拡張子を追加したりすることは、既存の拡張子内のデータに何の変更も与えない。

このバージョンでは、より広範なWindowsテストによって発見されたWindows固有のエラーや、他の様々なエラーも修復されています。

誤って修復する

  • 無効ヘッダカードを含むファイルを開く際に、より正確なエラーメッセージが発生する。(#109)

  • Windows上でより広いテストでキャプチャされた可能な参照サイクル/メモリリークを修復しました。(#112)

  • ‘ostream’モードを修正し、‘w’モードではなく‘wb’モードで下位ファイルを開きます。(#112)

  • Windowsのみの問題を修復したが,その中でサイズを調整したFITSファイルの更新を試みるとクラッシュする可能性があり,そのファイルには開いたmmapが存在するためである.(#112)

  • 修復は,ブールフィールドを含むNumpy配列からFITSテーブルを作成する(すなわち,new_table())を用いた場合に発生するクラッシュを試みた.(#113)

  • 修復手動初期化 HDUList HDUリストを使用すると、マスターHDUに正しいEXTENDキー値が設定されません。(#114)

  • Python<2.7でヘッダを深くコピーする際に生じる可能性のあるクラッシュを修復しました。(#115)

  • “更新”モードでズーム画像を開くと、ファイルが閉じたときにデータが浮動小数点数に変換されるという問題が修正されました。(#119)

3.0.5(2012-01-30)

  • Memmap=Trueで開いたファイルの画像部分にアクセスする際に発生する可能性のある崩壊を修復した.(R 1211)

  • Memmap=Trueとmemmap=Falseを修復した場合,読み出し専用モードで開いたファイルの振舞いが一致しないという問題がある.後者の場合、アレイデータの変更はディスクに保存されていないが、メモリ内のアレイデータを更新することができる。一方,memmap=Trueの場合,“読み出し専用”パターンはメモリでのデータ修正さえ阻止する.これが“コピー”モデルの意味であるが,行為の違いに困惑する.現在memmapを用いた場合,‘readonly’は‘copy onwrite’に等しい.配列データの変更を拒否する古いアクションが必要な場合には、memmapを用いて開いたファイルにのみ適用可能であるにもかかわらず、新しい“書き込み拒否”モードを使用することができる。(1275号表)

  • Memmap=Trueで開いたファイルを用いて画像データを元のnumpy.memmapオブジェクトとして返すという問題が修復され,これは意外な行為を招く可能性がある-逆にmemmapオブジェクトはnumpy.ndarrayとみなされる.(1285号条例)

  • Python 3の1つの問題を修正しましたが、Python 3では、Numpyの1つのbugに対する解決策は、他のいくつかのソフトウェア、すなわちvo.tableパッケージ(他のソフトウェアがあるかもしれません)とのインタラクション効果が悪いです。(r 1320、r 1337、および#110)

  • FITファイルの更新変更時の処理記号(すなわちCtrl-Cキーボード割込み)時のエラー行為を修復した.PyFITSはSIGINTによる不完全リフレッシュを阻止しているが,その後シグナルハンドラを正しくクリアしていないか,リフレッシュ完了後にキーボード割込みを再調整している.(R 1321)

  • チェックサムチェックを有効にしてファイルを開く際にPython 3で発生する可能性のあるクラッシュが修復されました。(R 1336)

  • 小さな間違いを修復しましたこのミスは StreamingHDU バージョン1.5以下のNumpyを用いた場合のインタフェース.

  • 修復して新しいものを作っています CompImageHDU ビッグ·エンド·データのセットから(#104)

  • 末尾に追加のゼロパディングがあるファイルを開く際に発生する崩壊を修復しました。FITSファイルにはこのようなパッドがあるべきではないが,フォーマットもこのパディングを明確に禁止しておらず,PyFITSは偶然発見すべきではない.(#106)

  • 大きな列の文字列の値を含むテーブルを開く際の主な速度が遅くなるという問題を修復した.(#111)

3.0.4(2011-11-22)

  • HCOMPRESS圧縮画像を書き込む際にPython 2.5および2.6で発生する可能性のある崩壊を修復しました。(1217号条例)

  • Memmap=Trueの場合に“readonly”モードで開いたファイル中の表スライス時に発生する崩壊を修復した.(1230号条例)

  • 書き込みファイルの変更または新しいファイルの書き込みは、デフォルトで“EXCEPTION”ではなく“FIX”モードで出力を検証します。すなわち、PyFITSは、異常を引き起こすのではなく、一般的なFITフォーマットエラーを自動的に修復します。(1243号条例)

  • 使用する拡張として‘primary’のみを使用することを指定した場合,getval()やgetheader()のような便利な関数が崩れてしまうエラーが修復された(R 1263).

  • キーワードパラメータ(標準データとヘッダパラメータを超えた)を位置パラメータとして拡張HDUクラスの構造関数に渡すことを阻止した誤りを修復した.

  • Windows上で失敗したテストを修復しました--この場合、テスト自体は一時ファイルを閉じることができず、Windowsはまだ開いているハンドルがある場合に削除することを拒否しています。(R 1295)

  • Python 2.5 for Windows(および可能な他のプラットフォーム)上のタイトル値における浮動小数点フォーマットの問題を修復しました。指数は3桁の数字にゼロ充填されており,FITS規格はこれを仕様化していないにもかかわらず,フォーマットは現在正規化されており,つねに指数を2桁に充填している.(R 1295)

  • 長いコメントカード(履歴やコメントなど)が複数の連続カードに分類される誤りを修正した.しかし,解説カードは継続カードには現れないと予想される.代わりに,これらの長いカードは複数の解説カードに分類される.(#97)

  • ファイル拡張子が何であっても、GZIP/ZIP圧縮FITSファイルを検出して開くことができます。(#99)

  • “更新”モードでスケーリングされた画像を開き、データに接触せずにファイルを閉じるとファイルが破損してしまう深刻なエラーが修復されました。(#101)

3.0.3(2011-10-05)

  • いくつかの小さなエラーが修正され、値キーワードカード中のコーナーケース(#70)が記録されています(#70)

  • 場合によっては、タイトルの最初のキーワード値が文字列値でない場合(#89)、HDU作成に失敗する場合がある

  • データ配列に奇数バイト(#91)が含まれている場合にHDUチェックサムの計算を試みた場合の崩壊を修復した.

  • DISABLE_IMAGE_COMPRESSION=Trueの圧縮HDUを開く際に表示される不要な警告が無効にされています(#92)

  • HCOMPRESS圧縮画像を処理するためのコード中のスペルエラーが修復された。

3.0.2(2011-09-23)

  • ♪the BinTableHDU.tcreate 方法を拡張することで pyfits.tcreate 関数は空行につまずいてはいけない(#14)

  • FITSファイルを読み書きする際には、マスターHDUにおけるEXTENDキーワードの存在、値、位置を検証します(#32)

  • 文書が改善された(警告メッセージおよびマニュアルでは)、PyFITSがゼロからのインデックスを使用していることを示している(C/Pythonコードが予想されるように、FORTRANを考慮して作成されたPyFITS規格とは逆である)(#68)

  • カード画像文字列からタイトルカードアノテーションが読み取られていない場合,タイトルカードアノテーションを更新することで値が失われる可能性があるという誤りが修復された.

  • 関連するエラーが修復され、ファイル変更(#69)をリフレッシュする際に、ヘッダ中のCardオブジェクトに対する直接の変更(すなわち、card.valueまたはcard.Commentに直接割り当てられる)は伝播されない。 [注意:このエラーおよび上記のエラーは、最初にバージョン3.0.1で修復されたと報告されているが、修復はバージョンに含まれていない。]

  • ファイル処理が改善され、特にPython 3では、ファイルI/Oに関する小さなエラーがあります(#76)

  • FITSファイルの更新が修正されるとオリジナルファイルの権限を失ってしまう場合がある(#79)

  • TDIMnキーワードの処理を修正した;3.0それらの支持を増加させたが,逆の軸順序が得られた(行長として扱われている)(#82).

  • スケーリング·データを含むFITSファイルを開き、データを明示的に見ることなく、直ちに新しいファイルに書き込むときに生じるクラッシュが修復されました(#84)

  • ‘NAMES’または‘FORMATS’という名前の列を含むテーブルの作成は、無限再帰のエラーをもたらす(#86)

3.0.1(2011-09-12)

  • カード画像文字列からタイトルカードアノテーションが読み取られていない場合,タイトルカードアノテーションを更新することで値が失われる可能性があるという誤りが修復された.

  • 変更されました _TableBaseHDU.data したがって、データに空のテーブルが含まれていれば( FITS_rec オブジェクトは,ゼロ行を持つものに戻るのではない. None それがそうです。

  • ♪the .key 属性 RecordValuedKeywordCards 通常のキーワードだけではなく、完全なキーワード+フィールド説明子の値を返します(#46)

  • 関連するエラーが修復され、ファイル変更(#69)をリフレッシュする際に、ヘッダ中のCardオブジェクトに対する直接の変更(すなわち、card.valueまたはcard.Commentに直接割り当てられる)は伝播されない。

  • 場合によってはゼロ行に書き込まれたテーブルが失敗する可能性のあるエラーが修復されました(#72)

  • いくつかのテストに失敗した様々な小さなエラー修復、特にPython 3上(#74、#75)

  • 非ネイティブバイト順の配列からリスト列を作成してバイト順序を保持しない誤りを修復し,誤ったバイト順序を用いて列配列を解釈した(#77).

3.0.0(2011-08-23)

  • 重大な変更が含まれており、バージョンを3.0にアップグレード

  • 大量のコード再構成および再構成;共通APIの旧バージョンへの後方互換性を維持しようと試みる(プライベートAPIは多くの変化があり、後方互換性を保証することはできない)。いくつかの小さな共通APIの変更に注意しなければなりません。

    • Pyfits.recモジュールは完全に削除されました。もしあなたのnumpyバージョンにnumpy.code.Recordsモジュールがなければ、それは古すぎてPyFITSと一緒に使用できません。

    • ♪the Header.ascardlist() 方法は捨てました--使ってください .ascard 属性ではありません

    • Card 新しい事例があります .cardimage 使うべき属性ではありません .ascardimage() それは廃棄されるかもしれない。

    • ♪the Card.fromstring() 方法は現在クラスの方法である.新しいものに戻ります Card インスタンスは、既存のインスタンスを修正するのではなく、修正される。

    • ♪the req_cards() HDUインスタンス上の方法が変更されました: pos パラメータはもはや文字列ではない.これは整数値(カードの位置がこの値に一致しなければならないことを表す)であってもよいし、カードの位置をパラメータとする関数であってもよく、位置が有効であればTrueを返す。同じように test パラメータは文字列を受け入れず,代わりにカードの値を検証してTrueやFalseの関数を返す.

    • ♪the get_coldefs() 表HDUの方法は破棄された。使用 .columns 属性ではありません

    • ♪the ColDefs.data 属性は破棄されました--使用してください ColDefs.columns 逆に(一般的には、あなたはそれを直接台無しにしてはいけませんが-それはいつか内部になるかもしれません)。

    • FITS_record 対象需要 start そして end パラメータとしてではなく startColumn そして endColumn (これらのファイルは手動で作成されることが少ないので、この変更は誰にも影響を与える可能性がありません)。

    • BinTableHDU.tcreate() 今はクラスの方法で新しいものに戻ります BinTableHDU 例を挙げましょう

    • 使用 ExtensionHDU そして NonstandardExtHDU 新しい拡張HDUクラスを作成するために使用されます。これらは現在パブリックインタフェースであり,従来はプライベートであり,プレフィックスは下線であった.

    • 他のかもしれません。もしあなたが何か困難な変更を起こしたことを発見したら、報告してください。

  • 使用を推奨しない関数を呼び出すと,使用を推奨しない警告が表示される.ただし、Python 2.7以降では、デフォルトでは破棄警告を無視してしまうので使用してください -Wd オプションは、推奨されていない関数を使用しているかどうかを確認します。もし私たちが実際にどんな関数を削除するかに近づいたら、私たちはデフォルトで廃棄警告を表示するかもしれない。

  • 基本的なPython 3サポートを追加

  • TDIMnキーワード指定の表中の多次元列へのサポートを追加(#47)

  • 修復使用 new_table() 関数(#49)ゼロバイト充填)とASCII表(文字列充填スペース)(#15)

  • ランダムアクセスグループパラメータ名を書き込む際に大文字が保持されていない誤りが修復された(#41).

  • 幅ゼロのバイナリフィールドへのサポートを追加(#42)

  • ASCII表のより広い整数タイプのサポートが追加されました;これは標準的ではありませんが、いくつかのGEIS画像はそれを必要とします(#45)

  • HDUListオブジェクトを最初から作成すると、HDUListのindex_of()メソッドが崩壊したエラーが修復されました(#48)

  • バイナリ表の文字列パディングのアクションが修復されました(文字列はスペースではなく空の値を埋めるべきです)

  • 非標準ブロックサイズを用いてチェックサムを計算する際にメモリ使用量が大きすぎるというまれな問題を修復した(r 818参照).

  • 画像祭における強制単位データへのサポートの追加(#53)

  • 元のテーブルよりも行数の多い新しいテーブルを作成する際に可変長配列列を拡張しないという問題が修復された(#54).

  • Fits_recオブジェクトの固定タプルとリストベースのインデックス(#55)

  • BZEROとBSCALEキーワードが誤った位置に付加された見出しを修正した問題(#56)

  • FITS_record オブジェクト(表行)は、シングルステップ実行などを含むスライスを完全にサポートしています(#59)

  • 複数のファイルを同時に更新する(並列プロセスを実行するなど)mktemp()(#61)競合条件を引き起こす可能性のあるエラーを修復した.

  • 圧縮画像ヘッダがfunpackユーティリティが期待した順に並べられていない誤りが修復された(#62).

2.4.0(2011-01-10)

以下の拡張機能を追加しました。

  • チェックサムサポートは現在FITS規格に正確に適合している.Pyfitは、古いチェックサムを読み書きすることも、新しい基準に適合するチェックサムを読み書きすることもサポートする。♪the fitscheck チェックサムを検証および更新するためのコマンドラインユーティリティを提供する.

  • オプションのキーワードパラメータを新たに追加しました do_not_scale_image_data 致す pyfits.open 便利な機能。このパラメータをTrueとして提供し、スケーリングデータを含むImageHDUを読み出す場合、データを読み出す際にデータを自動的にスケーリングすることはない。いくつかのタイトルデータのみを更新したい場合には、FITSファイルを開いて更新する際にこのオプションを使用することができます。このパラメータが使用されない場合、ヘッダ更新がFITSファイルのサイズを変更する必要がある場合、更新された情報が書き込まれると、データは、非スケーリングフォーマットで読み取り、スケーリング、およびライトバックするのではなく、そのスケーリングフォーマット(一般に異なるデータタイプを使用する)である。

  • オプションのキーワードパラメータを新たに追加しました disable_image_compression 致す pyfits.open 機能します。いつですか True いずれの圧縮画像HDUも、バイナリテーブルHDUであるように読み込まれるであろう。

  • Added a verify keyword argument to the pyfits.append function. When False, append will assume the existing FITS file is already valid and simply append new content to the end of the file, resulting in a large speed up appending to large files.

  • HDUメソッドを追加しました update_ext_name そして update_ext_version HDUの名前およびバージョンを更新するために使用されます。

  • HDU方式の新規 filebytes HDUに関連付けられたファイルに書き込まれるバイト数を計算する。

  • SECTIONクラスは、非連続画像データの読み出しを可能にするために強化される。従来,SECTION類は連続データの読み出しにしか利用できなかった。(CNSHD 781626)

  • 添加の方法 HDUList.fileinfo() これは、HDUに関連付けられたファイル中のタイトルおよびデータの位置情報を含む辞書に戻る。

以下の誤りを修復した.

  • いくつかのフォーマットの間違ったFITタイトルを読み込むと NameError 異常であり、エラーの原因に関する情報ではない。

  • Pyfitは今ルールに合わないものを処理することができます CONTINUE Java Fits製のカード。

  • BinTable 以下の内容を持つ柱 TSCALn 現在は正しくバイト交換が可能である.

  • 浮動小数点カードの値が20文字を超えないようにする.

  • 更新されました flush したがって、更新モードで開いたファイルのHDU内のデータが変更されると、HDUが書き込まれる前に、変更されたデータに一致するようにヘッダが更新される。

  • 許す HIERARCH カードには,総文字長69文字のキーワードと値が含まれている.直前の長さは68文字以内に制限されている.

  • 呼んできて FITS_rec['columnName'] 今から一つに戻ります ndarray それがそうです。呼び出しと FITS_rec.field('columnName') あるいは…。 FITS_rec.columnName それがそうです。以前は、 FITS_rec['columnName'] はるかに小さいものに戻ります fits_record 相手。(CNSHD 789053)

  • 訂正しました append 便利な機能は、追加するファイルからHDUデータを読み込む必要がありません。(CNSHD 794738)

  • PyfitsCompモジュールとcfitsioとzlibライブラリの間の共通符号を削除した.これは,PyFITSとcfitsioやzlibを併用したシステムに問題が生じる可能性がある.(CNSHD 795046)

2.3.1(2010-06-03)

以下の誤りを修復した.

  • GNU汎用共通ライセンスに含まれる圧縮画像HDU拡張中のコードをBSDライセンスに含まれるコードに置き換える.この変更はBSD許可の下でpyfitを配布することを可能にします。

2.3(2010-05-11)

以下の改良を行った。

  • Numarrayのサポートを完全に廃止する。

  • Sphinxを使用するためにpyfits文書を修正します。

  • Python 2.6以降の分割をサポートします。

  • HDUListオブジェクトに関連するファイル名を取得する新しい方法が追加されました。メソッドの役割は,関連ファイルの名前を返すことである.ファイルがHDUListに関連付けられていない場合、Noneを返します。

  • FITSファイルを開くと、python 2.5‘with’文がサポートされます。(CNSHD 766308)現在、以下の構成を使用することができます。

    >>> from __future__ import with_statement import pyfits
    >>> with pyfits.open("input.fits") as hdul:
    ...    #process hdul
    >>>
    
  • ImageHDUから符号なし整数16値を読み出すサポートは、符号なし整数32および符号なし整数64値を含むように拡張される。データタイプがシンボル付き整数16であり、BZEROが2に等しい場合、ImageHDUデータは、シンボルなし整数16とみなされる。 15(32784)およびBSCALEは1に等しい。データタイプがシンボル付き整数32であり、BZEROが2に等しい場合、ImageHDUデータは符号なし整数32とみなされる。 31およびBSCALEは1に等しい。データタイプがシンボル付き整数64であり、BZEROが2**63に等しく、BSCALEが1に等しい場合、ImageHDUデータは、符号なし整数64とみなされる。このため、OPEN利便性関数には、任意のキーワードパラメータ(Uint)が追加される。このため、パラメータがTrue値を提供することは、通常のFloat 32またはFloat 64配列ではなく、これらのタイプのいずれかのデータを読み込み、適切な符号なし整数配列(uint 16、uint 32またはuint 64)にスケーリングすることをもたらす。‘int’オプションを使用して開かれた符号なし整数16、32、または64データを含むファイルに関連するHDU書き込みファイルの場合、データは、シンボル付き整数16、32、または64配列に逆スケーリングされ、対応するBSCALE/BZEROヘッダカードと共にファイルに書き込まれる。なお、後方互換性のため、符号なし整数16変換を処理する際には、OPEN関数では依然として‘uint 16’キーワードパラメータを受け取る。

  • 列名インデックステーブルを用いてFITSテーブルの列のデータにアクセスする機能を提供する。これは,numpy(フィールド付き配列)におけるレコード配列と一致する.(CNSHD 763378)以下の例で説明する。

    >>> import pyfits
    >>> hdul = pyfits.open('input.fits')
    >>> table = hdul[1].data
    >>> table.names
    ['c1','c2','c3','c4']
    >>> print table.field('c2') # this is the data for column 2
    ['abc' 'xy']
    >>> print table['c2'] # this is also the data for column 2
    array(['abc', 'xy '], dtype='|S3')
    >>> print table[1] # this is the data for row 1
    (2, 'xy', 6.6999997138977054, True)
    
  • Numpy Record Array(フィールド付き配列)からBinaryTableHDUを直接作成する機能を提供します。新しい機能は、pyfits.writetoおよびpyfits.append便利関数を使用してNumpyレコード配列をFITSファイルに直接書き込むテーブルを作成することを含む。Pyfits.getdata便利関数を用いてBinaryTable HDUのデータをFITSファイルからNumpy Record Arrayに直接読み込む.(CNSHD 749034)ブルックハイブン国立研究所のアイリーン·シェルトンの助けに感謝します。

    以下にこれらの新機能を説明する.

    >>> import pyfits
    >>> import numpy
    >>> t=numpy.zeros(5,dtype=[('x','f4'),('y','2i4')]) \
    ... # Create a numpy Record Array with fields
    >>> hdu = pyfits.BinTableHDU(t) \
    ... # Create a Binary Table HDU directly from the Record Array
    >>> print hdu.data
    [(0.0, array([0, 0], dtype=int32))
     (0.0, array([0, 0], dtype=int32))
     (0.0, array([0, 0], dtype=int32))
     (0.0, array([0, 0], dtype=int32))
     (0.0, array([0, 0], dtype=int32))]
    >>> hdu.writeto('test1.fits',clobber=True) \
    ... # Write the HDU to a file
    >>> pyfits.info('test1.fits')
    Filename: test1.fits
    No.    Name         Type      Cards   Dimensions   Format
    0    PRIMARY     PrimaryHDU       4  ()            uint8
    1                BinTableHDU     12  5R x 2C       [E, 2J]
    >>> pyfits.writeto('test.fits', t, clobber=True) \
    ... # Write the Record Array directly to a file
    >>> pyfits.append('test.fits', t) \
    ... # Append another Record Array to the file
    >>> pyfits.info('test.fits')
    Filename: test.fits
    No.    Name         Type      Cards   Dimensions   Format
    0    PRIMARY     PrimaryHDU       4  ()            uint8
    1                BinTableHDU     12  5R x 2C       [E, 2J]
    2                BinTableHDU     12  5R x 2C       [E, 2J]
    >>> d=pyfits.getdata('test.fits',ext=1) \
    ... # Get the first extension from the file as a FITS_rec
    >>> print type(d)
    <class 'pyfits.core.FITS_rec'>
    >>> print d
    [(0.0, array([0, 0], dtype=int32))
     (0.0, array([0, 0], dtype=int32))
     (0.0, array([0, 0], dtype=int32))
     (0.0, array([0, 0], dtype=int32))
     (0.0, array([0, 0], dtype=int32))]
    >>> d=pyfits.getdata('test.fits',ext=1,view=numpy.ndarray) \
    ... # Get the first extension from the file as a numpy Record
          Array
    >>> print type(d)
    <type 'numpy.ndarray'>
    >>> print d
    [(0.0, [0, 0]) (0.0, [0, 0]) (0.0, [0, 0]) (0.0, [0, 0])
     (0.0, [0, 0])]
    >>> print d.dtype
    [('x', '>f4'), ('y', '>i4', 2)]
    >>> d=pyfits.getdata('test.fits',ext=1,upper=True,
    ...                  view=pyfits.FITS_rec) \
    ... # Force the Record Array field names to be in upper case
          regardless of how they are stored in the file
    >>> print d.dtype
    [('X', '>f4'), ('Y', '>i4', 2)]
    
  • ランダムアクセス方法Seek()とTell()をサポートしない類似ファイルにマッチングデータを書き込むオブジェクトをサポートする.Pyfit関数やメソッドの多くは,これらの類似ファイルのオブジェクトを1つの空ファイルと見なし,読み込むことができず,書き込むしかない.また、類似ファイルのオブジェクトが書き込み可能な状態にあることも望ましい(すなわち、開く)がpyfits関数またはメソッドに渡されるとき。以下の方法および関数は、HDUList.writeto()、HDUList.flush()、pyfits.writeto()およびpyfits.append()の非ランダムアクセスクラスファイルオブジェクトへの書き込みを許可する。Pyfits.open()便利関数を使用して、提供された類似ファイルのオブジェクトに関連するHDUListオブジェクトを作成することができます。(CNSHD 770036)

    以下に新機能の図を示す.この例では、FITデータは、書き込みモードのみで開いたファイルに関連付けられた標準出力に書き込まれる。

    >>> import pyfits
    >>> import numpy as np
    >>> import sys
    >>>
    >>> hdu = pyfits.PrimaryHDU(np.arange(100,dtype=np.int32))
    >>> hdul = pyfits.HDUList()
    >>> hdul.append(hdu)
    >>> tmpfile = open('tmpfile.py','w')
    >>> sys.stdout = tmpfile
    >>> hdul.writeto(sys.stdout, clobber=True)
    >>> sys.stdout = sys.__stdout__
    >>> tmpfile.close()
    >>> pyfits.info('tmpfile.py')
    Filename: tmpfile.py
    No.    Name         Type      Cards   Dimensions   Format
    0    PRIMARY     PrimaryHDU       5  (100,)        int32
    >>>
    
  • Fits_Recordオブジェクトスライスのサポートを提供します。Fits_Recordオブジェクトは、表の1行のデータを表す。Pyfitsは現在,スライス文法をサポートして行から値を検索している.以下にこの新しい文法を説明する.

    >>> hdul = pyfits.open('table.fits')
    >>> row = hdul[1].data[0]
    >>> row
    ('clear', 'nicmos', 1, 30, 'clear', 'idno= 100')
    >>> a, b, c, d, e = row[0:5]
    >>> a
    'clear'
    >>> b
    'nicmos'
    >>> c
    1
    >>> d
    30
    >>> e
    'clear'
    >>>
    
  • 入力としてタプルまたはリストを使用してpyfitテーブルに行値を割り当てることができます。以下の例は、この新しい機能を示す。

    >>> c1=pyfits.Column(name='target',format='10A')
    >>> c2=pyfits.Column(name='counts',format='J',unit='DN')
    >>> c3=pyfits.Column(name='notes',format='A10')
    >>> c4=pyfits.Column(name='spectrum',format='5E')
    >>> c5=pyfits.Column(name='flag',format='L')
    >>> coldefs=pyfits.ColDefs([c1,c2,c3,c4,c5])
    >>>
    >>> tbhdu=pyfits.new_table(coldefs, nrows = 5)
    >>>
    >>> # Assigning data to a table's row using a tuple
    >>> tbhdu.data[2] = ('NGC1',312,'A Note',
    ... num.array([1.1,2.2,3.3,4.4,5.5],dtype=num.float32),
    ... True)
    >>>
    >>> # Assigning data to a tables row using a list
    >>> tbhdu.data[3] = ['JIM1','33','A Note',
    ... num.array([1.,2.,3.,4.,5.],dtype=num.float32),True]
    
  • データリストから可変長フォーマット(Pフォーマット)列を作成することができます。以下の例は、この新しい機能を示す。

    >>> a = [num.array([7.2e-20,7.3e-20]),num.array([0.0]),
    ... num.array([0.0])]
    >>> acol = pyfits.Column(name='testa',format='PD()',array=a)
    >>> acol.array
    _VLF([[  7.20000000e-20   7.30000000e-20], [ 0.], [ 0.]],
    dtype=object)
    >>>
    
  • スライス文法を表中の多行代入を用いることを許す.以下の例は、この新しい機能を示す。

    >>> counts = num.array([312,334,308,317])
    >>> names = num.array(['NGC1','NGC2','NGC3','NCG4'])
    >>> c1=pyfits.Column(name='target',format='10A',array=names)
    >>> c2=pyfits.Column(name='counts',format='J',unit='DN',
    ... array=counts)
    >>> c3=pyfits.Column(name='notes',format='A10')
    >>> c4=pyfits.Column(name='spectrum',format='5E')
    >>> c5=pyfits.Column(name='flag',format='L',array=[1,0,1,1])
    >>> coldefs=pyfits.ColDefs([c1,c2,c3,c4,c5])
    >>>
    >>> tbhdu1=pyfits.new_table(coldefs)
    >>>
    >>> counts = num.array([112,134,108,117])
    >>> names = num.array(['NGC5','NGC6','NGC7','NCG8'])
    >>> c1=pyfits.Column(name='target',format='10A',array=names)
    >>> c2=pyfits.Column(name='counts',format='J',unit='DN',
    ... array=counts)
    >>> c3=pyfits.Column(name='notes',format='A10')
    >>> c4=pyfits.Column(name='spectrum',format='5E')
    >>> c5=pyfits.Column(name='flag',format='L',array=[0,1,0,0])
    >>> coldefs=pyfits.ColDefs([c1,c2,c3,c4,c5])
    >>>
    >>> tbhdu=pyfits.new_table(coldefs)
    >>> tbhdu.data[0][3] = num.array([1.,2.,3.,4.,5.],
    ... dtype=num.float32)
    >>>
    >>> tbhdu2=pyfits.new_table(tbhdu1.data, nrows=9)
    >>>
    >>> # Assign the 4 rows from the second table to rows 5 thru
    ...   8 of the new table.  Note that the last row of the new
    ...   table will still be initialized to the default values.
    >>> tbhdu2.data[4:] = tbhdu.data
    >>>
    >>> print tbhdu2.data
    [ ('NGC1', 312, '0.0', array([ 0.,  0.,  0.,  0.,  0.],
    dtype=float32), True)
      ('NGC2', 334, '0.0', array([ 0.,  0.,  0.,  0.,  0.],
    dtype=float32), False)
      ('NGC3', 308, '0.0', array([ 0.,  0.,  0.,  0.,  0.],
    dtype=float32), True)
      ('NCG4', 317, '0.0', array([ 0.,  0.,  0.,  0.,  0.],
    dtype=float32), True)
      ('NGC5', 112, '0.0', array([ 1.,  2.,  3.,  4.,  5.],
    dtype=float32), False)
      ('NGC6', 134, '0.0', array([ 0.,  0.,  0.,  0.,  0.],
    dtype=float32), True)
      ('NGC7', 108, '0.0', array([ 0.,  0.,  0.,  0.,  0.],
    dtype=float32), False)
      ('NCG8', 117, '0.0', array([ 0.,  0.,  0.,  0.,  0.],
    dtype=float32), False)
      ('0.0', 0, '0.0', array([ 0.,  0.,  0.,  0.,  0.],
    dtype=float32), False)]
    >>>
    

以下の誤りを修復した.

  • HDUList.appendおよびHDUList.insertのエラーを訂正し、マスターHDUをHDUListの最初のHDU以外の他のコンテンツを挿入または追加する場合と、拡張HDUをHDUListの最初のHDUとして挿入または追加する場合とを正しく処理する。

  • ヘッダに空白やZBLANKカードを含むスケーリング画像(圧縮と未圧縮)の誤りを訂正した.画像値が空白またはZBLANK値に一致する場合、スケーリング後にその値をNaNに置き換えるべきである。逆に、pyfitは空白またはZBLANK値をスケーリングして返しています。(CNSHD 766129)

  • 特定の列データを書き込む際に発生するバイト被覆誤りを訂正した.(CNSHD 763307)

  • 1つまたは複数の要素が指定されたフォーマット長よりも短い場合に文字配列から列を作成する際に発生するエラーが訂正される。エラーはスペースではなく空の値をファイルに書き込みます。(CNSHD 695419)

  • コネクタにNAXISnカードが含まれていないことを保証するために、HDU検証ソフトウェアのエラーが訂正されました。n>NAXISです。

  • 圧縮画像データの読み出しおよび書き込みに関するエラーが訂正された。書き込み時には、タイトルキーカードZTENSIONは常に“IMAGE”の値を有し、読み出し時には、ZTENSION値が“IMAGE”でない場合、ユーザは警告を受信するが、データは依然として画像データとみなされる。

  • カスタムHDUクラスを作成し、pyfitsと共に使用することを制限するエラーが修正されました。エラー修復は以下のように許可される.

    >>> import pyfits
    >>> class MyPrimaryHDU(pyfits.PrimaryHDU):
    ...     def __init__(self, data=None, header=None):
    ...         pyfits.PrimaryHDU.__init__(self, data, header)
    ...     def _summary(self):
    ...         """
    ...         Reimplement a method of the class.
    ...         """
    ...         s = pyfits.PrimaryHDU._summary(self)
    ...         # change the behavior to suit me.
    ...         s1 = 'MyPRIMARY ' + s[11:]
    ...         return s1
    ...
    >>> hdul=pyfits.open("pix.fits",
    ... classExtensions={pyfits.PrimaryHDU: MyPrimaryHDU})
    >>> hdul.info()
    Filename: pix.fits
    No.    Name         Type      Cards   Dimensions   Format
    0    MyPRIMARY  MyPrimaryHDU     59  (512, 512)    int16
    >>>
    
  • ColDefs.add_olを修正すると,新しいColDefsオブジェクトを返さず,列を末尾に追加し,新しい列を現在のColDefsオブジェクトに追加すればよい.(CNSHD 768 68778)

  • ColDefs.del_collにおけるエラーを訂正し,このエラーはColDefsオブジェクトから列を削除した際にKeyError異常を引き起こす.

  • オープン利便性関数は、読み出し専用モードでファイルが開き、ファイルがHDUを含まない場合に、ioerrorを引き起こすように修正されている。

  • Modified_Table BaseHDUは、オブジェクト内の参照データのすべての位置が配列のコピーではなく、同じndarrayを実際に参照することを保証する。

  • Columnクラスではデータがブール配列の場合にデータを初期化できない誤りを訂正した.(CNSHD 779136)

  • 文字データ(PAフォーマット)から可変長フォーマット列を作成する際に異常を引き起こすエラーを訂正した。

  • Windows上にインストールするためにインストールコードを修正した場合、Pythonバイナリファイルと互換性のあるC++コンパイラが見つからない場合、インストールが完了した場合には、すべてのオプションの拡張モジュール構築に失敗したことを警告します。以前は,エラーを出して実装を停止していた.

2.2.2(2009-10-12)

このバージョンで説明されている更新は、PyfitsのNUMPYバージョンでのみサポートされています。

以下の誤りを修復した.

  • 軸数で画像データと一致しない初期ヘッダを用いてCompImageHDUを作成する際に異常を引き起こす誤りを訂正した.

2.2.1(2009-10-06)

このバージョンで説明されている更新は、PyfitsのNUMPYバージョンでのみサポートされています。

以下の誤りを修復した.

  • FITSファイルのオープンを阻止したエラーは訂正され,そのファイルのヘッダにはチェックサムカードが含まれているが,DATASUMカードはない.

  • オリジナルデータを用いてスペースに付随するNumpy chararrayを用いてASCIIテーブルを作成する際に、スペースではなく空の値を書き込むエラーを訂正しました。(CNSHD 695419)

2.2(2009-09-23)

このバージョンで説明されている更新は、PyfitsのNUMPYバージョンでのみサポートされています。

以下の改良を行った。

  • FITSチェックサムキーワード約束をサポートします。(CNSHD 754301)

  • CHECKSUM=TrueキーワードパラメータをOPEN利便性関数に追加すると、ファイルが開いたときの検証チェックサム:

    >>> hdul=pyfits.open('in.fits', checksum=True)
    
  • 出力時には、Writeto利便性関数、HDUList.Writetoメソッド、すべてのHDUクラスのWritetoメソッドおよびAppend利便性関数を呼び出す際にキーワードパラメータchecksum=Trueを用いることにより、チェックサムDATASUMカードをFITSファイルのすべてのHDUに出力することができる:

    >>> hdul.writeto('out.fits', checksum=True)
    
  • HDUListクラスのための新しいInsert方法が実装され、この方法は、所与のインデックスにおいてHDUをHDUListに挿入することを可能にする:

    >>> hdul.insert(2,hdu)
    
  • ファイル名のUnicode入力を処理する機能を提供する。

  • Python 3.0に要求される整数除算のサポートを提供します。

以下の誤りを修復した.

  • 文法“for row in tbhdu.data:”繰返しバイナリ表HDUの行を用いた場合にインデックスクロス異常を引き起こす誤りを訂正した.(CNSHD 748609)

  • Writeto利便性関数を用いて表データをファイルに書き込むことを阻止する誤りを訂正した.(CNSHD 749024)

  • Ioerror例外を引き起こすためにコードが修正され、“Header Missing End Card”という注釈が付けられています。Pyfitsがファイルを開く際に有効なタイトル終了カードが見つからない場合。

    • この変更は、各タイトルの末尾およびファイルの末尾にいくつかの改行を含む非標準FITSファイルの1つの問題を解決する。しかし、どうしてもこれらの非標準ファイルを開きたい人もいるため、オープン便利機能には、例外なくこれらのファイルを開くことを可能にするオプションが追加されている。

      >>> pyfits.open('infile.fits',ignore_missing_end=True)
      
  • 表データの読み込みと書き込みを訂正した場合,適合ファイルとしてStringIOオブジェクトを用いる誤りを阻止する.従来,画像データのみがサポートされていた.(CNSHD 753698)

  • SolarisオペレーティングシステムでGZIP_1を用いて画像データを圧縮する際にバスエラーが生成される誤りを訂正した.

  • Pyfitが乗組員HDUにNumpyを使用したエラーを正確に読み取ることを阻止した。(CNSHD 756570)

  • FITSファイルを書き込む際に発生する可能性のあるエラーを訂正した.(CNSHD 757508)

    • デフォルトのSIGINTシグナルハンドラが割り当てられていなければ,書き込み前にシグナルハンドラをその以前の状態に戻すことを試みると,_File.flush()メソッドではTypeError異常を引き起こす.Mod_pythonを使用する際にこのような状況が発生することに注意されたい。古いハンドラが定義されていない場合,コードはSIG_DFLを使用するように変更されている.

  • CompImageHDUでは、hdu.scale(オプション=‘old’)を用いて画像データを再スケーリングすることを阻止したエラーが訂正されました。

2.1.1(2009-04-22)

このバージョンで説明されている更新は、PyfitsのNUMPYバージョンでのみサポートされています。

以下の誤りを修復した.

  • ファイルからデータにアクセスした後に追加としてオープンされたファイルを閉じる際に異常を引き起こすエラーが修正され、HDUがファイルに付加される。この異常はWindowsプラットフォーム上で実行される場合にのみ発生する.

  • インストールスクリプト、圧縮ソースコード、およびベンチマークテストスクリプトが更新され、Windowsプラットフォーム上で正しくインストール、構築、実行されます。

2.1(2009-04-14)

このバージョンで説明されている更新は、PyfitsのNUMPYバージョンでのみサポートされています。

以下の改良を行った。

  • Pyfitには新たなtdumpとtcreate機能を付加した.

    • 新しいtdump便利機能は、バイナリテーブルHDUの内容をASCIIフォーマットの3つのファイルのセットに転送することを可能にします。1つのファイルは列定義を含み、第2のファイルはタイトルパラメータを含み、第3のファイルはタイトルデータを含む。

    • 新しいtcreate利便性関数は、tdump利便性関数からダンプされた3つのファイルからバイナリテーブルHDUを作成することを可能にする。

    • Tdump/tcreateメソッドの主な用途は,標準テキストエディタでバイナリ表データやパラメータを編集することを可能にすることである.

  • 拡張ヘッダにおけるEXTNAMEカードの大文字区別値のサポートを追加しました。(CNSHD 745784)

    • デフォルトの場合、ファイルから読み込むと、pyfitはEXTNAMEカードの値を大文字に変換します。EXTNAME値がファイルと同じサイズを維持するために、ユーザがこの行動を迂回することを可能にする新しい便利関数(SetExtensionNameCase Sensitive)を実現した。

    • 以下の関数呼び出しにより、pyfitは、Pythonセッション全体中または関数を再呼び出しする前に、すべての拡張HDUのEXTNAMEカード値内のすべての文字の大文字を保持する:

      >>> import pyfits
      >>> pyfits.setExtensionNameCaseSensitive()
      
    • 以下の関数呼び出しは、pyfitをデフォルト(全大文字)アクションに戻す:

      >>> pyfits.setExtensionNameCaseSensitive(False)
      
  • FITファイルに対する読み書き支援を追加し,FITファイルでは,タイトル中の1枚目のカードの値は‘Simple=F’である.本例では、pyfit open関数は、新しいタイプ_NonStandardHDUの単一のHDUを含むHDUListオブジェクトを返す。HDUのヘッダは、通常のヘッダと同様である(第1のカードがSIMPLE=TではなくSIMPLE=Fを含むことを除いて)。正常なHDUのように、データの読み取りが実際の要求まで遅延する。データは、ヘッダ側カードの後の1バイト目からファイルの末尾まで続くファイルから1つの文字列に読み出される。書き込み時には,ヘッダ,直後にデータ文字列を書き込む.標準的な2880バイトFITブロックにパディングするためにデータ列を充填することは試みられない。(CNSHD 744730)

  • 拡張カードの値が未知の拡張子を含むFITファイルのサポートを追加した.(CNSHD 744730)標準準拠ファイルは、TABLE、IMAGE、BINTABLE、およびA 3 DTABLEタイプの拡張HDUをサポートします。次に、FITSファイルから非標準拡張子にアクセスすると、_NonStandardExtHDUオブジェクトが作成されます。このオブジェクトにアクセスしたデータは、ファイルから文字列にデータを読み込むことになります。HDUがファイルに書き込まれた場合、文字列データはタイトルの後に書き込まれ、標準的な2880バイトFITSブロックを充填するために埋め込まれる。

以下の誤りを修復した.

  • このコミットメントをサポートするためのCFITSIOバージョン3.13における最新の拡張をサポートするために、タイル画像圧縮コードが大量に変更されている。

  • タイル画像圧縮コード中のメモリリークを除去した.

  • 訂正した FITS_record.__setitem__ 方法は,Fits_Recordオブジェクト中の値の設定を試みる際にNameError異常を引き起こす.(CNSHD 745844)

  • 大きなテーブルHDU(>2 GIG)を含むFITSファイルを読み込む際にTypeError異常を引き起こすエラーを訂正した.(CNSHD 745522)

  • Python 2.6で実行された場合に警告モジュールへのすべての呼び出しがTypeError異常を引き起こすエラーを訂正しました。Python 2.6では、警告モジュール内のフォーマット警告方法が新しいパラメータを含むように変更されています。(CNSHD 746592)

  • Headerクラスにおけるメンバ資格(In)演算子の振舞いを訂正し,カード値ではなくヘッダカードキーワードをチェックする.(CNSHD 744730)

  • Headerオブジェクト上のイタレーションアクションを訂正した.新しい行動は、カード値ではなく、唯一のカードキーワードを反復する。

2.0.1(2009-02-03)

このバージョンで説明されている更新は、PyfitsのNUMPYバージョンでのみサポートされています。

以下の誤りを修復した.

  • FITSファイルからテーブルHDUを読み出した場合のメモリリークを除去した.(CNSHD 741877)

2.0(2009-01-30)

このバージョンで説明されている更新は、PyfitsのNUMPYバージョンでのみサポートされています。

以下の改良を行った。

  • “タイル画像圧縮約定”と呼ばれる画像圧縮約定に対する初期支援を提供する [1] それがそうです。

    • この約定で用いる原則は,まずn次元画像をサブ画像または“平敷き”の矩形メッシュに分割することである.そして、各タイルを連続するデータブロックに圧縮し、得られた圧縮ワードをFITSバイナリ内の可変長列の行に絞り格納する。いくつかの一般的な画像タイル圧縮アルゴリズムをサポートする。これには、GZIP、Rice、H−Compress、IRAF画素リスト(Plio)が含まれる。

    • 圧縮画像データのサポートは、C共有ライブラリ(pyfitsCompmode.so)に含まれるオプション“pyfitsComp”モジュールを用いて提供される。

    • 圧縮画像HDUのヘッダは、ユーザにとって任意の画像ヘッダのようである。FITSファイルに格納された実際のヘッダは、約定によって定義された特殊なキーワードのセットによって圧縮画像を記述する構造を有するバイナリテーブルHDUのヘッダである。バイナリテーブルHDUヘッダとミラーHDUヘッダとの変換は舞台裏で行われている。HDUは実際にはバイナリテーブルであるため、FITSファイルにプライマリHDUが表示されない可能性がある。

    • 圧縮画像HDUのデータは、ユーザから見て標準的な非圧縮画像データである。実データは、少なくとも1列(COMPRESSED_DATA)を含むバイナリテーブルデータとしてFITSファイルに格納される。可変長列の各行は、対応する画像ブロックを圧縮した結果として生成されるワードスロットルを含む。またいくつかのオプションの列が出現する可能性がある.圧縮不能な平坦化された未圧縮画素値を保存するためのUNCOMPRESSED_DATAと、元の未圧縮値を元の画像画素値に変換する際に必要とされる可能性のある線形スケーリング係数および零点オフセットを保存するZSCALEおよびZZEROと、ある場合、画像中の未定義画素を表す整数値を保存するZBLANKと、を含む。

    • 圧縮画像HDUを最初から作成するには、圧縮されていない画像データ配列およびその関連する画像ヘッダを1つのCompImageHDUオブジェクトを構築するだけでよい。そこから、どのミラーHDUのようにHDUを扱うことができます。

      >>> hdu=pyfits.CompImageHDU(imageData,imageHeader)
      >>> hdu.writeto('compressed_image.fits')
      
    • CompImageHDU初期値設定項メソッドの署名は、CompImageHDUオブジェクトを構築する可能なオプションを記述します:

      def __init__(self, data=None, header=None, name=None,
                   compressionType='RICE_1',
                   tileSize=None,
                   hcompScale=0.,
                   hcompSmooth=0,
                   quantizeLevel=16.):
          """
              data:            data of the image
              header:          header to be associated with the
                               image
              name:            the EXTNAME value; if this value
                               is None, then the name from the
                               input image header will be used;
                               if there is no name in the input
                               image header then the default name
                               'COMPRESSED_IMAGE' is used
              compressionType: compression algorithm 'RICE_1',
                               'PLIO_1', 'GZIP_1', 'HCOMPRESS_1'
              tileSize:        compression tile sizes default
                               treats each row of image as a tile
              hcompScale:      HCOMPRESS scale parameter
              hcompSmooth:     HCOMPRESS smooth parameter
              quantizeLevel:   floating point quantization level;
          """
      
  • 2つの新しい便利な機能が追加された。Setval関数は、FITSファイルに単一のヘッダカードの値を設定することを可能にする。DelVal機能は、FITSファイル中の単一のヘッダカードを削除することを可能にします。

  • 重複フィールド名を有するテーブルHDUを含むFITSファイルからデータの読み出しを可能にするように修正された。一般に、要求テーブルHDU内のフィールド名は一意である。この変更の前に、データにアクセスするとValueErrorが開始され、HDUが重複するフィールド名を含むことを示す。ここで、警告が発行され、フィールド名は、内部レコード配列において一意である。これはTTYPEnヘッダカード値を変更しないだろう。フィールド名を使用して、反復名を含む第1のフィールドを含むすべてのフィールドからデータを取得することができます。反復名を有する他のフィールドのデータにアクセスするためには、フィールド名ではなくフィールド番号を使用する必要がある。(CNSHD 737193)

  • 充実化は、データがシンボル付き整数16であり、BZEROが32784に等しく、BSCALEが1に等しい(符号なし整数16データをスケーリングする標準的な方法)ときに、ImageHDUから符号なし整数16値を読み出すことを可能にするために行われる。OPEN利便性関数には、新たなオプションキーワードパラメータ(Uint 16)が追加されている。このため、パラメータがTrue値を提供することにより、浮動小数点配列32配列ではなく、このタイプのデータが読み込まれ、符号なし整数16配列にスケーリングされる。Uint 16オプションを使用して開いた符号なし整数16データを含むファイルに関連するハードディスクがファイルに書き込まれる場合、データは整数16配列に逆スケーリングされ、ファイルに書き込まれ、BSCALE/BZEROヘッダカードは、それぞれ値1および32768を使用して書き込まれる。(CHSHD 736064)次の例を参照してください。

    >>> import pyfits
    >>> hdul=pyfits.open('o4sp040b0_raw.fits',uint16=1)
    >>> hdul[1].data
    array([[1507, 1509, 1505, ..., 1498, 1500, 1487],
           [1508, 1507, 1509, ..., 1498, 1505, 1490],
           [1505, 1507, 1505, ..., 1499, 1504, 1491],
           ...,
           [1505, 1506, 1507, ..., 1497, 1502, 1487],
           [1507, 1507, 1504, ..., 1495, 1499, 1486],
           [1515, 1507, 1504, ..., 1492, 1498, 1487]], dtype=uint16)
    >>> hdul.writeto('tmp.fits')
    >>> hdul1=pyfits.open('tmp.fits',uint16=1)
    >>> hdul1[1].data
    array([[1507, 1509, 1505, ..., 1498, 1500, 1487],
           [1508, 1507, 1509, ..., 1498, 1505, 1490],
           [1505, 1507, 1505, ..., 1499, 1504, 1491],
           ...,
           [1505, 1506, 1507, ..., 1497, 1502, 1487],
           [1507, 1507, 1504, ..., 1495, 1499, 1486],
           [1515, 1507, 1504, ..., 1492, 1498, 1487]], dtype=uint16)
    >>> hdul1=pyfits.open('tmp.fits')
    >>> hdul1[1].data
    array([[ 1507.,  1509.,  1505., ...,  1498.,  1500.,  1487.],
           [ 1508.,  1507.,  1509., ...,  1498.,  1505.,  1490.],
           [ 1505.,  1507.,  1505., ...,  1499.,  1504.,  1491.],
           ...,
           [ 1505.,  1506.,  1507., ...,  1497.,  1502.,  1487.],
           [ 1507.,  1507.,  1504., ...,  1495.,  1499.,  1486.],
           [ 1515.,  1507.,  1504., ...,  1492.,  1498.,  1487.]], dtype=float32)
    
  • 解析できない値を持つヘッダカードへのアクセスを試みた場合にValueError異常を起こした場合に生成されるメッセージを増強した.メッセージには今カード名が含まれています。

以下の誤りを修復した.

  • バイナリテーブルHDUをFITSファイルに付加した場合のエラーを訂正した.データは小さなバイト順マシン上にバイト順に配置されているわけではない.(CNSHD 737243)

  • ヘッダに必要なPCOUNTカードが欠落しているImageHDUへの書き込みを試みた場合の誤りを訂正した.Unbound LocalError例外は,Method_ValidHDU.req_Cardersで代入を開始する前にローカル変数“”INSERT_POS“”を参照していると文句を言う.コードが修正されたので、それはタイトルに欠落した必要なカードの記述を含むより意味のあるValueError例外を正確に発行するだろう。

  • 欠落または値が0でないPCOUNTカードを用いてImageHDUコネクタを検証した場合、PCOUNTカードに関する冗長警告情報が削除されている。

1.4.1(2008-11-04)

このバージョンで説明されている更新は、PyfitsのNUMPYバージョンでのみサポートされています。

以下の改良を行った。

  • より多くの情報を提供するために、報告導入エラーの方式を改善した。

以下の誤りを修復した.

  • カード値を文字列に訂正し,コロンを含むが値キーワードカードを記録した場合の誤りではない.

  • Pyfitは,指数表示法とスペースに付随する値を用いた記録値キーワードカードの誤りを正しく扱うことができないことを修正した.

1.4(2008-07-07)

このバージョンで説明されている更新は、PyfitsのNUMPYバージョンでのみサポートされています。

以下の改良を行った。

  • ファイル·オブジェクトと類似ファイル·オブジェクトのサポートを追加しました。

    • すべてのファイル名を受け取る便利関数やクラスメソッドは,現在もファイルオブジェクトや類似ファイルのオブジェクトを受け取る.サポートする類似ファイルのオブジェクトにはStringIOとGzipFileオブジェクトがある.他のファイル(オブジェクトなど)は,すべての標準ファイルオブジェクトメソッドを実現する場合にのみ動作する.

    • 多くの場合、ファイルまたは同様のファイルのオブジェクトは、関数呼び出し時にオンまたはオフにすることができる。開いたオブジェクトは、呼び出された関数またはメソッドに従って適切なモードで開かれなければならない。可能であれば,オブジェクトがメソッドを呼び出す前に開いていれば,呼び出し後はオープン状態を保持する.サイズが調整されたHDUListの書き込みやGzipFileオブジェクトの書き込み時には、そのサイズが調整されているか否かにかかわらず、これは不可能である。オブジェクトが関数呼び出し時に閉じていれば,オブジェクト自体を使用せずにオブジェクトの名前のみを使用する.Pyfitコードは、オブジェクトが使用するファイル名を抽出し、そのファイル名を使用して、オブジェクト上で実行される下位ファイルオブジェクトを作成する。

  • “FITS WCS提案,より一般的な歪みモデルを表すために提案されている”で紹介したように,記録値キーワードカードへの支援が追加されている.

    • 記録値キーワードカードは、記録フィールド名およびその浮動小数点値の定義を与える文字列値カードである。FITSヘッダでは、以下の文法を有する。

      keyword= 'field-specifier: float'
      

      このうち,KEYWORDは標準的な8文字のFITSキー名,FLOATは浮動小数点数の標準FITS ASCIIを表し,それらの間はコロンで区切られ,後に1つのスペースが続く.

      フィールド説明子の文法は:

      field-specifier:
          field
          field-specifier.field
      
      field:
          identifier
          identifier.index
      

      ここで,IDENTIFIERはアルファベット(大文字または小文字),下線,数字の系列であり,その最初の文字は数字ではなく,INDEXは数字列である.フィールド説明子には空白文字は出現しない.このインデックスを提供することは、主に配列要素を定義するためであるが、この目的のために使用される必要はないが、

      FITSヘッダには,名前は同じで値が異なるレコード値キーワードが複数存在する可能性がある.フィールド説明子は、キーワード名の一部と見なすことができる。

      以下にいくつかの例を示す.

      DP1     = 'NAXIS: 2'
      DP1     = 'AXIS.1: 1'
      DP1     = 'AXIS.2: 2'
      DP1     = 'NAUX: 2'
      DP1     = 'AUX.1.COEFF.0: 0'
      DP1     = 'AUX.1.POWER.0: 1'
      DP1     = 'AUX.1.COEFF.1: 0.00048828125'
      DP1     = 'AUX.1.POWER.1: 1'
      
    • 標準タイトルカードと同様に、HDUヘッダ内のカードインデックスを使用してもよく、またはキーワード名を介して値キーワードカードの値を記録することができる。キーワード名を用いてアクセスする場合,ユーザはカードキーワードのみを指定したり,カードキーワード,後続句読点,フィールド説明子を指定したりすることができる.Cardキーワードは大文字を区別しないが、フィールド説明子は大文字を区別しないことに注意されたい。HDUは ['abc.def'] 、HDU ['ABC.def'] またはHDU ['aBc.def'] HDU以外はすべての設備が同じです ['ABC.DEF'] 違います。

    • HDUヘッダを使用してカードインデックスにアクセスすると、返される値は、カードの文字列全体の値となる。例えば:

      >>> print hdr[10]
      NAXIS: 2
      >>> print hdr[11]
      AXIS.1: 1
      
    • フィールド説明子以外のキーワード名を用いてアクセスすると、そのキーワード名を有するインデックスが最も低いヘッダカードの文字列全体値が返される。例えば:

      >>> print hdr['DP1']
      NAXIS: 2
      
    • キーワード名およびフィールド説明子を用いてアクセスすると、返される値は、記録値キーワードカードに関連付けられた浮動小数点値となる。例えば:

      >>> print hdr['DP1.NAXIS']
      2.0
      
    • いずれのアクセスも存在しない値キーワードカード値を記録する試みは,例外(インデックスアクセスのIndexError例外やキーワード名アクセスのKeyError例外)を引き起こす.

    • インデックスやキーワード名を用いて、記録値キーワードカードの値を更新してもよい。例えば:

      >>> print hdr['DP1.NAXIS']
      2.0
      >>> hdr['DP1.NAXIS'] = 3.0
      >>> print hdr['DP1.NAXIS']
      3.0
      
    • 既存のヘッダに新たなレコード値キーワードカードを追加することは,任意の他のカードのようにHeader.update()方法を用いて行われる.例えば:

      >>> hdr.update('DP1', 'AXIS.3: 1', 'a comment', after='DP1.AXIS.2')
      
    • 他の任意のカードと同様に,標準リスト削除文法を用いて既存のタイトルからレコード値キーワードカードを削除することができる.例えば:

      >>> del hdr['DP1.AXIS.1']
      
    • カードインデックスやキーワード名を用いて記録値キーワードカードに個別にアクセスするほか、1組の特殊なパターンマッチングキーを用いてカードにパケットアクセスを行うこともできる。このようなアクセスは、1つまたは複数の特殊なパターンマッチング鍵を含むキーワード名文字列の標準リスト演算子を提供することにより実現される。返り値ではなく、所与のキーワード仕様に一致するタイトル内のCardsの共有インスタンスが含まれるCardListオブジェクトを返す。

    • 3つの特殊なパターンマッチングキーがあります最初の鍵 *' will match any string of zero or more characters within the current level of the field-specifier. The second key '?' will match a single character. The third key '...' must appear at the end of the keyword name string and will match all keywords that match the preceding pattern down all levels of the field-specifier. All combinations of ?, * そして..。許可されています末尾のみ許される)。以下にいくつかの例を示す.

      >>> cl=hdr['DP1.AXIS.*']
      >>> print cl
      DP1     = 'AXIS.1: 1'
      DP1     = 'AXIS.2: 2'
      >>> cl=hdr['DP1.*']
      >>> print cl
      DP1     = 'NAXIS: 2'
      DP1     = 'NAUX: 2'
      >>> cl=hdr['DP1.AUX...']
      >>> print cl
      DP1     = 'AUX.1.COEFF.0: 0'
      DP1     = 'AUX.1.POWER.0: 1'
      DP1     = 'AUX.1.COEFF.1: 0.00048828125'
      DP1     = 'AUX.1.POWER.1: 1'
      >>> cl=hdr['DP?.NAXIS']
      >>> print cl
      DP1     = 'NAXIS: 2'
      DP2     = 'NAXIS: 2'
      DP3     = 'NAXIS: 2'
      >>> cl=hdr['DP1.A*S.*']
      >>> print cl
      DP1     = 'AXIS.1: 1'
      DP1     = 'AXIS.2: 2'
      
    • 特殊なパターンマッチングキーを用いて既存のヘッダにヘッダカードの追加や更新は許されない.ただし,特殊鍵を用いてヘッダからカードを削除することを許可する.例えば:

      >>> del hdr['DP3.A*...']
      
  • 上述したように、特殊パターンマッチングキーを用いてpyfits Headerオブジェクトにアクセスすると、CardListオブジェクトが返される。このCardListオブジェクト自体を検索して、カードリストをさらに詳細化することができる。例えば:

    >>> cl=hdr['DP1...']
    >>> print cl
    DP1     = 'NAXIS: 2'
    DP1     = 'AXIS.1: 1'
    DP1     = 'AXIS.2: 2'
    DP1     = 'NAUX: 2'
    DP1     = 'AUX.1.COEFF.1: 0.000488'
    DP1     = 'AUX.2.COEFF.2: 0.00097656'
    >>> cl1=cl['*.*AUX...']
    >>> print cl1
    DP1     = 'NAUX: 2'
    DP1     = 'AUX.1.COEFF.1: 0.000488'
    DP1     = 'AUX.2.COEFF.2: 0.00097656'
    
    • CardList Key()メソッドは,CardList中のすべてのキー値の検索を許可する.例えば:

      >>> cl=hdr['DP1.AXIS.*']
      >>> print cl
      DP1     = 'AXIS.1: 1'
      DP1     = 'AXIS.2: 2'
      >>> cl.keys()
      ['DP1.AXIS.1', 'DP1.AXIS.2']
      
    • CardList Values()メソッドは,CardList中のすべての値の検索を許可する.例えば:

      >>> cl=hdr['DP1.AXIS.*']
      >>> print cl
      DP1     = 'AXIS.1: 1'
      DP1     = 'AXIS.2: 2'
      >>> cl.values()
      [1.0, 2.0]
      
    • 単一のカードは、標準リストインデックスを使用してリストから検索することができる。例えば:

      >>> cl=hdr['DP1.AXIS.*']
      >>> c=cl[0]
      >>> print c
      DP1     = 'AXIS.1: 1'
      >>> c=cl['DP1.AXIS.2']
      >>> print c
      DP1     = 'AXIS.2: 2'
      
    • 各カードの値は,カードの値属性を用いてリストから検索することができる.例えば:

      >>> cl=hdr['DP1.AXIS.*']
      >>> cl[0].value
      1.0
      
    • CardList内のカードは、ソース中のカードの共有インスタンスである。したがって,CardList中のカードを修正することもソース中のカードを修正する.ただし,CardListの追加や削除はソースに影響を与えない.例えば:

      >>> hdr['DP1.AXIS.1']
      1.0
      >>> cl=hdr['DP1.AXIS.*']
      >>> cl[0].value = 4.0
      >>> hdr['DP1.AXIS.1']
      4.0
      >>> del cl[0]
      >>> print cl['DP1.AXIS.1']
      Traceback (most recent call last):
      ...
      KeyError: "Keyword 'DP1.AXIS.1' not found."
      >>> hdr['DP1.AXIS.1']
      4.0
      
    • FITSヘッダはカード画像からなる.Pyfitsでは,各カード画像は1つのCardオブジェクトで表される.Pyfits Headerオブジェクトは,CardListオブジェクト形式のCardオブジェクトリストを含む.記録値キーワードカード画像はRecordValuedKeywordCardオブジェクトでpyfitsで表される.このオブジェクトはCardオブジェクトから継承され,Cardオブジェクトのすべてのメソッドと属性を持つ.

    • RecordValuedKeywordCard構造関数を用いて新たなRecordValuedKeywordCardオブジェクト:RecordValuedKeywordCard(Key,Value,Comment)を作成する.鍵と値パラメータは2つの方法で指定することができる.キー値は8文字のキーワードとしてしか与えられないが,この場合,値はフィールド説明子を含む文字列,コロンの直後にスペース,そして実際の値でなければならない.第2の選択は、キーワードおよびフィールド説明子を含む文字列の形態でキーを提供することであり、この場合、値は実際の浮動小数点値でなければならない。例えば:

      >>> c1 = pyfits.RecordValuedKeywordCard('DP1', 'NAXIS: 2', 'Number of variables')
      >>> c2 = pyfits.RecordValuedKeywordCard('DP1.AXIS.1', 1.0, 'Axis number')
      
    • RecordValuedKeywordCardは属性.key,.field_Specifier,.valueと.Commentを持つ..valueも.Commentも変更可能であるが,.keyまたは.field_Specifierを変更することはできない.構造関数は、入力キーまたは値からフィールド説明子を抽出する(場合に応じて)。.key属性は8文字のキーワードである.

    • 標準Cardsと同様に,RecordValuedKeywordCardはformmstring()手法を用いて文字列から構造化することができ,Verify()手法を用いて検証することも可能である.例えば:

      >>> c1 = pyfits.RecordValuedKeywordCard().fromstring(
               "DP1     = 'NAXIS: 2' / Number of independent variables")
      >>> c2 = pyfits.RecordValuedKeywordCard().fromstring(
               "DP1     = 'AXIS.1: X' / Axis number")
      >>> print c1; print c2
      DP1     = 'NAXIS: 2' / Number of independent variables
      DP1     = 'AXIS.1: X' / Axis number
      >>> c2.verify()
      Output verification result:
      Card image is not FITS standard (unparsable value string).
      
    • RecordValuedKeywordCardの標準を満たす標準カードは,クラスメソッドConellsを用いてRecordValuedKeywordCardに変換することができる.カードオブジェクトが要求条件を満たしていなければ,オリジナルカードオブジェクトのみを返す.

      >>> c1 = pyfits.Card('DP1','AUX: 1','comment')
      >>> c2 = pyfits.RecordValuedKeywordCard.coerce(c1)
      >>> print type(c2)
      <'pyfits.NP_pyfits.RecordValuedKeywordCard'>
      
    • 他の2つのカード作成方法はRecordVauedKeywordCard系の手法としても利用可能である.これらは,入力キー,値,アノテーションが与えられた場合に適切なカードオブジェクト(CardまたはRecordValuedKeywordCard),およびcreateCardFromStringを作成し,入力文字列が与えられた場合に適切なカードオブジェクトを作成するcreateCard()である.この2つの方法は便利な関数としても用いることができる:

      >>> c1 = pyfits.RecordValuedKeywordCard.createCard('DP1','AUX: 1','comment')
      

      あるいは…。

      >>> c1 = pyfits.createCard('DP1','AUX: 1','comment')
      >>> print type(c1)
      <'pyfits.NP_pyfits.RecordValuedKeywordCard'>
      
      >>> c1 = pyfits.RecordValuedKeywordCard.createCard('DP1','AUX 1','comment')
      

      あるいは…。

      >>> c1 = pyfits.createCard('DP1','AUX 1','comment')
      >>> print type(c1)
      <'pyfits.NP_pyfits.Card'>
      
      >>> c1 = pyfits.RecordValuedKeywordCard.createCardFromString \
               ("DP1 = 'AUX: 1.0' / comment")
      

      あるいは…。

      >>> c1 = pyfits.createCardFromString("DP1     = 'AUX: 1.0' / comment")
      >>> print type(c1)
      <'pyfits.NP_pyfits.RecordValuedKeywordCard'>
      

以下の誤りを修復した.

  • HDUをファイルに書き込む際のエラーを訂正しました。書き込み中には,割込みを処理する前に書き込みを完了するために,どのキーボード割込みも捕捉される.残念ながら,書き込み完了後,キーボード割込みは正しく回復しなかった.この問題は既に解決した.(CNSHD 71138)

  • TempFilee.NamedTemporaryFileメソッドを使用して作成された一時ファイルは自動的に削除されないIPythonを使用した場合のエラーを訂正しました。例えば、Gzip FITSファイルを開いたり、Internetを介してFITSファイルを開いたりすると、このようなことが発生する可能性がある。今これらのファイルを削除します。(CNSHD 718307)

  • 利便性関数付加Writeto利便性関数の呼び出しにおける誤りを訂正した.ClassExtensionsパラメータはキーワードパラメータとして渡さなければならない.

  • バイナリテーブルHDU(PA()フォーマット)から可変長文字配列を検索し,スライスを用いて可変長配列を含むデータ行を取得する際の誤りを訂正した.コードがTypeError例外を発行する.今は例外なくデータにアクセスすることができる。(CNSHD 718749)

  • 複数の画像拡張子やASCIIテーブルまたはバイナリテーブルHDUを含むメモリマッピングモードで開いたFITSファイルからデータを検索する際に発生するエラーを訂正した.コードがTypeError例外を発行する.今は例外なくデータにアクセスすることができる。(CNSHD 707426)

  • バイナリテーブルHDUからデータサブセットを取得しようと試みた後、データを使用して新しいバイナリテーブルHDUオブジェクトを作成する際に発生したエラーが訂正された。TypeError異常を引き起こしましたデータは、今、サブセットを使用して、新しいHDUを作成することができます。(CNSHD 723761)

  • _ImageBaseHDU.scale法を使用してImage HDUを元のデータタイプにスケーリングしようとした場合のエラーを訂正しました。コードはBITPIXヘッダカードをオリジナルデータタイプにリセットしていない.この点は既に是正された.

  • コードは、NameError例外ではなく、テーブルに存在しないフィールドにアクセスする際にKeyError例外を発行するように変更されている。

1.3(2008-02-22)

このバージョンで説明されている更新は、PyfitsのNUMPYバージョンでのみサポートされています。

以下の改良を行った。

  • Pyfitの新たな拡張の支援を提供しています 不適当なところ それがそうです。

    • ♪the 不適当なところ モジュールはpyfitsのラッパである.これは、pyfitのすべての特性および機能、ならびにいくつかのSTScI特有の特性を提供する。現在、stpyfitがサポートする唯一の新しい特性は、一定のデータ値配列を有する画質拡張を含むFITSファイルを読み書きすることができることである。Stpyfitsをご覧ください [2] Stpyfitsの詳細については、参照されたい。

  • ファイルから実際にデータを読み込むことなく、FITSファイルからHDUの直後を削除することを可能にする新しい機能を追加しました。

    • これは、HDUが大きすぎて32ビットマシンで読み取ることができないファイルからHDUに付随するJWST要求を削除することをサポートします。

  • 警告モジュールを使用して警告を発するためにpyfitsが更新された。すべての警告は、以前とまったく同じstdoutに発行されますが、現在では-WIgnoreコマンドラインオプションを使用して警告をキャンセルすることができます。例えば、警告を無視するスクリプトを実行するには、以下のコマンドライン文法を使用してください。

    Python-script.pyを無視します

  • オープン便利機能が更新され、FITSファイルを開く際にファイル名ではなく開いたファイルオブジェクトを入力することができます。

  • Writeto利便性関数は、OUTPUT_VERIFYオプションを受け入れることを可能にするために更新された。

    • このようにして、ユーザは、パラメータOUTPUT_VERIFY=‘fix’を使用して、pyfitがデータをファイルに書き込む前に、提供されたヘッダファイルにおいて遭遇した任意のエラーを訂正することを可能にすることができる。

  • VerifyError例外を介してより詳細な情報を提供するために、検証コードが更新された。

  • Numpy.ndarrayからバイナリテーブルHDUを直接作成する機能が追加されました。これは、new_table便利関数またはBinTableHDU構造関数を使用して行うことができる。

以下の性能改善を行った.

  • 導入ロジックを修正し,pyfitsの導入に要する時間を大きく削減した.

  • コードは、ヘッダカードをコピーしてチェックする際に性能を向上させるために修正されている。

以下の誤りを修復した.

  • BZERO/BSCALEスケーリングを含むFITSファイルからデータを読み込む際の誤りを訂正した.ファイルからデータを読み込む場合,pyfitはヘッダ中のBZERO/BSCALE値を用いて自動的にデータをスケーリングする.以前のバージョンでは、pyfitsは、スケーリングデータを保存するために32ビット浮動小数点配列を作成しました。BZEROの値が大きすぎてスケーリングされた値が浮動小数点数32に適合しない場合には、問題となる可能性がある。このバージョンでは、入力データが32ビット整数である場合、スケーリングデータは64ビット浮動小数点配列を使用する。

  • ImageHDU.scale法を用いて画像データをスケーリングする際に異常を引き起こす誤りを訂正した.

  • New_table便利関数におけるエラーを訂正し,このエラーは,入力としてColDefsオブジェクトを用いてバイナリテーブルを作成し,入力ColDefsオブジェクトに存在する行数よりも大きい行数にnrowパラメータを提供したときに生じる.以前のバージョンのpyfitsは追加の行に必要なメモリを割り当てることができません。

  • New_table便利関数における誤りを訂正し,この誤りによりASCIIテーブルを作成する際に異常を引き起こす.

  • New_table便利関数中の誤りを訂正し,この関数はファイルから読み込んだColDefsオブジェクトをデータ値NONEのバイナリテーブルに入力することを許す.

  • 非連続開始列を用いて作成した列オブジェクトからASCII表を構築した場合の誤りを訂正した.

  • 多くの領域における誤りが訂正されており,これらの誤りは誤りが発生した場合に不正確に異常を引き起こす場合がある.

  • Windowsプラットフォーム上でファイル仕様中のドライバ番号を用いて存在しないFITSファイルを開く際に誤ったioerror異常を引き起こす誤りを訂正した.

1.1(2007-06-15)

  • NUMPYまたはNUMARRAYを使用するように修正する.

  • 出力拡張イメージ全体をメモリに格納することなく、データストリーミングを拡張に転送することを可能にするための新しいファイル書き込みモードが提供されている。StreamingHDUに関する文書を参照してください。

  • 定位置バイトカバーによってバイトカバーおよびメモリ使用を最大限に低減するように改良されている。

  • 現在、ファイル名で‘:’文字を使用することをサポートしています。

  • 長時間操作中のキーボード割込みを処理する.

  • 入力画像配列のバイト順序を保持する.

1.0.1(2006-03-24)

PyFITSの変更は,主に文書文字列を改善し,いくつかの共通関数と変数をプライベート関数に再分類するためである.従来のバージョンではPyFITSとともに配布されていたReadgeisとfitsdiffがpytoolsに転送される.このバージョンのPyFITSはv 1.0.1である.次のバージョンのPyFITSは、numarrayおよびnumpyを同時にサポートします(そしてSTScI_pythonとは別に提供され、STScI_pythonに含まれるすべてのpythonパケットも同様です)。PyFITS NumpyをサポートするAlphaバージョンは、このSTScI_Pythonバージョンがリリースされたときに発行されます。

  • 共有関数の文書文字列が更新された.

  • いくつかの以前に開示された機能をプライベートに変換する。

1.0(2005-11-01)

V 0.9.6以降の主な変更:

  • 階層的約束へのサポートを追加しました

  • HDUリストの反復およびスライスのサポートの追加

  • PyFITSは現在、標準的なsetup.pyを使用してスクリプトをインストールしています。

  • モジュールレベルにユーティリティ機能を追加することは、以下のことを含む。

    • 地面の端.

    • データを取得する

    • Getval

    • 記入する.

    • 付加する.

    • 更新する.

    • 情報

V 0.9.6以来の微細な変化:

  • 単列ASCII表を動作させた誤りを修復した.

  • Xフォーマット列を持つ既存の表から構築された新しい表から動作するようにエラーを修復した.

  • 修復OPEN文の後にHDUListを検証する際に生じる問題.

  • HDUListの最初の要素以外の要素がExtensionHDUであるかどうかを検証します。

  • メソッドflush()とClose()に出力検証を加える.

  • Open()関数の設計を修正して、OUTPUT_VERIFYパラメータを削除します。

  • GroupsHDUの構造関数中のGroupsパラメータを削除する.

  • 列定義クラスを再設計し,その列コンポーネントがアクセスしやすいようにする.また,より高いレベルの機能を有利にするためにも,たとえば2つの列定義を組み合わせる.

  • BooleanクラスをPython Booleanタイプに置き換えます。古い対/偽は依然として有効である.

  • クラスを新しいスタイルに変換する.

  • カードやカードリストを印刷する場合はフォーマットが良いです。

  • すべてのWriteto()関数およびメソッドにオプションのパラメータ修正器を追加する.

  • 空きカードを追加すると、既存の空きカードの空間は使用されません。

PyFITSバージョン1.0にはPython 2.3以上が必要です。

0.9.6(2004-11-11)

V 0.9.3以降の主な変更:

  • 可変長配列テーブルをサポートします。

  • ASCII表拡張の作成をサポートします。

  • ランダムグループ化をサポートし,読み書きも可能である.

いくつかの些細な変更:

  • ASCIIテーブル拡張にはプリアンブルゼロの数字がサポートされています。

  • 格納列のデータタイプをFloat 32からFloat 64に変更して精度を保つ.

  • 列構造関数をフォーマット仕様を受け取る際により柔軟にする.

0.9.3(2004-07-02)

V 0.9.0以降の変更:

  • ファイルが開くと、すべてのHDUの全ヘッダ/カードの遅延がインスタンス化される。開く際には,ヘッダ部分のみから重要文(たとえばNAXIS)を抽出する.ユーザが複数の拡張子FITSファイルの1つの拡張子にアクセスするだけである場合、この変更は性能を向上させる。

  • 読み出しおよび書き込みを含むバイナリテーブル内のXフォーマット(ビットフラグ)列をサポートする。ユーザインタフェースでは,操作を容易にするためにブール配列に変換される.例えば、列のTFormが“11 x”であれば、データは内部に2バイト格納されるが、ユーザは、その列の各行に11個の要素からなるブール配列を見るであろう。

  • テーブル拡張にデータがない場合には、HDUリストを更新/書き込みする際にデータをスケーリングしようとしないエラーが修復された。

0.9(2004-04-27)

V 0.8.0以降の変更:

  • Cardクラスを書き換えてヘッダカードの解析と検証を分離する

  • キーワードインデックススキームを再構成し、いくつかのアプリケーションの速度を30倍以上に向上させる(大量の新しいキーワードを更新し、より多くのカードを有するタイトルを読み取る

  • デフォルト値を緩いFITS標準入力検査と厳格FITS標準出力検査に変更

  • 連続カードをサポートしておりますので、読み書きも可能です

  • HDUList、HDU、Cardレベルで検証を行うことができます

  • 画像(連続)セグメント(属性.Section)をサポートし,大きな画像のメモリ使用量を削減する.

0.8.0(2003-08-19)

注: このバージョンは、NumArrayバージョン0.6にのみ適用されます。また,初期バージョンのPyFITSはnumarray 0.6とともに使用できない.したがって,両者は同時に更新されなければならない.

0.7.6以降の変更:

  • Numarray 0.6/Record 2.0と互換性がある

  • バイナリテーブルの場合、スケーリングフィールドが更新された場合、元の配列を更新することができる。

  • 複合柱の支持

  • 修正する. __getitem__ FITS_recにおけるメソッド.スケーリングされた数も元のFits_recと同じデータを表示できることを保証するためには、以下の場合にすべてのフィールドを“接触”する必要があります。 __getitem__ と言います。

  • HDUListに新しい属性mmobjectを追加し、HDUListオブジェクトをオフにするとmemmapオブジェクトをオフにします。初期バージョンではMemmapオブジェクトを閉じず、メモリロックを招く可能性があります。

  • 正当なメモリマッピングモードとして‘UPDATE’を有効にします。

  • FITSファイルを読み出して作成されたHDUListオブジェクトではない場合は、メッセージを印刷しないでください。このような情報は困惑している。

  • 内部属性“Closed”および関連手法の除去 (__getattr__ HDUListで)。これは余分です。

0.7.6(2002-11-22)

注: このバージョンはNumarray 0.4にのみ適用されます。

0.7.5以降の変更:

  • X*=nをnumarray.multiply(x,n,x)に変更し、nはPython 2.2でpyfitが動作するように浮動小数点数である。(2回)

  • Headerクラス中の“update”メソッドを修正して、カードがすでに存在していても、“Fixed-Format”カードを使用します。これは,不整合を避けるためであり,以下のようになる.

    ACS画像に霧雨を実行した後、非常に多くの数字を持つCD行列を作成します e.g.

    CD 1_1=1.1187596304411 E-05/第1軸座標の部分w.r.t.X CD 1_2=−8.502767249350019 E−06/第1軸座標の部分w.r.t.はい。

    Pyfitsを用いて,これらの見出し項を“更新”し,少ない数字を持つ新しい値を書き込む. e.g.

    CD 1_1=1.0963011 E-05/第1軸座標の部分w.r.t.X CD 1_2=−8.527229 E−06/第1軸座標の部分w.r.t.はい。

  • 外観が一致するように内部変数を変更します:

    旧名新名称

    __octalRegex_octalRegex__readblock()_readblock()__Formatter()_Formatter().__VALUE_RE_VALUE_RE_NUMR_NUMR__COMMENT_RE_COMMENT_RE__KEYWD_RE_KEYWD_RE_NUMBER_RE_NUMBER_RE。TmpName()_tmpName()dimShape_dimShape ErrList_ErrList

  • 上移動モジュール記述。著作権宣言を底に移して変数に代入します __credits__.

  • 以下の行を変更します。

    self.__dict__ = input.__dict__

    至る

    自身.__setstate__(入力.__getstate__())

    PyfitをNumarray 0.4で動作させるために.

  • EDIT_READBLOCKは、任意にFirstblockパラメータを追加し、最初のブロックの最初の8文字が‘Simple’または‘Xtension’でない場合、ioerrorを開始する。関数openを編集して、ioerrorが最後の空のパディングのブロックをスキップすることをチェックします。Firstblockパラメータを追加するためにreadHDUを編集します。

0.7.5(2002-08-16)

V 0.7.3以降の変更:

  • メモリマッピングは現在読み出し専用モードに適用されており,画像にもバイナリテーブルにも適用されている.

    用法:pyfits.open(‘filename’,memmap=1)

  • Fits_recクラス中のフィールドメソッドを編集し,数字の列縮小により少ない一時メモリを使用させる.(2.2では機能しない、配列のPython“bug”*=)

  • ImageBaseHDU構造関数のbscale/b 0を削除します。

  • 更新中のbitpix BaseImageHDU.__getattr__ B刻み/bゼロを削除した後。(エラー修復)

  • はい。 BaseImageHDU.__getattr__ 浮動小数点型であればself.dataをraw_data,memmapでなければraw_dataを指す.(エラー修復)。

  • 関数get_tbdata()をprivate:_get_tbdata()に変更する.

0.7.3(2002-07-12)

V 0.7.2以降の変更:

  • BSCALE/BZERO!=1/0の場合、すべての整数画像データをFloat 32にスケーリングする。それはまたBSCALE/BZEROキーワードを削除するだろう。

  • ImageBaseHDUにscale()メソッドを追加することで,データをファイルに書き込む前にスケーリングすることができる.次のような論点があります

    タイプ:Int 32,Float 32,UInt 8などの目的データタイプ(文字列).

    オプション:伸縮プラン.‘old’であれば,古いBSCALE/BZEO値を用いる.‘minmax’である場合、指定された整数タイプの範囲全体に適応するためにデータ範囲が使用される。フローティング·ターゲット·データ·タイプは、このオプションのためにスケーリングされません。

    B刻み/bゼロ:ユーザが指定したb刻み/b ZERO値.“オプション”をカバーします

  • “更新”モードでは、データ領域サイズ調整が処理される。

  • データ拡張(入出力)を速くし、より少ないメモリを使用する。

  • 列名変更フィールドのエラー修復を有効にします。

  • エラー修復は、ヘッダに鍵が存在しない場合に異常が発生することを回避する。これはAdd_History(),Add_Comment()とAdd_Blank()に影響を与える(修復).

  • Cardクラスにおける__getattr__()におけるエラーを修復した.0.7.2におけるrstrip注釈への変更は、異常を回避するために文字列タイプでなければならない。

0.7.2.1(2002-06-25)

このバージョンではいくつかのエラーが解決された。

  • _add_Comments()におけるエラーを修復します。Index_of()は0.6.5.5バージョンで変化するため、ヘッダにキーがない場合には、異常が発生しないように_add_Commentsを修正する必要がある。これはAdd_History(),Add_Comment()とAdd_Blank()に影響を与える(修復).

  • Cardクラスの__getattr__()におけるエラーを修復する.0.7.2におけるrstrip注釈への変更は、異常を回避するために文字列タイプでなければならない。

0.7.2(2002-06-19)

バージョン0.6.2の2つの主な改善は:

  • “スケーリング”列を有するテーブル(例えば、tscal/tzero、Boolean、ASCIIテーブル)の読み出しをサポートする

  • プロトタイプ出力検証.

このバージョンのPyFITSにはNumarrayバージョン0.3.4が必要です。

その他の変更には、:

  • 今年初めに提案された新しいHDU階層構造を実施した。これは逆にいくつかのHDUクラスでよく使われるいくつかの冗長方法を減少させる。

  • HeaderクラスにはAdd_History,Add_Comment,Add_Blankの3つの新規メソッドを追加する.

  • 表ATTRIBUTES_COLUMNSは現在.columnであり,ColDefs中の属性は現在下線をつけていない.したがって,ユーザは以下のように列名リストを取得することができる:hdu.column ns.name.

  • NEW_TABLE手法における“Fill”パラメータは,現在,<br>がtrue(=1)に設定されていれば,新しい表全体をゼロ/空白で埋めるという新たな意味を持つようになっている.そうでなければ(=0),追加の行/セルのみがゼロ/空白で充填される.現在はゼロ/空白以外の値にチャージすることはできません。

  • パラメータOUTPUT_VERIFYをopenメソッドおよびWritetoメソッドに追加します。可能な複雑さのため,FlushやClose手法には現在存在していない.

  • これは新しい表複製方法であり,そこから複製された表とは完全に独立している.

  • WriteHDUdata中のtostring()呼び出しは、Stringオブジェクトを格納するための追加の空間を占めています。Tofile()に変えてスペースを節約します。

  • Numarrayとrecarrayに応じて変更した後、_byteswapを_byteorderに変更します。

  • HeaderがNoneの場合のみ,PrimaryHDUに拡張を挿入(更新)する.

  • カードの注釈値の末尾のスペースを取り除く.

  • Seek(0)をすぐに追加する __buildin__. Open(0)は,‘ab+’モードに対してポインタはLinuxではopenの後の末尾であるが,Solarisでは先頭であるためである.

  • タイトルに対するデータチェックを追加し,タイトルキーワード(NAXIS,BITPIX)がデータと一致しない場合にはタイトルキーワードを更新する.

  • バージョンを変更する __version__.

他にも多くの小さな内部エラー修復と技術的変更がある。

0.6.2(2002-02-12)

このバージョンはNumarrayバージョン0.2が必要です。

まだ支持されていませんが未来の発展の一部になっています

  • ディスクに書き込まれたFITオブジェクトは、正当なFITであるように検証および/または修正される。今追加されていますので、約1ヶ月後に使用できます。現在,データと一致しないFITSヘッダを構築し,このようなFITSオブジェクトをディスクに書き込むことができる.将来のバージョンでは、a)差異を訂正して警告する、b)差異を暗黙的に訂正する、c)Python異常を投げ出す、またはd)不正適合(テストのために!)を書き込むオプションが提供される。

  • ASCIIテーブルまたはランダムパケットフォーマットをサポートします。ASCII表への支援はすぐに完了する(約1カ月).乗組員支援がいつ追加されるかは確実ではない。

  • メモリマッピングに適したデータ(メモリ需要を削減するため)をサポートします。私たちは約3ヶ月以内にこの能力を提供する予定だ。

  • サポートバイナリテーブル内の格納値(例えば、BSCALEまたはBZERO)またはブール値を有する列。現在,ブール値はInt 8配列に格納されており,ユーザはそれらを明示的にブール配列に変換しなければならない.同様に、スケーリングの列は、スケーリングおよびオフセット属性を明示的にテストすることによってコピーされなければなりません。未来のバージョンはこのようなコピーを自動的に生成するだろう。

  • TNULL値を持つテーブルをサポートします。これは、マスク配列(計画中の)をサポートするためにNumarrayを強化する必要がある。(少なくとも数ヶ月の休暇がある)。