Mark Location File
neoEBV は CSV ファイルを読み込んで、マークを配置することができます。
CSV ファイルにプリアンブルを指定することでマーク動作の詳細を指定できます。
ファイル構造
ファイルの先頭 100 行を読み込み、データが @
のみになる行があればその行を区切りとして、その次の行をデータ部の 1 行目として扱います。
空文字列の行は無視されます。
データが @
のみの行が無い場合、最もデータ数の多い箇所をデータ部の 1 行目として扱います。
データ部に先立つ部分はプリアンブルとして扱います。
プリアンブル
プリアンブルは基本的には読み飛ばされますが、特定の形式で書かれた部分は付加情報として読み込まれます。
表示状態指定
プリアンブル内の行で、先頭が #computed columns
のカンマ区切りの行 (CSV 行) は表示状態指定として読み込まれます。
2 カラム目に指定した文字列が on の場合、読み込み後に Computed Columns が On として表示されます。
#computed columns, on
カラム解釈指定
プリアンブル内の行で、先頭が #assign
のカンマ区切りの行 (CSV 行) はカラム解釈指定として読み込まれます。
この時、2 カラム目は指定する計算値カラム、3 カラム目はその指定式として解釈されます。
#assign,$X,x
#assign,$Y,y + 10
計算値カラムやカラム式に使用できる値については詳しくは マークの詳細指定 ページをご覧ください。
表示カラム指定
プリアンブル内の行で、先頭が #show-columns
のカンマ区切りの行 (CSV 行) は表示カラム指定として読み込まれます。
読み込み後には 2 カラム目以降に指定したカラムのみが指定した順序で表示されます。
同様に先頭が #hide-columns
の行を指定すると、指定したカラムは表示されなくなり、指定しなかったカラムだけが表示されます。
これらの表示カラム指定は最後に指定された一つだけが有効となります。
#show-columns, columnB, columnA
カラム表示順序指定
プリアンブル内の行で、先頭が #display-orders
のカンマ区切りの行 (CSV 行) はカラム表示順序指定として読み込まれます。
読み込み後には 2 カラム目以降に指定したカラムがその順で画面に表示されます。
指定しなかったカラムは指定したラムより後にまとめて表示されます。
カラム表示順序指定の優越
表示カラム指定の #show-columns
はカラム表示指定とともに表示順序の指定も内包していますが、#display-orders
が別途指定されていた場合、表示順序は #display-orders
で決定されます。
#display-order columnE, columnC
フィルタ指定指定
プリアンブル内の行で、先頭が #filter
のカンマ区切りの行 (CSV 行) はフィルタ指定として読み込まれます。
読み込み後には 2 カラム目に指定した文字列がフィルタに設定されます。
#filter, x > 100
データ部
データ部の先頭 1 行をカラム名行と解釈し、それに続く行はすべて値行として扱います。 値行 1 行にマーク一つが対応します。 カラム名行、値行はそれぞれ CSV 行として解釈されます。
x,y,name,mark_group,mark_shape,mark_color,mark_representative
130.7,127.9,Mark 1,,,,
...
カラム名
カラム名行の各値を各カラムの名前として扱います。 Load ダイアログで指定することでカラム名行の存在しない (値行のみが存在する) ファイルを読み込むこともできます。
Mark Location File サンプル
neoEBV が出力するファイルのサンプルです。 読み込みは任意の CSV ファイルを読み込むことが可能です。
#MarkLocationFile Created by nebv VERSION (uid=UID) USER@HOSTNAME DATE
#computed columns, on
#assign,$X,x
#assign,$Y,y
#assign,$Size,5
#assign,$Label,name
#assign,$Name,name
#assign,$Color,mark_color
#assign,$Group,mark_group
#assign,$Shape,mark_shape
#assign,$Representation,mark_representative
#assign,$FWidth,0
#assign,$FHeight,0
#assign,$FAngle,0
@
x,y,name,mark_group,mark_shape,mark_color,mark_representative
130.7,127.9,Mark 1,,,,
86.3,141.5,Mark 2,,,,