Jump to content
Sign in to follow this  
Kosuke IKEDA

Composeの標準言語OMLからPythonの関数を利用するには

Recommended Posts

Pythonの関数を簡単に呼び出せるスクリプト'python_call.oml'を作成しました。

一行でPythonの関数'py_wav_read.py'が呼び出せます。

[fs,wavdata]=python_call('py_wav_read',filename);

 

サンプルは'stc_wav_read.oml'というスクリプトで、音声ファイルを読み込み、FFTで周波数分析を行った後、1/3オクターブバンド処理を行っています。

現状Composeの標準言語のomlには音声ファイルを読み込む機能が無いので、代わりにPythonの関数を利用しました。

 

科学技術計算ソフトウェアAltair Compose : http://solidthinking.jp/product/compose/

 

test01.wav.png

python_call.oml

stc_wav_read.oml

test01.wav

py_wav_read.py

※ファイルのダウンロードには、必ず当フォーラムへのログインが必要となります。ログインしない状態でファイルをダウンロードすると、ファイルが存在しないといった旨のメッセージが表示されますが、実際にはログインするとダウンロードが可能になります。
 

Share this post


Link to post
Share on other sites

一部不具合がありましたので、修正した"python_call.oml"を添付します。

また、新しいサンプル"stc_xlsheet.oml"を添付します。

Python関数"py_get_xlsheetname.py"を使って、エクセルのシート名を取得するサンプルです。

omlにもエクセルを読み込む関数は標準で幾つかあるのですが、機能が十分でなく、現在エクセルシート名が取得できません。その代替手法となります。

"stc_xlsheet.oml"には、"python_call.oml"を利用した場合と、利用せずに直接コマンドを記述した2パターンを記載しています。

利用しないと

exporttopython

evalpythonfile

evalpythonscript

getpythonvar

の4つのコマンドを実行する必要がありますが、python_callを用いれば一行でPython関数を実行できます。

 

stc_xlsheet.oml

excel.xlsx

py_get_xlsheetname.py

python_call.oml

Share this post


Link to post
Share on other sites

先に紹介したエクセルシート名を取得するサンプルですが、Pythonのライブラリであるopenpyxlのインストールが必要です。

コマンドプロンプとで下記コマンドを実行して、ライブラリを追加してください。

"C:\Program Files\Altair\2019\Compose2019\common\python\python3.4\win64\python.exe" -m pip install --upgrade pip

"C:\Program Files\Altair\2019\Compose2019\common\python\python3.4\win64\python.exe" -m pip install openpyxl

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...