03exterm7.ipynb

コードをクリップボードにコピーするには,セルの右上のアイコンをクリックする。

コード [1]: コメント

#
# 03exterm7.ipynb
# NIST SRM640d Si
# 試料調製: 井田隆, 2026 年 4 月 30 日
# データ収集:佐々木翔太, 2026 年 7 月 2 日
# 「散乱プロテクタ」には 2 mm 厚のスペーサを付けて無効化
# Θ 軸に取り付けた錘を外した測定
#
# 逆畳込的処理 (exterm7.3)
# 次のコードセルでは冒頭でセルマジック (cell magic) %%time を使い
# 計算時間を出力する。
# コンソール出力の冒頭部でX線の分光強度分布についてのパラメータ
# 2番目にブラッグ・ブレンターノ型ジオメトリ特有の軸発散収差に関するパラメータ
# 3番目に赤道・試料透過性収差に関するパラメータを示す。
# ミニフレ補整を有効にする場合,
# 4番目に Rigaku MiniFlex がもたらす特有のピーク形状の
# 「変形」を無効化するためのパラメータを示す。
#

コード [2]: 逆畳込的処理

#
# 逆畳込的処理とミニフレ補整を施す
# MiniFlex により追加される非対称性が
#    γ = -0.0072º cotΘ
# と表されるとする。
#
%run ../../exterm7.3/exterm7.py 00raw.csv 01dct.csv dct.cfg
# (exterm7.3)

コード [3]: コンソール出力の確認

#
# 以下のことについて確認する。
#
# *軸発散のパラメータ
#    入射ビーム側ソーラー・スリット角 (º) degAxial = 1.25
#    回折ビーム側ソーラー・スリット角 (º) degAxial2 = 1.18
#  ただし,ソーラー・スリット中の金属箔の間隔と長さの比の逆正接を
#  「ソーラー・スリット角」とする。
#  リガク社とブルカー社は,この2倍の角度を「ソーラー・スリット角」と称することに注意する。
#
# *赤道・透過性収差のパラメータ
#    ゴニオメーター半径 (mm) gonioR = 150
#    発散スリット開き角 (º) degDS = 0.625
#    半導体ストリップ型検出器の視野角 (º) degSSD = 4.89
#    試料の幅 (specimen width) (mm) specW = 20.0
#    試料の厚さ (specimen thickness) (mm) specT = 0.603
#    試料へのX線侵入深さ (mu inverse) (mm) muInv = 0.218
#    試料ホルダへのX線侵入深さ (mu inverse) (mm) muInv2 = 0.12
#  ただし,(検出ストリップ間隔)×(ストリップ本数)/2 の逆正接の2倍を
#  「視野角」とする。
# 
# *ミニフレ変形のパラメータ
#    ミニフレ固有の変形パラメータ (º) gamMiniFlex = -0.072

コード [4]: 逆畳込的処理前後の Si 111-反射強度図形のグラフ表示

#
# 生データ 00raw.csv と逆畳込的処理後のデータ 01dct.csv 
# のグラフを表示する。
#
import numpy as np
import matplotlib.pyplot as plt
source0 = np.loadtxt('00raw.csv',delimiter=',')
x,y0 = source0[:,0],source0[:,1]
source1 = np.loadtxt('01dct.csv',delimiter=',')
x,y1 = source1[:,0],source1[:,1]
fig,ax = plt.subplots(figsize=(6,3))
ax.axvline(28.441,ls='--',color='gray') # NIST SRM640d 保証書記載 Si 111 ピーク位置
ax.plot(x,y0,label='Raw data')
ax.plot(x,y1,label='DCT data')
ax.xaxis.set_ticks_position('both')
ax.yaxis.set_ticks_position('both')
ax.set_xlim(27.941,28.941) # 111-反射付近のみ表示
ax.set_ylim(0,)
ax.minorticks_on()
ax.set_xlabel(r'$2\Theta (^\circ)$')
ax.set_ylabel(r'${\rm Relative\ intensity,}\ s_0 $')
ax.legend()
plt.show()

コード [5]: Cu Kβ ピークと Ni K-吸収端構造の確認

#
# 生データ 00raw.csv と逆畳込的処理後のデータ 01dct.csv 
# のグラフを表示する。描画範囲を変える。
# 逆畳込的処理を施す時に,X線源分光強度プロファイルのパラメータを取り入れることで,
# Kα2 ピークを取り除けるだけでなく Ni箔を挿入することにより減衰された Kβ サブピークと
# Ni K-吸収端位置での強度の飛びを解消できることを確認する。
#
import numpy as np
import matplotlib.pyplot as plt
source0 = np.loadtxt('00raw.csv',delimiter=',')
x,y0 = source0[:,0],source0[:,1]
source1 = np.loadtxt('01dct.csv',delimiter=',')
x,y1 = source1[:,0],source1[:,1]
fig,ax = plt.subplots(figsize=(12,3))
ax.plot(x,y0,label='Raw data')
ax.plot(x,y1,label='DCT data')
ax.xaxis.set_ticks_position('both')
ax.yaxis.set_ticks_position('both')
ax.set_xlim(25,55) # 111, 220-反射付近,Kβ ピーク表示
ax.set_ylim(0,2000) # 背景強度の拡大表示
ax.minorticks_on()
ax.set_xlabel(r'$2\Theta (^\circ)$')
ax.set_ylabel(r'${\rm Intensity}$'+' (counts)')
ax.legend()
plt.savefig('k_beta.pdf')
plt.show()

20260727学生実験課題10のページに戻る