投票可能XML処理 (astropy.io.votable

序言:序言

♪the astropy.io.votable サブパッケージは,投票可能なXML文書と投票可能なXML文書を相互に変換する. numpy 配列を記録する。

スタート

投票可能な書類を読み取る

オプションファイルを読み込む場合は、ファイルパスを転送してください parse **

from astropy.io.votable import parse
votable = parse("votable.xml")

votable これは VOTableFile オブジェクトは、データを検索して操作し、ディスクに保存するために使用することができます。

読み取り可能なファイルは入れ子で構成されています RESOURCE 各要素は1つ以上を含むことができる要素 TABLE 元素です。♪the TABLE 要素はデータ配列を含む.

到着することができます TABLE 要素は VOTABLE 書類::

for resource in votable.resources:
    for table in resource.tables:
        # ... do something with the table ...
        pass

しかし,資源の入れ子構造が重要でなければ利用可能である. iter_tables すべてのテーブルのプレーンリストに戻るには、以下の操作を実行してください。

for table in votable.iter_tables():
    # ... do something with the table ...
    pass

最後に、書類の中に表が一つしかないことを望むなら、それを使うのが一番便利かもしれません。 get_first_table **

table = votable.get_first_table()

代替的に、投票可能な文書を解析し、1つのステップで第1のテーブルに戻ることができる便利な方法がある:

from astropy.io.votable import parse_single_table
table = parse_single_table("votable.xml")

から。 Table 対象者は array メンバ変数::

data = table.array

このデータは numpy 配列を記録する。

列の名称は ID そして name の属性 FIELD 中の元素 VOTABLE ファイルです。

実例.

もし私たちが1つあるとしましょう FIELD 具体的には以下のとおりである.

<FIELD ID="Dec" name="dec_targ" datatype="char" ucd="POS_EQ_DEC_MAIN"
       unit="deg">
 <DESCRIPTION>
  representing the ICRS declination of the center of the image.
 </DESCRIPTION>
</FIELD>

注釈

VOTABLEからのマッピング name そして ID 属性が至 numpy D型. names そして titles とても困惑しています

VOTABLEでは ID 保証は唯一だが、必要ではない。 name 唯一であることは保証できないが、これは必要だ。

はい。 numpy データタイプを記録し names 唯一でなければならず、必要だ。 titles 必要でもなく、唯一であることも要求されない。

したがってVotableの ID 最も密接にマッピングされています numpy %s names VOTABLEの name 最も密接にマッピングされています numpy %s titles それがそうです。しかし場合によっては投票可能なものが ID 提供されていなければ、1つ numpy name 投票表に基づいて生成される name それがそうです。残念ながら、投票可能フィールドは、一意で必要な属性ではなく、これは、一意の識別列の最も便利なメカニズムとなるであろう。

従従する. astropy.io.votable.tree.Table オブジェクトを追加する astropy.table.Table 対象は,優先するかどうかを指定することができる name あるいは…。 ID 属性が命に名を連ねる.デフォルトの場合、 ID 優先されます。与え、与える name 最初のオプションは、キーワードパラメータを転送します use_names_over_ids=True **

>>> votable.get_first_table().to_table(use_names_over_ids=True)

この列のデータは、以下のコマンドを使用してレコード配列から抽出することができる。

>>> table.array['dec_targ']
array([17.15153360566, 17.15153360566, 17.15153360566, 17.1516686826,
       17.1516686826, 17.1516686826, 17.1536197136, 17.1536197136,
       17.1536197136, 17.15375479055, 17.15375479055, 17.15375479055,
       17.1553884541, 17.15539736932, 17.15539752176,
       17.25736014763,
       # ...
       17.2765703], dtype=object)

あるいは等価:

>>> table.array['Dec']
array([17.15153360566, 17.15153360566, 17.15153360566, 17.1516686826,
       17.1516686826, 17.1516686826, 17.1536197136, 17.1536197136,
       17.1536197136, 17.15375479055, 17.15375479055, 17.15375479055,
       17.1553884541, 17.15539736932, 17.15539752176,
       17.25736014763,
       # ...
       17.2765703], dtype=object)

新しい表を初めから構築する

また、いくつかのフィールドデータタイプを定義し、データで充填する新しいテーブルを構築することもできる。

例を引く

投票可能文書から新しい表を構築するには、以下の操作を実行してください。

from astropy.io.votable.tree import VOTableFile, Resource, Table, Field

# Create a new VOTable file...
votable = VOTableFile()

# ...with one resource...
resource = Resource()
votable.resources.append(resource)

# ... with one table
table = Table(votable)
resource.tables.append(table)

# Define some fields
table.fields.extend([
        Field(votable, name="filename", datatype="char", arraysize="*"),
        Field(votable, name="matrix", datatype="double", arraysize="2x2")])

# Now, use those field definitions to create the numpy record arrays, with
# the given number of rows
table.create_arrays(2)

# Now table.array can be filled with data
table.array[0] = ('test1.xml', [[1, 0], [0, 1]])
table.array[1] = ('test2.xml', [[0.5, 0.3], [0.2, 0.1]])

# Now write the whole thing to a file.
# Note, we have to use the top-level votable file object
votable.to_xml("new_votable.xml")

投票可能書類を出力する

オプションファイルを保存する場合は、お呼びください to_xml 方法です。文字列またはUnicodeパス、またはPythonファイルのようなオブジェクトを受け入れます:

votable.to_xml('output.xml')

複数のデータ·ストレージ·フォーマットをサポート astropy.io.votable それがそうです。♪the TABLEDATA フォーマットはXMLに基づいており,値を数字を表す文字列として格納する.♪the BINARY フォーマットはよりコンパクトであり、Base 64符号化されたバイナリフォーマットで数字を格納する。Vvotableバージョン1.3が追加されました BINARY2 フォーマットは、旧バージョンでマスクできない整数およびビット領域を含む任意のデータタイプをマスクすることを可能にする。 BINARY フォーマットします。各表に基づいてご利用いただけます format 属性、または全体的な使用 set_all_tables_format 方法:

votable.get_first_table().format = 'binary'
votable.set_all_tables_format('binary')
votable.to_xml('binary.xml')

Vbl.使用 astropy.io.votable

標準適合性

astropy.io.votable.tree.Table supports the VOTable Format Definition Version 1.1, Version 1.2, and the Version 1.3 proposed recommendation. Some flexibility is provided to support the 1.0 draft version and other nonstandard usage in the wild. To support these cases, set the keyword argument pedantic to False when parsing.

注釈

発行された各警告と投票表に特定された異常には番号があり、より詳細に記録されている 警告 そして 例外 それがそうです。

出力は常に1.1、1.2、または1.3仕様に準拠しており、具体的には入力

陳腐パターン.

野生環境の多くの投票可能な文書は投票可能な規範に適合していない。1つのファイルを読み込むことで異常が生じた場合、 astropy.io.votable 通りすがりに pedantic=False 致す parse あるいは…。 parse_single_table 機能:

from astropy.io.votable import parse
votable = parse("votable.xml", pedantic=False)

しかし,これらのエラーは,その文書が仕様に適合するように投票可能な文書を生成するアプリケーションの作成者に報告することが望ましいことに注意されたい.

あっても pedantic 閉鎖後、多くの警告が省略される可能性がある。これらの警告は VOTableSpecWarning 標準的なPythonを使うことができます warnings モジュールです。

価値が足りない.

表中のいずれの値も“失われる”可能性がある. astropy.io.votable 記憶は numpy 各アレイ内のマスク配列 Table 例を挙げましょうその行動は普通のもののようなものです numpy マスク配列は、可変長フィールドを除く。これらのフィールドに対して、列のデータタイプは“Object”と別のものである numpy マスク配列はそこに格納される.したがって,可変長列に対する操作は機能しない-これは可変長列を直接サポートしないためである. numpy マスク配列.

データタイプマッピング

属性指定されたデータタイプ FIELD 要素がマッピングされています numpy 次の表のキー入力により:

投票可能タイプ

NumPyタイプ

ブル型.

B 1型

位.位

B 1型

UnsignedByte(未署名バイト)

U1

チャール( 可変長.

O-A bytes() 物体です。

チャール( 固定長さ

S

UnicodeChar( 可変長.

O-A str 客体.

UnicodeChar( 固定長さ

U

短い

I 2

集積する.

1.4

長い間

I8

浮いている.

F4

2倍.

F 8

FloatComplex

C 8

二重複合体

C16

フィールドが固定サイズの配列である場合、データは格納される numpy 大きさを固定した配列.

フィールドが可変サイズの配列である場合(すなわち、 arraysize ‘*’)が含まれている場合、セルはPythonリストを含みます。 numpy 価値観。各値は配列であってもよく、スカラーであってもよく、具体的には arraysize 説明符。

フィールドタイプをチェックする

テーブル中のあるフィールドに関するより多くの情報を探すには、使用することができます get_field_by_id 方法、この方法は戻ります Field 与えられたIDを持つ.

例を引く

フィールドに関する詳細を検索するには、以下の動作を実行してください。

>>> field = table.get_field_by_id('Dec')
>>> field.datatype
'char'
>>> field.unit
'deg'

注釈

フィールド記述子を変更すべきではありません。列集を変更しますので、表を変換してください astropy.table.Table 変更して、それを元に戻します。

データ序列化フォーマット

Votableは、多くの異なる直列化フォーマットをサポートする。

  • TABLEDATA データは純粋なXML形式で格納され、その中には数値が人間可読文字列として書かれている。

  • BINARY データのバイナリ表現形式であり,XMLでは不透明に格納されている. base64 -符号化されたBLOB。

  • BINARY2 投票表1.3に追加すると、特殊な値でそれらを識別するのではなく、欠落値の位置が明示的に記録されている点で、“バイナリ”と同じである。

  • FITS 外部FITファイルにデータを格納します。この直列化はサポートされていない. astropy.io.votable 複数のファイルを書き込む必要があるため、アセンブラ。

直列化されたフォーマットは、2つの方法で選択されることができる:

1)設定による format 対象の属性 astropy.io.votable.tree.Table 対象::

votable.get_first_table().format = "binary"
votable.to_xml("new_votable.xml")

2)使用による tabledata_format オプションファイルを作成する際のキーワードパラメータ:

votable.to_xml("new_votable.xml", tabledata_format="binary")

/から/からに変換する astropy.table.Table

投票可能な基準は概念的にはマッピングされていません astropy.table.Table それがそうです。しかし,コントロール中の単一の表は VOTable 文書間は相互に変換することができる astropy.table.Table **

from astropy.io.votable import parse_single_table
table = parse_single_table("votable.xml").to_table()

便宜上、単一のテーブルのみを使用して投票可能ファイル全体を作成する関数も提供される:

from astropy.io.votable import from_table, writeto
votable = from_table(table)
writeto(votable, "output.xml")

注釈

デフォルトの場合、 to_table 使用する. ID 属性を作成する Table 相手。しかし、ご利用をご希望かもしれません name 属性が代わりになる.そのためには use_names_over_ids キーワードが至る. True それがそうです。自分のフィールドに注意してください names 投票可能規範の中で唯一であることは保証されないが,列名が要求される numpy 構造化配列(したがって astropy.table.Table オブジェクト)は、場合によっては、末尾に数字を付加することによって名前を再命名することができる。

性能注意事項

ファイルの読み取り速度は少し速くなります TABLE 要素は1つを含みます nrows 属性です。行数が指定されていない場合は,ロード中にレコード配列のサイズを繰り返し調整しなければならない.

別項参照

参照/API

Asterpy.io.votableバッグ

このパケットは,仮想天文台(VO)が使用する予定のデータフォーマット,特に投票可能なXMLフォーマットを読み出して書き込む.

機能

parse \(ソース[, columns, invalid, verify, ...] )

1つ解析する VOTABLE XML文書(または類似文書のオブジェクト)を返し、1つを返す VOTableFile 物体です。

parse_single_table \(ソース,** Kwargs)

1つ解析する VOTABLE XML文書(または類似文書のオブジェクト)は,最初のもののみを読み込んで返す. Table 例を挙げましょう

validate \(ソース[, output, xmllint, filename] )

所与のファイルの検証レポートを印刷します。

from_table \(表[, table_id] )

1つ出しました Table オブジェクトは、1つに戻ります VOTableFile この単一のテーブルのファイル構造のみを含む。

is_votable \(ソース)

ファイルヘッダを読み取り、オプションファイルであるか否かを判断する。

writeto \(表,ファイル[, tabledata_format] )

次を書く VOTableFile 1つまで VOTABLE XML文書。

クラス

Conf \()

の構成パラメータ astropy.io.votable それがそうです。

Asterpy.io.votable.treeモジュール

クラス

Link \([ID, title, value, href, action, id, ...] )

LINK 要素:外部文書およびサーバをURIを介して参照するために使用される。

Info \([ID, name, value, id, xtype, ref, ...] )

INFO 要素:標準的に拡張された任意のキー-値ペア。

Values \(投票表,フィールド[, ID, null, ref, ...] )

VALUES 要素:内部で使用する FIELD そして PARAM 要素は値域を定義する.

Field \(投票可能[, ID, name, datatype, ...] )

FIELD 要素:特定のデータ列のデータタイプを記述する。

Param \(投票可能[, ID, name, value, datatype, ...] )

PARAM 要素:データ中の定数値列.

CooSys \([ID, equinox, epoch, system, id, ...] )

COOSYS 要素:座標系を定義する.

TimeSys \([ID, timeorigin, timescale, ...] )

TIMESYS 要素:時間システムを定義する.

FieldRef \(表,参照[, ucd, utype, config, pos] )

FIELDref 要素:内部で使用する GROUP 引用する遠隔要素は FIELD 元素です。

ParamRef \(表,参照[, ucd, utype, config, pos] )

PARAMref 要素:内部で使用する GROUP 引用する遠隔要素は PARAM 元素です。

Group \(表[, ID, name, ref, ucd, utype, ...] )

GROUP 要素:グループ FIELD そして PARAM 元素です。

Table \(投票可能[, ID, name, ref, ucd, utype, ...] )

TABLE 要素:含まれるデータを選択することができる.

Resource \([name, ID, utype, type, id, ...] )

RESOURCE 要素:グループ TABLE そして RESOURCE 元素です。

VOTableFile \([ID, id, config, pos, version] )

VOTABLE 要素:ファイル全体を表す.

Element \()

投票可能文書中のXML要素のすべてのクラスの基底クラスを表す.

Asterpy.io.votable.Convertersモジュール

このモジュールは、様々な投票可能データタイプと投票可能データタイプとの間の変換を処理する TABLEDATA そして BINARY フォーマットです。

機能

get_converter \(フィールド[, config, pos] )

所与のフィールドの適切な変換器インスタンスを取得する。

table_column_to_votable_datatype (列)

1つ出しました astropy.table.Column インスタンスは、列タイプに対応するオプションのフィールド要素を作成するために必要な属性を返す。

クラス

Converter \(フィールド[, config, pos] )

すべての変換器の基本クラスです。

Asterpy.io.votable.ucdモジュール

このファイルは、UCD文字列の正しさを検証するルーチンを含む。

機能

parse_ucd \(UCD[, ...] )

UCDをその構成要素として解析した。

check_ucd \(UCD[, ...] )

以下の条件を満たしていれば,Falseを返す. ucd 有効ではない unified content descriptor それがそうです。

Asterpy.io.votable.utilモジュール

様々な実用的なツールやレシピのようなものです

機能

convert_to_writable_filelike \(fd[, compressed] )

ストリーミング出力に適した書き込み可能ファイル状オブジェクトを返す.

coerce_range_list_param \(P[, frames, numeric] )

強制および/または検証対象 p 有効範囲リスト形式パラメータに変換します。

Asterpy.io.votable.validatorパケット

Webを介してアクセス可能な投票可能な文書を大量に検証し,HTML文書ディレクトリ木としてのレポートを生成する.

機能

make_validation_report \([urls, destdir, ...] )

Webでアクセス可能な大量の投票可能文書の集合を検証する.

Asterpy.io.votable.xmlutilモジュール

XML関連の様々なユーティリティ

機能

check_id \(ID[, name, config, pos] )

1つの問題を引き起こしました VOTableSpecError もし ID 有効なXMLではありません ID.

fix_id \(ID[, config, pos] )

任意の文字列が与えられた場合、XMLIDとして使用可能な文字列を作成する。

check_token \(タグ,プロパティ_名前[, config, pos] )

1つの問題を引き起こしました ValueError もし トークン. 有効なXMLトークンではない.

check_mime_content_type \(コンテンツ_タイプ[, ...] )

1つの問題を引き起こしました VOTableSpecError もし content_type 有効なMIMEコンテンツタイプではありません。

check_anyuri \(URI[, config, pos] )

1つの問題を引き起こしました VOTableSpecError もし uri 有効なURIではない.

validate_schema \(ファイル名[, version] )

所与のファイルは、適切な投票可能アーキテクチャに従って検証される。

Asterpy.io.votable.Exceptionsモジュール