FITS

Спецификация

FITS означает Flexible Image Transport System (гибкая система передачи изображений) и является стандартным форматом астрономических данных, используемым профессиональными учёными, например в NASA. FITS это больше, чем просто формат изображений (как, например, JPG или TIFF). Он специально разработан для хранения научных данных, состоящих из многомерных массивов.

Файл в формате FITS состоит из одного или более заголовков и наборов данных (HDU). На первый HDU ссылаются как "первичный HDU" или "первичный массив". Поддерживаются пять первичных типов данных: 8-разрядные байты без знака, 16- и 32-разрядные целые числа со знаком, а также 32- и 64-разрядные числа с плавающей запятой одинарной и двойной точности. Формат FITS также может хранить 16- и 32-разрядные целые числа без знака.

Каждый блок заголовка состоит из любого количества ключевых слов длиной 80 символов, имеющих общий вид:

KEYNAME = value / comment string

Ключевые слова могут быть длиной до 8 символов и содержать только заглавные буквы, цифры 0-9, дефис и символ подчёркивания. За ключевым словом в столбцах 9-10 записи (обычно) следует знак равенства и пробел (= ), за которым находится значение ключевого слова. Последнее может быть целым числом, числом с плавающей запятой, строкой символов (заключённой в одинарные кавычки) или логическим значением (буква T или F).

Последним ключевым словом в заголовке всегда является END, не имеющее полей значения или комментария.

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

SIMPLE  =                    T / file does conform to FITS standard
BITPIX  =                   16 / number of bits per data pixel
NAXIS   =                    2 / number of data axes
NAXIS1  =                  440 / length of data axis 1
NAXIS2  =                  300 / length of data axis 2

Примечание

Siril не поддерживает 64 разрядные файлы FITS. Они читаются программой, но конвертируются в 32-разрядные файлы.

Сжатие

Сжатие это способ уменьшить размер изображения. Существует много методов сжатия, в зависимости от типа используемого изображения. Сжатие может быть с потерей, в случае JPEG, или без потери качества, как это предлагает PNG.

В Siril присутствует возможность работы со сжатыми файлами FITS. За счёт более длительного времени вычислений, размер изображений может быть значительно уменьшен. Siril предлагает несколько алгоритмов сжатия:

  • Rice: Алгоритм Райса простой и очень быстрый

  • GZIP 1: Алгоритм gzip используется для упаковки и распаковки пикселей изображения. Gzip это алгоритм сжатия, используемый свободной утилитой GNU с таким же названием.

  • GZIP 2: Байты в массиве значений пикселей изображения перетасовываются в порядке убывания значимости перед сжатием с помощью алгоритма gzip. Обычно это особенно эффективно при сжатии массивов с плавающей запятой.

С этими алгоритмами связана одна опция, Уровень квантования:

В то время как изображения в формате с плавающей точкой могут быть сжаты без потерь (используя gzip, поскольку алгоритм Райса сжимает только целочисленные массивы), эти изображения часто сжимаются не очень хорошо, потому что значения пикселей слишком зашумлены; менее значимые биты в мантиссе значений пикселей эффективно содержат несжимаемые случайные битовые шаблоны. Чтобы добиться более высокого сжатия, необходимо удалить часть этого шума, но без потери полезной информации. Если он слишком велик, неправильный выбор значения пикселей приводит к потере информации в изображении. Однако если он слишком мал, сохранятся слишком много шума (или даже усиливает шум) в значениях пикселей, что приводит к плохому сжатию.

Примечание

Поддерживаемые алгоритмы обеспечивают сжатие изображений без потерь (loss-less), когда применяются к целочисленным изображениям FITS; значения пикселей сохраняются без потери информация в ходе сжатия и распаковки. Изображения FITS с плавающей запятой (имеющие BITPIX = -32 или -64) сначала квантуются до масштабированных целочисленных значений, а потом сжимаются. Этот способ обеспечивает гораздо более высокие коэффициенты сжатия, что чем сжатие изображения с использованием GZIP. Однако это означает, что исходные значения с плавающей запятой не могут быть точно восстановлены при распаковке изображения. При правильном применении, это только удаляет 'шум' из значений с плавающей запятой без потери значимой информации.

Частные случаи научных FITS-файлов

FITS-файлы, создаваемые крупными астрономическими миссиями, такими как миссии космического телескопа Хаббл (HST) НАСА или космического телескопа Джеймса Уэбба (JWST), часто являются более сложными, чем типичные файлы FITS, используемые астрономами любителями. Эти файлы обычно устроены как последовательности FITS (также называемые FITS-кубами), но с важным отличием: отдельные изображения внутри этих последовательностей могут иметь разные размерности.

Эта особенность позволяет хранить многомерные данные, собранные в различных условиях, где каждый кадр или изображение в последовательности может иметь различное разрешение или размер. Например, данные от телескопа Джеймса Уэбба (JWST) часто включают такие неоднородные наборы данных из-за особенностей его инструментов и режимов наблюдения.

В Siril , при обработке подобных научных файлов FITS важно включить опцию, которая позволяет работать с изображениями различной размерности внутри FITS-куба. Это можно сделать, включив параметр Кубы FITS могут содержать изображения разного размера во вкладке Параметры FITS настроек программы.

Предупреждение

Currently, Siril is unable to process FITS files with NAXES[2] > 3. This feature is planned for future versions of the software, so FITS cubes with more than three axes are not supported at the moment.

Изображение с телескопа Джеймса Уэбба (JWST), загруженное в Siril

Пример изображения, полученного космическим телескопом Джеймс Уэбб, загруженного в Siril

Ориентация изображений FITS

Стандарт FITS это контейнер, описывающий как хранить данные изображения и метаданные. Профессиональные инструменты из ранней истории формата FITS, такие, как ds9 (Гарвард-Смитсоновский центр астрофизики), fv (просмоторщик FITS от NASA), хранят изображения в восходящем порядке (bottom-up). У нас может возникнуть соблазн сказать, что на самом деле это не имеет значения, но когда речь заходит о дебайеризации или астрометрии, возникают проблемы. Например, обычный шаблон Байера RGGB становится GBRG, если изображение перевёрнуто (upside-down).

В настоящее время, несмотря на это, большинство драйверов камер записывают данные в нисходящем порядке (top-down), и нам приходится иметь с этим дело.

По этой причине совместно с P. Chevalley из CCDCiel мы недавно предложили новое ключевое слово FITS. Мы призываем всех производителей данных, разработчиков INDI и ASCOM использовать его, чтобы упростить работу для всех.

Это ключевое слово — ROWORDER, имеющее тип TSTRING. Оно может иметь два значения: BOTTOM-UP и TOP-DOWN.

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

Почему некоторые программы вообще записывают изображения в восходящем порядке?

Потому что математика делает это именно так.

Спецификация FITS также говорит:

5.1. Соглашения об отображении изображений

Очень полезно принять соглашение об отображении изображений, переданных в формате FITS. Многие из существующих систем обработки изображений пришли к такому соглашению. Поэтому мы рекомендуем при записи FITS упорядочить пиксели таким образом, чтобы первый пиксель в файле FITS (для каждой плоскости изображения) был тем, который будет отображаться в левом нижнем углу (с увеличением первой оси вправо, а второй оси вверх) системой обработки изображений, записывающей FITS. Это соглашение явно полезно в отсутствие описания мировых координат. Это не мешает программе просматривать описания осей и переопределять это соглашение, а также не мешает пользователю запрашивать другое отображение. Это соглашение также не освобождает авторов FITS от предоставления полных и корректных описаний координат изображения, позволяющих пользователю определить значение изображения. Порядок отображения изображения — это просто соглашение для удобства, в то время как координаты пикселей являются частью физики наблюдения.

Предупреждение

Ключевое слово ROWORDER можно использовать для:

  1. Показ изображения в заданной ориентации (поворот экрана).

  2. Переворот шаблона Байера. Таким образом, шаблон может быть указан поставщиком сенсора.

НО

  1. ROWORDER не должен использоваться для переворота изображения для укладки. В противном случае новые изображения будут несовместимы со старыми темновыми кадрами и кадрами плоского поля.

  2. ROWORDER не должен использоваться для переворота данных изображения при поиске астрономического решения. В противном случае такое астрономическое решение будет несовместимо с другими программами.

Программное обеспечение, использующее ключевое слово ROWORDER

Получение шаблона Байера

Порядок строк в изображении меняет то, как должен быть прочитан шаблон Байера, но есть так же два необязательных ключевых слова FITS, которые влияют на это: XBAYROFF и YBAYROFF. Эти ключевые слова задают смещение шаблона Байера, чтобы начать считывать её с первого столбца или первой строки.

Чтобы помочь разработчикам интегрировать ключевые слова ROWORDER, XBAYROFF и YBAYROFF в их программное обеспечение, Han Kleijn из hnsky.org, создал несколько тестовых изображений, по одному для каждой комбинации из трёх ключевых слов. Эти изображения можно скачать по ссылке: Bayer_test_pattern_v6.tar.gz.

Список ключевых слов FITS

Siril имеет возможность читать и интерпретировать широкий диапазон ключевых слов. Ниже приведён список нестандартных ключевых слов, которые Siril регистрирует при необходимости. Некоторые ключевые слова, которые Siril имеет возможность читать, могут отсутствовать в этом списке. Например, ключевые слова CCDTEMP или TEMPERAT, которые указывают температуру сенсора, корректно считываются, но выводятся с ключевым словом CCD-TEMP.

Совет

Siril is able to read and compare checksums if they are present in the FITS header. However, by default and for software performance reasons, CHECKSUM and DATASUM cards are automatically removed from HDU headers when a file is opened, and any CHECKSUM or DATASUM cards are stripped from headers when an HDU is written to a file. Nevertheless, they can be saved at the user's request, using the -chksum option of the save command, or via the graphical user interface.

FITS keywords saved by Siril. For reasons of clarity, astrometry SIP keywords are not listed.

Ключевые слова FITS

Тип

Комментарий

BZERO

Двойной точности

Смещение диапазона данных к диапазону коротких целых без знака

BSCALE

Двойной точности

Коэффициент масштабирования по умолчанию

MIPS-HI

Короткое целое без знака

Верхняя граница визуализации

MIPS-LO

Короткое целое без знака

Нижняя граница визуализации

MIPS-FHI

Одинарной точности с плавающей запятой

Верхняя граница визуализации

MIPS-FLO

Одинарной точности с плавающей запятой

Нижняя граница визуализации

PROGRAM

Строка

Программное обеспечение, использованное для создания этого HDU

FILENAME

Строка

Original Filename

DATE

Строка

Дата (по UTC), когда этот файл FITS был создан

DATE-OBS

Строка

Дата начала наблюдения в формате YYYY-MM-DDThh:mm:ss (по UT)

IMAGETYP

Строка

Тип изображения

ROWORDER

Строка

Порядок строк в массиве изображения

EXPTIME

Двойной точности

[s] Exposure time duration

TELESCOP

Строка

Телескоп, использованный для получения этого изображения

OBSERVER

Строка

Имя наблюдателя

FILTER

Строка

Название активного фильтра

APERTURE

Двойной точности

Апертура инструмента

ISOSPEED

Двойной точности

Установленная чувствительность камеры (ISO)

FOCALLEN

Двойной точности

[мм] Фокусное расстояние

CENTALT

Двойной точности

[град.] Высота телескопа

CENTAZ

Двойной точности

[град.] Азимут телескопа

XBINNING

Целое без знака

Режим биннинга камеры

YBINNING

Целое без знака

Режим биннинга камеры

XPIXSZ

Двойной точности

[um] Pixel X axis size

YPIXSZ

Двойной точности

[um] Pixel Y axis size

INSTRUME

Строка

Название инструмента

CCD-TEMP

Двойной точности

[degC] CCD temperature

SET-TEMP

Двойной точности

[degC] CCD temperature setpoint

GAIN

Короткое целое без знака

Усиление сенсора

OFFSET

Короткое целое без знака

Sensor gain offset

CVF

Двойной точности

[e-/ADU] Electrons per A/D unit

BAYERPAT

Строка

Цветной шаблон Байера

XBAYROFF

Целое

смещение массива Байера по X

YBAYROFF

Целое

смещение массива Байера по Y

FOCNAME

Строка

Название фокусировчного оборудования

FOCPOS

Целое

[step] Focuser position

FOCUSSZ

Целое

[мкм] Шаг фокусёра

FOCTEMP

Двойной точности

[degC] Focuser temperature

STACKCNT

Целое без знака

Количество уложенных кадров

LIVETIME

Двойной точности

[s] Exposure time after deadtime correction

EXPSTART

Двойной точности

[JD] Время начала экспозиции (стандартная Юлианская дата)

EXPEND

Двойной точности

[JD] Время окончания экспозиции (стандартная Юлианская дата)

OBJECT

Строка

Название объекта интереса

AIRMASS

Двойной точности

Airmass at frame center (Gueymard 1993)

SITELAT

Двойной точности

Широта места наблюдения (в градусах)

SITELONG

Двойной точности

Долгота места наблюдения (в градусах)

SITEELEV

Двойной точности

[м] Высота места наблюдения

DFTTYPE

Строка

Амплитуда/фаза дискретного преобразования Фурье

DFTORD

Строка

Низкая/высокая пространственные частоты, расположены в центре изображения

DFTNORM1

Двойной точности

Значение нормализации для канала #1

DFTNORM2

Двойной точности

Значение нормализации для канала #2

DFTNORM3

Двойной точности

Значение нормализации для канала #3

CTYPE3

Строка

Изображение RGB

OBJCTRA

Строка

Прямое восхождение центра изображения (чмс)

OBJCTDEC

Строка

Склонение центра изображения (гмс)

RA

Двойной точности

Прямое восхождение центра изображения (градусы)

DEC

Двойной точности

Склонение центра изображения (градусы)

CTYPE1

Строка

TAN (gnomic) projection

CTYPE2

Строка

TAN (gnomic) projection

CUNIT1

Строка

TAN (gnomic) projection + SIP distortions

CUNIT2

Строка

TAN (gnomic) projection + SIP distortions

EQUINOX

Двойной точности

Время равноденствия

CRPIX1

Двойной точности

Ось 1 опорного пикселя

CRPIX2

Двойной точности

Ось 2 опорного пикселя

CRVAL1

Двойной точности

Опорное значение оси 1 (градусы)

CRVAL2

Двойной точности

Опорное значение оси 2 (градусы)

LONPOLE

Двойной точности

Native longitude of celestial pole

CDELT1

Двойной точности

Размер пикселя по X (градусы)

CDELT2

Двойной точности

Размер пикселя по Y (градусы)

PC1_1

Двойной точности

Матрица линейных преобразований (1, 1)

PC1_2

Двойной точности

Матрица линейных преобразований (1, 2)

PC2_1

Двойной точности

Матрица линейных преобразований (2, 1)

PC2_2

Двойной точности

Матрица линейных преобразований (2, 2)

CD1_1

Двойной точности

Масштабная матрица (1, 1)

CD1_2

Двойной точности

Масштабная матрица (1, 2)

CD2_1

Двойной точности

Масштабная матрица (2, 1)

CD2_2

Двойной точности

Масштабная матрица (2, 2)

PLTSOLVD

Логическое

Решатель Siril