我想编写一个 Gatan DigitalMicrograph 脚本来连续获取多个 EELS 光谱图像。如果有命令获取光谱图像(SI)数据,并将三维图像存储到数组中,我将实现我的计划。但是,我无法从参考手册中找到适用于 SI 成像模式的命令。在这种情况下我应该使用什么命令?您对我的目的有帮助吗?如果您分享一些智慧,将不胜感激。
问问题
402 次
2 回答
0
一个简短的演示脚本,介绍如何使用 SIAcquisition 命令进行 SI 采集的多次迭代和“重命名”采集的数据集。
// Assumptions:
// - GMS 2.3 used
// - Valid survey image and ROI already assigned
// - SI array size already defined
// - Signals and other SI settings made
number SIx, SIy
SIGetFieldValue( "2D Array, X samples", SIx )
SIGetFieldValue( "2D Array, Y samples", SIy )
Result("\n SI size:"+ SIx + "x" + SIy )
// Start SI
number nSI = 3
for (number i=0; i<nSI; i++ )
{
SIInvokeButton( "Start/Stop", 1 )
while(SIIsAcquisitionActive()) yield()
sleep(0.5) // Small delay needed to allow DM finish SI acquisition clean-up
// Find (and rename) SI DataSets
number nImgDoc = CountImageDocuments()
string findStr = "Spectrum Image"
for (number d=0; d<nImgDoc; d++ )
{
string docName = GetImageDocument(d).ImageDocumentGetName()
if ( find(docName,findStr) == (len(docName)-len(findStr)) )
{
GetImageDocument(d).ImageDocumentSetName( docName + "#"+(d+1) )
}
}
}
OKDialog( "Done" )
于 2016-04-04T09:33:15.107 回答
0
如果您安装了光谱成像插件,那么 F1 帮助文件将在此处包含有关 STEM SI 脚本命令的部分...
然而,那里描述的命令将允许一个接一个地获取一个 SI。每个都将以与通过 UI 重复启动 SI 采集时相同的开销重新开始。
我的印象是您想要获得“更快”的重复 SI。不幸的是,没有任何命令可以轻松地为您提供。
但是,您可以通过以下想法(未经测试)创建一个“work-arround”解决方案:
- 设置具有多帧的 STEM SI
(每个帧传递将汇总到同一个容器中)- 在每个像素(像素结束)的基础上使用“SI HookUP 脚本”来捕捉“最后”获得的 SI 点(在新帧开始之前)。使用它将现有数据复制到新容器中并将原始数据设置回零。
选择:- 如果您将空间漂移校正设置为在帧结束时执行,您也可以使用“校正开始”连接脚本点...
以上仅适用于软件同步的 SI。对于硬件同步,它变得更加棘手,但您可以使用“ImageUpdate”事件侦听器执行类似的操作。
于 2016-04-01T18:12:16.390 回答