投稿

2月, 2023の投稿を表示しています

後期、4個目のSACLAビームタイムが終了

イメージ
厳くんのビームタイム(100テスラXFEL回折)があり、先週の月から金でSACLAに滞在していた。実験は順調に進み、3種類ものサンプルのデータがとれた。大きな変化という意味では一つのサンプルが大成功で、あとはちょっと磁場が足りないことが判明した。データクオリティはめちゃ高かったので雰囲気も良かった。11 keVシードビームの安定性も高い。 今回は今まで自分がやっていた作業も含めて、学生さんたちにかなり任せて活躍してもらった。学生さんたちはとても良くやってくれました。(自分でやるよりもずっと早くて上手だと判明) フルショットを打ちまくって、検出器にデブリがとびまくった。久保田さんが心配そうにしているので、新プロテクターを作らなくてはだめだ。 2.5日のビームタイムで破壊ショット20発。2発はミスでデータなし。前回・前々回に引き続き非常に良いビームタイムでした。PINK-02の実験が共用実験っぽくなってきてよかったよかった。後期で4つめのPINK-SACLAのビームタイムが終了したのでやっと安心。低温・強磁場・X線の準備が整っていたのでうまくいったと思う。年間ではPINK-SACLAが5件。その他、野尻・プラズマも合わせると、7件のSACLA実験があった。それ以外に関西研にも行った。ナノテラスも3月に行くかも。今年度は今までで一番多かった。 来年度は前期に3つ。後期はどうなるか。SPring-8や関西研もありそう。少し時間があったので、SPring-8のビームラインで打ち合わせがてら装置を見たり、兵庫県立大にも短い時間滞在した。効率的に過ごせた。 週末はアートの展覧会にお呼ばれして行き、ちょっとおしゃべりもしてきた。動画を後日見せてもらったが、さすがに、伸びシロしかない・・・。 連休中、調布ではトトロが再上映。家族で観覧した。 ここ1年ほどは映画館で新作・リバイバルを見るのがブーム 国宝 チェンソーマン レゼ編(2~3回) PERFECT BLUE もののけ姫 IMAX(2回) エヴァンゲリオン Air/まごころを君に となりのトトロ 時計じかけのオレンジ その他にこどもと おまえうまそうだな すみっコぐらし クリーミーマミ ズートピア2 時計じかけのオレンジに影響されて、赤ワインを飲んだり、聖書を買って読んだりした。 聖書は意外に読みやすく、最後まで目を通した。めっち...

そろそろやるぜ

イメージ
書類も落ち着いてきて、そろそろ実験室に舞台を移さなければ。 初めて買った大きなコンデンサ(6個) 3Dプリンター3台目を開封。写真は2、3台目。  

柏にサッカーしに行く

イメージ
久しぶりに柏にサッカーしに行った。その後ゴミ捨て。せっかくいただいたものだが、ずっと使わなかったし、古すぎるものは捨てましょう。 思いつきで高周波の実験でもしようかしらと思って、RF信号発生器を探す。 柏の強磁場にはいくつかあって、話によると思ったよりも小さくて安いらしい。 買ってみようかしら。手元にないとなかなか進まないですしね。 中くらい 小型 小型  

ゆきふる

イメージ
電通大にも雪がふりました。学内はわりと積もりやすいです。 まだ雪だるまは出現していない模様。  

Python:色をいじる

イメージ
 これはいろんなやり方があるようですが、自分に一番わかりやすいのはRGBの数字を指定する方法です。 [1, 0, 0]=赤 [0, 0, 1]=青 [0, 0, 0]=黒 [0, 0.6, 0]=緑 ([0, 1, 0]だと明るすぎる) [1, 1, 1]=白 くらい覚えておくと使えます。もっと詳しくは ここ でいちらんがみられます。 import numpy as np import matplotlib.pyplot as plt x = np.arange(0, np.pi * 2, 0.2) plt.plot(x, np.sin(x), color = [0, 0, 1]) plt.plot(x, np.cos(x), color = [0, 0.6, 0]) plt.plot(x, np.exp(-x), color = [1, 0, 0]) plt.plot(x, np.arctan(x), color = [0, 0, 0]) plt.legend(['sin(x)', 'cos(x)', 'exp(-x)', 'arctan(x)'] , fontsize = 14 ) また、数字で指定できると、自動的に色をグラデーションするときに便利なこともあります。 import numpy as np import matplotlib.pyplot as plt x = np.arange(0, np.pi * 4, 0.2) for i in range(10): ii = (i + 1) * 0.1 plt.plot(x, np.sin(x + ii * 5), color = [1 - ii, 0, ii])

Python:グラフにレジェンド(凡例)をいれる。順番もいじる。

イメージ
 plt.legend()をつかいます。 import numpy as np import matplotlib.pyplot as plt x = np.arange(0, np.pi * 2, 0.1) plt.plot(x, np.sin(x), color = [1, 0, 0], label = 'sin(x)') plt.plot(x, np.cos(x), color = [0, 0, 1], label = 'cos(x)') plt.plot(x, np.exp(-x), color = [0, 0.5, 0], label = 'exp(-x)') plt.legend() ここからは少しマニアックです。 こんなことがあるかもしれません。粗い実験データにキレイな理論線を重ねたいとき、実験データの裏に理論線を書きたいとします。するとだいたいこういう風に書きます。 import numpy as np import matplotlib.pyplot as plt x = np.arange(0, np.pi * 2, 0.2) dat = np.sin(x) + (np.random.rand(len(x)) - 0.5) / 5 plt.plot(x, np.sin(x), color = [0, 0, 1], label = 'theory') plt.plot(x, dat, color = [1, 0, 0], label = 'experiment', marker = 'o', lw = 0, markerfacecolor = [1, 1, 1]) plt.legend() legendをみるとtheoryがうえで、experimentが下です。theoryの線を裏に置くために先に書いたので、legendの順もそうなっています。でもあなたは実験家で実験のlegendを先に示したいと思っています。そのときは少し複雑ですが・・・ import numpy as np import matplotlib.pyplot as plt x = np.arange(0, np.pi *...

Python:右軸にもデータを入れる

イメージ
plt.twinx()をつかいます。 import numpy as np import matplotlib.pyplot as plt x = np.arange(0, np.pi * 2, 0.1) plt.plot(x, np.sin(x), color = [1, 0, 0]) axr = plt.twinx() axr.plot(x, np.cos(x), color = [0, 0, 1]) axr.set_zorder(1) axr.patch.set_visible(False) このとおり

Python:annotation・矢印をいれる

イメージ
annotationはplt.annotateで入れられます。 import numpy as np import matplotlib.pyplot as plt x = np.arange(0, np.pi * 2, 0.1) plt.plot(x, np.sin(x)) plt.annotate('I am here !', (3, 0.5), fontsize = 16) 矢印も同じくplt.annotateで入れられます。plt.arrowというのもあるのですが、こっちのが良いかな!とおもってます。 import numpy as np import matplotlib.pyplot as plt x = np.arange(0, np.pi * 2, 0.1) plt.plot(x, np.sin(x)) plt.annotate("Look !!" , xy = (3, 0.5) , xytext = (4, .5) , arrowprops = dict(arrowstyle = "->") , fontsize = 16 ) 矢印だけにもできます。 import numpy as np import matplotlib.pyplot as plt x = np.arange(0, np.pi * 2, 0.1) plt.plot(x, np.sin(x)) plt.annotate("" , xy = (3, 0.5) , xytext = (4, .5) , arrowprops = dict(arrowstyle = "->") , fontsize = 16 )

Python:グラフの枠組みのサイズを固定する

イメージ
matplotlibでグラフの枠組みサイズを固定したい場合はadd_axesをつかいます。 自動的に複数の図を並べるときはplt.subplotsやgridspecが使われますが、グラフの枠組みのサイズが固定でなく、tickの数字の桁数などに影響されてしまいます。自分はグラフの枠組みを固定したいので、1つのグラフしかない場合でも基本的に下記のやり方でやっています。 import numpy as np import matplotlib.pyplot as plt x = np.arange(0, np.pi * 2, 0.1) fig = plt.figure(figsize = (6, 6)) ax1 = fig.add_axes([0.2, 0.2, 0.6, 0.3]) ax1.plot(x, np.sin(x)) ax2 = fig.add_axes([0.2, 0.6, 0.6, 0.3]) ax2.plot(x, np.cos(x)) fig = plt.figure(figsize = (6, 6)) ax1 = fig.add_axes([0.2, 0.2, 0.3, 0.6]) ax1.plot(x, np.sin(x)) ax2 = fig.add_axes([0.6, 0.2, 0.3, 0.6]) ax2.plot(x, np.cos(x))

机を組み立てた

イメージ
 腰が痛いので、立ってデスクワークができるように電動昇降机を買いました。奮発して良いやつを選びました。 腰が痛いのにむち打って一人で組み立てました。途中で一番大事なハリを伸ばしすぎて、棒ギヤが外れてしまい、あせりにあせって服を脱いでチャレンジしたところ直せました。

Monte Calro simulation of Ising model using python

イメージ
  pythonでIsing modelのシミュレータができました。 ふう。For文がネストしていますが、思ったよりはサクサク動きます。 みんな使ってみてね。 import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation %matplotlib tk fig = plt.figure() size = 50 # lattice size jex = 100 # exchange energy (AFM -> negative, FM -> positive) te = 150 # temperature rand = np.random.randint(2,size = (size, size)) rand = rand * 2 - 1 np.save('test.npy', rand) def ising(dat): s = dat for i in np.arange(size): for j in np.arange(size): ip = i + 1 if i != size - 1 else 0 im = i - 1 if i != 0 else size - 1 jp = j + 1 if j != size - 1 else 0 jm = j - 1 if j != 0 else size - 1 cal = s[i][j] * (s[i][jp] + s[i][jm] + s[ip][j] + s[im][j]) den = cal * 2 p_flip= np.exp(-1 * (den * jex) / te) p = p_flip / (1 + p_flip) s[i][j] = s[i][j] if np.random.rand(1) > p...

イジングモデルシミュレーター

イメージ
昔作ったやつです。 なんかたまに見たくなって、動かしてみたりします。 パソコンで相転移をシミュレートできるなんて素晴らしいですし、 結構見飽きないです。 すべては相転移なのだ・・・ ファイルを ここ に置いておきます。 igor proをお持ちの方はすぐ使えると思います。 pythonに移植したいけど、どうやるのかしら…