gmxPgPlotField
著者: 森 洋久 / joshua@globalbase.org ※
プロトタイプ
(1) <gmxPgPlotField/>
(2) <gmxPgPlotField> field-opt-list ... </gmxPgPlotField>
引数
field-opt-list [1] XLT_PTR マトリックスフィールドデータの作業領域へのポインタ
... [1+] merge-type属性により決まるデータ群
属性
id (1)(2) [必須] 整数 マトリックス識別子
csv (1) [不要] (2) [任意] 文字列 A,B,C,.... CSVファイルの列
label (1) [不要] (2) [任意] 数字 マトリックス属性番号
dim (1) [不要] (2) [任意] 数字 マトリックス次元番号
merge-type (1) [不要] (2) [必須] 文字列 属性詳細型
評価形式
applicative
所属エージェント
gbmx
所属環境
Env0
説明
CSVの列をマトリックスのプロットデータ属性番号あるいは、マトリックスの次元に対応させる関数。対応表は、 field-opt-list で与えられるポインタに格納される。 プロトタイプ (1) はマトリックスフィールドデータの作業領域を生成し、これへのポインタを返す。プロトタイプ (2) は作業領域へのポインタ、 field-opt-list を指定し、ここへ、対応表を作っていく。
プロトタイプ (1) では、属性値としてマトリックス識別子 id のみが必要である。プロトタイプ (2) において必要な属性値の組み合わせは以下の通りになる。「必須」とあるのは必要な属性値であり、「x」は不要な属性値である。
表 属性値の必要性
| id | csv | label | dim | merge-type | [1] (1) | 必須 | x | x | x | x | [2] (2) 次元番号へ対応 | 必須 | 必須 | x | 必須 | 必須 | [3] (2) 属性番号へ 一定値 | 必須 | x | 必須 | x | 必須 | [4] (2) 属性番号へ CSV値 | 必須 | 必須 | 必須 | x | 必須 |
以下に使用例を示す。
[2]
<gmxPgPlotField id="^mtx" csv="A" merge-type="^mxPgTYPE_INT" dim="0">
^Fields ^mxPgFDIT_DD ^reso (* 180 reso) 0</gmxPgPlotField>
[4]
<gmxPgPlotField id="^mtx" csv="C" merge-type="^mxPgTYPE_STRING" label="5">
^Fields utf-8 ([quote type="direct"] '([field name="LABEL"] ($ ___convert)))</gmxPgPlotField>
[3]
<gmxPgPlotField id="^mtx" merge-type="^mxPgTYPE_RGBA" label="0">
^Fields 0 0xff000000</gmxPgPlotField>
[4]
<gmxPgPlotField id="^mtx" csv="D" merge-type="^mxPgTYPE_STRING" label="1">
^Fields utf-8 () test-http </gmxPgPlotField>
[1]は既にのべたように作業領域を生成する命令である。[2]については、座標値をCSVから取得する方法である。[3]はCSVによらず、一定値をどのプロットに対しても設定する方法である。[4]はCSVの値を加工し、プロットのある属性番号へわりあてる。
-
id
マトリックスのIDを指定する。
-
csv
csvの属性に対応する列の番号、A,B,C,....を指定する。このXML属性を省略することができる。
-
label
[3],[4]のパターンで利用され、label XML属性はマトリックスの属性番号を指定する。csv XML属性にある列を、このlabel XML属性で指定されるプロット属性番号に対応される。csv XML属性が省略されているとgmxPgPlotFieldの要素データで与えられるデータ値が共通にすべてのプロットのlabel属性番号に保存される。
label XML属性は省略可能であるが、dim XML属性とどちらかは存在している必要がある。
-
dim
[2]のパターンで利用され、マトリックスの座標軸番号を指定する。マトリックスの本来の機能としては、マトリックスの次元-1までの値が指定できるが、plot-csv.xlは2次元マトリックスのみサポートしているので、0,1のいずれかが指定可能である。X軸は0であり、Y軸は1である。
dim XML属性は省略可能であるが、label XML属性とどちらかは存在している必要がある。
-
merge-type マトリックスの詳細属性型を与える。
最後にgmxPgPlotFieldの要素データの与え方はmerge-type XML属性で与えたデータ型によって異なる。
-
mxPgNONE
なし。
-
mxPgSTRING
[作業領域へのポインタ] [保存文字コード名] [変換式] [初期化文字列:任意]
[変換式] が () の場合、特にCSVのデータを加工せずそのまま属性値とする。 [変換式] がXL式で与えられる変換式として与えられていた場合、これによりCSVの値を変換した者を属性値とする。上記[4]の例がそれに相当する。___convertの部分に、CSVからの値が格納される。実際の変換は、CSVのテーブルを初めて引いたときに行われるので、この時点では、シンボル$は解釈されてはならないので、ダイレクトquateを施す必要がある。
csv属性が指定されていない場合、 [初期化文字列:任意] が必要となり、この文字列が [変換式] に与えられ、一定値としてすべてのプロットの属性にセットされる。
-
mxPgINT_ADD mxPgINT_MAX mxPgINT_MIN
[作業領域へのポインタ] [CSV中のデータ型] [変換解像度] [変換オフセット] [カウント] [初期化数値:任意]
CSV内のデータは、まず、 [CSV中のデータ型] に示されるデータ型として認識され、それを倍精度浮動小数点として読み込む。 [CSV中のデータ型] の詳細は追って記述する。 読み込まれたデータは、 ( [読み込まれたデータ]x[変換解像度]+[変換オフセット])という式で変換され、変換値は端数切り捨てにより整数値となり、マトリックスの属性データあるいは、座標値となる。 [変換解像度] , [変換オフセット] は倍精度浮動小数点として与える。
[カウント] はこの三つのデータ型では無視される。0をおいておけばよい。
csv属性が指定されていない場合、 [初期化数値:任意] が必要となり、この数値が、上記変換に供され、一定値としてすべてのプロットの属性にセットされる。
-
mxPgINT_AVG
[作業領域へのポインタ] [CSV中のデータ型] [変換解像度] [変換オフセット] [カウント] [初期化数値:任意]
属性データの計算方法は、 mxPgINT_ADD mxPgINT_MAX mxPgINT_MIN と同じである。このデータとともに、 [カウント] も属性データとして保存される。二つの整数値のペアとなる。この型の場合、マトリックスの上位レベルへプロットをマージする場合、各プロットの平均をとり新しいプロットの属性値とする。その平均はこの [カウント] 重み付けで計算され、さらに、上位レベルにおける [カウント] は下位レベルの [カウント] の合計値となる。
csv属性が指定されていない場合、 [初期化数値:任意] が必要となり、この数値が、上記変換に供され、一定値としてすべてのプロットの属性にセットされる。
-
mxPgRGBA
[作業領域へのポインタ] [カウント] [初期化RGBA:任意]
RGBAをCSVから取得し、プロットの属性へ割り当てる。16進数で与える場合は、0xff000000 のようにC言語と同じ書式となっているひつようがある。 [カウント] は、整数型の[カウント]と同様の働きをし、上位レベルの色を計算するときに、重み付けに使われる。0を指定すると、重み付けを行わない。
csv属性が指定されていない場合、 [初期化RGBA:任意] が必要となり、この数値が一定値としてすべてのプロットの属性にセットされる。
整数型における[CSV中のデータ型] これに指定する値としては以下のものがある。
-
mxPgFDIT_INT
CSVのデータ型は整数型である。(64bit整数)
-
mxPgFDIT_FLOAT
CSVのデータ型は倍精度浮動小数点である。
-
mxPgFDIT_DD
CSVのデータ型は緯度経度の十進小数点表記である。たとえば、135.50は135度30分となる。
-
mxPgFDIT_DDMMSS
CSVのデータ型は緯度経度の60進表記である。たとえば、135.5012は、135度50分12秒である。
▲ページトップへ戻る
戻り値
mode ="meta"のとき、 gmxStatusリスト
mode 省略時、 XLT_RAW 型ノード情報。そのXLT_RAWの中身は以下のとおりとなっている。
-
nlist_type 1byte
子ノードリストのフォーマットタイプ。
-
0:ビットフィールド型
-
1:dim_code列挙型
-
子ノードリスト本体:ビットフィールド型の場合
-
nlist_dim_bit_field_len
ビットフィールドの長さ compressed_code64フォーマット整数
-
nlist_dim_bit_field
長さnlist_dim_bit_field_lenのビットフィールド。
-
子ノードリスト本体:dim_code列挙型の場合
-
nlist_dim_addr_len
列挙されるdim_codeの数 compressed_code64フォーマット整数
-
dim_codes
nlist_dim_addr_len個分のdim_code。各dim_codeは、compressed_code64フォーマット整数の列である。
-
channel_data
チャンネルデータ。 各チャンネルデータは以下の順番でフォーマット化されており、これが必要チャンネル数だけ繰り返される。
-
id
チャンネルのID compressed_code64フォーマット
-
len
チャンネルデータ本体の長さ。 compressedcode64フォーマット
-
data
データ本体。フォーマットは各データ型のフォーマットに基づく。
エラー
参考
バグ
▲ページトップへ戻る
|