Python

PyVISA + NI-VISA + 32 bit Python を Mac で使う

(追記 2014.6.9) 最近の NI-VISA は OS X でも部分的に 64 bit 対応になっているので、通常使用の範囲であれば 32 bit の Python を無理やり使う必要はありません。 Python から USB 接続の実験装置を動かすときに、PySerial はよく使うんですが、VISA とい…

CMake と SWIG を使って C++ と Python と ROOT に対応させる

やりたいこと CTA の焦点面カメラの開発に必要なソフトを新たに書く必要があり、以下の条件を満たす必要があります。 速度重視の用途に耐えるため、また multi thread に対応するため、中身は C++ で書かれていること 速度を重視しない場合や簡単な試験にす…

2012 年総選挙の小選挙区得票数を集計してみる

Twitter で小選挙区の合計得票数について書いたところ、まあまあ反響があったので少し整理して書きます。皆さん知りたかった数字のようです。 【再RT (さっきの勘違いで消しちゃったので)】300選挙区の合計で各党の得票数。自民2590万、民主1371万、維新703…

PyROOT を使う時の注意点 (書きかけ)

PyROOT (Python + ROOT) を使う時の注意点をいくつか。適宜更新予定です。公式の PyROOT の manual が参考になります。 1. Memory の開放 1.1. C++ 内部で new したものの扱い Python はメモリ管理を気にしなくて良いと言われますが、気をつけなくてはいけな…

施設名から経緯度を一括自動取得する方法

今さら感のある話題ですが、経緯度の公開されていない放射線量の自治体公開データから、住所や経緯度を一括で取得するやり方の説明をします。使用言語は Python です。Python 以外の言語でも、同じやり方でできるはず。1600 箇所の可視化、4400 箇所の可視化…

C++ 上では NULL な TObject の扱い

PyROOT だと C の NULL が扱えないので、NULL な TObject を返すような ROOT の関数 (TFile::Get など) では、混乱する時があります。自分は毎回ググってるような…。例えばここなんかに丁寧に説明がありますが、自分用の忘備録として blog にも書いておきま…

setup.py や easy_install での version 指定

easy_install で PyPI から package/module を取ってくると、引数無しでは最新版が落ちてきます。例えば以下のようにやると、2011 年 12 月現在で v1.6 が install されます。 $ easy_install networkx古い version を指定して落としたい時には、次のように …

Tektronix MSO/DPO 4000 Series を Python で動かす

古い機種ばっか使っていて知らなかったのですが、LAN port を備えた最近のオシロは、めちゃくちゃ簡単に使えるんですね。Baud rate とかも気にする必要なく、telnet 接続するだけで動きます。PySerial よりもずっと簡単。しかも新たに何も install しなくて…

Python 2.6 以降だと PySerial で '\r' が readline の delimiter に使えない

PySerial では Python 2.6 以降の場合には、'\r' (CR) が readline のときの delimiter に使えません。つまり、装置側の出力に '\r' が delimiter として使われている場合、次の code だと '\n' (LF) を待ってしまうために time out してしまいます。 import…

PyPI に自作の Python Module を登録してみる

僕は Python って嫌いなんですが、PyFITS や PySerial だけは便利に使っています。特に PySerial に関しては、今さら C で termios とかを弄る元気はないので、実験室で電源や電圧計のような速度を重視しない装置を使う時には、PySerial で制御しています。R…

PyROOT で C 配列を使う

なんか毎度やり方を忘れて検索し直すので、本当に自分用の覚え書き。Blog にわざわざ書くネタとしては今さら感があり過ぎますが、ほんと最近物忘れがひどい。ROOT 自体は C++ で書かれているので、C の配列を引数に持つ関数というのはいくらでもあります。例…

MP3 のタグを Python から書き込む

英語のお勉強用の CD が手元にあり、MP3 を全て iTunes に取り込みました。この CD には英文が全て text file として含まれているので、せっかくだったら「歌詞」として MP3 に取り込みたいところです。そうすれば、iTunes や iPod/iPhone から英文自体を参…

なんかよく分からない error

OS X で FTDI 社製の USB chip FT245RL を制御しています。Python から ftd2xx という module を経由して、FTDI の配布する libftd2xx を使っているのですが、次のような error で死にました。 2010-05-11 19:06:01.745 Python[20974:2303] In '__CFRunLoopL…

ROOT と Python array の型の一覧

PyROOT から TTree の Branch を設定するときに混乱するので、まとめ。大文字と小文字が入れ替わっていて、ややこしい。 C type ROOT typedef ROOT TTree Python array NumPy FITS signed char Char_t 'B' 'b' int8 A or S unsigned char UChar_t 'b' 'B' ui…

OS X での Python + readline

前にも書きましたが、Snow Leopard に入れ替えたので再度書いておくことにします。OS X に標準で含まれる readline は、GNU のものではなく、NetBSD の editline を使っています。GPL のライセンス汚染を避けるためのようです*1。そのため、Python の readli…

Snow Leopard の Clean Install

Stanford に職場が移り、色々と新しい作業を始める前に、Snow Leopard に移行することにしました。新しい研究を始めてから環境移行すると面倒なので。 Snow Leopard Snow Leopard の DVD から、HDD を一旦消去して clean install した。QuickTime 7、Rosetta…

いっつも忘れる Python の文法

自分、Python 嫌いなんです。インデントの制御とか、文法に何か宗教じみたものがあって。でも FITS と ROOT を同時に使うときに便利なのでしょっちゅう使います。しょっちゅう使うくせに、30 歳間近の衰えた脳みそだと、いっつも文法を思い出せない。本当に…

numpy の array で、特定の値を持つ要素を探す

PyFITS を使ってある 3 次元の FITS ファイルを開いたところ、観測データの存在しないピクセルは NaN が詰まっていました。この配列に対して処理をしようとすると、演算が不正になってしまうので、以下の方法で NaN のピクセルだけ値を 0 に置き換えました。…

ROOTの入門書を書き始めた

最新版へのシンボリックリンクはこれ ※まだ書きかけだから、半年後、1 年後に期待してね。(追記 2016/2/26) こっちに移動しました。 github.com CERNで開発されているROOTというデータ解析ソフトウェアは、高エネルギー物理学分野はもとより、高エネルギー宇…