divrot in an infinitesimal box

Julia, python, algorithmのメモです

Julia - Healpixを使いたい

JuliaでHealpixを使いたい!!

一つの解はHealpyをbandleする。juliaのみでやりたいなら一つは開発中らしいHealpix.jlを使うこと。ただしたとえばpix2angとか重要な機能がまだ実装されていない。 これは簡単。両方のやり方のメモ

Healpyを使う

Healpyがインストル済みなら

using PyCall
@pyimport healpy as hp

これで使えます。まあなんかこれで十分かも、、、

ただしhealpy使う注意点としては、pythonはindexが0から始まるを忘れないことだ!!

Healpix.jl

Healpix.jlをbuildする

https://github.com/mweastwood/LibHealpix.jl

をinstallするのにつまずいた。これはPkg.buildとはbuild.jlというのを実行しているだけなので 上手くいかなかったらそこまでもどろう。

Pkg.add("LibHealpix")
Pkg.build("LibHealpix")

後者Healpix 3.20が

~/.julia/v0.4/LibHealpix/deps/downloads/Healpix_3.20

にダウンロードされるが、私の環境だとOS-10.9.5/gcc-4.2だと g++で

-fno-tree-fre

が引っかかってとまるのだ。 そこで、

~/.julia/v0.4/LibHealpix/deps/downloads/Healpix_3.20> cd src/cxx/config
~/.julia/v0.4/LibHealpix/deps/downloads/Healpix_3.20/src/cxx/config> grep -fno-tree-fre *

として-fno-tree-freのと書いてあるファイルを探し、-fno-tree-fre部分のみ全部コメントアウトして

~/.julia/v0.4/LibHealpix/deps/downloads/Healpix_3.20> make

するとうまくいった。Pkg.build()はbuild.jlなるファイルを実行するだけなので

~/.julia/v0.4/LibHealpix/deps> emacs -nw build.jl

をみて今やった部分をコメントアウト。最後の

# Build the HEALPix wrapper                                                                  
println("Building the HEALPix wrapper...")
dir = joinpath(depsdir,"src")
run(`make -C $dir`)
run(`make -C $dir install`)

ここだけ残して、

~/.julia/v0.4/LibHealpix/deps> julia build.jl

これで、

julia> Pkg.test("LibHealpix")
INFO: Testing LibHealpix
INFO: LibHealpix tests passed

のようにテストが上手くいくことを確認した。以上。