# GIWAXS-script **Repository Path**: swordshinehjy/giwaxs-script ## Basic Information - **Project Name**: GIWAXS-script - **Description**: GIWAXS script - **Primary Language**: Python - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2022-05-20 - **Last Updated**: 2026-02-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## GIWAXS数据处理Python代码包 **简介:** 本代码包提供了一套简易的Python工具,用于处理掠入射广角X射线散射 (GIWAXS) 图像数据。它可以将原始GIWAXS数据转换为二维和一维图像,核心代码部分源自GIWAXS-Tools软件的数据转换模块。GIWAXS-Tools的打包版本见相关链接。同时提供了实时预览版本GIWAXS-Viewer。 **主要功能:** * **数据转换:** 将原始GIWAXS数据转换为二维 (qz-qxy) 和一维 (I-q, I-χ) 图像。 * **常用校正:** 包含常用的校正功能,例如: * 检测器倾斜校正 * qz-qxy 坐标转换 * 强度-q (I-q) 曲线提取 * 强度-χ (I-χ) 曲线提取 * **批量处理:** 支持批量处理多个数据文件。 * **标准样品校正:** 可以直接校正标准样品,无需依赖FIT2D等其他软件确定校正参数。 * **开源免费:** 使用Python语言编写,无版权问题,避免了使用MATLAB或Igor Pro等商业软件的版权限制。 * **`GIWAXS-Tools`打包版本**可参考[https://www.bilibili.com/read/cv16929157](https://www.bilibili.com/read/cv16929157) **`GIWAXS-Tools` `GIWAXS-Viewer` `GIWAXS-GapFiller`打包版本下载链接:** * **百度网盘:** [百度网盘链接](https://pan.baidu.com/s/12AjY4tcJhkzElMjDkPQ-GA?pwd=3333) 提取码:3333 (常常失效) * **阿里云网盘:** [阿里云网盘链接](https://www.aliyundrive.com/s/Gw2CmNNK6vw) * **Google Drive (English version):** [https://drive.google.com/drive/folders/1a8NIQZiPT8bwaGdw9mw_QSFsvEm09iSe?usp=sharing](https://drive.google.com/drive/folders/1a8NIQZiPT8bwaGdw9mw_QSFsvEm09iSe?usp=sharing) ![GIWAXS-Tools](assets/giwaxs-tools.png) ![GIWAXS-Viewer](assets/giwaxs-viewer.png) **引用方式:** 使用本代码请引用作者的近期相关文献或本代码网址: * Polym. Chem. 2021, 12 (16), 2471-2480. doi:10.1039/d1py00105a * Jianyao Huang, GIWAXS-Tools, https://gitee.com/swordshinehjy/giwaxs-script. * Jianyao Huang, GIWAXS-Viewer, https://gitee.com/swordshinehjy/giwaxs-script. **依赖的库:** * numpy * scipy * fabio * PIL (Pillow) * matplotlib **使用方法:** 可使用python代码或者jupyter notebook处理 **1. 常规使用者建议使用打包版本** **2. 环境配置 (初学者):** * **安装python:** 建议版本3.9+,也可用anaconda安装 * **安装依赖库:** 打开命令行 (或Anaconda Prompt),输入以下命令安装必要的Python库: ```bash pip install numpy scipy fabio PIL matplotlib ``` * **安装Jupyter Notebook (可选):** 如果需要使用Jupyter Notebook,请安装Jupyter: ```bash pip install jupyter ``` * **代码编辑器 (推荐):** 可以使用如VSCode等通用代码编辑器。方便代码编辑和运行。 **3. 二维图转换代码 (qzqr) 使用示例:** 1. 简单介绍一下最主要的二维图转化代码qzqr的使用方法: * 在 `notebook` 文件夹中提供了一个简单的 `qzqr.ipynb` 示例 Notebook。 * **设定实验参数:** (可以使用Nika, FIT2D等软件获取以下参数) * `bcx`: 光束中心 x 坐标 * `bcy`: 光束中心 y 坐标 (注意坐标系差异: FIT2D左下角为原点,Python默认左上角为原点。对于如Mar225检测器,`bcy` 需要计算为 `3072 - [FIT2D y]` 下) * `pixelsize`: 检测器像素大小 (mm),例如 Mar225 检测器为 225.0/3072 = 0.0732421875 mm, Pilatus 检测器为 0.172 mm, Eiger 检测器为 0.075 mm. * `distance`: 检测器到样品距离 (mm),GIWAXS实验中常见距离为数百 mm. * `wavelength`: 波长 (埃),桌面级装置铜靶为 1.54 埃,同步辐射通常以能量 (keV) 为单位,换算公式为 `wavelength = 12.39841984332 / Energy`. * `background`: 背景文件名 (完整路径或相对路径,支持压缩文件如 .gz 格式). * `sampleName`: 样品文件名. * `subratio`: 背景扣除比例. * `colorrange`: 颜色图高度值 (通常为数千). * `incidence`: 掠入角 (度). * **设定转换参数:** * `qresolution`: 转换后图像素对应的q值大小 (默认 0.025,可减小至 0.015 减少锯齿). * `qxymin, qxymax, qzmin, qzmax`: qzqr 二维图的范围. * `colormap`: 颜色图名称 (Matplotlib 支持的颜色图, 如 jet, plasma, viridis). * 运行 `qzqr.ipynb` 代码即可得到 qzqr 转换图。 **4. 命令行使用:** * notebook文件夹中提供了大量ipynb例子,并提供了自动校准脚本 `autocalib_cli.py` 和qz-qxy转换脚本 `giwaxs_cli.py` ```bash python giwaxs_cli.py ./sample-new-h5v10.tif.gz -cfg config.json -b ./OTS-new.tif.gz -r 0.35 ``` ```bash python autocalib_cli.py ./LAB6-12S.tif.gz --calibrant LaB6 --pixelsize 0.0732421875 --wavelength 1.2398 --max_rings 4 --show_plot --color_max 500 ``` **5. 简易GUI版本 (已过时,仅供学习参考,推荐使用 `GIWAXS-Tools` 打包版本):** * **代码版本:** * 安装依赖库: ```bash pip install -r requirements.txt ``` * 运行命令: `python giwaxs-pyside6-lite.py` (或 `python giwaxs-tk-lite.py` 如果不安装 pyside6)