Здравствуйте. Возникла необходимость проводить обработку ИК спектров в Origin, хотя раньше для этого использовал в основном то с чем идет прибор т.е. либо Омник, либо Опус.
Так вот, появилось несколько вопросов. 1. Есть несколько спектров которые нужно поместить на одном графике, для сравнения, интенсивность полос у них несколько отличается, как можно в Origin их нормировать?
2. Как можно делать коррекцию базовой линии?
Версия Origin 9.
Документацию посмотрел, но таки не нашел ответа на свои вопросы.
Обработка ИК спектров в Origin
Re: Обработка ИК спектров в Origin
1. Зависит от Вашего желания. Или выясните, как нормировались кривые в приборном софте. Простейший вариант: <workbook>_<dataset>=<workbook>_<dataset>/max(<workbook>_<dataset>)
Например, если workbook называется Book1, а dataset помещен в колонку A, то Book1_A=Book1_A/max(Book1_A). Или если нормированный спектр должен быть сохранен в новом dataset-е (например, в колонке B), то Book1_B=Book1_A/max(Book1_A)
А вообще, смотрите Х-функции normalize, cnormalize, rnormalize, vnormalize.
2. Коррекция базовой линии "спрятана" в Peak Analyzer-е и вполне задокументирована.

Например, если workbook называется Book1, а dataset помещен в колонку A, то Book1_A=Book1_A/max(Book1_A). Или если нормированный спектр должен быть сохранен в новом dataset-е (например, в колонке B), то Book1_B=Book1_A/max(Book1_A)
А вообще, смотрите Х-функции normalize, cnormalize, rnormalize, vnormalize.
2. Коррекция базовой линии "спрятана" в Peak Analyzer-е и вполне задокументирована.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: Обработка ИК спектров в Origin
В прилагаемом софте всё как нельзя просто. И в омнике и в опусе нормирование можно сделать в графическом варианте, банально растянув или наоборот ужав спектр курсором выделив предварительно нужный спектр . Можно конечно и умножить спектр на константу и в итоге получить тот же результат. Затем это всё банально вставить в ворд копипастом. Но есть минус, в отличие от ориджина нельзя править это в офисе. В принципе это единственное почему мне нужен ориджин, т.е. для возможности править на лету.bf109xxl писал(а):1. Зависит от Вашего желания. Или выясните, как нормировались кривые в приборном софте. [/img]
То что вы написали, я понял смутно (относительно нормирования), то что вы написали как простейший вариант, это где надо вводить) ?
Re: Обработка ИК спектров в Origin
Origin - это по сути среда программирования для матобработки данных. В нем поддерживаются 2 макроязыка - LabTalk и OriginC. Кроме того, реализованы X-функции (пре-программированные процедуры со специальным интерфейсом), которые расширяют функционал LabTalk-а, сильно упрощая выполнение многих сложных операций.
Использовать Origin для обработки спектров без программирования хотя бы на LabTalk-е - это что-то вроде забивания гвоздей микроскопом.
Команды LabTalk-а вводятся в Command Window, которое вызывается/убирается нажатием клавиш Alt-3. Команды, которые я написал в предыдущем постинге, нужно вводить туда. Многие команды и конструкции для доступа к данным работают с активной таблицей/графическим окном, нужно следить за передачей "активности" окна при выполнении скриптов (программ на макроязыке, в данном случае - LabTalk-е).
Пример нормализации. У вас есть таблица - допустим, это будет первый "лист" Sheet1 в workbook Book1 - которая содержит одну колонку со значениями длины волны (lambda) и несколько колонок со спектрами - Spc1, Spc2, ... Предположим, что нормализованные спектры должны храниться в отдельных (новых) колонках - например, Spc1n, Spc2n,...
Можно нормализовать кривые прямо на графике с помощью cnormalize - в хелпе все подробно описано, принципиальной разницы с тем, что я написал для таблицы, нет. А можно каждый спектр отображать в отдельном слое на графике, слои "привязать" к первому, сделав одинаковой ось X, а вот масштаб по оси Y у каждого слоя делать свой, взяв максимум и минимум по какому-либо критерию. Тики и шкалы по оси Х отобразить только для первого слоя, по оси Y - не отображать вообще. По сути это "скрытая" нормализация, в которой вместо пересчета всех значений спектра производится расчет лишь максимума-минимума. Их можно хранить в таблице, а слои рисовать в цикле - там будет пара-тройка команд.
Не поленитесь, разберитесь с LabTalk-ом. Этот несколько эзотерический язык очень компактен. Многие операции проще и быстрее осуществить набором короткой команды в Command Window, чем многократным кликаньем мышкой. Да, и еще: наиболее эффективно Origin можно использовать только тогда, когда колонки содержат однородные данные ("векторы"). То есть, не стОит переносить "экселевский" стиль таблиц в Origin.
Использовать Origin для обработки спектров без программирования хотя бы на LabTalk-е - это что-то вроде забивания гвоздей микроскопом.
Команды LabTalk-а вводятся в Command Window, которое вызывается/убирается нажатием клавиш Alt-3. Команды, которые я написал в предыдущем постинге, нужно вводить туда. Многие команды и конструкции для доступа к данным работают с активной таблицей/графическим окном, нужно следить за передачей "активности" окна при выполнении скриптов (программ на макроязыке, в данном случае - LabTalk-е).
Пример нормализации. У вас есть таблица - допустим, это будет первый "лист" Sheet1 в workbook Book1 - которая содержит одну колонку со значениями длины волны (lambda) и несколько колонок со спектрами - Spc1, Spc2, ... Предположим, что нормализованные спектры должны храниться в отдельных (новых) колонках - например, Spc1n, Spc2n,...
Код: Выделить всё
win -a Book1; //переключаемся в workbook Book1
page.active=1; //на всякий случай устанавливаем активным первый "лист" (worksheet) - вдруг workbook их содержит несколько
nSpc=wks.nCols-1; //число спектров
loop (iSpc,1,nSpc) {wks.addCol(Spc$(iSpc)n);} //добавляем колонки, куда сохраним нормализованные спектры
rnormalize irng:=2:$(nSpc+1) method:=norm orng:=$(nSpc+2):$(2*nSpc+1);//вызов Х-функции нормализации в заданном диапазоне
//irng задает диапазон входных данных, в данном случае использована запись с номерами колонок - со 2й по последнюю c исходным спектр
//колонка 1 содержит значения длины волны
//method определяет способ нормализации - в данном случае с использованием нормы вектора (который и записан в колонке)
//orng задает диапазон выходных данных. В данном случае это колонки SpcXn, где X=1...nSpc
Не поленитесь, разберитесь с LabTalk-ом. Этот несколько эзотерический язык очень компактен. Многие операции проще и быстрее осуществить набором короткой команды в Command Window, чем многократным кликаньем мышкой. Да, и еще: наиболее эффективно Origin можно использовать только тогда, когда колонки содержат однородные данные ("векторы"). То есть, не стОит переносить "экселевский" стиль таблиц в Origin.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: Обработка ИК спектров в Origin
Спасибо за развернутый ответ! Попробую реализовать свои идеи без "забивания гвоздей микроскопом").
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 11 гостей