Table of Contents
PythonやBashシェルスクリプで作成したCSV(Comma Separated Value)ファイルを取り扱うコマンドラインツール集。
主な機能は以下の通り。
収録しているツールのリストはコマンドリストに示した。
製造現場での品質管理や、深層学習適用を考えた場合、既存の製造現場の状況確認は必須となる。 本来均質であることを前提にする部分 ー例えば検査装置の同種複数のセンサーの出力ー が実際には偏りを持っていた場合、均質前提でデータを収集し、深層学習の学習データとすることはいい結果を産まない。 またこの種の不均質性は、本来あってほしくないものでありながら、経年変化や機材の更新により生じやすいものであり、監視すべき項目となる。
この均質さを確認するために、現場で使用されているPLC(Programable Logic Controler)などから出力される比較的巨大なCSVファイルを表計算ソフトなどで処理を行おうとすると、データサイズ的な問題や、処理速度、機能面で問題が発生する。大体この手のCSVファイルは、行数とはともかく、列数がやたら多く、数千列というのもザラで、そのままデータベースへ登録することもままならない。
このため、できるだけ高速で且つ柔軟に処理することを目的として、複数のコマンドライン型ツールをパイプ接続した形で、試行錯誤しながら使うことを目的にここにあるツールを作成した。
特に plotly express のデータに対する柔軟性や、チャート種別の豊富な点は、どこに偏りがあるか探しながらデータ解析を行う上では非常に強力な手段となる。
ここで作成したコマンドツールの組み合わせで、様々な処理や可視化を行い、特徴を把握しやすい有望そうな処理手順、可視化形式を決めて、シェルスクリプト化、又は単独アプリケーションとすることで、 再現性を持たせた上で、状況(均質性)の監視に用いる。
プロジェクトをローカルに複製して、検証、実行する手順を説明します
OSは Ubuntu 18/20 において開発、動作確認を実施している。 その他の必要なパッケージは以下の通り。
csv_wc.sh
にて使用csv_sqlite_insert.sh,csv_to_db_csvkit.sh,csv_to_db_shell.sh
にて使用csv_join.sh,csv_status_xsv.sh,csv_tool_list.sh
にて使用csv_hist_console.sh
にて使用sudo apt install csvtool nkf sqlite3
conda install pillow openpyxl lmfit numpy pandas scipy seaborn statsmodels
pip install --upgrade csvtotable
plotly,xsv,jpについては、以下を参照してインストールを行う。
git cloneでダウンロードした後に、csv_utility
ディレクトリとcsv_plot
ディレクトリにPATHを設定する。
又は選択したものをPATHの設定されたディレクトリにコピーして使用する。
git clone https://github.com/maundergit/csv_tools.git
examples
ディレクトリに移動して、以下のコマンドを実行することにより、ビット情報の20秒毎のヒストグラムが散布図
形式で得られる
csv_trimtime.py --change_timefreq='D=ABC002:%Y-%m-%d %H\:%M\:%S:floor:20s' bit-pattern-headers.csv|\
csv_status.py --mode sum --group D -|csv_uty.py --drop_columns=ABC000,ABC001 - |\
csv_uty.py --stack=D - |csv_plot_scatter.py --output=bit-pattern_time_histogram.html --size=stacked_result - D category
チャート描画のサンプルはexamples
ディレクトリーへ移動して、csv_plot/csv_plot_sample.sh
を実行することで、チャートの例が生成される。
その他のサンプルについては、各コマンドのHelp出力(--help
)を参照のこと。
収録しているツールのリストはコマンドリストに示した。
各コマンドのヘルプメッセージを csv_plot_helpとcsv_utility_helpにまとめている。
csv_print_html_tl.py
の--module_figure
機能の説明csv_print_timeline.sh
の説明This project is licensed under the MIT License - see the LICENSE file for details
このプロジェクトは MIT License のもとで公開しています。詳しくはLICENSE を参照してください。