こんにちは、
Perl を使用してこのようなことを行いましたが、Perl にはイメージング機能がなかったので、代わりに JMP を使用したいと思います。 この混乱にはいくつかのステップがあります。 これらの項目のいずれかをサポートできる JMP の専門家はいますか?
1) 分類されたものの XY グリッドの端をフィルタリングして取り除き、カテゴリごとに欠陥をカウントする次のスクリプト (下記) をキャプチャしました。 ディレクトリ name_A...name_F 内のすべてのファイルをグロブし、各ファイルにスクリプトを適用することで、これをさらに便利にしたいと考えています。
2) スクリプトを実行するたびに、すべての画像ファイルを保存したいと思います。
3) 生成しているテーブル内のすべてのデータを、グロブされたファイル名と分類ごとに 1 つのマスター ファイルにエクスポートしたいと考えています。
// テキスト ファイルをインポート: name_F.csv
// → データテーブル( "name_F" )
開ける(
"$DESKTOP/name_F.csv",
列(
新しい列( "No"、文字、 "公称" )、
新しい列( "クラス"、文字、"公称" )、
新しい列( "X"、数値、"連続"、形式( "最良"、12 ) )、
新しい列( "Y"、数値、"連続"、形式( "最良"、12 ) )、
新しい列( "エネルギー"、数値、"連続"、形式( "最良"、12 ) )、
新しい列( "c000006", 数値, "連続", 形式( "Best", 10 ) ),
新しい列( "c000007"、数値、"連続"、形式( "最良"、10 ) )、
新しい列( "c000008"、数値、"連続"、形式( "最良"、10 ) )、
新しい列( "c000009"、数値、"連続"、形式( "最良"、10 ) )、
新しい列( "c000010", 数値, "連続", 形式( "Best", 10 ) ),
新しい列( "c000011"、数値、"連続"、形式( "最良"、10 ) )、
新しい列( "c000012"、数値、"連続"、形式( "最良"、10 ) )
)、
インポート設定(
行末(CRLF、CR、LF)、
フィールドの終わり(カンマ、CSV( 0 ) )、
引用符を削除( 1 )、
アポストロフィを引用符 ( 0 ) として使用します。
地域設定を使用(0)、
ファイル全体をスキャン(1)、
空の列を数値 ( 0 ) として扱います。
CompressNumericColumns( 0 )、
CompressCharacterColumns( 0 )、
CompressAllowListCheck( 0 )、
ラベル( 1 )、
列名 Start( 15 )、
データ開始( 16 )、
読み取る行( "すべて" )、
年規則( "20xx" )
)
);
// レポートのスナップショット: name_F - グラフ ビルダー
データ テーブル( "name_F.csv" ) << グラフ ビルダー(
サイズ(502、432)、
コントロールパネルを表示(0)、
変数( X( :X )、 Y( :Y ) )、
要素( ポイント( X, Y, 凡例( 5 ) ) )
);
現在のデータ テーブル() << データ フィルター(
場所( {30, 30} )、
モード( Include( 1 ) )、
フィルターを追加(
列( :X, :Y )、
ここで ( :X >= 24602 & :X <= 93335 )、
ここで ( :Y >= 23835 & :Y <= 93002 )
)
);
// レポートのスナップショット: name_F - グラフ ビルダー 2
グラフビルダー(
サイズ(570、432)、
コントロールパネルを表示(0)、
変数( X( :X )、Y( :Y )、グループ Y( :Class ) )、
要素( ポイント( X, Y, 凡例( 15 ) ) )
);
// レポートのスナップショット: name_F - グラフ ビルダー
グラフビルダー(
サイズ(502、432)、
コントロールパネルを表示(0)、
変数( X( :クラス )、 Y( :X ) )、
要素(
バー(
バツ、
Yさん
凡例( 4 )、
要約統計量( "N" )、
Label( "値によるラベル" )
)
)
);
それぞれの点でつまづいた箇所を強調すると、次のようになります。
1) JMP に一括インポートし、すべてのファイルを同じ行で開き、ログを出力する必要があります。 JMP が最初のステップを実行できるかどうかはわかりません。
2) 画像を保存するときにどの種類のログが更新されるのかわかりません。
3) ファイル名をテーブルに入れる方法がわかりません。
こんにちは@PanelGemsbok742です!
それぞれの質問について、次のような考えがあります。
- 「複数ファイルのインポート」(「ファイル」の下)を見てください。 「ファイル名を追加」チェックボックスを使用すると、データセットがどのファイルから来たのかを知ることができます。
- 保存画像は、現時点では拡張ログによってキャプチャされない可能性があります (より深い内容の一部はキャプチャされません)。当初はデータ処理とクリーンアップ操作に焦点を当てていましたが、それ以来拡大してきました。 18 では、出力ファイルのサポートがさらに増える (と思われます)。それまでの間、JMP の [ヘルプ] > [スクリプト インデックス] を参照し、[画像の保存] を検索してください。画像をエクスポートする方法について正しい方向に導くのに役立つ、優れた小さなコード スニペットがあります。

- これも回答 1 で処理する必要があります。
その他の考え - 少し変更を加えて上記のコードをループに入れると、ディレクトリ上で動作すると確信しています。これを動作させるための疑似コード (役立つようにいくつかのコード ビットが挿入されています) を次に示します。
// Define the file directory
dir = Pick Directory();
// Get Files in directory of interest
files = Files in Directory(dir);
// Loop through files list
For Each({file, index}, files,
// create file name with path
filename = dir ||file;
// your stuff
// change the "$Desktop/..." to be filename
// update to include the image save...
); // end of loop