Как преобразовать тип спектра («Спектр» -> «Преобразовать данные в») - PullRequest
1 голос
/ 09 марта 2020

Есть ли способ, которым можно преобразовать тип спектра, например, в EELS, с помощью сценариев DM? Этот скриншот представляет то, что я имею в виду. Я хотел бы импортировать набор данных с использованием интерфейса GMS 3.4 Python, а затем превратить его в набор данных EELS для дальнейшей обработки (в идеале без необходимости вручную взаимодействовать со скриншотированной строкой меню).

enter image description here

Ответы [ 2 ]

1 голос
/ 09 марта 2020

Да, есть. «Тип» - это просто тег метаданных Tags, который можно легко установить с помощью команд TagGroup.

Однако есть одно осложнение: данные «регистрируются» сами DM, когда он впервые появляется. Изменение мета-тегов вручную не меняет эту регистрацию. (Команда меню, однако, делает.) Таким образом, вы увидите эффект изменения типа только тогда, когда:

  • Сохраните, закройте и снова откройте данные
  • Вы клонируете данные, выбросьте оригинал и отобразите клон

Второй вариант может вызвать проблемы с привязкой данных, так как уникальный идентификатор изображения данных создается недавно.


Пример использования первого метода (требуется сохранение и загрузка):

image img:=GetFrontImage()
TagGroup tg = img.ImageGetTagGroup()
tg.TagGroupSetTagAsString("Meta Data:Signal","EELS")
imageDocument doc = img.ImageGetOrCreateImageDocument()
doc.ImageDocumentSave(0)
string path = doc.ImageDocumentGetCurrentFile()
doc.ImageDocumentClose(0)
doc = NewImageDocumentFromFile(path)
doc.ImageDocumentShow()
0 голосов
/ 09 марта 2020

Альтернативный вариант - полагаться на команду меню. Если он присутствует, вы можете просто использовать команду ChoseMenuItem() для его вызова. Однако эта команда будет доступна в пользовательском интерфейсе только в том случае, если данные, которые вы хотите изменить, находятся на переднем крае (т. Е. Не в окне скрипта!). С помощью скрипта вам нужно убедиться, что это так. Подойдет простое ShowWindow().

image img:=GetFrontImage()
img.ShowImage()
if ( !ChooseMenuItem("Spectrum","Convert Data To","None") )
    Throw( "Conversion to none failed.")
if ( !ChooseMenuItem("Spectrum","Convert Data To","EDS") )
    Throw( "Conversion to none failed.")

Недостаток этого решения: вы получите пользовательские подсказки.

...