five

Ultrafast dark-field X-ray microscopy to image strain wave propagation

收藏
NIAID Data Ecosystem2026-05-01 收录
下载链接:
https://zenodo.org/record/8303111
下载链接
链接失效反馈
官方服务:
资源简介:
This dataset includes DF-XRM data obtained at an X-FEL source. The sample is a diamond single crystal with a strain wave propagating through the center, which is imaged in a stroboscopic fashion. This data originated the LCLS, see arXiv:2211.01042 for a description of the experiment. Run 538 contains a time series with 1 ns between each step, run 540 contains a time series with 72 ns steps (one full period) while run 536 contains a rocking curve. Each run is divided into hdf5 files with 2000 shots each. Each hdf5 file has then been zipped using the BZIP2 algorithm to reduce the overall size. Each run contains header information with the status of the X-FEL beam and the laser (the laser excites the strain wave). The shots where the X-FEL beam is off should be used to subtract the detector background. Run 536 additionally contains motor positions for the goniometer. Please note: for run 538 and 540 there are ~120 shots at each position. However, the timing tool is unreliable, giving a ±1 ns error, and to analyze this data the correct time of each shot must be first identified. This can be done by looking at the position of the strain wave. Using python, the data may be unziped, opened, and visualized in the following way: import zipfile import numpy as np import h5py #unzip with zipfile.ZipFile(f'538_0.zip', 'r') as zip_ref: zip_ref.extractall('') with h5py.File(f'538_0.hdf5', 'r') as f: # print contents of file for key in f.keys(): print(key, f[key].shape, f[key].dtype) # approximate the detector background mask = np.array(f[b'lightStatus_xray']) == 0 Images_DF_Xray_OFF = np.array(f['images_dark_field_arm'][mask,:,:]) df_noise = np.median(Images_DF_Xray_OFF, axis = 0) # extract desired frames ims = np.array(f['images_dark_field_arm'][120*1:120*2]) im = np.average(ims, axis = 0) # plot the detector background and the average of the selected frames import matplotlib.pyplot as plt fig, axes = plt.subplots(1,2, figsize = (4, 12), dpi = 300) axes[0].imshow(df_noise, vmin = np.percentile(df_noise,1), vmax = np.percentile(df_noise,99)) axes[1].imshow(im-df_noise, vmin = np.percentile(im-df_noise,1), vmax = np.percentile(im-df_noise,99))
创建时间:
2023-09-11
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作