18 April 2015

Language Select:

MacにオープンソースのPIV (Particle Image Velocimetry) ツールのOpenPIVをインストールしました。

pyenv環境 (version: 2.7.9)にpipでインストールしました。

まずはcythonが必要だとのことなので以下のようにインストール。

pip install cython
pip install openpiv

OpenPIVのインストール自体はすんだものの、pythonからimport openpivしようとしたらいくつかエラーが出たので解決します。

13
     14 # import default modules
---> 15 import openpiv.tools
     16 import openpiv.pyprocess
     17 import openpiv.scaling

/Users/koji/.pyenv/versions/2.7.9/lib/python2.7/site-packages/openpiv/tools.py in <module>()
     31 import matplotlib.image as mpltimg
     32 from scipy import ndimage
---> 33 from skimage import filter, io
     34
     35

ImportError: No module named skimage

skimage (scikit-image) などが必要らしいのでインストールしましょう。 あとはprogressbarも必要だそうです。

pip install scikit-image
pip install progressbar

とすることでopenpivをpythonのモジュールとしてインポート出来ます。

しかし、同梱されているチュートリアルプログラムを実行しようとしたところ以下のエラーが出ます。

Traceback (most recent call last):
  File "./tutorial-part1.py", line 8, in <module>
    u, v, sig2noise = openpiv.process.extended_search_area_piv( frame_a, frame_b, window_size=24, overlap=12, dt=0.02, search_area_size=64, sig2noise_method='peak2peak' )
  File "piv/src/process.pyx", line 23, in openpiv.process.extended_search_area_piv (openpiv/src/process.c:2290)
ValueError: Buffer dtype mismatch, expected 'DTYPEi_t' but got 'unsigned char'

https://github.com/OpenPIV/openpiv-python/issues/35 でも言及されていますが、 どうやらオフィシャルのものにはチュートリアルプログラムにバグがあるようです。alexlibによってforkされたOpenPIVではこの問題が解決されているようです。

git clone git@github.com:alexlib/openpiv-python.git
python setup.py install

とするとalexlibのOpenPIVがインストールできます。 とはいえ、オフィシャルのプログラムもチュートリアルプログラムのバグを解消すれば正常に動作します。 それは別の記事で。



blog comments powered by Disqus

analytics _by_ google