Presentation is loading. Please wait.

Presentation is loading. Please wait.

国立天文台 天文学データ解析計算センター 白崎裕治

Similar presentations


Presentation on theme: "国立天文台 天文学データ解析計算センター 白崎裕治"— Presentation transcript:

1 国立天文台 天文学データ解析計算センター 白崎裕治
VOTable について 国立天文台 天文学データ解析計算センター 白崎裕治

2 VOTable VOTable はデータの受け渡しを行うための文書である。
VOTable は XML (eXtensible Markup Language) の規約に則って書かれた文書である。 HTML はタグ名は勝手に決められない。 XML は自由に定義することができる。 整形式文書 (well-formed XML document) 妥当な文書 (valid XML document) DTD, XML Schema により文書の構成を定義 VOTable は VOTable Schma に則った妥当な文書である。

3 VO におけるデータの受け渡し VO Data Center ユーザ VOQL, ADQL, SIAP, SSAP
(HTTP-SOAP or HTTP-GET/PUT) ADQL, SIAP, SSAP (HTTP-SOAP or HTTP-GET/PUT) VO VOTable, FITS VOTable, FITS ADQL, SIAP, SSAP (HTTP-SOAP or HTTP-GET/PUT) Data Center ユーザ VOTable, FITS

4 XML 文書の例 <要素名 属性名1=“属性値1” 属性名2=“属性値2”> データ </要素名>
<?xml version=“1.0” encoding=“Shift_JIS”?> <!-- 簡単な XML 文書 --> <cars xmlns:xsi=“ xsi:noNamespaceSchemaLocation=“car.xsd"> <car id=“1001” country=“日本”> <name>乗用車</name> <price>150</price> </car> </cars> id=“1001” ルート 要素 属性 XML宣言 コメント <要素名 属性名1=“属性値1” 属性名2=“属性値2”> データ </要素名> 要素名やデータ型は XML Schema によって定義される。

5 XML Schema の例 <?xml version=“1.0” encoding=“UTF-8” ?> <xsd:schema targetNamespace=“car.xsd” xmlns=“car.xsd” xmlns:xs=“ <xs:element name=“cars” type=“carsType”/> <xs:element name=“car” type=“carType”/> <xs:element name=“name” type=“xs:string”/> <xs:element name=“price” type=“xs:string”/> <xs:complexType name=“carsType”> <xs:element ref=“car” maxOccurs=“unbounded”/> </xs:complexType> <xs:complexType name=“carType”> <xs:sequence> <xs:element ref=“name”/> <xs:element ref=“price”/> </xs:sequence> <xs:attribute name=“id” type=“xs:int”/> <xs:attribute name=“country” type=“xs:string”/>

6 VOTable の情報源 IVOA VOTable Working Group
VOTable Format Denition Version 1.093 VOTable Schema Version 1.1 VOTable I/O Libraries and Tools

7 VOTable の例 <?xml version="1.0"?> <VOTABLE version="1.1" xmlns:xsi=" xsi:noNamespaceSchemaLocation=" <DEFINITIONS> <COOSYS ID="J2000" equinox="2000." epoch="2000." system="eq_FK5"/> </DEFINITIONS> <RESOURCE name="myFavouriteGalaxies"> <TABLE name="results"> <DESCRIPTION>Velocities and Distance estimations</DESCRIPTION> <PARAM name="Telescope" datatype="float" ucd="TEL_SIZE" unit="m" value="3.6"/> <FIELD name="RA" ID="col1" ucd="POS_EQ_RA_MAIN" ref="J2000" datatype="float" width="6" precision="2" unit="deg"/> <FIELD name="Dec" ID="col2" "POS_EQ_DEC_MAIN" ref="J2000" datatype="float" <FIELD name="Name" ID="col3" ucd="ID_MAIN" datatype="char" arraysize="8*"/> <FIELD name="RVel" ID="col4" ucd="VELOC_HC" datatype="int" width="5" unit="km/s"/> <FIELD name="e_RVel" ID="col5" ucd="ERROR" datatype="int" width="3" unit="km/s"/> <FIELD name="R" ID="col6" ucd="PHYS_DISTANCE_TRUE" datatype="float" width="4" precision="1" unit="Mpc"> <DESCRIPTION>Distance of Galaxy, assuming H=75km/s/Mpc</DESCRIPTION> </FIELD> <DATA> <TABLEDATA> <TR> <TD>010.68</TD><TD>+41.27</TD><TD>N 224</TD><TD>-297</TD><TD>5</TD><TD>0.7</TD> </TR> <TD>287.43</TD><TD>-63.85</TD><TD>N 6744</TD><TD>839</TD><TD>6</TD><TD>10.4</TD> <TD>023.48</TD><TD>+30.66</TD><TD>N 598</TD><TD>-182</TD><TD>3</TD><TD>0.7</TD> </TABLEDATA> </DATA> </TABLE> </RESOURCE> </VOTABLE>

8 VOTable (Data Structure)
ID, name, ref DESCRIPTION DESCRIPTION DEFINITIONS FIELD... COOSYS… PARAM... PARAM…  GROUP... LINK... INFO…  DATA RESOURCE… FIELD DESCRIPTION ID, unit, datatype, precision width, ref, name, ucd, utype, arraysize INFO... DESCRIPTION COOSYS... VALUE PARAM... LINK LINK... TABLE... DATA TABLEDATA | BINARY | FITS RESOURCE...

9 属性 ID と name 大部分の要素は属性として name と ID を指定できる。
name 属性は presentation purpose として使う。 VOTable 内で重複しても構わない。 ID 属性は参照するために使う。 VOTable 内で重複してはならない。 使える文字種に制限。(XML の ID に関する規約)

10 <COOSYS> 用法 DEFINITION 要素内で使われる座標系を定義する。 複数の座標系が使われる場合複数定義する。
    複数の座標系が使われる場合複数定義する。     ID 属性値で参照する。 属性 equinox, epoch, system 要素値 ICRS, eq_FK5, eq_FK4, ecl_FK4, ecl_FK5, galactic, supergalactic, barycentric, geo_app, xy <COOSYS ID=“J2000” equinox=“2000.” epoch=“2000.”  system=“eq_FK5”/> <COOSYS ID=“J2000”> eq_FK5 </COOSYS>

11 <PARAM> 用法 カラム, テーブル, VOTable 内で共通の値をもつパラメータの定義を行う。 属性・要素のデータ型
<FIELD> とほぼ同じ。唯一の違いは “value” 属性を持つこと。 <TABLE name=“results”>    <DESCRIPTION>Velocities and Distance  estimations</DESCRIPTION>    <PARAM name=“TelescopeSize” datatype=“float” ucd=“TEL_SIZE” unit=“m” value=“3.6”/> ... </TABLE>

12 <FIELD>

13 FIELD 要素の例 <FIELD name="RA" ucd="POS_EQ_RA_MAIN" ref="J2000" datatype="float" width="6" precision="2" unit="deg"/> <FIELD name="Dec" "POS_EQ_DEC_MAIN" ref="J2000" datatype="float" width="6" precision="2" unit="deg"/> <FIELD name="Name" ucd="ID_MAIN" datatype="char" arraysize="8*"/> <FIELD name="RVel" ucd="VELOC_HC" datatype="float" width="5" unit="km/s"/> <FIELD name="R" ucd="PHYS_DISTANCE_TRUE" datatype="float" width="4" precision="1" unit="Mpc"> <DESCRIPTION>Distance of Galaxy, assuming H=75km/s/Mpc</DESCRIPTION> </FIELD> <FIELD name="references" ucd="REFER_BIBCODE" datatype="char" arraysize="20x*"/>

14 <GROUP> FIELD 要素をグループ化するのに利用 例:値と誤差でグループ化する。カラムのパラメータ値を定義する。
<GROUPE name=“Flux” ucd=“PHOT_FLUX_RADIO_400M”> <DESCRIPTION>Flux measured at 352MHz</DESCRIPTION> <FIELD name=“Flux” ucd=“PHOT_FLUX_RADIO_400M” datatype=“float” unit=“mJy”/> <PARAM name=“Freq” ucd=“OBS_FREQUENCY” unit=”MHz” datatype=“float” value=“352”/> <FIELD name=“e_Flux” ucd=“ERROR” datatype=“float” width=“4” unit=“mJy”/> </GROUPE>

15 <TABLEDATA> aString Floats varComplex Apple 1.62 4.56 3.44
<FIELD ID=“aString" datatype="char" arraysize="10"/> <FIELD ID="Floats" datatype="float" arraysize="3"/> <FIELD ID="varComplex" datatype="floatComplex" arraysize="*"/> <DATA><TABLEDATA> <TR> <TD>Apple</TD><TD> </TD> <TD> </TD> </TR><TR> <TD>Orange</TD><TD> </TD> <TD> </TD> </TR> </TABLEDATA></DATA> </TABLE> aString Floats varComplex Apple 1.62 4.56 3.44 i 4+3.14i 77–1.57i Orange 2.33 4.66 9.53 39+0i i

16 XML パーサの種類 DOM : メモリロード型 SAX : シーケンシャル読み込み XML Pull : シーケンシャル読み込み

17 VOTable の読み書きソフト Java Parsers  Sr. Num. Name of parser Description コメント 1 JAVOT (NVO) Supports reading, writing メモリロード型。 2002年以降更新されていない。 2 SAVOT (European VO) Support reading, writing and editing. メモリロード型とシーケンシャル読み込み型。 書き込みをメモリロードが必要。 3 VOTable Java Streaming Writer (VO-India) Supports writing. シーケンシャル書き込み型。 大規模データの書き出しに有効。 4 VOTable Java Parser based on XML Schema (NVO) Supports reading and writing. JAVOTの後継版? 5 Starlink Tables Infrastructure Library (Starlink) 多機能。

18 SAVOT cds.savot.model.jar VOTable の Class SavotVOTable
Class SavotField Class SavotTableData cds.savot.pull.jar Class SavotPullEngine Class SavotPullParser cds.savot.writer.jar Class WriteDocument kXML2

19 SAVOT 例 // 一度にメモリに読みこむ場合
SavotPullParser sb = new SavotPullParser(file, SavotPullEngine.FULL ); // シーケンシャルに読む場合 SavotPullParser sb = new SavotPullParser(source, SavotPullEngine.SEQUENTIAL); // VOTable の最初のリソースを取り出す。 SavotResource currentResource = sb.getNextResource(); while (currentResource != null) { // このリソースに含まれるテーブルを読む    for (int i = 0; i < currentResource.getTableCount(); i++) {      tr = currentResource.getTRSet(i);       if (tr != null) {          for (int j = 0; j < tr.getItemCount(); j++) {             TDSet theTDs = tr.getTDSet(j);             String currentLine = new String();             for (int k = 0; k < theTDs.getItemCount(); k++) {                currentLine = currentLine + theTDs.getContent(k);             }          }       }    } }


Download ppt "国立天文台 天文学データ解析計算センター 白崎裕治"

Similar presentations


Ads by Google