验证选项#
有五种选择 output_verify
以下方法的论证 HDUList
: close()
, writeto()
和 flush()
,或者 _BaseHDU.writeto
方法。在这些情况下,验证选项将传递给 verify
在这些方法中调用。
'exception'
#
如果违反任何FITS标准,此选项将引发异常。这是输出的默认选项(即,当 writeto()
, close()
或 flush()
调用)。如果用户希望在输出时覆盖此默认值,则可以使用下面列出的其他选项。
'ignore'
#
此选项将忽略任何符合标准的冲突。在输出时,它将把HDU列表内容写入输出FITS文件,不管它是否符合FITS标准。
这个 ignore
选项在以下情况下很有用,例如:
读取一个非标准的输入FITS文件,用户希望在对输出文件进行一些修改后将其复制或写出。非标准将保存在这样的输出文件中。
用户希望有目的地创建一个非标准的FITS文件,可能是为了测试目的。
不会打印警告消息。这类似于静默警告(见下文)选项。
'fix'
#
此选项将尝试修复任何拟合标准冲突。不可能总是能纠正这种违规行为。一般来说,有两种FITS标准冲突:fixable和notfixable。例如,如果一个关键字有一个浮点数,其小写字母为“e”(例如,1.23e11),而不是FITS标准要求的大写“e”,则这是一个可修复的违规。另一方面,一个关键字名 P.I.
是不固定的,因为它不知道用什么来代替不允许的时间段。如果冲突是可修复的,则此选项将打印一条消息,指出它已修复。如果它不可修复,它将抛出一个异常。
修复的原则是无害。例如,“修复”一个 Card
关键字名为 P.I.
通过删除它,但是 astropy
不会采取这种行动来损害数据的完整性。
并非所有的修复都是“正确的”修复,但至少 astropy
将尝试以这样一种方式进行修复,它不会丢弃其他FITS阅读器。
'silentfix'
#
与fix相同,但不会打印出信息性消息。在用户不需要过多无害消息的大型脚本中,这可能很有用。如果冲突不可修复,它仍将抛出异常。
'warn'
#
此选项与“忽略”选项相同,但会发送警告消息。它不会尝试修复任何FITS标准冲突,无论是否可修复。