Вопрос по Origin

физико-химические методы исследования, методики и другие вопросы аналитической химии
analytical chemistry, analysis and techniques for professionals
Ответить
Аватара пользователя
AlexKsen
Сообщения: 602
Зарегистрирован: Пн мар 07, 2011 8:43 am

Вопрос по Origin

Сообщение AlexKsen » Пт фев 01, 2019 1:43 pm

Добрый день.

Имеется массив данных (60 спектров), Х-одинаковые для всех, Y-меняется. Подскажите, есть ли в возможность Origin автоматически импортировать сразу все графики на один лист.

Аватара пользователя
Shorku
Сообщения: 1075
Зарегистрирован: Вт дек 13, 2011 2:17 pm

Re: Вопрос по Origin

Сообщение Shorku » Пт фев 01, 2019 11:25 pm

Есть в FAQ ориджина:

Код: Выделить всё

2.73 FAQ-809 How do I import multiple ASCII files directly as the same matrix sheet and different objects?

Last Update: 1/3/2016

A matrix object in a matrix sheet is similar to a column in a worksheet. To import multiple ASCII files directly as the same matrix sheet and different objects, you will need to set Import Mode to Start New Columns in the impASCII dialog. 
Make quantum chemistry, not war

Аватара пользователя
AlexKsen
Сообщения: 602
Зарегистрирован: Пн мар 07, 2011 8:43 am

Re: Вопрос по Origin

Сообщение AlexKsen » Пт фев 08, 2019 7:27 pm

Спасибо.
Screenshot_1.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.

bf109xxl
Сообщения: 150
Зарегистрирован: Вт авг 16, 2005 10:27 pm

Re: Вопрос по Origin

Сообщение bf109xxl » Чт мар 21, 2019 12:33 pm

AlexKsen писал(а):
Пт фев 01, 2019 1:43 pm
импортировать сразу все графики на один лист.
На всякий случай напомню, что Origin - это среда программирования. :shuffle: :wink: И иногда коротеньким скриптом можно сэкономить несколько кликов мышкой. :mrgreen: Вот пример кода для версии 8.6 (проверял на прилагавшихся к версии 9.6 примерах):

Код: Выделить всё

string path$="c:\Program Files\OriginLab\Origin2019\Samples\Batch Processing"; /* data directory */
findfiles ext:=csv /* get the list of csv-files and store it in fname$ string variable, uses path$ by default */
nFiles=fname.GetNumTokens(CRLF); /* number of files to import */
impasc /* X-function to import data from ASCII-files, uses fname$ by default*/
	options.ImpMode:=1 /* import data from the subsequent files into new columns */
	options.Sparklines:=0 /* no sparklines */
	options.Hdr.MainHdrLns:=0 /* no main header */
	options.Hdr.SubHdrLns:=2 /* two sub-header lines */
	options.Hdr.Units:=2 /* column units from the second sub-header line */
	options.Hdr.LNames:=1 /* column long name from the first sub-header line */
	options.FileStruct.DataStruct:=1 /* use delimiter to separate values */
	options.FileStruct.Delimiter:=1 /* comma as data delimiter */
	options.FileStruct.NumericSeparator:=3 /* point as numeric separator */
	options.Names.FNameToColComm:=1 /* file name to column comment */
	options.Names.AutoNames:=0 /* no auto renames */
	options.Names.FNameToBk:=0 /* don't rename workbook */
	options.Names.FNameToSht:=0; /* don't rename data sheet */

loop(iXC, 3, nFiles+1) {
  delete col($(iXC)); /* delete redundant columns */
}

col(A)[C]$=""; /* clear unnecessary comment in the first column */
loop(iCol,2,nFiles+1) { /* only file name as column comment */
  string strComm$ = col($(iCol))[C]$;
  col($(iCol))[C]$=strComm.GetFileName(1)$; /* without extension */
}
Для версии 9.6 (которая 2019) будет немного по-другому:

Код: Выделить всё

string path$="c:\Program Files\OriginLab\Origin2019\Samples\Batch Processing"; /* каталог с файлами данных */
findfiles ext:=csv /* составления списка имен файлов c расширением "csv" для импорта с помощью X-функции, результат - в переменной fname$ */
nFiles=fname.GetNumTokens(CRLF); /* количество импортируемых файлов */
impasc  /* X-функция импорта файлов, перечисленных в fname$ */
	options.FirstMode:=3 /* открываем новое окно (Workbook) данных при импорте первого файла */
	options.Mode:=1 /* импортируем все последующие файлы в новые колонки */
	options.Sparklines:=0 /* не создаем мини-графиков в таблице */
	options.Headers.MainHeaderLines:=0 /* основной заголовок отсутствует */
	options.Headers.SubHeaderLines:=2 /* две строки подзаголовка */
	options.Headers.Unit:=2 /* единицы измерений из второй строки подзаголовка */
	options.Headers.LongName:=1 /* расширенное наименование колонки из первой строки подзаголовка */
	options.FileStruct.DataStruct:=1 /* файл с разделителями */
	options.FileStruct.Delimiter:=1 /* разделитель - запятая */
	options.FileStruct.NumSep:=3 /* разделитель дробной и целой частей - точка */
	options.Names.FNameToColComm:=1 /* название файла в комментарии колонки */
	options.Names.AutoNames:=0 /* не переименовываем ничего автоматически */
	options.Names.FNameToBk:=0 /* не переименовываем  workbook */
	options.Names.FNameToSht:=0; /* не переименовываем sheet */

loop(iXC, 3, nFiles+1) {
  delete col($(iXC)); /* удаляем повторяющиеся колонки с длиной волны */
}

col(A)[C]$=""; /* убираем лишний комментарий в колонке длины волны */
Другие версии не проверял по причине неиспользования оных. Пример кода дан для конкретных файлов, под свои задачи его нужно слегка модифицировать - указать каталог со своими данным, структуру заголовка файла данных, разделители и т.п. Код удобен тем, что его можно завести на кнопку (например, с использованием UIM).

LazerG
Сообщения: 1
Зарегистрирован: Ср июн 26, 2019 3:50 pm

Re: Вопрос по Origin

Сообщение LazerG » Ср июн 26, 2019 3:56 pm

Подскажите, как получить данные из integ1.area, чтобы дальше с ним работать (как с переменной)? Пишу

Код: Выделить всё

integ1 iy:=Col(7) 
получаю набор, где в том числе integ1.area, но вот

Код: Выделить всё

integ1.area  iy:=Col(7)

выдает ошибку.

bf109xxl
Сообщения: 150
Зарегистрирован: Вт авг 16, 2005 10:27 pm

Re: Вопрос по Origin

Сообщение bf109xxl » Пт июн 28, 2019 3:20 pm

Код: Выделить всё

integ1 iy:=Col(7) area:=dArea1;
dArea1=;
dArea2=integ1.area;
dArea2=;

Rupreht
Сообщения: 369
Зарегистрирован: Пт сен 12, 2008 9:34 pm

Re: Вопрос по Origin

Сообщение Rupreht » Пн июл 15, 2019 6:26 pm

bf109xxl писал(а):
Чт мар 21, 2019 12:33 pm
На всякий случай напомню, что Origin - это среда программирования. И иногда коротеньким скриптом можно сэкономить несколько кликов мышкой.
А есть какой либо источник готовых скриптов?

bf109xxl
Сообщения: 150
Зарегистрирован: Вт авг 16, 2005 10:27 pm

Re: Вопрос по Origin

Сообщение bf109xxl » Пн июл 15, 2019 10:53 pm

В последней версии при инсталляции есть каталог с примерами, вот его содержимое:
2d_bin_fit.ogs
autofit.ogs
ave_curves.ogs
ave_traces.ogs
embed_graphs.ogs
extract_plot.ogs
fft_peaks.ogs
filetypes.ogs
loaddsc.ogs
Loop_wks.opj
MyStatistics.opx
pick_bad_data.ogs
plotdsc.ogs
reduce_data.ogs
Reimport File Using Timer.opj
summarize_data.ogs
ИМХО, по ним можно многому научиться. У ориджинлэбов хелпы не всегда информативны, поэтому на примерах учить будет проще. В некоторых случаях (например, работа с ADO в OriginC, если хочешь данные сразу с сервера в таблицы закидывать) - вообще только на примерах можно найти информацию. Плюс, есть форум на сайте производителя. Там всегда можно получить дельный совет, сам нередко пользовался и пользуюсь.

Возможность автоматизации интерактивной обработки данных - это самая сильная сторона Ориджина. Но, похоже, эту истину понимают очень немногие юзеры, да и, похоже, не все сотрудники самой Ориджинлэб. :) Они все упирают на пакетную обработку и создание отчетов, хотя тут, ИМХО, у Ориджина шансов мало. Но это не более, чем хамбл опиньон.

Ответить

Вернуться в «аналитическая химия / analytical chemistry»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 21 гость