投票可能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フォーマットを読み出して書き込む.
機能¶
|
1つ解析する VOTABLE XML文書(または類似文書のオブジェクト)を返し、1つを返す |
|
1つ解析する VOTABLE XML文書(または類似文書のオブジェクト)は,最初のもののみを読み込んで返す. |
|
所与のファイルの検証レポートを印刷します。 |
|
1つ出しました |
|
ファイルヘッダを読み取り、オプションファイルであるか否かを判断する。 |
|
次を書く |
クラス¶
|
の構成パラメータ |
Asterpy.io.votable.treeモジュール¶
クラス¶
|
LINK 要素:外部文書およびサーバをURIを介して参照するために使用される。 |
|
INFO 要素:標準的に拡張された任意のキー-値ペア。 |
|
|
|
FIELD 要素:特定のデータ列のデータタイプを記述する。 |
|
PARAM 要素:データ中の定数値列. |
|
COOSYS 要素:座標系を定義する. |
|
TIMESYS 要素:時間システムを定義する. |
|
|
|
|
|
|
|
TABLE 要素:含まれるデータを選択することができる. |
|
|
|
VOTABLE 要素:ファイル全体を表す. |
|
投票可能文書中のXML要素のすべてのクラスの基底クラスを表す. |
Asterpy.io.votable.Convertersモジュール¶
このモジュールは、様々な投票可能データタイプと投票可能データタイプとの間の変換を処理する TABLEDATA そして BINARY フォーマットです。
機能¶
|
所与のフィールドの適切な変換器インスタンスを取得する。 |
1つ出しました |
クラス¶
|
すべての変換器の基本クラスです。 |
Asterpy.io.votable.ucdモジュール¶
このファイルは、UCD文字列の正しさを検証するルーチンを含む。
機能¶
|
UCDをその構成要素として解析した。 |
|
以下の条件を満たしていれば,Falseを返す. ucd 有効ではない unified content descriptor それがそうです。 |
Asterpy.io.votable.utilモジュール¶
様々な実用的なツールやレシピのようなものです
機能¶
|
ストリーミング出力に適した書き込み可能ファイル状オブジェクトを返す. |
|
強制および/または検証対象 p 有効範囲リスト形式パラメータに変換します。 |
Asterpy.io.votable.validatorパケット¶
Webを介してアクセス可能な投票可能な文書を大量に検証し,HTML文書ディレクトリ木としてのレポートを生成する.
機能¶
|
Webでアクセス可能な大量の投票可能文書の集合を検証する. |
Asterpy.io.votable.xmlutilモジュール¶
XML関連の様々なユーティリティ
機能¶
|
1つの問題を引き起こしました |
|
任意の文字列が与えられた場合、XMLIDとして使用可能な文字列を作成する。 |
|
1つの問題を引き起こしました |
|
1つの問題を引き起こしました |
|
1つの問題を引き起こしました |
|
所与のファイルは、適切な投票可能アーキテクチャに従って検証される。 |