验证选项

有五种选择 output_verify 以下方法的论证 HDUListclose()writeto()flush() ,或者 _BaseHDU.writeto 方法。在这些情况下,验证选项将传递给 verify 在这些方法中调用。

'exception'

如果违反任何FITS标准,此选项将引发异常。这是输出的默认选项(即,当 writeto()close()flush() 调用)。如果用户希望在输出时覆盖此默认值,则可以使用下面列出的其他选项。

'ignore'

此选项将忽略任何符合标准的冲突。在输出时,它将把HDU列表内容写入输出FITS文件,不管它是否符合FITS标准。

这个 ignore 选项在以下情况下很有用,例如:

  1. 读取一个非标准的输入FITS文件,用户希望在对输出文件进行一些修改后将其复制或写出。非标准将保存在这样的输出文件中。

  2. 用户希望有目的地创建一个非标准的FITS文件,可能是为了测试目的。

不会打印警告消息。这类似于静默警告(见下文)选项。

'fix'

此选项将尝试修复任何拟合标准冲突。不可能总是能纠正这种违规行为。一般来说,有两种FITS标准冲突:fixable和notfixable。例如,如果一个关键字有一个浮点数,其小写字母为“e”(例如,1.23e11),而不是FITS标准要求的大写“e”,则这是一个可修复的违规。另一方面,一个关键字名 P.I. 是不固定的,因为它不知道用什么来代替不允许的时间段。如果冲突是可修复的,则此选项将打印一条消息,指出它已修复。如果它不可修复,它将抛出一个异常。

修复的原则是无害。例如,“修复”一个 Card 关键字名为 P.I. 通过删除它,但是 astropy 不会采取这种行动来损害数据的完整性。

并非所有的修复都是“正确的”修复,但至少 astropy 将尝试以这样一种方式进行修复,它不会丢弃其他FITS阅读器。

'silentfix'

与fix相同,但不会打印出信息性消息。在用户不需要过多无害消息的大型脚本中,这可能很有用。如果冲突不可修复,它仍将抛出异常。

'warn'

此选项与“忽略”选项相同,但会发送警告消息。它不会尝试修复任何FITS标准冲突,无论是否可修复。