ブログ

割とコンピュータよりの情報をお届けします。

2023年6月21日

オープンソースのロータダイナミクス解析支援ROSS

ROSSを使うと、参考書片手に手間をかけて計算していた回転体の危険速度の計算などをほぼ実装されたまま利用させていただくことができる。

今まで、GNU OctaveやPythonでプログラムを作って行列計算などをしていたが、ROSSなるものが無料で配布されている
ただし参考ページ【ターボ機械シリーズ④】 オープンソースローターダイナミクス解析ソフトROSS)がページ内で参照しているTurboToolsのチュートリアルはross-rotordynamicsのVersion 1.0.0、Numpy 1.2.0以下用になっていてそのまま実行できない。
Numpyの方は軽微な修正でnumpy.complexがなくなったというものなので、complexに置き換えるだけでよい。結構有名なパッケージの仕様変更なので有名である。
ただし、ross-rotordynamicsの方は有名パッケージではないのでversion 1.0.1にバージョン指定をしてインストールした方が良い。GitHubの変更履歴を追ってみると、この後のバージョンで.kxx.plot()の定義がなくなる。

pip install ross-rotordynamics==1.0.1

もしかすると、使用する描画機能にplotlyの出力を抑制するように変化が起こっているかもしれない。
インストールしたrossの中で、numpy.complexを使用している部分を順次complexに置き換えていく作業が必要である。(結構面倒)チュートリアルに頼らないのであれば、このバージョン指定インストールは不要である。ただ、一回参考ページに従ってみたい場合には上のようにしないといけない。

≫ 続きを読む

2023/06/21 コンピュータ   TakeMe
タグ:Python

Pythonでsscanfのようなものはないか

「Python sscanf相当」で検索していると「ない」と検索されることが多いけど、parseライブラリにあるような気がする。

PythonにC言語のsscanf相当のものはないのかということを検索していると、「splitで代用する」ようなものが検索喧嘩の先頭にきていやだ。
標準では厳しいが、parseライブラリにこの辺りの処理の対応がある。
例えば次のような例で使える。

import parse
import numpy as np

if __name__ == '__main__':
    test_string = '2023-06-19T01:20:10.010';
    parsed = parse.parse('{}-{}-{}T{}:{}:{}', '2023-06-19T01:20:10.010');
    
    print(parsed);
    
    parsed = np.array(list(parsed), dtype=float);
    print(parsed);

≫ 続きを読む

2023/06/21 コンピュータ   TakeMe
タグ:Python