Julia PyCallで使うpython
どうもUrekaとかCanopyとか余計なものが入っていたせいでよくわからなく なったのでMac python一本にしました。そしたらPyCallするとkernelが落ちてしまう ようになった。PyCallの呼び出すpythonを指定してBuildしなおしたらなおったのでメモ。
julia> ENV["PYTHON"] = "/usr/local/bin/python" "/usr/local/bin/python" julia> Pkg.build("PyCall")
ところで、Python (hoge.py)を書き換えて、再度Julia Jupyterで
using PyCall @pyimport hoge
しても更新されないようだ。なぜだろう?
python mpfitをつかう
非線形フィットの定番、マルカート法。 すばらしいと評判のmpfitのpython版を試す。
インストール
ここからダウンロードして展開して、環境変数PYTHONPATHに追加するのみ
https://code.google.com/p/astrolibpy/downloads/detail?name=mpfit_2013.tar.gz&can=2&q=
テストコード
簡単。上手くいっている。numerical recipes時代って何だったんだろう。
Healpy 作図
Juliaでは作図が大変なので、Healpixの作図はpython/Healpyで行ったほうが良いかもしれない。 こんな感じで作図可能。
flip="geo" 球の外側からみた表示。もともとHealpixはCMB用なので球の内側から見た表示がデフォルト。
cmap=plt.cm.pink カラーマップは http://matplotlib.org/examples/color/colormaps_reference.html を参照
hp.graticule() でグリッドを書いている。
Jupyterではこれらを同じカラムに書かないと同時に表示されないので注意。
Julia - 内挿 (Interpolations)
InterpolationはInterpolations moduleを用いることで可能。 Interpolationは頻繁に使うので最下部にGist例を示しておく。
特に間違いやすいのが、
Interpolations.interpolate((t,) ...
の、このtupleの部分 (t,)と書くというところである。
Julia - moduleを使う
moduleを使用するための幾つか
pathを設定する
module hoge を作成し、そのmoduleを他のjuliaファイルやjuliaのコンソールなどから 呼び出したいとき、見つからないと怒られる。これはjuliaがmoduleを探すpathを指定することで解決するが、 複数の解決方法があるようだ
http://docs.julialang.org/en/release-0.4/manual/modules/
環境変数にJULIA_LOAD_PATHを設定する
c-shell系なら
setenv JULIA_LOAD_PATH directory-path1 setenv JULIA_LOAD_PATH directory-path2:${JULIA_LOAD_PATH} ...
のような感じで。
julia用のpath変数設定
もしくは.juliarc.jlを作成し、LOAD_PATH を書くことでも可能。
一時的にpathを追加する
これには
push!(LOAD_PATH, directory-path)
で実現できる。