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.

Пример изображения, полученного космическим телескопом Джеймс Уэбб, загруженного в 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
можно использовать для:
Показ изображения в заданной ориентации (поворот экрана).
Переворот шаблона Байера. Таким образом, шаблон может быть указан поставщиком сенсора.
НО
ROWORDER
не должен использоваться для переворота изображения для укладки. В противном случае новые изображения будут несовместимы со старыми темновыми кадрами и кадрами плоского поля.ROWORDER
не должен использоваться для переворота данных изображения при поиске астрономического решения. В противном случае такое астрономическое решение будет несовместимо с другими программами.
Программное обеспечение, использующее ключевое слово ROWORDER
Siril (начиная с версии 0.99.4)
CCDCiel (начиная с версии 0.9.72)
KStars (начиная с 3.4.3)
SharpCap (начиная с версии 3.3)
FireCapture (начиная с версии 2.7)
N.I.N.A (начиная с версии 1.10)
MaxImDL (начиная с версии 6.23)
PixInsight (начиная с версии 1.8.8-6)
ASTAP (начиная с версии ß0.9.391)
APT (начиная с версии 3.86.3)
AstroDMx Capture (начиная с версии 0.80)
Astroart (начиная с версии 8.0)
Получение шаблона Байера
Порядок строк в изображении меняет то, как должен быть прочитан шаблон Байера, но есть так же два необязательных ключевых слова 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 |
Тип |
Комментарий |
---|---|---|
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 |