这个 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
,TCROTna
WCSHDR_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
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 separateWcsprm
object.
标题写入松弛常数#
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”格式