如何在DM脚本中重置或删除标签组和标签列表?

天使拉雷亚

如何在DM脚本中重置或删除标签组和标签列表?

一些背景:

我正在准备一个脚本,用于分析GMS 2中的一系列EELS光谱。我将背景与幂律模型拟合,并从背景光谱中的标签获取拟合参数(值和sigma)。但是,如果尝试在单个脚本中分析各种边缘,我会发现拟合参数的sigma值取决于计算的顺序。为了对此进行检查,我显示了一个脚本。如果我只定义一次拟合区域,则可以正常工作,但是如果我两次定义拟合区域(仅用于测试,我知道那是胡说),则sigma值会减小。如果拟合区域不同,则结果相同。我想重置或删除TagGroup来检查问题是否解决,但是我无法做到这一点。

TagGroup Tg
Number a0, sa0, a1, sa1
taggroup bandsTgs = NewTagList()
taggroup bandTg = NewTagGroup()

image spec := GetFrontImage()

// ...............First Time.....................................

bandTg.TagGroupSetTagAsFloat( "start", 600 ) // calibrated value!
bandTg.TagGroupSetTagAsFloat( "end", 800 )   // calibrated value!
bandsTgs.TagGroupInsertTagAsTagGroup( Infinity(), bandTg )

image bkg1 := EELSFitPowerLawBackground( spec, bandsTgs )
bkg1.ShowImage()

tg = bkg1.ImageGetTagGroup() // Fit parameters(in eV) from the BKG spectrum Tags

tg.TagGroupGetTagAsNumber( "Processing:[0]:Parameters:Fit Parameters:a0:value", a0 )
tg.TagGroupGetTagAsNumber( "Processing:[0]:Parameters:Fit Parameters:a0:sigma", sa0 )
tg.TagGroupGetTagAsNumber( "Processing:[0]:Parameters:Fit Parameters:a1:value", a1 )
tg.TagGroupGetTagAsNumber( "Processing:[0]:Parameters:Fit Parameters:a1:sigma", sa1 )

Result("\n Fitting BKG parameters. First time ") 
Result("\n    a0 : " + a0)
Result("\n   sa0 : " + sa0)
Result("\n    a1 : " + a1)
Result("\n   sa1 : " + sa1)

// Second Time........I get a differetn result if a repeat the fit-region definition

bandTg.TagGroupSetTagAsFloat( "start", 600 ) // calibrated value! 
bandTg.TagGroupSetTagAsFloat( "end", 800 )   // calibrated value!
bandsTgs.TagGroupInsertTagAsTagGroup( Infinity(), bandTg )

image bkg2 := EELSFitPowerLawBackground( spec, bandsTgs )
bkg2.ShowImage()

tg = bkg2.ImageGetTagGroup() // Fit parameters(in eV) from the BKG spectrum Tags

tg.TagGroupGetTagAsNumber( "Processing:[0]:Parameters:Fit Parameters:a0:value", a0 )
tg.TagGroupGetTagAsNumber( "Processing:[0]:Parameters:Fit Parameters:a0:sigma", sa0 )
tg.TagGroupGetTagAsNumber( "Processing:[0]:Parameters:Fit Parameters:a1:value", a1 )
tg.TagGroupGetTagAsNumber( "Processing:[0]:Parameters:Fit Parameters:a1:sigma", sa1 )

Result("\n")
Result("\n Fitting BKG parameters. Second time ")
Result("\n    a0 : " + a0)
Result("\n   sa0 : " + sa0)
Result("\n    a1 : " + a1)
Result("\n   sa1 : " + sa1)

bandsTgs.TagGroupOpenBrowserWindow( "BandTags", 0 ) // To show the Tag structure
BmyGuest

我认为您需要对DigitalMicrograph中标签进行更全面的描述


意识到

存在用于简单脚本的简化包装器命令

image img := RealImage( "", 4, 10 )
SetNumberNote( img, "TagPath:With:SubTag:TagName", 12.2 )
DeleteNote( img, "TagPath:With:SubTag:TagName")

但是,底层对象是TagGroup带有许多特定命令对象。当然,您始终也可以使用完整的对象来实现简单的操作


接下来,重要的是要知道

TagGroup之间有区别TagList

两者都是TagGroup表面上的对象,但是某些命令将仅对其中一个起作用。TagList具有索引条目,TagGroup具有带标签的条目。

TagGroup与TagList

当您开始插入组/列表或要从它们中删除时,两者的区别变得很重要,并且在遍历结构时也变得很重要。

还要注意,TagGroup条目是按字母数字顺序排序的,而TagList条目是按索引排序的。

一些例子:

  • 表单命令TagGroupInsertTagAs... TagGroupGetIndexedTagAs...仅在TagLists

  • 形式上的建议TagGroupSetTagAs... TagGroupGetTagAs...只适用于TagGroups

  • 要从中删除标签,TagList您需要使用TagGroupDeleteTagWithIndex

  • 要从中删除标签,TagGroup您需要使用TagGroupDeleteTagWithLabel

有时,您可以通过将a中的索引放在标签之间作为标签路径来将其TagList用作标签解决此问题但是在某些情况下,您需要使用'TagGroup'和'TagList'的区别[]


有多种删除标签的选项

  • TagGroupDeleteAllTags()删除TagGroupTagList的“所有”子标签-但不删除组/列表条目本身。

  • TagGroupDeleteTagWithLabel()删除标签指定TagGroup中的指定标签。

  • TagGroupDeleteTagWithIndex()删除索引指定TagList中的指定标签注意,这将更改其他条目的索引!


下面的代码根据上图创建tagGroup:

tagGroup rootTg = NewTagGroup()
tagGroup tg = NewTagGroup()
tagGroup tl = NewTagList()

tg.TagGroupSetTagAsString( "value", "I am a string tag")
tg.TagGroupSetTagAsString( "2", "My tag at #2")
tg.TagGroupSetTagAsString( "Name", "Hello")
tg.TagGroupSetTagAsString( "1", "My tag at #1")

tl.TagGroupInsertTagAsString( 0, "String tag #1" )
tl.TagGroupInsertTagAsString( 1, "String tag #2" )
tl.TagGroupInsertTagAsString( 2, "String tag #3" )
tl.TagGroupInsertTagAsString( 1, "String tag #4" )

rootTg.TagGroupSetTagAsTagGroup( "TagGroup", tg )
rootTg.TagGroupSetTagAsTagGroup( "TagList", tl )

rootTg.TagGroupOpenBrowserWindow( "TagGroup example", 0 )

要删除“名称:Hello”标签(已排序组中的第3个标签),我们将使用以下三个之一:

rootTg.TagGroupDeleteTagWithLabel( "TagGroup:Name" )
tg.TagGroupDeleteTagWithLabel( "Name" )
tg.TagGroupDeleteTagWithIndex( 2 )

要删除TagList中的第三个条目,我们将使用以下三个之一:

rootTg.TagGroupDeleteTagWithLabel( "TagList:[2]" )
tl.TagGroupDeleteTagWithLabel( "[2]" )
tl.TagGroupDeleteTagWithIndex( 2 )

要删除整个TagList,我们将使用

rootTg.TagGroupDeleteTagWithLabel( "TagList" )

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Java中删除HTML标签

如何在Thymeleaf条件代码块中删除标签跨度,空格和换行符?

如何在Bootstrap单选按钮组中制作具有相同高度的标签和值

如何在npm中删除dist标签?

如何在Chartjs Radar中删除网格线和网格标签?

如何在视图中从Odoo 11中的组标签中删除标签

如何删除标签列表中的最后一个逗号?

如何从html文件中删除所有脚本标签

如何在Java脚本ES6中用方括号替换大括号和关闭大括号并删除json数组上的标签

如何在Android Studio中删除标签

如何在Flutter中为下拉标签和下拉列表文本设置不同的颜色?

如何删除带有biblatex的书目列表中的标签?

如何从使用BeautifulSoup抓取的列表中删除标签?

如何选择从动态列表中删除特定的Li标签?

Gmail脚本-标签添加和删除标签

如何从组中删除标签所占用的默认空间?

如何在Chrome 33的新标签页中删除Google搜索和较小的图块?

如何在Xcode 5中重置按钮/标签

如何在Java中从HTML删除<a>标签和链接文本

如何在钛合金的标签组中重新加载标签

如何从Magento网站商店的源代码中删除脚本标签?

如何在xml2js中删除和更新XML标签

删除脚本中的HTML标签

如何删除html标签和head标签之间的iframe标签?

从标签列表中删除引用时,如何从引用(cq:tags)中删除标签?

如何在 Thymeleaf 中通过内联脚本添加脚本标签?

如何在notepad ++中删除除html标签和此HTML标签内容之外的所有内容?

如何在 dsp param 标签中传递 javascript/jQuery 脚本

如何在电源外壳中删除标签@{}