这个 relax 关键字参数控制非标准FITS WCS关键字的处理。
注意,默认值 relax 是 True for reading (to accept all non standard keywords), and False for writing (to write out only standard keywords), in accordance with Postel's prescription :
“接受的要自由,送的要保守。”
标头读数松弛常数#
WCS , Wcsprm 和 find_all_wcs 有一个 放松 可能是 True , False 或 int .
如果
True,(默认),将处理解析器识别的所有非标准WCS扩展。如果
False,则不会处理任何扩展(即使是勘误表中的扩展)。不符合条件的关键字将以与头中非WCS关键字相同的方式处理,即简单地忽略它们。如果一个
int,是一个位字段,用于提供对接受哪些非标准WCS关键字的细粒度控制。标志位将来可能会发生变化,应使用以开头的常量进行设置WCSHDR_在astropy.wcs模块。例如,接受
CD00i00j和PC00i00j用途: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: AcceptCROTAia,iCROTna,TCROTnaWCSHDR_EPOCHa:接受EPOCHa.WCSHDR_VELREFa:接受VELREFa.构造函数总是识别AIPS约定关键字,
CROTAn,EPOCH和VELREF对于主要代表(a = ' ')但替代品是非标准的。构造函数接受
EPOCHa和VELREFa只有WCSHDR_AUXIMG也已启用。WCSHDR_CD00i00j:接受CD00i00j.WCSHDR_PC00i00j:接受PC00i00j.WCSHDR_PROJPn:接受PROJPn.这些出现在WCS论文I+II的早期草稿中(在它们被拆分之前),相当于
CDi_ja,PCi_ja和PVi_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_ma和PSi_ma. 然而,由于疏忽,它对此保持沉默PCi_ja和CDi_ja.仅当使用wcslib 5.0或更高版本构建时可用。
WCSHDR_RADECSYS:接受RADECSYS. 这出现在WCS文件I+II的早期草稿中,随后被替换为RADESYSa. 构造函数接受RADECSYS只有WCSHDR_AUXIMG也已启用。WCSHDR_VSOURCE:接受VSOURCEa或VSOUna. 这一点出现在WCS论文III的早期草稿中,随后被放弃,转而支持ZSOURCEa和ZSOUna. 构造函数接受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_ka,iPVn_ma和TPVn_ma错误地出现在WCS论文II和随后这些和TCDn_ka,iPSn_ma和TPSn_ma被WCS文件的勘误表合法化了。严格地说,其他长格式是非标准的,事实上从未出现在WCS文件的任何草稿中或勘误表中。然而,作为原始形式的自然延伸,它们不太可能有其他意图。因此,接受它们应该是安全的,当然,前提是结果关键字不超过8个字符的限制。
如果
WCSHDR_CNAMn启用,然后也接受:iCNAMna TCNAMna : --- iCNAna --- TCNAna CNAMEia iCRDEna TCRDEna : --- iCRDna --- TCRDna CRDERia iCSYEna TCSYEna : --- iCSYna --- TCSYna CSYERia
注意
CNAMEia,CRDERia,CSYERia,并且它们的变体不被使用astropy.wcs但作为辅助信息存储。WCSHDR_CNAMn:接受iCNAMn,iCRDEn,iCSYEn,TCNAMn,TCRDEn和TCSYEn,即a空白。虽然是非标准的,但它们类似于iCTYPn,TCTYPn等。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将为标头中的所有图像提供默认值。这种辅助继承机制同样适用于二进制表图像数组和像素列表。大多数关键字没有默认值,例外情况是
LONPOLEa和LATPOLEa,而且RADESYSa和EQUINOXa它们互相提供默认值。因此,唯一的潜在困难是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
其中左侧的图像标题关键字为右侧的列特定关键字提供默认值。
这种完全继承机制只适用于二进制表图像数组,而不适用于像素列表,因为在后一种情况下,坐标轴编号和列编号之间没有定义良好的关联。
注意
CNAMEia,CRDERia,CSYERia,它们的变体不由pywcs使用,但存储在Wcsprm对象作为辅助信息。尤其要注意至少有一个
Wcsprm将为每个a在上面列出的图像标题关键字之一中找到:If the image header keywords for
aare 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
aare inherited by a binary table image array, then those keywords are considered to be "exhausted" and do not result in a separateWcsprmobject.
标题写入松弛常数#
to_header 和 to_header_string 有一个 放松 可能是 True , False 或 int .
如果
True,写入所有可识别的扩展名。如果
False(默认),写入所有被认为是安全的和建议的扩展,相当于WCSHDO_safe(如下所述)。如果一个
int,是一个位字段,用于提供对接受哪些非标准WCS关键字的细粒度控制。标志位将来可能会发生变化,应使用以开头的常量进行设置WCSHDO_在astropy.wcs模块。
标志位为:
WCSHDO_none:不要使用任何扩展名。WCSHDO_all:写入所有可识别的扩展名,相当于设置每个标志位。WCSHDO_safe:写入所有被认为是安全的和推荐的扩展名。WCSHDO_DOBSn:写入DOBSn,特定于柱的类似物DATE-OBS用于二进制表和像素列表。WCS论文III介绍DATE-AVG和DAVGn但由于疏忽DOBSn从未被标准正式定义过。替代使用DOBSn就是写作DATE-OBS适用于整个桌子。这种用法被认为是安全的,建议使用。WCSHDO_TPCn_ka:我定义的WCS纸张TPn_ka和TCn_ka对于像素列表但WCS Paper II使用
TPCn_ka在一个例子中以及随后的WCS文件勘误表中,使用TPCn_ka和TCDn_ka对于像素列表前提是关键字不超过8个字符。这种用法被认为是安全的,建议使用,因为短格式的非记忆简洁性。
WCSHDO_PVn_ma:我定义的WCS纸张iVn_ma和iSn_ma用于bintables和TVn_ma和TSn_ma对于像素列表但WCS Paper II使用
iPVn_ma和TPVn_ma在这些例子和随后的WCS文件勘误表中,使用iPVn_ma和iPSn_ma用于bintables和TPVn_ma和TPSn_ma对于像素列表前提是关键字不超过8个字符。这种用法被认为是安全的,建议使用,因为短格式的非记忆简洁性。
WCSHDO_CRPXna:由于历史原因,我定义了WCS论文jCRPXn,iCDLTn,iCUNIn,iCTYPn和iCRVLn用于bintables和TCRPXn,TCDLTn,TCUNIn,TCTYPn和TCRVLn对于像素列表在没有备用版本说明符的情况下使用。但是,由于八个字符的关键字约束,为了容纳大于99个WCS的列数,我还定义了
jCRPna,iCDEna,iCUNna,iCTYna和iCRVna用于bintables和TCRPna,TCDEna,TCUNna,TCTYna和TCRVna对于像素列表与备用版本说明符(
a). 就像PC,CD,PV和PS关键字对于列数不超过99的列,有一种混淆这两种形式的倾向。任何解析器都不太可能使用非空的替代版本说明符来拒绝第一个集合中的关键字,因此这种用法被认为是安全的,建议使用。
WCSHDO_CNAMna:WCS文件I和III定义iCNAna,iCRDna和iCSYna用于bintables和TCNAna,TCRDna和TCSYna对于像素列表通过与上面的类比,长形式将是
iCNAMna,iCRDEna和iCSYEna用于bintables和TCNAMna,TCRDEna和TCSYEna对于像素列表请注意,这些关键字只提供辅助信息,不需要它们来计算世界坐标。这种用法可能不安全,目前不建议使用。
WCSHDO_WCSNna:写入WCSNna而不是TWCSna对于像素列表。当构造函数处理WCSNna和TWCSna同样,其他解析器可能不会。因此,这种用法可能不安全,目前不建议使用。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”格式