这个 relax 关键字参数控制非标准FITS WCS关键字的处理。

注意,默认值 relaxTrue for reading (to accept all non standard keywords), and False for writing (to write out only standard keywords), in accordance with Postel's prescription

“接受的要自由,送的要保守。”

标头读数松弛常数#

WCSWcsprmfind_all_wcs 有一个 放松 可能是 TrueFalseint .

  • 如果 True ,(默认),将处理解析器识别的所有非标准WCS扩展。

  • 如果 False ,则不会处理任何扩展(即使是勘误表中的扩展)。不符合条件的关键字将以与头中非WCS关键字相同的方式处理,即简单地忽略它们。

  • 如果一个 int ,是一个位字段,用于提供对接受哪些非标准WCS关键字的细粒度控制。标志位将来可能会发生变化,应使用以开头的常量进行设置 WCSHDR_astropy.wcs 模块。

    例如,接受 CD00i00jPC00i00j 用途:

    relax = astropy.wcs.WCSHDR_CD00i00j | astropy.wcs.WCSHDR_PC00i00j
    

    解析器总是处理 EPOCH 从属于 EQUINOXa 如果两者都存在,并且 VSOURCEa 总是从属于 ZSOURCEa .

    同样地, VELREF 从属于WCS论文III的形式主义。

标志位为:

  • WCSHDR_none :不要接受任何扩展(即使是勘误表中的扩展)。将不符合条件的关键字与标头中的非WCS关键字处理方式相同,即忽略它们。(这相当于通过 False

  • WCSHDR_all :接受解析器识别的所有扩展。(这相当于默认行为或传递 True

  • WCSHDR_reject :拒绝非标准keyrecords(以下某个标志未明确接受这些记录)。默认情况下将显示警告。

    这个标志可以用来表示非标准关键字的存在,否则它们只是被传递,就好像它们不存在于报头中一样。它主要用于测试FITS头是否符合WCS标准。

    Keyrecords可能在以下几种情况下是非标准的:

    • 关键字可能在语法上有效,但keyvalue的类型不正确或语法无效,或者keycomment的格式可能不正确。

    • 关键字可能与WCS关键字非常相似,但实际上不是WCS关键字,因为它不符合标准。例如, CRPIX01 看起来像是 CRPIXja 关键字,但实际上轴号的前导零违反了基本的FITS标准。同样, LONPOLE2 不是有效的 LONPOLEa 关键字,事实上,解析器无法合理地处理它。

    • 标准可能不推荐使用关键字。如果未通过下面的标志之一明确接受,则将拒绝此操作。

  • WCSHDR_CROTAia: Accept CROTAia, iCROTna, TCROTna

  • WCSHDR_EPOCHa :接受 EPOCHa .

  • WCSHDR_VELREFa :接受 VELREFa .

    构造函数总是识别AIPS约定关键字, CROTAnEPOCHVELREF 对于主要代表 (a = ' ') 但替代品是非标准的。

    构造函数接受 EPOCHaVELREFa 只有 WCSHDR_AUXIMG 也已启用。

  • WCSHDR_CD00i00j :接受 CD00i00j .

  • WCSHDR_PC00i00j :接受 PC00i00j .

  • WCSHDR_PROJPn :接受 PROJPn .

    这些出现在WCS论文I+II的早期草稿中(在它们被拆分之前),相当于 CDi_jaPCi_jaPVi_ma 对于主要代表 (a = ' ') . PROJPn 等于 PVi_ma 具有 m = n <=9,且仅与纬度轴关联。

  • WCSHDR_CD0i_0ja :接受 CD0i_0ja (wcspih())。

  • WCSHDR_PC0i_0ja :接受 PC0i_0ja (wcspih())。

  • WCSHDR_PV0i_0ma :接受 PV0i_0ja (wcspih())。

  • WCSHDR_PS0i_0ma :接受 PS0i_0ja (wcspih())。

    允许数字索引在双参数化关键字中具有前导零,例如, PC01_01 . WCS论文I(第2.1.2和2.1.4节)明确禁止前导零。FITS 3.0标准文件(第。4.1.2.1)声明在单个参数化关键字中的索引(例如。 CTYPEia )“不应该有前导零”,以及后面的章节。8.1“不得使用前导零” PVi_maPSi_ma . 然而,由于疏忽,它对此保持沉默 PCi_jaCDi_ja .

    仅当使用wcslib 5.0或更高版本构建时可用。

  • WCSHDR_RADECSYS :接受 RADECSYS . 这出现在WCS文件I+II的早期草稿中,随后被替换为 RADESYSa . 构造函数接受 RADECSYS 只有 WCSHDR_AUXIMG 也已启用。

  • WCSHDR_VSOURCE :接受 VSOURCEaVSOUna . 这一点出现在WCS论文III的早期草稿中,随后被放弃,转而支持 ZSOURCEaZSOUna . 构造函数接受 VSOURCEa 只有 WCSHDR_AUXIMG 也已启用。

  • WCSHDR_DOBSn 允许 DOBSn ,特定于柱的类似物 DATE-OBS . 由于疏忽,标准中从未对此进行正式定义。

  • WCSHDR_LONGKEY :接受替代二进制表和像素列表WCS关键字的长格式,即“a”非空。明确地::

    jCRPXna  TCRPXna  :  jCRPXn  jCRPna  TCRPXn  TCRPna  CRPIXja
       -     TPCn_ka  :    -     ijPCna    -     TPn_ka  PCi_ja
       -     TCDn_ka  :    -     ijCDna    -     TCn_ka  CDi_ja
    iCDLTna  TCDLTna  :  iCDLTn  iCDEna  TCDLTn  TCDEna  CDELTia
    iCUNIna  TCUNIna  :  iCUNIn  iCUNna  TCUNIn  TCUNna  CUNITia
    iCTYPna  TCTYPna  :  iCTYPn  iCTYna  TCTYPn  TCTYna  CTYPEia
    iCRVLna  TCRVLna  :  iCRVLn  iCRVna  TCRVLn  TCRVna  CRVALia
    iPVn_ma  TPVn_ma  :    -     iVn_ma    -     TVn_ma  PVi_ma
    iPSn_ma  TPSn_ma  :    -     iSn_ma    -     TSn_ma  PSi_ma
    

    其中,主格式和标准替代格式以及图像标题等效项显示在冒号的右侧。

    这些关键词的长形式可以描述为准标准。 TPCn_kaiPVn_maTPVn_ma 错误地出现在WCS论文II和随后这些和 TCDn_kaiPSn_maTPSn_ma 被WCS文件的勘误表合法化了。

    严格地说,其他长格式是非标准的,事实上从未出现在WCS文件的任何草稿中或勘误表中。然而,作为原始形式的自然延伸,它们不太可能有其他意图。因此,接受它们应该是安全的,当然,前提是结果关键字不超过8个字符的限制。

    如果 WCSHDR_CNAMn 启用,然后也接受:

    iCNAMna  TCNAMna  :   ---   iCNAna    ---   TCNAna  CNAMEia
    iCRDEna  TCRDEna  :   ---   iCRDna    ---   TCRDna  CRDERia
    iCSYEna  TCSYEna  :   ---   iCSYna    ---   TCSYna  CSYERia
    

    注意 CNAMEiaCRDERiaCSYERia ,并且它们的变体不被使用 astropy.wcs 但作为辅助信息存储。

  • WCSHDR_CNAMn :接受 iCNAMniCRDEniCSYEnTCNAMnTCRDEnTCSYEn ,即 a 空白。虽然是非标准的,但它们类似于 iCTYPnTCTYPn 等。

  • WCSHDR_AUXIMG :允许具有表示范围的辅助WCS关键字的图像标头形式为所有图像提供默认值。此默认值可能被关键字的列特定形式覆盖。

    例如,关键字 EQUINOXa 将应用于二进制表中的所有图像数组,或具有替代表示的所有像素列表列 a 除非被覆盖 EQUIna .

    具体来说,关键词是:

    LATPOLEa  for LATPna
    LONPOLEa  for LONPna
    RESTFREQ  for RFRQna
    RESTFRQa  for RFRQna
    RESTWAVa  for RWAVna
    

    其键值实际上由WCSLIB使用,还包括提供仅存储在wcsprm结构中的辅助信息的关键字:

    EPOCH         -       ... (No column-specific form.)
    EPOCHa        -       ... Only if WCSHDR_EPOCHa is set.
    EQUINOXa  for EQUIna
    RADESYSa  for RADEna
    RADECSYS  for RADEna  ... Only if WCSHDR_RADECSYS is set.
    SPECSYSa  for SPECna
    SSYSOBSa  for SOBSna
    SSYSSRCa  for SSRCna
    VELOSYSa  for VSYSna
    VELANGLa  for VANGna
    VELREF        -       ... (No column-specific form.)
    VELREFa       -       ... Only if WCSHDR_VELREFa is set.
    VSOURCEa  for VSOUna  ... Only if WCSHDR_VSOURCE is set.
    WCSNAMEa  for WCSNna  ... Or TWCSna (see below).
    ZSOURCEa  for ZSOUna
    
    DATE-AVG  for DAVGn
    DATE-OBS  for DOBSn
    MJD-AVG   for MJDAn
    MJD-OBS   for MJDOBn
    OBSGEO-X  for OBSGXn
    OBSGEO-Y  for OBSGYn
    OBSGEO-Z  for OBSGZn
    

    其中左侧的图像标题关键字为右侧的列特定关键字提供默认值。

    最后一组中的关键字,例如 MJD-OBS ,应用于所有替代表示,因此 MJD-OBS 将为标头中的所有图像提供默认值。

    这种辅助继承机制同样适用于二进制表图像数组和像素列表。大多数关键字没有默认值,例外情况是 LONPOLEaLATPOLEa ,而且 RADESYSaEQUINOXa 它们互相提供默认值。因此,唯一的潜在困难是 WCSHDR_AUXIMG 是错误地继承了这四个关键字中的一个。

    不像 WCSHDR_ALLIMG ,这些辅助WCS图像头关键字中的一个(或全部)的存在本身不会导致 Wcsprm 要为替代表示法创建的对象 a . 这是因为当它们与这些关键字的默认值一起使用时,它们不能提供足够的信息来创建非平凡的坐标表示,例如 CTYPEia ,由轴号参数化。

  • WCSHDR_ALLIMG :允许图像标题形式 all 图像头WCS keywords为二进制表(n.b.不是像素列表)中的所有图像数组提供默认值。此默认值可能被关键字的列特定形式覆盖。

    例如,关键字 CRPIXja 将应用于具有交替表示的二进制表中的所有图像数组 a 除非被覆盖 jCRPna .

    特别是上面列出的关键字 WCSHDR_AUXIMG 加上:

    WCSAXESa  for WCAXna
    

    定义坐标标注,以及以下由轴数参数化的关键字:

    CRPIXja   for jCRPna
    PCi_ja    for ijPCna
    CDi_ja    for ijCDna
    CDELTia   for iCDEna
    CROTAi    for iCROTn
    CROTAia        -      ... Only if WCSHDR_CROTAia is set.
    CUNITia   for iCUNna
    CTYPEia   for iCTYna
    CRVALia   for iCRVna
    PVi_ma    for iVn_ma
    PSi_ma    for iSn_ma
    
    CNAMEia   for iCNAna
    CRDERia   for iCRDna
    CSYERia   for iCSYna
    

    其中左侧的图像标题关键字为右侧的列特定关键字提供默认值。

    这种完全继承机制只适用于二进制表图像数组,而不适用于像素列表,因为在后一种情况下,坐标轴编号和列编号之间没有定义良好的关联。

    注意 CNAMEiaCRDERiaCSYERia ,它们的变体不由pywcs使用,但存储在 Wcsprm 对象作为辅助信息。

    尤其要注意至少有一个 Wcsprm 将为每个 a 在上面列出的图像标题关键字之一中找到:

    • If the image header keywords for a are not inherited by a binary table, then the struct will not be associated with any particular table column number and it is up to the user to provide an association.

    • If the image header keywords for a are inherited by a binary table image array, then those keywords are considered to be "exhausted" and do not result in a separate Wcsprm object.

标题写入松弛常数#

to_headerto_header_string 有一个 放松 可能是 TrueFalseint .

  • 如果 True ,写入所有可识别的扩展名。

  • 如果 False (默认),写入所有被认为是安全的和建议的扩展,相当于 WCSHDO_safe (如下所述)。

  • 如果一个 int ,是一个位字段,用于提供对接受哪些非标准WCS关键字的细粒度控制。标志位将来可能会发生变化,应使用以开头的常量进行设置 WCSHDO_astropy.wcs 模块。

标志位为:

  • WCSHDO_none :不要使用任何扩展名。

  • WCSHDO_all :写入所有可识别的扩展名,相当于设置每个标志位。

  • WCSHDO_safe :写入所有被认为是安全的和推荐的扩展名。

  • WCSHDO_DOBSn :写入 DOBSn ,特定于柱的类似物 DATE-OBS 用于二进制表和像素列表。WCS论文III介绍 DATE-AVGDAVGn 但由于疏忽 DOBSn 从未被标准正式定义过。替代使用 DOBSn 就是写作 DATE-OBS 适用于整个桌子。这种用法被认为是安全的,建议使用。

  • WCSHDO_TPCn_ka :我定义的WCS纸张

    • TPn_kaTCn_ka 对于像素列表

      但WCS Paper II使用 TPCn_ka 在一个例子中以及随后的WCS文件勘误表中,使用

    • TPCn_kaTCDn_ka 对于像素列表

      前提是关键字不超过8个字符。这种用法被认为是安全的,建议使用,因为短格式的非记忆简洁性。

  • WCSHDO_PVn_ma :我定义的WCS纸张

    • iVn_maiSn_ma 用于bintables和

    • TVn_maTSn_ma 对于像素列表

      但WCS Paper II使用 iPVn_maTPVn_ma 在这些例子和随后的WCS文件勘误表中,使用

    • iPVn_maiPSn_ma 用于bintables和

    • TPVn_maTPSn_ma 对于像素列表

      前提是关键字不超过8个字符。这种用法被认为是安全的,建议使用,因为短格式的非记忆简洁性。

  • WCSHDO_CRPXna :由于历史原因,我定义了WCS论文

    • jCRPXniCDLTniCUNIniCTYPniCRVLn 用于bintables和

    • TCRPXnTCDLTnTCUNInTCTYPnTCRVLn 对于像素列表

      在没有备用版本说明符的情况下使用。但是,由于八个字符的关键字约束,为了容纳大于99个WCS的列数,我还定义了

    • jCRPnaiCDEnaiCUNnaiCTYnaiCRVna 用于bintables和

    • TCRPnaTCDEnaTCUNnaTCTYnaTCRVna 对于像素列表

      与备用版本说明符( a ). 就像 PCCDPVPS 关键字对于列数不超过99的列,有一种混淆这两种形式的倾向。任何解析器都不太可能使用非空的替代版本说明符来拒绝第一个集合中的关键字,因此这种用法被认为是安全的,建议使用。

  • WCSHDO_CNAMna :WCS文件I和III定义

    • iCNAnaiCRDnaiCSYna 用于bintables和

    • TCNAnaTCRDnaTCSYna 对于像素列表

      通过与上面的类比,长形式将是

    • iCNAMnaiCRDEnaiCSYEna 用于bintables和

    • TCNAMnaTCRDEnaTCSYEna 对于像素列表

      请注意,这些关键字只提供辅助信息,不需要它们来计算世界坐标。这种用法可能不安全,目前不建议使用。

  • WCSHDO_WCSNna :写入 WCSNna 而不是 TWCSna 对于像素列表。当构造函数处理 WCSNnaTWCSna 同样,其他解析器可能不会。因此,这种用法可能不安全,目前不建议使用。

  • WCSHDO_SIP :写出简单成像多项式(SIP)关键字。

  • WCSHDO_P12, WCSHDO_P13, WCSHDO_P14, WCSHDO_P15, WCSHDO_P16, WCSHDO_P17, WCSHDO_EFMT

    这些常量控制返回的WCS关键字的精度 to_header .

    • WCSHDO_P12 :对所有浮点键值(12个有效数字)使用“%20.12G”格式

    • WCSHDO_P13 :对所有浮点键值(13个有效数字)使用“%21.13G”格式

    • WCSHDO_P14 :对所有浮点键值(14个有效数字)使用“%22.14G”格式

    • WCSHDO_P15 :对所有浮点键值(15个有效数字)使用“%23.15G”格式

    • WCSHDO_P16 :对所有浮点键值(16个有效数字)使用“%24.16G”格式

    • WCSHDO_P17 :对所有浮点键值(17个有效数字)使用“%25.17G”格式

    • WCSHDO_EFMT :使用“%E”格式,而不是上面的默认“%G”格式