Select DAT 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

※当サイトにはプロモーションリンクが含まれます。

Select DAT のテーブル行・列抽出機能を示す図

記事更新の通知はXでアナウンス٩(๑❛ᴗ❛๑)
@maru6o6をフォロー

概要 📖 – 行と列を抜き出す

Select DATは、入力テーブルから指定した行と列だけを抜き出し、名前・インデックス・値・条件で範囲指定できる DATです。DAT パラメータで別の DAT をパス参照して取り込めるため、入力線をつながずに離れたテーブルを中継する用途にも使えます。行と列はそれぞれ名前インデックス条件式の 4 通りで指定できます。

主な用途 🎯

  • Table DAT から特定の行・列だけを抜き出して下流に渡す
  • 名前 (ヘッダー)インデックスを使って欲しいセル範囲を範囲指定する
  • パターンマッチング条件式で動的にマッチした行・列を抽出する
  • 離れた場所にある別の DAT をパス参照で取り込み、入力線をつながずに中継する
  • 抽出結果を文字列式の評価値として出力し、後段の処理形式を整える

データフロー 🔄

入力: 元のテーブル DAT (または DAT パラメータでパス参照)

行の絞り込み (Select Rows: 名前 / インデックス / 値 / 条件)

列の絞り込み (Select Cols: 名前 / インデックス / 値 / 条件)

出力形式の決定 (Output: そのまま / 文字列 / 式評価)

出力: 抽出された部分テーブル

Tips

初心者の方は、以下日本語書籍も手元にあると安心です。

まる。
まる。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!


パラメータ解説 ⚙️

Select Page 📋

参照元 DAT .dat 🔗

抽出元となるテーブルのパス指定

DAT .dat 🔗
DAT (参照元 DAT) — 抽出元として参照する DAT のパスを指定します。
– 入力線で直接つなぐ代わりに、離れた場所にある DAT をパス文字列で取り込めます。

先頭の保持 .firstrowcol 📌

ヘッダー行・ヘッダー列を抽出結果に常に残すためのトグル:

  • Include First Row (先頭行を含む): Select Rows の設定で選ばれていなくても、先頭行 (ヘッダー行) を強制的に含めます。
  • Include First Col (先頭列を含む): Select Cols の設定で選ばれていなくても、先頭列 (ヘッダー列) を強制的に含めます。

行の選択方法 .extractrows ↕️

Select Rows (行の選択方法) — どの方式で行を絞り込むかを決めるメニューパラメータ

項目 内部名 説明
All .all すべての行を選択
by Name .byname Start Row NameEnd Row Name で名前による範囲指定
by Index .byindex Start Row IndexEnd Row Index でインデックスによる範囲指定
by Start Name, End Index .bynameindex 開始を名前、終了をインデックスで指定する混合範囲
by Start Index, End Name .byindexname 開始をインデックス、終了を名前で指定する混合範囲
by Values .bynames Row Select Values で行の値を明示列挙して選択
by Condition .byexpr Row Select Condition の式を From Column の列に対して評価して選択

行の範囲指定 .rowrange 🔢

名前・インデックスで行範囲を絞り込むパラメータ群

Start Row Name .rownamestart 🔤
Start Row Name (開始行の名前) — 選択範囲の開始位置となる行の名前を指定します。

Start Row Index .rowindexstart 🔢
Start Row Index (開始行のインデックス) — 選択範囲の開始位置となる行のインデックスを指定します。

End Row Name .rownameend 🔤
End Row Name (終了行の名前) — 選択範囲の終了位置となる行の名前を指定します。

End Row Index .rowindexend 🔢
End Row Index (終了行のインデックス) — 選択範囲の終了位置となる行のインデックスを指定します。

Row Select Values .rownames 🎯
Row Select Values (行の選択値) — 選択したい行の名前を実際に列挙します。
– TouchDesigner のパターンマッチング (row[1-4]row1row4 を選択など) が使えます。' のような一部の文字は前に \ が必要です。

Row Select Condition .rowexpr 🧮
Row Select Condition (行の選択条件) — 評価される式を指定し、結果が真になった行だけを選択します。
– 既定の Python 式は re.match('.*',me.inputCell.val) != None で、これはすべての値にマッチします。parent().name+'[0-9]*' のように書けば親オペレータ名 + 数字にマッチさせられます。

From Column .fromcol 📍
From Column (基準列) — 値で行を選択する際、どの列のセル値を Row Select Values と照合するかを指定します。

列の選択方法 .extractcols ↔️

Select Cols (列の選択方法) — どの方式で列を絞り込むかを決めるメニューパラメータ

項目 内部名 説明
All .all すべての列を選択
by Name .byname Start Col NameEnd Col Name で名前による範囲指定
by Index .byindex Start Col IndexEnd Col Index でインデックスによる範囲指定
by Start Name, End Index .bynameindex 開始を名前、終了をインデックスで指定する混合範囲
by Start Index, End Name .byindexname 開始をインデックス、終了を名前で指定する混合範囲
by Values .bynames Col Select Values で列の値を明示列挙して選択
by Condition .byexpr Col Select Condition の式を From Row の行に対して評価して選択

列の範囲指定 .colrange 🔢

名前・インデックスで列範囲を絞り込むパラメータ群

Start Col Name .colnamestart 🔤
Start Col Name (開始列の名前) — 選択範囲の開始位置となる列の名前を指定します。

Start Col Index .colindexstart 🔢
Start Col Index (開始列のインデックス) — 選択範囲の開始位置となる列のインデックスを指定します。

End Col Name .colnameend 🔤
End Col Name (終了列の名前) — 選択範囲の終了位置となる列の名前を指定します。

End Col Index .colindexend 🔢
End Col Index (終了列のインデックス) — 選択範囲の終了位置となる列のインデックスを指定します。

Col Select Values .colnames 🎯
Col Select Values (列の選択値) — 選択したい列の名前を実際に列挙します。
– TouchDesigner のパターンマッチング (colvalue[1-4]colvalue1colvalue4 を選択など) が使えます。' のような一部の文字は前に \ が必要です。

Col Select Condition .colexpr 🧮
Col Select Condition (列の選択条件) — 評価される式を指定し、結果が真になった列だけを選択します。
– 詳しい書き方は Row Select Condition (行の選択条件) と同じ要領です。

From Row .fromrow 📍
From Row (基準行) — 値で列を選択する際、どの行のセル値を Col Select Values と照合するかを指定します。

出力形式 .output 📤

Output (出力形式) — 抽出したセルをどう評価して出力するかを決めるメニューパラメータ

項目 内部名 説明
Input Data .data 最初の入力のデータをそのまま (加工せず) 通過させる
Strings .string 入力データを文字列として評価 (変数値を完全な文字列に展開)
Expressions .expr 入力データを式として評価

Common Page 🔧

Language .language 📝

DAT が動作するスクリプト言語の決定方法

項目 内部名 説明
Input .input 入力 DAT のスクリプト言語を使用
Node .node この DAT 自身のスクリプト言語を使用

Edit/View Extension .extension 📄

外部エディタに公開するファイル拡張子の選択

項目 内部名 説明
dat .dat 汎用的なファイル拡張子 dat を使用
From Language .language DAT のスクリプト言語に応じた拡張子を自動選択
Custom Extension .custom Custom Extension で指定したカスタム拡張子を使用

Custom Extension .customext 🔤

Edit/View ExtensionCustom Extension のときに適用される拡張子:

  • Custom Extension 文字列: Edit/View Extensioncustom のときに使用される任意のファイル拡張子

Word Wrap .wordwrap 🔁

ノード表示でのワードラップ (折り返し) の有効化

項目 内部名 説明
Input .input 入力 DAT の Word Wrap 設定を継承
On .on Word Wrap を有効化 (ノード上の長い行を折り返し表示)
Off .off Word Wrap を無効化 (折り返さずそのまま表示)

実践アイデア 💡

Example 1: テーブルから必要列だけ抽出 📊

Table DAT → Select DAT (Select Cols=by Name) → DAT to CHOP

多数の列を持つ Table DAT から、Select DAT の列の名前指定で必要な列範囲だけを取り出し、後段の処理に渡す基本フロー。ヘッダー行を残したい場合は Include First Row をオンにしておく。

  1. 元データを Table DAT に用意し、1 行目をヘッダー行にする
  2. Select DAT を後段に配置し、Select Colsby Name に設定
  3. Start Col Name / End Col Name に取り出したい列名を指定
  4. Include First Row をオンにしてヘッダー行を抽出結果に残す
  5. 後段の DAT to CHOP 等に渡して数値として利用

Example 2: 条件式で動的に行を選ぶ 🧮

File In DAT → Select DAT (Select Rows=by Condition) → Sort DAT

CSV ファイルを読み込んだテーブルから、行の選択条件に Python 式を書いて、特定の値を持つ行だけを動的に抽出する用途。From Column で照合対象の列を指定し、Row Select Condition の式が真になった行のみを残す。

  1. File In DAT で CSV を読み込みテーブル化
  2. Select DAT を後段に配置し、Select Rowsby Condition に設定
  3. From Column に判定に使う列を指定
  4. Row Select Conditionfloat(me.inputCell.val) > 0.5 のような式を記述してマッチする行だけ残す
  5. 後段の Sort DAT で並べ替えて整える

Example 3: 離れた表をパス参照 🔗

(別ネットワークの Table DAT) → Select DAT (DAT パラメータ参照) → Web Server DAT

入力線をつなぐ代わりに、Select DAT の DAT パラメータに離れた場所のテーブルのパスを書いて取り込む用途。配線を増やさずにネットワークをすっきり保ちつつ、必要な部分だけを切り出して中継できる。

  1. 参照したい Table DAT のパス (例: /project1/data/table1) を確認
  2. Select DAT の入力線はつながず、DAT パラメータに参照元のパスを記述
  3. Select Rows / Select Cols で必要な範囲を絞り込み
  4. 後段の Web Server DAT 等に渡して配信

Example 4: パターンで複数行を一括選択 🎯

Table DAT → Select DAT (Select Rows=by Values, rownames="row[1-4]") → Table DAT

行名が連番になっているテーブルから、パターンマッチングを使って複数の行をまとめて選択する用途。Row Select Values に row[1-4] のように書くと row1 から row4 までを一度に抽出できる。

  1. 行名が row1 / row2 … と連番になった Table DAT を用意
  2. Select DAT を後段に置き、Select Rowsby Values に設定
  3. Row Select Valuesrow[1-4] と入力して連番行をまとめて選択
  4. From Column で照合する列 (行名が入った列) を指定して抽出を確定

関連オペレータ 🔗

類似機能OP 🔍

  • Reorder DAT — 行・列の並び順を指定して並べ替える DAT。抽出ではなく順序操作の用途で対になる
  • Sort DAT — テーブルの行を値で並べ替える DAT。抽出した後の整列に使う

組み合わせ推奨OP 🔄

  • Table DAT — Select DAT の代表的な抽出元 / 抽出結果の格納先
  • File In DAT — CSV / TSV ファイルを読み込み、Select DAT で必要部分を切り出す
  • Convert DAT — テキストをテーブル化した後、Select DAT で必要な行・列を抽出
  • Merge DAT — 複数テーブルを結合した後、Select DAT で必要範囲を絞り込み
  • Sort DAT — Select DAT で抽出した部分テーブルを並べ替えて整える
  • Web Server DAT — 抽出したテーブルを配信用ペイロードとして送出

前処理・後処理DAT 🎯


Info CHOP情報 📊

Select DAT は Info CHOP による詳細情報取得に対応しています。num_rows / num_cols で抽出後テーブルのサイズを、total_cooks / cook_time / cpu_time で実行統計を参照でき、抽出結果のサイズ監視や、参照元テーブル変化時の再評価タイミング判定に利用できます。

DAT 固有情報 📋

  • num_rows: DAT の行数
  • num_cols: DAT の列数
  • type: DAT の型 (table / text)
  • is_table: テーブル形式の場合 1、テキスト形式の場合 0

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始からのクック回数
  • cook_time: 最後のクック時間 (ミリ秒)
  • cook_frame: 最後にクックされたフレーム番号
  • warnings: 警告数
  • errors: エラー数

トラブルシューティング ⚠️

よくある問題と解決策 🔧

❌ Problem: 選択したはずの行・列が抽出結果に出てこない
✅ Solution:

  • Select Rows / Select Cols のモード (by Name / by Index / by Values / by Condition) が意図と合っているか確認
  • 名前指定の場合は Start Row Name / End Row Name がテーブル内の実際の名前と完全一致しているか確認
  • ヘッダー行・ヘッダー列が消える場合は Include First Row / Include First Col をオンにする

❌ Problem: パターン指定 (例: row[1-4]) でマッチしない
✅ Solution:

  • Row Select Values / Col Select Values はパターンマッチング対応なので、モードを by Values にしているか確認
  • From Column / From Row が照合対象として正しい列・行を指しているか確認 (値が入っていない列を指すとマッチしない)
  • ' のような特殊文字を含む場合は前に \ を付けてエスケープする

❌ Problem: 条件式 (by Condition) が常に全行を返す / 何も返さない
✅ Solution:

  • 既定の式 re.match('.*',me.inputCell.val) != None はすべての値にマッチするため、絞り込みたい場合は式を書き換える
  • me.inputCell.val は文字列なので、数値比較するときは float(me.inputCell.val) のように明示的に型変換する
  • 式の評価対象列が From Column で正しく指定されているか確認

❌ Problem: 出力されたセルの中身が想定と違う形式になっている
✅ Solution:

  • OutputInput Data / Strings / Expressions のどれになっているか確認
  • 式や変数をそのまま渡したいときは Input Data、文字列展開したいときは Strings を選ぶ
  • セル内の式を計算結果に置き換えたい場合のみ Expressions を選ぶ (誤って選ぶと式が評価されてしまう)

参考資料 📚

その他 🔗

公式リソース 📖

関連記事 🔗

この記事はLLMと共に内容を執筆、更新しています。
最新バージョンとの項目差異など、情報の不一致を見つけた心優しい方はXもしくはInsta、メールなどよりサイト管理者までご連絡ください😎


まる。

お仕事のご依頼はDM又はメールにて。
━━━━━━━━━━━━━━━━━
Python/Touchdesigner/M5Stackをこよなく愛すフルスタックエンジニア。
専門は生理心理学、趣味はヨガやサウナ、EMS電気風呂などヘルスケア全般。
脳波や筋電、心拍を中心とした生体情報のセンシング&インタラクティブアートづくりがライフワーク。

普段はワントゥーテンという会社で空間演出エンジニアをしています。
リファラル採用お繋ぎできますので、我こそはという尖った方は経歴と希望職種添えてDMください(エンジニア以外、営業職等もOK)。
ご飯行きましょう。

↓日常垢
Instagram:@malmal0v0

まる。をフォローする
その他の記事はこちら
Math Combine POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED Select TOP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Window COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Widget COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

タイトルとURLをコピーしました