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の関数を利用しました。

 

python_call.oml

stc_wav_read.oml

test01.wav

py_wav_read.py

 

科学技術計算ソフトウェア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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×