一つ前の記事でpython2系とpython3系を共存させる方法を紹介した。
そもそも共存させようと思ったきっかけは21cmSenseを動かすためであった。21cmSenseはJ. Poberによって作成された21cm power spectrumのnoiseを計算してくれるpythonパッケージで、python2系の環境で動く。ダウンロードはこちら。
21cmSenseを動かすにはnumpy, scipyの他にaipyというradio interferometerのcalibration等を行うパッケージが必要である。ダウンロードはこちら。
21cmSenseをまずは以下のコマンドラインでインストールする。
python setup.py install
その後、
nosetests py21cmsense
コマンドを打って、エラーが出なければうまくインストールされている。pyenvで動かす場合、"~/.pyenv/versions/anaconda-2*.*.*.*/aipy"のようにaipyが置かれていないとエラーメッセージが出るので注意。(注意!numpyのバージョンが最新だと21cmSenseは動かない。バージョン1.13だと動かなかったので、brewでanacondaをインストールする時、numpy-1.12以下を含むやや古いバージョンをインストールすると良い。私はanaconda2-4.3.1を使用。)
では、実際に21cmSenseを動かしてみる。
テストファイルとしてhera127.pyというファイルがあるのでこれを使う。
python mk_array_file.py -C hera127 (*.py不要)
とコマンド入力すると、"hera127.drift_blmin0_blmax84_0.135GHz_arrayfile.npz" というファイルが作成される。
次に、
python calc_sense.py hera127.drift_blmin0_blmax84_0.135GHz_arrayfile.npz
というコマンドを打てば、”hera127.drift_mod_0.135.npz”というファイルが作成されるので、これを読み込むようなpythonコードを書いてやれば良い。
https://gist.github.com/bukuro8810/4533d546a61f2d1087804aedf1f103fa