Larch pre edge fitting

การวิเคราะห์ pre-edge peak ด้วยโปรแกรม Larch

Pre-edge peak คือ ส่วนหนึ่งของ X-ray absorption near-edge structure (XANES) โดยเฉพาะธาตุในกลุ่มโลหะจะสามารถช่วงบ่งบอก oxidation state และสมมาตรของอะตอมที่สนใจได้ มีหลายโปรแกรมที่สามารถวิเคราะห์ pre-edge peak ได้ ทั้งโปรแกรมวิเคราะห์กราฟทั่วไป เช่น โปรแกรม MagicPlot ที่มีทั้งส่วนที่ฟรีและบางฟังค์ชั่นที่ต้องเสียเงินซื้อเพิ่มเติม โปรแกรมที่เสียเงิน เช่น Origin Pro หรือ IGOR pro โปรแกรมออกแบบเฉพาะในการวิเคราะห์ XAS เช่น Athena ที่เป็นโปรแกรมย่อยใน Demeter package1, XAS Viewer ใน Larch package2 Larch เป็นโปรแกรมที่เขียนด้วยภาษา Python รวบรวมชุดโปรแกรมย่อยเข้าด้วยกัน สามารถแสดงและวิเคราะห์ผลการทดลองจากเทคนิค X-ray absorption (XAS) and X-ray fluorescence spectroscopy (XRF) และสามารถแสดงภาพจาก XRF และ X-ray diffraction จากการ scan ด้วย X-ray microprobe แต่จะโฟกัสที่การวิเคราะห์ X-ray absorption fine-structure spectroscopy (XAFS) เป็นหลัก ในคู่มือนี้จะแสดงขั้นตอนการทำ pre-edge fitting โดยใช้ XAS Viewer

การติดตั้งโปรแกรม

1. การติดตั้ง Larch โดยใช้ single file
1. Download ไฟล์ที่ใช้ติดตั้งตามระบบปฏิบัติการจาก https://xraypy.github.io/xraylarch/installation.html
2. ในระหว่างขั้นตอนการติดตั้งไม่จำเป็นต้องเลือกอะไรใน Advanced Installation Options (แสดงในรูปที่ 1)

รูปที่ 1 แสดง Advanced Installation Options ในหน้าต่างระหว่างการติดตั้งซึ่งไม่ควรเลือกทั้งสองข้อนี้

2. การติดตั้งโดยใช้ Python
แนะนำให้ใช้ Anaconda Python โดยแนะนำให้ใช้กับ Python 3.7 ขึ้นไป
  1. download ไฟล์ที่ติดตั้งได้จาก https://docs.anaconda.com/anaconda/install/windows/
  2. หลังจาก install Anaconda Python ให้เรียกใช้ Anaconda Prompt และใช้คำสั่ง
 หรือสามารถติดตั้งจากคำสั่ง pip ด้วย Pyton โดยตรงโดยใช้คำสั่ง

Baseline fitting

1. import data จาก raw data หรือ project file ของโปรแกรม Athena และทำการ normalize ให้เรียบร้อย (สามารถดูวิธีการ import และ normalize โดยใช้โปรแกรม Athena เพิ่มเติมได้จาก https://www.slri.or.th/BL1-1W/Athena.html)
2. เข้าสู่ Pre-edge Peak โดยเลือก Tab ในหน้าต่างด้านขวามือดังแสดงในรูปที่ 2

รูปที่ 2 หน้าต่าง Pre-edge Peak สำหรับการกำหนดช่วงที่ต้องการ fit และช่วง pre-edge peak

3. Zoom ดูกราฟในส่วน pre edge โดยใช้การคลิกซ้ายค้างไว้แล้วสร้างกรอบครอบส่วน pre edge
4. กำหนดช่วงที่ต้องการ fit pre edge ใส่ใน “Fit Energy Range” และระบุช่วงที่เป็น pre-edge peak ใน “Pre-edge Peak Range” ดังแสดงในรูปที่ 2 จากนั้นกดปุ่ม Fit Baseline
5. สังเกตว่าเส้น Base line ที่เกิดจาก fit ด้วยช่วงข้อมูลที่กำหนดไว้นั้นสอดคล้องกับข้อมูลดีหรือไม่ ถ้าไม่ดีให้กำหนดช่วงข้อมูลใหม่จนกว่าจะทับข้อมูลพอดีเช่นตัวอย่างในรูปที่ 3 โดยช่วงข้อมูลที่กำหนดจะแสดงด้วยเส้นตั้งสีเทา และจุดวงกลมสีน้ำเงินเข้มจะแสดงช่วง pre edge ที่เลือกไว้
รูปที่ 3 แสดงผลการ fit baseline ที่มีการเลือกช่วงต่างกัน (บนซ้าย) การเลือกช่วง “Fit Energy Range” ที่กว้างมากเกินไป, (บนขวา) ช่วง “Pre-edge Peak Range” ที่แคบกว้าง pre-edge peak ที่เป็นจริง, (ล่างกลาง) ช่วงที่เหมาะสมทำให้เส้น baseline ทับกับข้อมูลส่วนที่ไม่ใช่ pre-edge peak พอดี

Peak fitting

1. เลือก peak fitting ฟังค์ชั่น จาก drop down เมนูของ “Add Component” ดังแสดงในรูปที่ 4

รูปที่ 4 ฟังค์ชั่นสำหรับการทำ peak fitting

2. เลือก Pick Values from Plotted Data และคลิกเลือกช่วง peak สองตำแหน่ง เช่น เลือกใกล้ ๆ กับตำแหน่งจุดสีน้ำเงินสองจุด โปรแกรมจะคำนวณค่าเริ่มต้นและแสดงกราฟจากค่าเริ่มต้นด้วยเส้นสีม่วง
รูปที่ 5 เลือก Pick Values from Plotted Data และคลิกเลือกช่วง peak สองตำแหน่ง เช่น เลือกใกล้ ๆ กับตำแหน่งจุดสีน้ำเงินสองจุด โปรแกรมจะคำนวณค่าเริ่มต้นและแสดงกราฟจากค่าเริ่มต้นด้วยเส้นสีม่วง

3. กดปุ่ม “Fit Model” โปรแกรมจะแสดงผลการ fit โดยแสดงเส้น baseline เป็นเส้นประสีเขียวและ Peak ด้วยเส้นประสีส้ม ดังแสดงรูปที่ 6 (ซ้าย) ซึ่งในการ fit ครั้งแรกดูเหมือนจะใกล้เคียงกับข้อมูลและค่าพารามิเตอร์จากการ fit และค่า goodness of fit จะแสดงในหน้าต่าง Fit results ที่เพิ่มขึ้นมาใหม่
4. เลือก “Plot baseline-subtreacted” และ “Plot with residual?” ในหน้าต่าง Fit results เพื่อแสดงกราฟที่เกิดจากการ fit ที่หักลบ baseline พร้อมทั้งแสดงความแตกต่างระหว่างค่าการ fit และข้อมูลในหน้าต่างเล็กด้านล่าง (residual) ดังแสดงรูปที่ 6 (ขวา) จะพบว่ามี oscillation pattern ใน residual แสดงว่าอย่างน้อยต้องการอีกอย่างน้อย 1 peak

รูปที่ 6 (ซ้าย) แสดงผลจากการ fit ด้วย peak ที่ใช้ฟังค์ชั่น Gauss, (ขวา) หน้าต่างแสดงผลจากลบ baseline และค่าต่างระหว่าง peak ที่เกิดจากการ fit และข้อมูล

5. เพิ่ม gaussian peak รวมเป็น 2 peak พบว่า fit ได้ดีขึ้นกว่าเดิม และช่วง residual ลดลงครึ่งนึงจาก ±0.002 เป็น ±0.001 ดังแสดงในรูปที่ 7 นอกจากนี้ค่า goodness of fit เมื่อเทียบกับระหว่าง Fit #1 และ Fit #2 ในรูปที่ 8 เช่น ค่า χ2 ลดลงแสดงว่า fit และข้อมูลมีความแตกต่างกันน้อยลง และค่า reduce χ2 ลดลงถึงแม้มีตัวแปรมากขึ้นแสดงว่าตัวแปรที่เพิ่มขึ้นในการใช้ 2 gauss ส่งผลดีขึ้น
รูปที่ 7 แสดง fit จากการใช้ 2 gauss ค่า centroid แสดงด้วยเส้นตั้งสีแดง

รูปที่ 8 แสดงผลตัวแปรและ goodness of fit จากการ Fit

เอกสารอ้างอิง

[1] B. Ravel and M. Newville, ATHENA, ARTEMIS, HEPHAESTUS: data analysis for X-ray absorption spectroscopy using IFEFFIT. Journal of Synchrotron Radiation: 12, 537–541 (2005) doi:10.1107/S0909049505012719
[2] M. Newville, Larch: An Analysis Package For XAFS And Related Spectroscopies. Journal of Physics: Conference Series, 430:012007 (2013) doi.org/10.1088/1742-6596/430/1/012007