Ресурсы

Некоторые небольшие блоки данных, например, карты псевдоцвета или предустановки импорта необработанных данных, сохраняются в отдельных файлах, которые все вместе называются файлами ресурсов. Gwyddion ищет ресурсы в двух разных местах: системном и индивидуальном для данного пользователя.

Системные ресурсы устанавливаются вместе с программой и их нельзя менять. Обычно они расположены в каталоге вроде /usr/share/gwyddion (Unix), Program Files\Gwyddion (MS Windows) или другом, который определяется GWYDDION_DATADIR.

Ресурсы пользователя расположены в его каталоге. Это обычно ~/.gwyddion (Unix) или Documents and Settings\gwyddion (MS Windows).

Все файлы ресурсов являются простыми текстовыми файлами которые могут легко быть прочитаны и изменены текстовым редактором или пересланы другим пользователям (если они скопированы или отредактированы вручную, необходимо перезапустить Gwyddion чтобы он их заметил). В большинстве случаев в файлах могут быть только символы ASCII. Если там допустим международный текст, то он должен быть в кодировке UTF-8. Численные значения представлены в стандартном формате POSIX, т.е. с десятичной точкой независимо от того, какой разделитель обычно используется в языке пользователя.

Ресурсы упорядочены в подкаталогах в соответствии с их типом, т.е. градиенты псевдоцвета находятся в подкаталоге gradients. Имя файла определяет название ресурса – градиент Gray находится в файле gradients/Gray. Модули могут определять свои собственные имена ресурсов; описанные здесь типы наиболее важны, но их список может быть неполон.

Каждый файл ресурсов имеет одну и ту же структуру. Он начинается со строки, определяющей тип ресурса :

Gwyddion resource GwyGradient

где GwyGradient – имя типа в системе типов (что является достаточно низкоуровневой подробностью, но так обстоит дело), за которой следуют именованные параметры в форме

имя значение

и данные ресурса. Некоторые ресурсы могут содержать только именованные параметры, другие только данные.

Градиенты

Градиенты. т.е. карты псевдоцвета, находятся в каталоге gradients, они определяются типом GwyGradient и содержат только данные. Они могут быть отредактированы в программе с использованием редактора градиентов.

Данные градиента состоят из строк, соответствующих отдельным точкам градиента:

положение красный зелёный синий альфа

Положение определяет, где цвет, заданный с помощью четырёх составляющих красный, зелёный, синий и альфа будет находиться на отрезке [0, 1], где 0 соответствует началу отрезка (и градиента), а 1 его концу. Цвет интерполируется линейно между заданными точками.

Положения должны образовывать растущую последовательность от 0 до 1 (т.е. минимальное число точек цвета – 2). Диапазон компонентов цвета также [0, 1]. Следует отметить, что значение альфа, соответствующее непрозрачности не используется и должно быть задано как 1 (полностью непрозрачному).

Например, стандартный градиент Red переходящий от чёрного (0 0 0) к красному (1 0 0) и затем к белому (1 1 1) определяется следующим образом:

Gwyddion resource GwyGradient
0.0 0 0 0 1
0.5 1 0 0 1
1.0 1 1 1 1

Материалы OpenGL

Материалы OpenGL находятся в каталоге glmaterials, определяются по типу GwyGLMaterial и содержат только данные. Они могут редактироваться в программе с использованием редактора материалов OpenGL.

Данные материала состоят из четырёх строк RGBA, подобно градиентам, которые соответствуют четырём компонентам материала OpenGL в следующем порядке:

  1. окружающий,
  2. рассеянный,
  3. отраженный,
  4. излучаемый.

См. раздел Редактор материалов OpenGL, где описаны отдельные компоненты. За ними следует строка, содержащая значение блеска как число из интервала [0, 1].

Следует отметить, что компонент, отвечающий за излучение, хоть он и пишется и читается в Gwyddion, но на текущий момент не используется для трёхмерного просмотра. Рекомендуется установить его в 0 0 0 1, т.е. чёрный.

Например, стандартный материал Red-Rubber с очень тёмным красным цветом окружающего света, серым диффузным рассеянием, красным зеркальным отражением и низким значением блеска определяется следующим образом:

Gwyddion resource GwyGLMaterial
0.05 0.0  0.0  1.0
0.5  0.4  0.4  1.0
0.7  0.04 0.04 1.0
0.0  0.0  0.0  1.0
.078125

Значения зёрен

Значения зёрен находятся в каталоге grainvalues, определяются типом GwyGrainValue и содержат только именованные параметры. Они могут использоваться для определения дополнительных величин зёрен, которые появляются в группе Пользовательские в функциях анализа зёрен. В то время, когда этот текст пишется, в программе нет редактора для этих величин и их нужно создавать вручную.

Именованные параметры сведены в следующую таблицу:

ПараметрНеобходимоТипОписание
symbolнеобходимоидентификаторИдентификатор, чтобы использовать в других выражениях (но см. ниже). Он должен быть правильным идентификатором, состоящим из букв латинского алфавита ASCII, чисел и знаков подчёркивания, начинающихся с буквы.
expressionнеобходимосвободная формаФормула для расчёта этой величины из других величин зёрен. Общий синтаксис выражений описан в разделе Выражения.
symbol_markupопциональносвободная формаСпециальные строки, которые могут включать в себя греческие буквы, надстрочные и подстрочные символы могут быть описаны языком разметки Pango. Это используется для представления в программе и, хотя это является опциональным, рекомендуется хотя бы объявлять его так же, как и symbol.
power_xyопциональноцелоеСтепень, в которой латеральный размер входит в величину. Например, эта величина равна 1 для размеров зёрен, 2 для площадей и объёмов. Значение по умолчанию 0.
power_zопциональноцелоеСтепень, в которой размерность «высоты» входит в величину. Например, равно 1 для значений и объёмов, 0 для размеров в плоскости и площадей. Значение по умолчанию 0.
same_unitsопционально0 или 1Устанавливается в 1, если величина имеет смысл только если пространственные размеры и «высоты» являются одинаковыми физическими величинами. Например, это требуется для площади поверхности. Значение по умолчанию 0.
is_angleопционально0 или 1Устанавливается в 1, если величина является углом. Выражение должно рассчитывать углы в радианах. Однако, если задана переменная is_angle, Gwyddion будет знать что значение можно перевести в градусы для представления его пользователю. Значение по умолчанию 0.

В настоящее время заданные пользователем величины зёрен не могут использовать другие заданные пользователем величины зёрен чтобы избежать круговых зависимостей. Встроенные величины зёрен перечислены ниже:

СимволГруппаНазвание
x_cПоложениеПоложение центра по x
y_cПоложениеПоложение центра по y
z_minValueМинимальное значение
z_maxValueМаксимальное значение
z_mValueСреднее значение
z_medValueСрединное значение
b_minValueМинимальное значение на границе
b_maxValueМаксимальное значение на границе
A_0ПлощадьПлощадь проекции
A_sПлощадьПлощадь поверхности
a_eqПлощадьСторона эквивалентного квадрата
r_eqПлощадьРадиус эквивалентного диска
A_hПлощадьПлощадь выше половинной высоты
A_cПлощадьПлощадь выпуклой оболочки
V_0ОбъёмОбъём между нулевой плоскостью и поверхностью
V_minОбъёмОбъём между поверхностью и плоскостью, проходящей через минимум зерна
V_LОбъёмОбъём между поверхностью и фоном, вычисленным по Лапласу
L_b0ГраницаДлина границы проекции
D_minГраницаМинимальный ограничивающий размер
phi_minГраницаНаправление минимального ограничивающего размера
D_maxГраницаМаксимальный ограничивающий размер
phi_maxГраницаНаправление максимального ограничивающего размера
R_iГраницаМаксимальный радиус вписанного диска
x_iГраницаПоложение центра по x максимального вписанного диска
y_iГраницаПоложение центра по y максимального вписанного диска
R_eГраницаМинимальный радиус описанной окружности
x_eГраницаПоложение центра по x минимальной описанной окружности
y_eГраницаПоложение центра по y минимальной описанной окружности
R_mГраницаСредний радиус
thetaУклонНаклон θ
phiУклонНаклон φ
x_0КривизнаПоложение центра кривизны по x
y_0КривизнаПоложение центра кривизны по y
z_mКривизнаЗначение z центра кривизны
kappa_1КривизнаКривизна 1
kappa_2КривизнаКривизна 2
phi_1КривизнаУгол кривизны 1
phi_2КривизнаУгол кривизны 2
a_e1МоментБольшая полуось эквивалентного эллипса
a_e2МоментМалая полуось эквивалентного эллипса
phi_e1МоментОриентация эквивалентного эллипса

Например, новая величина зёрен Height, измеряющая высоту зерна как разность между его максимальным и минимальным значением, может быть задана следующим образом:

Gwyddion resource GwyGrainValue
symbol dz
symbol_markup Δz
power_xy 0
power_z 1
expression z_max - z_min

Предустановки импорта необработанных файлов

Предустановки импорта необработанных файлов хранятся в каталоге rawfile, они определяются типом GwyRawFilePreset и содержат только именованные параметры. Они обычно создаются и изменяются в редакторе предустановок в модуле импорта необработанных файлов.

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

ПараметрТипОписание
xres, yresцелоегоризонтальный и вертикальный размер
xreal, yrealчислофизические размеры в единицах, заданных xyexponent и xyunit
xyexponentкратное трёмстепень 10, на которую нужно умножить xreal и yreal
xyunitстрокаосновные единицы измерения xreal и yreal, т.е. "m"
zscaleчислошаг единиц в значениях
zexponentкратное трёмстепень 10, на которую нужно умножить zscale
zunitстрокаосновные единицы zscale
havemissing0 или 10 означает что обработка отсутствующих значений отключена, 1 что включена
missingvalueчислоспециальное замещающее значение, которое обозначает отсутствие данных
формат0 или 10 означает двоичный, 1 - текстовый
builtin (двоичный)целоевстроенный идентификатор формата данных, см. ниже
offset (двоичный)целоесмещение данных в файле, в байтах
size (двоичный)целоеразмер значения данных, в байтах
skip (двоичный)целоечисло бит, которое нужно пропустить после каждого значения
rowskip (двоичный)целоечисло дополнительных бит, которое нужно пропустить после каждой строки
sign (двоичный)0 или 10 означает без знака, 1 - со знаком
revsample (двоичный)0 или 11 означает инверсию битов в значениях
revbyte (двоичный)0 или 11 означает обратный порядок бит в байтах
byteswap (двоичный)целоешаблон замены байтов
lineoffset (текстовый)целоечисло строк, которые нужно пропустить перед чтением данных
skipfields (текстовый)целоечисло полей, которое нужно пропустить вначале каждой строки
delimiter (текстовый)строкаразделитель полей, пустая строка означает произвольный пробельный символ
decomma (текстовый)0 или 11 если десятичный разделитель запятая, 0 для точки

Следует отметить. что при выборе встроенного двоичного формата, т.е. ненулевой переменной builtin, означает двоичный формат до некоторой степени. Это означает. что опции size, revbyte и sign игнорируются, поскольку они используются только для подробного задания пользовательских форматов. Доступные форматы перечислены в нижеприведённой таблице:

ТипОписание
0Определённый пользователем
18-битное целое со знаком
28-битное целое без знака
316-битное целое со знаком
416-битное целое без знака
532-битное целое со знаком
632-битное целое без знака
7IEEE float (число с плавающей точкой, одинарной точности)
8IEEE double (число с плавающей точкой с двойной точностью)
964-битное целое со знаком
1064-битное целое без знака