データ解析

Style File と Data File を分離した QDP-like な ROOT での作図

単なる遊びです。Style file にデータの表示形式を書き、データ辞退は Data file に書いて ROOT で図を作る簡易スクリプト。 #!/usr/bin/env python # Teruaki Enoto 2012-02-03 from optparse import OptionParser import array import shlex import ROOT s…

パラメータファイルを読み込ませるスクリプトの定型

次のようなパラメータファイルを読むスクリプトの定型をメモしておきます。 par1 = 3 par2 = 0.4from optparse import OptionParser import shlex class MainClass(): def __init__(self, parfile, verbose=0, logfile="logfile.txt"): self.parfile = parfi…

カイ二乗分布を描く。

特に何ということもないんだけれど、自由度 k=4のカイ二乗分布を ROOT と python で描いてみた。自由度 k=4 のカイ二乗分布は、平均値 k = 4、分散 2k = 8、最頻値 k - 2 = 2、中央値 k-2/3+4/27k -8/729k^2=3.4 で分布する。周期性を探す Zn-test (Raileig…

非対称誤差の図を ROOT と Matplotlib で描く。

非対称誤差を ROOT や Matplotlib で描く頻度はかなり多いのに、いざ書こうとしたときに記法を忘れたりしているので、簡単だけどまとめておきます。 #!/usr/bin/env python import array x = array.array('f', [1.3, 3.0, 6.8, 9.0]) y = array.array('f', […

python で Excel を使う。

Python は pyExcelerator で Excel ファイルを hundle することができるようになります。 以下では、Excel ファイルを生成してセルに色をつけてみました。 #!/usr/bin/env python import pyExcelerator as xls # ------------------- # Write # ------------…

Matplotlib (python) で 2 つの X 軸をもつプロットを描く。

某「風船衛星たんぽぽ」プロジェクトのために、 地表から 40 km くらいまでの大気温度と大気圧をプロットしてみた。 Python Matplotlib で X 軸が 2 つの場合のプロットの例になっているので、 メモ代わりにここに書き留めておきます。 データは1976 年の U.…

ROOTのキャンバスの上で自由に Panel を描く。

ROOT で 1 枚のキャンバスの上に複数の図をプロットする場合、キャンバスを Divide するのが一般的だが、これだと図と図の間に余分な空白ができてしまい、調整が面倒になる。必ずしも best な方法ではないかもしれないが、better な方法として、キャンバスの…

tkInter と XML を利用して Mac 上に制御卓(Console)を作る。

Python の標準的な GUI ツールを作成できる tkiner である種の実験用の制御卓(Console)を作り、そのパラメータを XML で保存するスクリプトを作ってみた。 """ Class for console hundring frm = frame lab = label ent = entry btn = Botton swc = Switch "…

アメリカ横断! ちょっくら大陸横断してみた 。(GPS Logger の活用)

今年のクリスマスから正月にかけて、ちょっくらアメリカ大陸を陸路で横断してみました。 Amtrak という日本の JR みたいな鉄道会社を利用した旅。 San Francisco から Chicago までは California Zephyr 号で、 Chicago から Boston までは Lake Shore Limit…

Python で FITS file を読む、操作する。

FITS 形式のファイルを python で操作するための pyfits を使うのは便利です。 たとえば、GTI Extension に含まれている GTI の start と stop を読んで、 全 GTI の時間を計算するには次のようにします。 #!/usr/bin/env python import sys import pyfits i…

Matplotlib で Contour を描く (例題; コンプトン散乱の反跳電子)

contour を描いてみた覚え書き。式は以下ね。 contour は numpy の meshgrid として以下が参考になります。 http://docs.scipy.org/doc/numpy/reference/generated/numpy.meshgrid.html import numpy import pylab def electron_energy(gamma, theta): numer…

Matplotlib で極座標の図を作る (例題; コンプトン散乱の断面積)

python の matplotlib (もしくは pylab)で極座標系での図を作ってみた。 単なる遊び。 で定義されるコンプトン散乱の式をプロットしてみよう。 なお、線の色は以下を参考にするとよい。 http://html-color-codes.com/ import pylab import math def cross_se…

相互相関関数のお遊び (python)

ちょっと必要があって簡単な相互相関関数の計算をした。 一応、離散データ, から相互相関関数を で計算させてみた*1。 #!/usr/bin/env python import array import math import ROOT ROOT.gStyle.SetTitleBorderSize(0) def cross_correlation(array1, array…

プランクの放射式を python (matplotlib) で描く

python のライブラリ matplotlib で、関数の図を描く遊び。 ここでは試しに黒体放射からのスペクトルを例にしてみた。 欧米で主流の、python でほぼ全てやってしまう流へのステップのひとつ。 import pylab def planck(x, kt): norm = 2.1e-4 y = norm*x**3/…

ROOT の Batch mode を指定する

ROOT (or + python) で描画するときに canvas が現れる。 background で走らせたいときなどのバッチモード(batch mode)では、以下のようにする。 C++ な中では、 gROOT->SetBatch(true)なので、python では import ROOT ROOT.gROOT.SetBatch(True) と指定す…

ビープ音を利用する。

スクリプト終了時にビープ音が鳴ると便利、ということもある。 ターミナル・エミュレータ依存かもしれないが、 Mac のターミナル環境下では以下のようにするとビープ音を 3 回ならす。 import sys for i in range(3): sys.stdout.write('\a') sys.stdout.flu…

座標軸を指定して凝った図を ROOT で描く (python)

いささか邪道ですが、ROOT で強引に複数の図を隙間を小さくして並べてみた。 ROOT は解析には強いですが描画は少し面倒で、あまり美しい記法にはなっていませんが、 まずは見られないというほどの図でもないでしょう。 結果の図から書いてみると。 これに相…

ROOT の Tree に新しい Branchを加える (python)

ROOT の Tree に新しい Branch を加える場合の python での記法。 あらかじめ断っておくと、この書き方はあまり正しくありません。 やっつけで書いて動くのでメモ。後で少し修正が必要です。 ここでは、「Python で ROOT の tree に書き込む/読み込む」のエ…

コマンドラインのオプション解析 (python)

コマンドラインの解析ライブラリ optparse の使い方 & テンプレートをメモしておきます。 こっちに来てから教えてもらいました。以前は perl で鈍くさく書いていたので便利です。 まず実例。script.py の中身を #!/usr/bin/env python from optparse import …

Python で物理次元を使う

Python の便利なところはインタプリタ言語として、電卓代わりの使い方もできるところ。 そうすると、物理次元(単位)の計算もできると便利と思うのが自然な流れ。 そこで、値の大きさ、次元、場合によっては精度(不定性)を取り扱うために quantities というラ…

ROOT での Spline 補完 (python 記述)

ROOT を使ったデータの Spline 補間についてのメモ。 ここでは、3 次の spline 補間 TSpline3 を試している。 Class と付随するメソッドについては元ソース参照*1, *2,*3。 Spline 補間の数学的基礎も参考にしてください*4。 3 次の Spline 補間 (TSpline3) …

ROOT で凡例をつける。

ROOT の Graph で凡例をつける Legend の方法を python でメモ。 leg = ROOT.TLegend(0.6,0.6,0.75,0.78,"Legen Exampled","NDC"); leg.AddEntry(graph0, "Data","lp") leg.AddEntry(graph2, "Red Line","l") leg.AddEntry(graph3, "Green Line","l") leg.Se…

ROOT のフィット結果をもとに n-sigma contour を描く(python)

元のソースコードは ROOT の tutorial に載ってますが*1、 ROOT のフィット結果をもとに n-σ の countour を描く方法を python で写経する。 Minuit では Function value (chi-square value など)がある値 UP になる範囲をもって パラメータの誤差を定義する…

ROOT で誤差領域を網掛けで示す方法

計算値や実験データを示す際に、誤差を誤差棒ではなく網掛け範囲で示したい場合が稀にある。 ROOT + Python でこれを行う場合のメモ。最後の shade 以下の箇所が対応する網掛けの方法*1。 通常の TGraph で外周を指定した後、SetFillStyle で内部を埋めてい…

Python で ROOT の tree に書き込む/読み込む

西海岸の研究者の人は、観測データの解析に Python を使うことが多いです。 とっても忘れやすい自分のために、よく使う Python のコードをメモしておきます。 (他にもいろいろな書き方があります。もっと綺麗に書く方法など、ご教授ください) Python を使っ…