プログラム関係

基本的に私のgithubを見てほしい。

MTEXによる結晶方位解析(EBSD)

EBSD分析とは、結晶に電子線を当て、結晶面での回折電子から生じた後方散乱を解析することによって結晶構造を解析する手法である。 得られたデータは、EBSD検出器に付属しているソフトウェアかフリーソフトのMTEXで解析する。MTEXはMATLABベースなので、MATLABが必要である。

データ処理スクリプトについて

MTEXを使って、Phase MapやIPFマップ、極図(pole figure)、misorientationマップを作成するスクリプトはgithubの mtexebsdに置いてあります。 ebsd_filled_plot.mです。使用する際は自己責任でお願いします。 ユーザーフレンドリーに作られていませんが、適宜アップデートしていく予定です。

Griggs型変形試験機で得られた生データを処理するVBA-ヒットポイントの探索アルゴリズム

Griggs型固体圧変形試験機で得られる生データを補正して応力ーひずみ曲線を描くためのエクセルVBAファイルである。ブラウン大で使われていたプログラムをもとにしている。 ヒットポイントは最小2乗法を使用して検索している。こちらもgriggsdata

連番ファイル作成バッチファイル

大量のデータをプログラムに処理するために、連番のフォルダやファイルを作りたいときに活躍するはず。windowsのみ。 下記のコードをテキストファイルにコピーして、拡張子をbatにすれば完成。ダブルクリックで動く。ファイル名-連番数字のフォルダができる。 違う形にしたいときは適宜下記を書き換え

  • @echo offは出力結果の表示をオフ。次の3行は入力処理。
  • setlocal enabledelayedexpansionは遅延環境変数。詳しくは https://wa3.i-3-i.info/word12518.html
  • %で囲むと変数の中身を参照できる。for以降は繰り返しフォルダを作成するforループ。for /l 変数 in (初期値,ステップ幅,末尾) do (mkdir ファイル名-番号)

              @echo off

              set /p filename="フォルダ名を入力してください:"
              set /p numberi="最初のフォルダ番号を入力してください:"
              set /p numberii="最後のフォルダ番号を入力してください:"

              setlocal enabledelayedexpansion

              for /l %%n in (%numberi%,1,%numberii%) do (
                mkdir %filename%-%%n
              )

              endlocal
            

slack上で動く翻訳アプリ

slackで"trans (翻訳元言語) (翻訳語言語) 本文"と入力すると自動的に本文をgoogle翻訳してくれるアプリ。留学生と日本人が混在するslackのワークスペースで活躍するはず。 設定の仕方は偉大なる先人のサイトを参考にしてほしい。 https://qiita.com/shohei-y/items/6784ae87ca180c7c5157


              function doPost(e) {
                var token = "";
              
                // 応答時のBOT名
                var bot_name = "translateapp";
              
                // アイコン絵文字
                var bot_icon = ':ghost:';
                // 発信webフックのTokenを設定
                var verify_token = ""
              
                // トークンのセキュリティチェック
                if (verify_token != e.parameter.token) {
                  throw new Error("invalid token.");
                };
              
                // SlackAPPの作成
                var slackApp = SlackApp.create(token);
              
                var body = e.parameter.text.substr(6); // textsh 以降の抽出
                var tmpSplit = body.split(" ",2);
                var original_lan = tmpSplit[0]         // 原文の言語
                var convert_lan = tmpSplit[1]          // 翻訳先の言語
                var response;
                
                if (original_lan == "help") {
              
                  // 結果の編集
                  response = "【基本文】\ntrans *翻訳元言語* *翻訳先言語* *翻訳文章*\n "
                           + "【例文】\ntrans *ja* *en* *こんにちは*\n\n"
                           + "言語は下記から選択。(※他言語は、調べよう)\n" 
                           + "```\n" 
                           + "日本語・・・「ja」英語・・・「en」\n"
                           + "中国語(簡体)・・・「zh-CN」  中国語(繁体)・・・「zh-TW」\n"
                           + "韓国語・・・「ko」  ドイツ語・・・「de」\n"
                           + "イタリア語・・・「it」  自動検出・・・「auto」\n"
                           + "```\n" 
              
                } else {
              
                  var message = body.substr(original_lan.length + convert_lan.length + 2 );          // 翻訳対象の原文
                  // Google翻訳の実行
                  message = LanguageApp.translate(message, original_lan, convert_lan);
              
                  // 結果の編集
                  response = original_lan + " to " + convert_lan + "\n ``` \n" + message + "\n ``` ";
              
                }
              
                return slackApp.postMessage(e.parameter.channel_id, response, {
                  username: bot_name,
                  icon_emoji: bot_icon
                });