astropy.io.votable.exceptions#

可投票的例外和警告。

警告#

备注

以下大多数警告表示违反了VOTable规范。它们应该报告给生成VOTable文件的工具的作者。

要控制发出的警告,请使用标准Python warnings 模块与 astropy.io.votable.exceptions.conf.max_warnings 配置项。大多数都是这种类型的 VOTableSpecWarning .

W01:数组使用逗号而不是空格#

数组使用逗号而不是空格。

VOTable规范规定:

如果单元格包含数组或复数,则应将其编码为多个用空格分隔的数字。

许多野生的可语音文件都使用逗号作为分隔符,并且 astropy.io.votable 可以支持此约定,具体取决于 验证VOTables 布景。

astropy.io.votable 总是只使用空格输出文件,而不管它们是如何输入的。

工具书类 : 1.1 , 1.2

W02:x属性“y”无效。必须是标准XML id#

非标准的XML ID。

XML ID必须与以下正则表达式匹配::

^[A-Za-z_][A-Za-z0-9_\.\-]*$

VOTable 1.1说明了以下内容:

根据XML标准,属性 ID is a string beginning with a letter or underscore (_), followed by a sequence of letters, digits, or any of the punctuation characters . (dot), - (破折号), _ (下划线),或 : (冒号)。

但是,这与XML标准相冲突,XML标准规定不能使用冒号。votable1.1自己的模式不允许在这里使用冒号。因此, astropy.io.votable 不允许使用结肠。

VOTable 1.2修正了规范中的这一错误。

References : 1.1 , XML Names

W03:从名称“x”->“y”隐式生成ID#

从名称隐式生成ID。

VOTable 1.1规范说明了以下内容 name VS ID 在 FIELD 和 VALUE 元素:

ID 和 name 属性在VOTable中有不同的作用: ID 意思是 唯一标识符 元素被视为可变组件,而 name 用于表示目的,不需要在整个VOTable文档中保持唯一性。这个 ID 因此,属性在必须被引用的元素中是必需的,但原则上任何元素都可以具有 ID 属性。。。总之 ID 不同于 name 属性 ID 属性是由受限字符集生成的,在整个VOTable文档中必须是唯一的,而名称是标准的XML属性,不必是唯一的;(b)解析软件中应该支持查找引用并提取匹配的相关元素 ID .

表2.1中推荐了进一步的规范:

而 ID 属性在VOTable文档中必须是唯一的 name 不需要属性。但是,作为一个好的实践,建议在 TABLE 元素。此建议意味着,在 TABLE 以及相应的结束语 TABLE 标签, name 属性 FIELD , PARAM 可选的 GROUP 元素应该都是不同的。

自从 astropy.io.votable 每个列都需要唯一标识符, ID 用于列名(如果存在)。但是,什么时候 ID 不存在(因为规范不要求) name 而是使用。然而, name 必须通过用下划线替换无效字符(如空格)来清除。

备注

此警告并不表示输入文件对于VOTable规范无效,只表示记录数组中的列名可能与 name 文件中指定的属性。

工具书类 : 1.1 , 1.2

W04:内容类型“x”必须是有效的MIME内容类型#

这个 content-type attribute must use MIME content-type syntax as defined in RFC 2046 .

目前对有效性的检查有点过分了。

工具书类 : 1.1 , 1.2

W05:“x”不是有效的URI#

必须在URI中定义为有效的属性 RFC 2396 .

W06:无效UCD“x”:解释#

发生以下情况时发出此警告: ucd attribute does not match the syntax of a unified content descriptor 。

如果VOTable版本是1.2或更高版本,UCD也将被检查以确保它符合UCD1+定义的受控词汇表。

工具书类 : 1.1 , 1.2

W07:x中的天文年无效:'y'#

无效的占星年。

因为天文年字段是贝塞尔年或朱利安年,与正则表达式相匹配:

^[JB]?[0-9]+([.][0-9]*)?$

在此XML架构片段中定义:

<xs:simpleType  name="astroYear">
  <xs:restriction base="xs:token">
    <xs:pattern  value="[JB]?[0-9]+([.][0-9]*)?"/>
  </xs:restriction>
</xs:simpleType>

W08:“x”必须是str或bytes对象#

为了避免局部依赖数解析差异, astropy.io.votable unicode或字符串可能需要更合理的字符串类型。

W09:ID属性未大写#

VOTable规范使用voname属性 ID (大写字母)指定唯一标识符。一些VOTable生成工具使用更标准的小写 id 相反。 astropy.io.votable 接受 id 并发出警告如果 verify 是 'warn' .

工具书类 : 1.1 , 1.2

W10:未知标记“x”。忽略#

分析器遇到了规范中不存在的元素,或者出现在无效上下文中。根据VOTable模式检查文件(使用诸如 xmllint . 如果文件根据架构进行了验证,而您仍然收到此警告,则可能表示中存在错误 astropy.io.votable .

工具书类 : 1.1 , 1.2

W12:“x”元素必须至少具有“ID”或“name”属性之一#

为了命名Numpy记录数组的列,每个列 FIELD 元素必须具有 ID 或 name 从中派生名称的属性。严格地说,根据VOTable模式 name 属性是必需的。但是,如果 name 不存在于 ID 是,而且 verify 不是 'exception' , astropy.io.votable 将在没有 name 定义。

工具书类 : 1.1 , 1.2

W13:“x”不是有效的VOTable数据类型,应为“y”#

无效的可投票数据类型。

一些VOTable文件使用非标准的数据类型名称。使用以下映射将这些映射到标准的:

string        -> char
unicodeString -> unicodeChar
int16         -> short
int32         -> int
int64         -> long
float32       -> float
float64       -> double
unsignedInt   -> long
unsignedShort -> int

要在分析期间添加更多的数据类型映射,请使用 datatype_mapping 关键字到 astropy.io.votable.parse .

工具书类 : 1.1 , 1.2

W15:x元素缺少必需的“name”属性#

这个 name 属性在每个 FIELD 元素。但是,许多VOTable文件都忽略了它,只提供了一个 ID 相反。在这种情况下,什么时候 verify 不是 'exception' astropy.io.votable 将复制 name 属性 ID 属性。

工具书类 : 1.1 , 1.2

W17:x元素包含多个DESCRIPTION元素#

A DESCRIPTION 元素在其父元素中只能出现一次。

根据模式,它可能只发生一次 (1.1 _, 1.2 )

但是,它是一个 proposed extension 第1.2条。

W18:表指定nrows=x,但表包含y行#

中显式指定的行数 nrows 属性与实际行数不匹配 (TR 元素)存在于 TABLE . 这可能表示文件被截断,或者生成该文件的工具中存在内部错误。如果 verify 不是 'exception' ,解析将继续,但会损失一些性能。

参考文献: 1.1 , 1.2

W19:VOTable中定义的字段与嵌入的FITS文件中的字段不匹配#

使用定义的列字段 FIELD 元素与嵌入的FITS文件头中的元素不匹配。如果 verify 不是 'exception' ,则嵌入的FITS文件将优先。

W20:文件中未指定版本号。假设1.1#

如果VOTable文件中没有显式地给出版本号,解析器将假定它被写入votable1.1规范。

W21:astropy.io.votable专为VOTable 1.1至1.5版本设计,但此文件为x#

使用时可能会出现未知问题 astropy.io.votable 包含1.1至1.5以外版本的VOTable文件。

W22:DEFINITIONS元素在VOTable 1.1中被弃用。忽略#

VOTable规范的1.0版本使用 DEFINITIONS 元素来定义坐标系。1.1版现在使用 COOSYS 整个文档中的元素。

参考文献: 1.1 , 1.2

W23:无法更新“x”的服务信息#

无法更新VO服务数据库时引发(可能是由于网络中断)。这只是一个警告,因为本地有一个旧的、可能过期的VO服务数据库。

W24:VO目录数据库用于的更新版本astropy.io.votable公司#

从www检索到的VO目录数据库是为更新版本的 astropy.io.votable . 这可能会导致执行服务查询时出现问题或功能受限。考虑升级 astropy.io.votable 到最新版本。

W25:“服务”失败,错误为:。。。#

由于网络错误或参数格式不正确,VO服务查询失败。可以尝试其他替代服务。如果所有服务失败,将引发异常。

W26在VOTable X.X中添加了“parent”中的“child”#

在指定的VOTable版本之前,给定元素的内部不受支持,但是文件中声明的版本是针对早期版本的。这些属性不能写入文件。

W27:COOSYS在VOTable 1.2中已弃用#

这个 COOSYS element was deprecated in VOTABLE version 1.2 in favor of a reference to the Space-Time Coordinate (STC) data model (see utype 还有伊沃的便条 referencing STC in VOTable .

W28:“element”上的“attribute”添加到VOTable X.X中#

在指定的VOTable版本之前,给定元素不支持给定属性,但是文件中声明的版本是针对较早版本的。这些属性不能写入文件。

W29:以非标准格式“v1.0”指定的版本#

一些VOTable文件以“v1.0”的形式指定其版本号,而规范中只支持“1.0”。

工具书类 : 1.1 , 1.2

W30:浮点“x”的文本无效。视为空的。#

有些VOTable文件以非标准方式写入缺少的浮点值,例如“null”和“-”。如果 verify 不是 'exception' ,任何非标准浮点字面值都将被视为缺失值。

工具书类 : 1.1 , 1.2

W31:在没有指定空值的整型字段中给定的NaN#

由于NaN不能直接在整型字段中表示,因此必须在字段描述符中指定null值,以支持从tabledata读取NaN。

工具书类 : 1.1 , 1.2

W32:重复的ID“x”重命名为“xu 2”,以确保唯一性#

表中的每个字段必须具有唯一的ID。如果两个或多个字段具有相同的ID,则将重命名某些字段以确保所有ID都是唯一的。

根据VOTable 1.2规范:

这个 ID 和 ref 属性定义为XML类型 ID 和 IDREF 分别。这意味着 ID 是一个标识符,在整个VOTable文档中必须是唯一的,并且 ref 属性表示对VOTable文档中必须存在的标识符的引用。

工具书类 : 1.1 , 1.2

W33:列名“x”重命名为“xu 2”,以确保唯一性#

表中的每个字段必须具有唯一的名称。如果两个或多个字段具有相同的名称,则将重命名某些字段以确保所有名称都是唯一的。

工具书类 : 1.1 , 1.2

W34:“x”是属性“y”的无效标记#

属性要求值是有效的XML标记,如 XML 1.0 .

W35:INFO元素需要“x”属性#

这个 name 和 value 所有的属性都是必需的 INFO 元素。

参考文献: 1.1 , 1.2

W36:空值“x”与字段数据类型不匹配,设置为0#

如果字段指定 null 值,则该值必须符合给定的 datatype .

参考文献: 1.1 , 1.2

W37:不支持的数据格式“x”#

VOVABLE规范中定义并支持的3种数据类型 astropy.io.votable 是 TABLEDATA , BINARY ,以及 FITS 。此外, astropy.io.votable 还支持 PARQUET 序列化,它是添加到可投票规范的候选对象。

参考文献: 1.1 , 1.2

W38:内联二进制数据必须是base64编码的,得到“x”#

VOTable规范支持的本地二进制数据的唯一编码是base64。

W39:无法屏蔽位值#

位值不支持屏蔽。在位列中设置屏蔽数据时会引发此警告。

工具书类 : 1.1 , 1.2

W40:“cproject”数据类型已修复#

这是一个支持简单映像访问协议结果的可怕黑客攻击 NOIRLab Astro Data Archive 。它为类型为“DOUBLE”的坐标投影类型创建了一个字段,该字段实际上包含字符数据。我们必须破解该字段以存储字符数据,否则我们无法将其读入。当发生这种情况时,将发出警告。

W41:指定了XML命名空间,但不正确。应为“x”,而为“y”#

上指定了XML命名空间 VOTABLE 元素,但命名空间与 VOTABLE 文件。

这个 VOTABLE 命名空间为:

http://www.ivoa.net/xml/VOTable/vX.X

其中“X.X”是版本号。

一些文件将命名空间设置为VOTable模式的位置,这是不正确的,并且不会通过一些验证解析器。

W42:未指定XML命名空间#

根元素应指定命名空间。

这个 VOTABLE 命名空间为:

http://www.ivoa.net/xml/VOTable/vX.X

其中“X.X”是版本号。

W43:尚未定义的元素ref='x'#

引用的元素应该在推荐人之前定义。

根据VOTable 1.2规范:

在VOTable1.2中,进一步建议尽可能在引用ID属性之前放置ID属性。

W44:具有ref属性的VALUES元素具有content('element')#

VALUES 引用另一个元素的元素不应该有自己的内容。

根据VOTable 1.2规范:

这个 ref 的属性 VALUES 元素可以用来避免域定义的重复,方法是引用以前定义的 VALUES 具有引用的 ID 属性。如果指定,则 ref 属性完全定义了没有任何其他元素或属性的域,例如。 <VALUES ref="RAdomain"/>

W45:内容角色属性“x”无效#

Content-Role属性无效。

这个 content-role 属性 LINK 元素必须是以下元素之一:

query, hints, doc, location

在VOTable 1.3中,另外:

type

工具书类 : 1.1 , 1.2 1.3

W46:char或unicode值对于指定的x长度太长#

给定的字符或unicode字符串对于指定的字段长度太长。

W47:缺少arraysize表示长度为1#

如果没有在char字段上指定arraysize,则默认值为“1”,但这很少是预期的。

W48:元素上的属性“attribute”未知#

规范中未定义属性。

W49:整数字段的空单元格非法。#

在votable1.3之前,空单元格对于整数字段是非法的。

如果为单元格指定了“null”值,则该值将用于该值,否则,将使用0。

W50:无效的单位字符串“x”#

中定义的单位字符串无效 Units in the VO, Version 1.0 (VOTable版本>= 1.4)或 Standards for Astronomical Catalogues, Version 2.0 (版本< 1.4)。

考虑传递一个显式 unit_format 参数,如果此文件中的单位符合其他规范。

W51:值“x”超出n位整数字段的范围#

整数值超出字段大小的范围。

W52:在VOTable 1.3中引入了BINARY2格式,但此文件声明为版本“1.2”#

二进制2格式是在votable1.3中引入的。它不应出现在标记为早期版本的文件中。

W53:VOTABLE元素必须至少包含一个资源元素。#

VOTABLE元素必须至少包含一个RESOURCE元素。

W54:在VOTable 1.4中引入了TIMESYS元素,但此文件声明为版本“1.3”#

TIMESYS元素是在VOTable 1.4中引入的。它不应出现在标记为早期版本的文件中。

W55:字段()的数据类型为“char”,但包含非ASCII值()#

当读取字段的TABLEDATA值时检测到非ASCII字符时 datatype="char" ,我们可以发出此警告。

W56:投票表中定义的字段与嵌入的拼图文件中的字段不匹配#

使用定义的列字段 FIELD 元素与嵌入的拼图文件标题中的元素不匹配。如果 verify 不是 'exception' ,嵌入的镶木地板文件将优先。

W57:仅在VOUTE v1.5及更高版本上允许引用#

的 refposition attribute on the COOSYS element is only allowed on VOTABLE versions 1.5 and greater. favor of a reference to the Space-Time Coordinate (STC) data model (see utype 和IVOA的注释 referencing STC in VOTable .

例外情况#

备注

这是由发出的许多致命异常的列表 astropy.io.votable 当文件不符合规范时。可能会由于中的意外情况或错误而引发其他异常 astropy.io.votable 本身。

E01:char/unicode字段的大小说明符“x”无效(在字段“y”中)#

字段的大小说明符无效。

的大小说明符 char 或 unicode 字段只能是一个数字,后面可以是星号。这些数据类型不支持多维大小说明符。

定义为一组字符的字符串可以在VOTable中表示为固定长度或可变长度的字符数组:

<FIELD name="unboundedString" datatype="char" arraysize="*"/>

一维字符串数组可以表示为二维字符数组,但根据上述逻辑,可以定义固定长度字符串的可变长度数组,但不能定义可变长度字符串的固定长度数组。

E02:数组中的元素数不正确。期望x的倍数,得到y#

数组中的元素数不正确。

数据中的数组元素数与字段说明符中指定的数组元素数不匹配。

E03:“x”不解析为复数#

复数应该是两个用空格隔开的值。

工具书类 : 1.1 , 1.2

E04:无效的位值“x”#

A bit 数组应为“0”和“1”的字符串。

工具书类 : 1.1 , 1.2

E05:无效的布尔值“x”#

无效的布尔值。

A boolean 中的值应为以下字符串之一(不区分大小写) TABLEDATA 格式::

'TRUE', 'FALSE', '1', '0', 'T', 'F', '\0', ' ', '?'

而在 BINARY 格式::

'T', 'F', '1', '0', '\0', ' ', '?'

工具书类 : 1.1 , 1.2

E06:字段“y”上的数据类型“x”未知#

字段上的数据类型未知。

支持的数据类型有:

double, float, bit, boolean, unsignedByte, short, int, long,
floatComplex, doubleComplex, char, unicodeChar

还支持以下非标准别名,但在这种情况下 W13 将被提升:

string        -> char
unicodeString -> unicodeChar
int16         -> short
int32         -> int
int64         -> long
float32       -> float
float64       -> double
unsignedInt   -> long
unsignedShort -> int

要在分析期间添加更多的数据类型映射,请使用 datatype_mapping 关键字到 astropy.io.votable.parse .

工具书类 : 1.1 , 1.2

E09:“x”必须具有value属性#

这个 MIN , MAX 和 OPTION 元素必须始终具有 value 属性。

工具书类 : 1.1 , 1.2

E10:所有“FIELD”元素都需要“datatype”属性#

从VOTable 1.1及更高版本, FIELD 和 PARAM 元素必须具有 datatype 字段。

工具书类 : 1.1 , 1.2

E11'精度无效#

precision属性用于表示有效数字的数量,可以是小数位数(例如。 precision="F2" 或等价地 precision="2" 表示小数点后的两个有效数字),或作为一系列有效数字(例如。 precision="E5" 表示相对精度为10-5)。

使用以下正则表达式验证它:

[EF]?[1-9][0-9]*

工具书类 : 1.1 , 1.2

E12:宽度必须是正整数,得到“x”#

width属性用于向应用程序指示用于输入或输出数量的字符数。

工具书类 : 1.1 , 1.2

E13:无效的arraysize属性“x”#

无效的arraySize属性。

根据VOTable 1.2规范:

一个表单元可以包含一个给定基元类型的数组,元素数目固定或可变;数组甚至可以是多维的。例如,点在三维空间中的位置可以通过以下方式定义:

<FIELD ID="point_3D" datatype="double" arraysize="3"/>

与该定义对应的每个单元格必须正好包含3个数字。星号( * )可以附加以指示数组中元素的可变数量,如:

<FIELD ID="values" datatype="int" arraysize="100*"/>

其中指定与该定义对应的每个单元格包含0到100个整数。可以省略这个数字来指定一个无界数组(实际上最多可以是2×10⁹个元素)。

表单元格也可以包含给定基元类型的多维数组。这是由一系列由 x 字符,第一个维度变化最快;与简单数组一样,最后一个维度的长度可能是可变的。例如,下面的定义声明了一个表单元,其中可以包含一组最多10个映像,每个映像为64×64个字节:

<FIELD ID="thumbs" datatype="unsignedByte" arraysize="64×64×10*"/>

工具书类 : 1.1 , 1.2

参数E14是所有元素的必需值#

所有 PARAM 元素必须具有 value 属性。

工具书类 : 1.1 , 1.2

E15:所有COOSYS元素都需要ID属性#

所有 COOSYS 元素必须具有 ID 属性。

请注意,votable1.1规范指出该属性是可选的,但其对应的模式表明它是必需的。

在VOTable 1.2中 COOSYS 元素已弃用。

E16:无效的系统属性“x”#

不正确 system COOsys元素的属性。

这个 system 属性必须是以下之一::

'eq_FK4', 'eq_FK5', 'ICRS', 'ecl_FK4', 'ecl_FK5', 'galactic',
'supergalactic', 'xy', 'barycentric', 'geo_app'

工具书类 : 1.1

E17:extnum必须是正整数#

extnum 属性必须是正整数。

工具书类 : 1.1 , 1.2

E18:类型必须是“results”或“meta”,而不是“x”#

这个 type 的属性 RESOURCE 元素必须是“results”或“meta”之一。

工具书类 : 1.1 , 1.2

E19:文件似乎不是VOTABLE#

当文件看起来不是XML,或者根元素不可调用时引发。

E20:数据的列数超过了头(x)中定义的列数#

桌子上只有 x 字段已定义,但数据本身的列数比此多。

E21:数据的列数(x)少于头(y)中定义的列数#

桌子上有 x 字段已定义,但数据本身只有 y 柱。

所有TIMESYS元素都需要ID属性#

所有 TIMESYS 元素必须具有 ID 属性。

E23:无效的timeorigin属性“x”#

这个 timeorigin 属性上的 TIMESYS 元素必须是指定有效儒略日期的浮点文字,或者为方便起见,必须是字符串“mjd-Origin”(代表2400000.5)或字符串“jd-Origin”(代表0)。

工具书类 : 1.4

E24:尝试将非ASCII值()写入datatype=“char”的字段()#

当字段 datatype="char" ,并且不能以二进制或二进制2序列化方式写入。

E25:未定义字段;数据节将被忽略。#

VOTable不能有没有定义字段的数据节;数据将被忽略。

E26:无法在type=Result的资源中设置映射块#

映射块只能在type=meta资源中设置。

异常实用程序#

class astropy.io.votable.exceptions.Conf[源代码]#

的配置参数 astropy.io.votable.exceptions .

max_warnings#

同一类型警告在被抑制之前显示的次数

astropy.io.votable.exceptions.warn_or_raise(warning_class, exception_class=None, args=(), config=None, pos=None, stacklevel=1)[源代码]#

根据验证设置发出警告或引发异常。

astropy.io.votable.exceptions.vo_raise(exception_class, args=(), config=None, pos=None)[源代码]#

引发异常,并提供适当的位置信息(如果可用)。

astropy.io.votable.exceptions.vo_reraise(exc, config=None, pos=None, additional='')[源代码]#

引发异常,并提供适当的位置信息(如果可用)。

还原异常的原始回溯,并且只应在“except:”代码块中调用。

astropy.io.votable.exceptions.vo_warn(warning_class, args=(), config=None, pos=None, stacklevel=1)[源代码]#

警告,如果有合适的位置信息。

astropy.io.votable.exceptions.parse_vowarning(line)[源代码]#

将vo警告字符串解析回其各个部分。

class astropy.io.votable.exceptions.VOWarning(args, config=None, pos=None)[源代码]#

基类:AstropyWarning

所有VO警告和异常的基类。

使用警告或异常代码、文件名、行号和列号处理消息的格式。

class astropy.io.votable.exceptions.VOTableChangeWarning(args, config=None, pos=None)[源代码]#

基类:VOWarning, SyntaxWarning

输入XML文件已更改。

class astropy.io.votable.exceptions.VOTableSpecWarning(args, config=None, pos=None)[源代码]#

基类:VOWarning, SyntaxWarning

输入的XML文件违反了规范,但是有一个明显的解决方法。

class astropy.io.votable.exceptions.UnimplementedWarning(args, config=None, pos=None)[源代码]#

基类:VOWarning, SyntaxWarning

的一个特点 VOTABLE 规范未实现。

class astropy.io.votable.exceptions.IOWarning(args, config=None, pos=None)[源代码]#

基类:VOWarning, RuntimeWarning

发生网络或IO错误,但已使用缓存恢复。

class astropy.io.votable.exceptions.VOTableSpecError(args, config=None, pos=None)[源代码]#

基类:VOWarning, ValueError

输入的XML文件违反了规范,没有很好的解决方法。