SExtractor — консольная программа для автоматического обнаружения, разделения, измерения и каталогизации объектов на астрономических изображениях FITS. Она рассчитана прежде всего на астрономов, инженеров научных конвейеров и разработчиков обработки данных, которым нужно превратить один или несколько кадров в воспроизводимый машинно-читаемый каталог: координаты найденных объектов, фотометрию, параметры формы, флаги качества и выбранные диагностические продукты. У программы нет оконного редактора: основная работа выполняется из оболочки, а поведение задаётся текстовой конфигурацией, списком измеряемых параметров, файлами фильтрации и, при необходимости, картами весов, флагов и PSF.
Что именно представляет собой SExtractor
Название SExtractor расшифровывается как Source Extractor. Программа не является просмотрщиком фотографий, планетарием, пакетным RAW-конвертером или решателем астрометрии. Её предмет — выделение объектов на научном изображении и измерение их свойств. Типичный результат — строка каталога на каждый детектированный объект плюс набор полей, который пользователь определяет в файле параметров. Такой подход отделяет вычислительный этап от визуального анализа: каталог затем можно передать в Python, TOPCAT, базы данных, астрометрические и фотометрические конвейеры либо собственный код.
Архитектура SExtractor ориентирована на обработку больших серий кадров. После чтения заголовков FITS программа строит модель фона, вычитает её, при необходимости фильтрует изображение, формирует карту связных областей выше порога, разделяет перекрывающиеся объекты, выполняет очистку детекций и затем вычисляет выбранные измерения. Чтение больших изображений сделано буферизованным, поэтому объём кадра не обязан целиком помещаться в оперативную память. Для многопроходных измерений, весовых карт и модельной подгонки требования к памяти всё же заметно растут.
Текущая стабильная ветка имеет номер 2.28.2. Этот релиз относится к зрелой линии SExtractor, в которой базовая логика детектирования и каталогизации сохраняет совместимость с десятилетиями астрономических конвейеров, а изменения последних выпусков в основном касаются исправлений, сборочной инфраструктуры и поддержания переносимости. Документация основной ветки помечена 2.28.0, поэтому номер документации и номер последнего патч-релиза различаются: для программы это не означает наличия отдельной функциональной ветки 2.28.2 с новым интерфейсом.
Назначение и целевая аудитория
SExtractor особенно уместен там, где один и тот же алгоритм должен применяться к множеству научных кадров без ручных кликов. В обзорной съёмке он строит первичные каталоги объектов; в многополосной фотометрии позволяет детектировать по одному кадру и измерять на другом; при подготовке астрометрии выдаёт координаты ярких компактных объектов; в контроле качества помогает считать число детекций, отслеживать фон и распределения размеров; при подготовке масок создаёт сегментационные карты.
Для начинающего пользователя важна правильная постановка задачи. SExtractor не «улучшает» изображение и не выдаёт научно корректный каталог без настройки. Порог детектирования, размер фоновой сетки, фильтр, правила разделения соседних объектов, модель шума и список параметров должны соответствовать характеристикам конкретных данных. Глубокий кадр со слабым небом, широкоугольная съёмка с крупным градиентом и плотное звёздное поле требуют разных конфигураций.
Опытному пользователю программа даёт преимущество воспроизводимости: конфигурационные файлы можно хранить вместе с кодом обработки, версионировать и повторно применять к новой партии данных. Для разработки сложного многокадрового модельного конвейера возможности классического SExtractor ограничены; в таких проектах уместно сравнивать его с SourceXtractor++, SEP и Photutils. Однако для стандартной схемы «FITS → детекции → измерения → каталог» классический SExtractor остаётся самостоятельным специализированным инструментом.
Распространение и лицензирование
Исходный код SExtractor распространяется по GNU General Public License версии 3 или более поздней. Это разрешает изучение, изменение и распространение программы при соблюдении условий GPL. Текстовая документация имеет отдельную лицензию Creative Commons Attribution-ShareAlike 4.0. Такое разделение важно для организаций, которые встраивают бинарный файл в воспроизводимый научный стек или модифицируют код: условия программы и условия документации не следует смешивать.
Для Linux доступны дистрибутивные пакеты. В Debian актуальный пакет называется source-extractor и устанавливает команду source-extractor; в исходной документации и многих существующих сценариях используется историческое имя исполняемого файла sex. Поэтому перенос старого shell-скрипта между системами иногда требует заменить имя команды или определить абсолютный путь. Это различие касается упаковки, а не другого продукта.
Исходную версию можно собирать самостоятельно. SExtractor создавался для GNU/Linux и использует POSIX-окружение; сборка также рассчитана на другие POSIX-системы, включая macOS и Cygwin. Для вычислительных частей требуются библиотеки линейной алгебры ATLAS либо совместимая реализация BLAS/LAPACK и FFTW; поддерживается сборка с Intel MKL. Фактический набор dev-пакетов зависит от дистрибутива и выбранного способа компиляции.
Интерфейс: терминал вместо окон и панелей
У SExtractor нет собственного оконного рабочего пространства. Терминал выполняет роль панели запуска, файл конфигурации — роли набора настроек, файл .param — роли конструктора выходного каталога, .conv — роли определения фильтра, а .nnw содержит веса нейронного классификатора для CLASS_STAR. Диагностические FITS-файлы заменяют интерактивные оверлеи: их открывают в отдельном FITS-просмотрщике и визуально сравнивают с исходным кадром.
Ниже показаны реальные терминальные экраны SExtractor, относящиеся к ветке 2.8.6. Они нужны для понимания характера интерфейса и устройства конфигурации; их нельзя использовать как доказательство текущих значений по умолчанию в 2.28.2. Командная модель работы сохранилась, но отдельные параметры и сборочные детали развивались.

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

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

В конфигурации параметры сгруппированы по назначению. Секции Catalog и Extraction управляют выходным каталогом, порогами и базовой логикой выделения объектов.

Секции Photometry, Star/Galaxy Separation и Background показывают, что фотометрия, классификация и оценка фона настраиваются независимо, а не скрыты за одним режимом качества.

Check Image управляет диагностическими FITS-изображениями, а Memory и Miscellaneous содержат параметры рабочих буферов, потоков и служебного поведения.

Терминальная справка подчёркивает природу SExtractor как научной утилиты командной строки. Для текущей ветки следует ориентироваться на актуальные имена параметров и man-страницу установленного пакета.
Основные команды и файлы
| Элемент | Назначение | Что контролировать |
|---|---|---|
sex image.fits | Типичный запуск исходной сборки | Команда должна быть доступна в PATH; в Debian пакет может предоставлять source-extractor |
-c config.sex | Выбор конфигурационного файла | Путь к файлу и совместимость параметров с установленной версией |
-d | Печать встроенной конфигурации | Удобна для создания свежего шаблона вместо копирования старой конфигурации |
-dp | Печать списка параметров каталога | Позволяет получить перечень полей, понимаемых конкретной сборкой |
default.param | Перечень колонок выходного каталога | Одна запись параметра на строку; порядок строк определяет порядок колонок ASCII-каталога |
default.conv | Ядро свёртки для FILTER | Файл должен существовать, если фильтрация включена |
default.nnw | Нейросетевые веса CLASS_STAR | Нужен при использовании соответствующего классификатора |
Параметры, переданные после имени изображения в командной строке, переопределяют значения из конфигурационного файла. Это удобно для пакетных экспериментов: постоянные настройки остаются в одном файле, а один или два изменяемых параметра задаются в shell-цикле. Для воспроизводимости полезно сохранять итоговую команду вместе с копией конфигурации, а не полагаться на историю терминала.
Установка и первый запуск
Linux из пакетного менеджера
В Linux предпочтителен пакет из репозитория дистрибутива: пакетный менеджер сам подтягивает системные зависимости и размещает бинарный файл в стандартном каталоге. В Debian 13 trixie пакет называется source-extractor, а man-страница документирует одноимённую команду. После установки сначала следует выполнить source-extractor --help либо открыть man-страницу и убедиться, что оболочка запускает нужный бинарный файл версии 2.28.2.
Различие имён sex и source-extractor особенно важно для готовых пайплайнов. Сценарий, написанный под исходную сборку, может завершиться сообщением «command not found» даже при установленном Debian-пакете. Исправление состоит не в повторной установке другого SExtractor, а в использовании фактического имени бинарного файла или симлинка, который принят в рабочем окружении.
Сборка из исходного кода
Типичная последовательность сборки включает распаковку исходников, переход в каталог проекта, подготовку autotools-файлов командой sh autogen.sh, затем ./configure, make -j и установку через make install с необходимыми правами. Конфигуратор проверяет библиотеки и формирует параметры сборки. При наличии Intel MKL используется опция --enable-mkl; для некоторых кластерных конфигураций документирован вариант с автоматическим подбором флагов и линковки.
Если configure не находит FFTW или BLAS/LAPACK, проблема относится к build-зависимостям, а не к FITS-файлу. В таком случае сначала устанавливают development-пакеты нужных библиотек и повторяют конфигурацию. Смешивание системных библиотек и вручную установленных копий может привести к тому, что бинарный файл соберётся, но динамический загрузчик не найдёт библиотеку при запуске; проверка ldd в Linux помогает увидеть фактические связи.
macOS и Windows-среды
Исходная сборка рассчитана на POSIX. macOS соответствует этой модели, но пользователю всё равно нужны компилятор и зависимости. В обсуждениях пользователей встречается дополнительная проблема интеграции: пакетный менеджер устанавливает бинарный файл, команда SExtractor работает в терминале, но другая программа ищет другое имя исполняемого файла. Надёжный способ — явно передать полный путь к бинарному файлу, который действительно запускается.
Для Windows в документации рассматривается Cygwin, то есть POSIX-слой, а не нативное оконное приложение. Это важное ограничение для пользователя, ожидающего MSI/EXE-инсталлятор и GUI. В полностью Windows-ориентированной рабочей станции проще либо использовать Linux-окружение, либо выбрать инструмент с нативной упаковкой, если интеграционные требования важнее совместимости с классическим SExtractor.
Первый контрольный запуск
- Проверьте, какая команда установлена:
sexилиsource-extractor. - Получите свежий шаблон конфигурации встроенной командой, а не копируйте конфигурацию из старой статьи или чужого проекта.
- Получите список параметров каталога и создайте минимальный
.paramс координатами, потоком, флагами и идентификатором объекта. - Подготовьте небольшое FITS-изображение с корректным двумерным массивом данных.
- Запустите программу с явным
-cи убедитесь, что она создаёт каталог без сообщений о недостающих.conv,.nnwили весовых файлах. - Добавьте сегментационное или фоновое CHECKIMAGE и откройте его в FITS-просмотрщике. Это первая визуальная проверка того, что порог и фон не дают очевидно ошибочной картины.
Базовый рабочий процесс шаг за шагом
1. Проверка входного FITS
SExtractor читает базовые FITS-изображения и multi-extension FITS. Тайл-сжатые FITS не поддерживаются напрямую, поэтому такие файлы необходимо распаковать или преобразовать в обычное представление, которое понимает программа. Если NAXIS больше 2, обрабатывается только первая двумерная плоскость; трёхмерный куб не превращается автоматически в серию независимых каталогов.
2. Определение научной цели
Перед настройкой порога следует решить, что считается полезной детекцией. Для списка ярких звёзд при астрометрии важнее чистота и устойчивые центроиды. Для глубокого каталога слабых галактик важнее полнота, корректный фон и аккуратное разделение объектов. Для маскирования фоновых объектов допустим иной компромисс. Один набор DETECT_THRESH и DEBLEND_MINCONT не оптимален для всех трёх задач.
3. Настройка фона
4. Выбор фильтра детектирования
При FILTER Y изображение перед пороговым выделением сворачивается с ядром из файла FILTER_NAME. Фильтр должен соответствовать масштабу ожидаемых объектов и уровню шума. Ошибка cannot open default.conv означает, что включённая фильтрация ссылается на отсутствующий файл; корректное исправление — указать существующий .conv или осознанно отключить фильтрацию, а не просто повысить порог до исчезновения ошибки.
5. Порог и минимальная площадь
DETECT_THRESH задаёт порог детектирования, а DETECT_MINAREA — минимальное число связанных пикселей выше порога. При пороге, выраженном относительно локального RMS, качество весовой карты и фоновой модели прямо влияет на фактическую глубину. Если минимальную площадь сделать слишком малой, возрастёт число шумовых пиков; если слишком большой — компактные слабые объекты будут пропущены.
6. Разделение перекрывающихся объектов
SExtractor использует многоуровневое deblending-разделение. DEBLEND_NTHRESH управляет числом уровней, а DEBLEND_MINCONT — минимальным относительным вкладом ветви, который позволяет считать её самостоятельным объектом. Очень агрессивное разделение дробит крупные галактики на множество узлов; слишком консервативное сливает близкие звёзды и галактики. Проверять этот этап лучше по сегментационной карте и нескольким реальным областям кадра.
7. Очистка детекций
Параметры CLEAN регулируют удаление ложных спутников ярких объектов, возникающих из-за профилей и процесса разделения. Ускорение за счёт отключения CLEAN встречается в пользовательских рецептах, но оно меняет статистику каталога. Если цель — массовая обработка, сначала измеряют влияние на полноту и долю ложных детекций на репрезентативном наборе, а уже потом решают, стоит ли менять этот этап ради скорости.
8. Определение измеряемых колонок
Файл, заданный PARAMETERS_NAME, содержит имена полей каталога. Можно вывести только несколько значений или широкий набор координат, фотометрии, морфологии, ошибок и диагностических флагов. Векторные параметры поддерживают указание размерности, например несколько фиксированных апертур. Чем больше тяжёлых измерений и модельных параметров включено, тем выше вычислительная стоимость.
9. Подключение весов и флагов
При неоднородной глубине весовая карта позволяет SExtractor учитывать пространственно меняющийся шум. Внешняя карта флагов позволяет перенести маски плохих пикселей, следов спутников, насыщения или краевых областей в итоговые флаги. В двойном режиме карты могут различаться для detection и measurement кадров, что важно при многополосной фотометрии.
10. Запуск и сохранение конфигурации
Команда имеет форму sex Image1 [Image2] -c configuration-file -Parameter Value. Второй кадр используется в dual-image mode. Для серийной обработки лучше не редактировать один файл вручную перед каждым кадром, а фиксировать базовую конфигурацию и передавать только явно изменяющиеся значения из скрипта. Так легче воспроизвести каталог и понять, чем два прогона отличаются.
11. Проверка CHECKIMAGE
Диагностические изображения позволяют увидеть фон, отфильтрованную картину, сегментацию, выделенные объекты или апертуры. Каталог без визуальной проверки может выглядеть синтаксически корректным, но содержать систематическую ошибку: фон может следовать за гало галактики, сегментация — дробить объект, а апертуры — попадать на замаскированные области.
12. Статистическая валидация
После визуального контроля сравнивают распределения S/N, FLAGS, размеров, CLASS_STAR или SPREAD_MODEL, а также число объектов в разных участках кадра. Резкий рост числа детекций в областях высокого шума, скопление FLAGS у границы или зависимость фотометрии от локального фона указывают на настройку, которую нужно исправить до массового запуска.
Как устроена конфигурация
Конфигурационный файл SExtractor — обычный текст. Каждая строка связывает имя параметра со значением; комментарии позволяют документировать выбранный режим. Программа имеет встроенные значения и умеет печатать полный шаблон. Это надёжнее, чем хранение «универсального default.sex» многолетней давности: новая версия может добавить параметр или изменить техническую реализацию, а встроенный шаблон соответствует установленному бинарному файлу.
CATALOG и PARAMETERS
CATALOG_NAME задаёт имя результата, CATALOG_TYPE — формат каталога, PARAMETERS_NAME — файл со списком колонок. В ASCII-режимах порядок строк в .param определяет порядок значений; в FITS-каталогах имена и типы хранятся структурированно. Для автоматизации полезно держать .param рядом с конфигурацией и считать его частью вычислительного рецепта.
Имена файлов FILTER, STARNNW и PSF
Параметр фильтра указывает на .conv; CLASS_STAR использует нейросетевой файл; модельные и PSF-измерения требуют PSF-модель. Эти файлы не «встроены» в произвольный рабочий каталог. Если конфигурация содержит относительное имя, программа ищет файл относительно текущей среды запуска. Поэтому пайплайн, работающий из одного каталога, может сломаться при запуске из cron, контейнера или другого рабочего каталога.
Переопределение из командной строки
Любой конфигурационный параметр можно передать как опцию после -c. Это удобно для параметрических серий: например, выполнить несколько прогонов с разными порогами или фоновыми сетками, не генерируя множество почти одинаковых файлов. В журнале обработки следует фиксировать полную команду, иначе сохранённый default.sex не объяснит значения, которые были переопределены снаружи.
Входные форматы и особенности FITS
| Тип данных | Поддержка | Практическое следствие |
|---|---|---|
| Обычный 2D FITS | Да | Основной входной формат для одиночного кадра |
| Multi-Extension FITS | Да | Расширения можно обрабатывать в поддерживаемой программой схеме; заголовки и WCS должны быть согласованы |
| FITS с NAXIS > 2 | Ограниченно | Используется первая двумерная плоскость; куб не обходится как последовательность кадров |
| Тайл-сжатый FITS | Нет прямой поддержки | Перед обработкой нужен обычный FITS без такого представления сжатия |
| JPEG/PNG/TIFF как научный вход | Не являются рабочим форматом SExtractor | Программа рассчитана на FITS и научные метаданные, а не на бытовые растровые файлы |
Калибровка и подготовка изображения должны быть выполнены до SExtractor. Программа не заменяет bias/dark/flat-коррекцию, космическую очистку, нормализацию экспозиций или построение WCS. Если на входе присутствуют инструментальные дефекты, SExtractor может детектировать их как объекты; корректная весовая или флаговая карта уменьшает влияние известных плохих областей, но не превращает некалиброванный кадр в калиброванный.
WCS из FITS-заголовка используется для небесных координат, если пользователь вывел соответствующие поля. Ошибочная или отсутствующая WCS не мешает получить пиксельные X/Y, но небесные координаты не будут надёжным результатом. Поэтому при астрометрическом сценарии сначала проверяют решение координат, затем строят каталог.
Детектирование объектов
Детектирование основано на связных пикселях после фоновой коррекции и, при включении FILTER, свёртки. Порог может быть связан с локальным шумом, поэтому SExtractor способен поддерживать примерно одинаковый критерий S/N на поле с неоднородным RMS, если карта шума задана корректно. Фильтр применяется к detection-процессу, а измерения могут выполняться на исходном изображении, поэтому фильтрация не обязана «размывать» фотометрию.
Параметр DETECT_TYPE определяет тип детектора. Для обычных линейных научных изображений используется CCD-подход; режим PHOTO предназначен для фотографических данных и связан с параметром MAG_GAMMA. Использовать PHOTO для современных линейных CCD/CMOS-кадров без причины не следует: он меняет интерпретацию интенсивностей.
Порог детектирования нельзя оценивать только по общему числу строк каталога. Уменьшение DETECT_THRESH увеличивает число объектов, но часть прироста может приходиться на шум, края, дифракционные структуры и остатки фона. Полезный критерий — совместно оценить completeness на известных или искусственно добавленных объектах и purity по пустым участкам либо инвертированным изображениям, а также просмотреть сегментацию.
Моделирование фона
Фоновая оценка — один из центральных этапов SExtractor. Изображение разбивается на mesh-ячейки; в каждой рассчитывается статистика распределения пикселей с итеративным подавлением вклада объектов, затем сетка фильтруется и интерполируется. Такой подход способен отслеживать плавные пространственные изменения, но параметры сетки определяют, какой масштаб программа считает фоном.
BACK_SIZE задаёт размер mesh, BACK_FILTERSIZE — размер медианного фильтра по сетке. Для небольших точечных объектов сетку выбирают существенно крупнее PSF. Для протяжённых галактик и туманностей требуется ещё больший масштаб либо внешний фон: иначе свет объекта попадёт в оценку и часть его профиля будет вычтена. На мозаиках с сильными градиентами, наоборот, чрезмерно крупная сетка оставляет остаточную структуру.
В ветке 2.28 добавлен параметр BACK_PEARSON, который регулирует коэффициент в приближённой оценке моды. Это изменение сделало фон более настраиваемым без изменения общей mesh-модели. При переносе старой конфигурации полезно явно записывать параметр, если требуется строгая воспроизводимость между окружениями.
BACK_TYPE позволяет использовать автоматическую или ручную модель. Ручное фиксированное значение подходит только когда фон действительно известен и одинаков по кадру; для обычных астрономических изображений автоматическая сетка обеспечивает пространственную адаптацию. Отдельно BACKPHOTO_TYPE определяет фон для фотометрии: GLOBAL использует общую модель, LOCAL оценивает фон вокруг объекта. Локальный режим чувствителен к соседям в плотном поле и рядом с протяжёнными объектами.
Весовые карты, шум и внешние флаги
Весовая карта сообщает SExtractor, как меняется статистическая надёжность пикселей. Поддерживаются схемы, где карта представляет RMS, дисперсию или обратный вес, а также режим, основанный на фоновой оценке самого кадра. При выборе режима важно не перепутать величины: карта RMS и карта inverse variance имеют противоположную числовую интерпретацию.
Внутри программа работает с абсолютной дисперсией в единицах, связанных с ADU². Порог на вес позволяет исключать плохо определённые области. В dual-image mode можно передать разные карты для кадра детектирования и кадра измерения. Это особенно важно, когда изображения получены в разных фильтрах, имеют разные экспозиции или разные маски дефектов.
Ограничение шумовой модели — отсутствие полного учёта корреляции соседних пикселей. После ресэмплинга, интерполяции или drizzle шум часто коррелирован; простая variance-карта описывает дисперсию каждого пикселя, но не ковариации между ними. Поэтому формальные ошибки потоков могут быть занижены относительно эмпирического разброса. Для точной фотометрии их проверяют на пустых апертурах или повторных экспозициях.
FLAGS: что означает битовая маска
| Бит | Смысл | Как использовать |
|---|---|---|
| 1 | У объекта есть яркие соседи или плохие пиксели, влияющие на измерение | Проверить сегментацию и маску; осторожно использовать апертурную фотометрию |
| 2 | Объект был deblend-разделён | Нормально для слившихся объектов, но стоит проверить агрессивность разделения |
| 4 | В объекте есть насыщенные пиксели | Фотометрия и форма могут быть ненадёжны |
| 8 | Объект усечён границей изображения | Исключить из анализов, требующих полной апертуры или формы |
| 16 | Апертурные данные повреждены или неполны | Проверить края и маскирование |
| 32 | Изофотальный footprint повреждён | Морфологические величины требуют проверки |
| 64 | Переполнение внутреннего буфера deblending | Результат разделения ненадёжен; требуется корректировка памяти или сложности поля |
| 128 | Переполнение внутреннего extraction-буфера | Измерения объекта ненадёжны; проверить конфигурацию и размеры буферов |
FLAGS — битовая сумма. Значение 6 означает одновременно биты 2 и 4, а не шестую независимую категорию. Для фильтрации каталога лучше применять побитовые операции, а не перечислять только отдельные числа. Внешние флаги имеют собственные поля и правила объединения; их следует трактовать отдельно от внутреннего FLAGS.
Фотометрия: фиксированные, Kron-подобные и Petrosian-апертуры
FLUX_APER и MAG_APER
Фиксированная круговая апертура задаётся PHOT_APERTURES; можно вывести несколько диаметров, а в .param указать векторную размерность MAG_APER или FLUX_APER. Такой режим удобен для сравнимых точечных объектов и кривых роста. Для разных seeing или неоднородного PSF один фиксированный диаметр не всегда одинаково охватывает свет, поэтому апертурную поправку рассчитывают отдельно.
Граница круговой апертуры интегрируется субпиксельно. Это снижает дискретизационную ошибку на небольших радиусах, но не устраняет ошибки центроида, соседей и фоновой модели. На очень малых апертурах даже небольшой сдвиг X/Y способен заметно изменить поток, поэтому центроид и качество PSF нужно проверять совместно.
FLUX_AUTO и MAG_AUTO
AUTO-фотометрия использует Kron-подобную эллиптическую апертуру, масштабированную по моментам объекта. Значения PHOT_AUTOPARAMS задают коэффициент Kron и минимальный радиус. Типичная настройка 2.5 для коэффициента рассчитана на охват большей части потока при разумном S/N, но это не полный тотальный поток: профили объектов и слабые крылья дают систематические потери. Для точной работы требуется апертурная или модельная поправка.
AUTO особенно удобна для галактик разных размеров, потому что апертура адаптируется к форме. В плотном поле она чувствительна к deblending и соседям. Если сегментация ошибочно разделила галактику на узлы, Kron-радиус каждого фрагмента будет описывать уже другой объект; никакая последующая калибровка нулевой точки не исправит неверную сегментацию.
FLUX_PETRO и MAG_PETRO
Petrosian-фотометрия использует радиус, определяемый отношением локальной поверхностной яркости к средней внутри радиуса. Параметр PHOT_PETROPARAMS задаёт множитель апертуры и минимальный радиус. Это ещё один адаптивный способ, полезный для протяжённых объектов, но он также зависит от фоновой оценки и S/N внешних частей профиля.
MAG_BEST
MAG_BEST присутствует ради совместимости со старыми конфигурациями, но считается устаревшим полем. Для новых конвейеров лучше явно выбирать MAG_AUTO, MAG_APER, модельную фотометрию или другой измеритель, соответствующий задаче. Явный выбор делает смысл колонки понятным и исключает скрытое переключение метода.
Координаты, моменты и параметры формы
Базовые координаты X_IMAGE и Y_IMAGE представляют центр яркости в пиксельной системе. XPEAK_IMAGE и YPEAK_IMAGE относятся к положению пикового пикселя. В каталоге также можно получить вторые моменты X2_IMAGE, Y2_IMAGE, XY_IMAGE, полуоси A_IMAGE и B_IMAGE, угол THETA_IMAGE, ELONGATION и ELLIPTICITY. Эти величины описывают распределение света в рамках сегментации и весов, а не физическую трёхмерную форму объекта.
Коэффициенты CXX_IMAGE, CYY_IMAGE и CXY_IMAGE задают эллипс в квадратичной форме. Они удобны для алгоритмов перекрытия и масок, но требуют последовательного обращения с соглашением об углах и координатах. При экспорте в другой пакет полезно проверить единицы и направление осей на нескольких объектах вместо механического переноса колонок.
Оконные измерения
Поля XWIN_IMAGE и YWIN_IMAGE используют итеративное гауссово окно, центрированное на объекте. Алгоритм обычно сходится за несколько итераций и останавливается при очень малом изменении позиции. Для хорошо измеренных звёзд оконные центроиды ближе к PSF-взвешенной оценке, чем простой барицентр, поэтому часто предпочтительны для точной относительной астрометрии.
Оконные моменты имеют соответствующие параметры формы и ошибки. Формальные неопределённости позиции следует считать нижней границей: они не включают все систематические эффекты, в том числе смещение от процесса детектирования, сложных соседей и коррелированного шума. В высокоточной задаче их калибруют по повторным измерениям или по остаткам астрометрической модели.
CLASS_STAR и SPREAD_MODEL
CLASS_STAR — исторический нейросетевой классификатор «звезда/галактика», возвращающий скаляр в диапазоне от 0 до 1. Он использует форму объекта и требует корректного параметра seeing, а также файл нейросетевых весов. Значение не следует трактовать как строгую байесовскую вероятность класса: при плохом seeing, низком S/N или несогласованном масштабе пикселя распределение CLASS_STAR меняется.
Современная документация рассматривает SPREAD_MODEL как более информативный морфологический показатель для разделения точечных и слегка протяжённых объектов. Он сравнивает соответствие локальной PSF-подобной модели и немного расширенной модели. Значение около нуля характерно для точечного профиля, положительное — для более протяжённого, отрицательное может соответствовать объекту уже PSF, например космическому лучу. Практический порог зависит от данных и должен калиброваться по эталонной выборке.
Оба показателя не заменяют научную классификацию. При слабом S/N морфологические распределения перекрываются; для надёжного разделения используют цвет, повторные наблюдения, PSF-модель и статистические признаки. В каталоге полезно хранить не только классификатор, но и S/N, FLAGS, размеры и ошибки, чтобы последующий отбор был прозрачным.
Подгонка PSF и моделей галактик
Модельная подгонка присутствует в SExtractor начиная с поздних веток 2.x. Алгоритм минимизирует модифицированную сумму квадратов и использует метод Levenberg–Marquardt. Для корректной работы требуется PSF-модель. Точечный компонент POINT_SOURCE позволяет получать PSF-подобные измерения, а профили DISK и SPHEROID поддерживают параметрические модели протяжённых объектов, включая Sérsic-подобный сфероид.
Модельный режим вычислительно тяжелее обычных моментов и апертур. Он полезен, когда каталог должен содержать согласованные параметры профиля, но не превращает сложную сцену в полноценный многокомпонентный байесовский анализ. Подгонка рассчитана на шум с распределением, симметричным вокруг среднего; сильные выбросы, дефекты или неверная variance-модель ухудшают результат.
У модельной подгонки есть отдельные флаги. Они сигнализируют, что модельный растр пришлось ограничить, доступно слишком мало валидных пикселей либо параметр упёрся в нижнюю или верхнюю границу. Такие строки нельзя отбирать только по минимальному χ²: флаг показывает, что оптимизатор достиг технического ограничения и физическая интерпретация параметра может быть неверна.
Для сложных задач с одновременной подгонкой нескольких measurement-кадров, зависимостями параметров и более гибкой конфигурацией прямым развитием концепции является SourceXtractor++. Классический SExtractor остаётся проще для однокадровой детекции и стандартного набора измерений.
Dual-image mode: отдельные кадры detection и measurement
При передаче двух изображений первый кадр используется для детектирования, второй — для измерения. Сегментация и положение объектов определяются по detection-изображению, а фотометрические значения берутся из measurement-изображения. Такой режим широко применяют в многополосной фотометрии: объекты выбираются в одной глубокой или высококачественной полосе, затем измеряются в тех же областях другой полосы.
Главное требование — пиксельное соответствие двух изображений. Классический dual-image mode предполагает согласованную сетку пикселей; он не выполняет полноценную ресэмплинг-регистрацию между произвольными WCS. Если кадры имеют разные масштабы, поворот или дисторсию, их предварительно приводят к общей сетке внешним инструментом.
Карты весов и некоторые параметры могут задаваться отдельно для двух кадров. Это позволяет сохранить различия шума между фильтрами. Нельзя автоматически использовать weight map detection-кадра как характеристику measurement-кадра: экспозиция, небо, маски и gain могут отличаться, а значит и фотометрическая ошибка должна опираться на собственную статистику.
Параметры каталога и проектирование файла .param
Файл .param определяет фактический контракт между SExtractor и последующим анализом. Программа умеет вычислять намного больше величин, чем нужно большинству задач. Вывод только необходимых колонок уменьшает размер каталога, исключает часть лишних вычислений и упрощает контроль схемы данных.
| Группа | Примеры полей | Для чего нужны |
|---|---|---|
| Идентификаторы | NUMBER | Связь строки каталога с сегментационной меткой и диагностикой |
| Пиксельные координаты | X_IMAGE, Y_IMAGE, XWIN_IMAGE, YWIN_IMAGE | Астрометрия, сопоставление с кадром, контроль центроидов |
| Небесные координаты | ALPHA_*, DELTA_* | Сопоставление каталогов при корректной WCS |
| Фотометрия | FLUX_APER, FLUX_AUTO, MAG_APER, MAG_AUTO | Потоки и звёздные величины разными методами |
| Ошибки | FLUXERR_*, MAGERR_*, ERR* для положения | Отбор по S/N и распространение формальной неопределённости |
| Форма | A_IMAGE, B_IMAGE, THETA_IMAGE, ELLIPTICITY | Морфология, маски и описание footprint |
| Классификация | CLASS_STAR, SPREAD_MODEL | Морфологическое различение точечных и протяжённых объектов |
| Качество | FLAGS и внешние флаги | Исключение насыщения, краёв и проблем deblending |
| Модель | Параметры POINT_SOURCE, DISK, SPHEROID | PSF- и профильная подгонка в модельном режиме |
Минимальный набор для астрометрии
Для построения списка центров ярких объектов обычно достаточно NUMBER, XWIN_IMAGE, YWIN_IMAGE, подходящей оценки потока, FLAGS и показателя формы. Добавление десятков неиспользуемых модельных колонок не улучшает центроид. Более важны фильтрация насыщенных объектов, исключение краёв, качественная сегментация и стабильный S/N.
Набор для апертурной фотометрии
Здесь нужны выбранные FLUX_APER или MAG_APER с соответствующими ошибками, координаты, FLAGS, локальные характеристики фона и, при необходимости, несколько апертур. Размерность векторного поля должна совпадать с числом диаметров PHOT_APERTURES. Если каталог читается собственным парсером, это соответствие проверяют автоматически при каждом запуске.
Набор для морфологии
Добавляют моменты, полуоси, ориентацию, CLASS_STAR или SPREAD_MODEL, S/N и флаги. Параметры формы без S/N малоинформативны: у слабых объектов шум сам расширяет распределения. При сравнении разных экспозиций также учитывают различие PSF, иначе изменение A_IMAGE можно ошибочно принять за физическую морфологию.
Диагностические CHECKIMAGE
SExtractor умеет создавать дополнительные FITS-изображения, которые показывают промежуточное состояние алгоритма. Это один из наиболее полезных способов контроля, потому что таблица значений не показывает пространственную структуру ошибки. Тип диагностической карты выбирается через CHECKIMAGE_TYPE, имя — через CHECKIMAGE_NAME; можно формировать несколько продуктов.
| Тип CHECKIMAGE | Что показывает | Какая ошибка видна |
|---|---|---|
| BACKGROUND | Интерполированную модель фона | Модель повторяет крупную галактику или не отслеживает градиент |
| BACKGROUND_RMS | Карту локального RMS | Неоднородность шума и области с аномально высокой дисперсией |
| MINIBACKGROUND | Грубую mesh-сетку фона | Проблемы выбора BACK_SIZE до интерполяции |
| MINIBACK_RMS | Грубую mesh-сетку RMS | Локальные зоны нестабильного шума |
| -BACKGROUND | Изображение после вычитания фона | Остаточный градиент или переоценка фона вокруг протяжённых объектов |
| FILTERED | Отфильтрованное detection-изображение | Несоответствие ядра масштабу объектов |
| OBJECTS | Выделенные объекты | Пропуски или чрезмерное включение шума |
| -OBJECTS | Изображение после удаления детектированных объектов | Остатки объектов и качество сегментации |
| SEGMENTATION | Метки принадлежности пикселей объектам | Слияние соседей и чрезмерное дробление |
| APERTURES | Геометрию фотометрических апертур | Попадание апертуры на соседей, края и маски |
SEGMENTATION особенно полезна для автоматических тестов. Значение метки можно связать с NUMBER и проверить площадь, касание края и перекрытие с внешней маской. Для визуального контроля карту сегментации накладывают на исходное изображение в отдельном FITS-просмотрщике. Если крупная галактика распалась на десятки меток, корректировать нужно deblending или фоновую модель, а не постфактум складывать случайные строки каталога.
ASSOC: сопоставление с внешним каталогом
SExtractor содержит механизм association, который может сопоставлять детекции с внешним списком координат и переносить связанные значения в выход. Это не полноценная кросс-матч-система с вероятностной моделью, но полезный встроенный этап для простых радиусных соответствий. Через ASSOC_NAME указывается таблица, через ASSOC_PARAMS — номера колонок координат и дополнительных данных, через ASSOC_RADIUS — радиус сопоставления.
Режим ASSOC_TYPE определяет, что делать с несколькими совпадениями: выбирать первое или ближайшее, рассчитывать среднее, сумму, минимум, максимум и связанные варианты для величин. ASSOCSELEC_TYPE управляет тем, какие объекты попадают в выход в зависимости от наличия совпадения. Для сложных sky-coordinate matches с неоднородной плотностью и ошибками положения лучше выполнять отдельное сопоставление после SExtractor, где можно явно учитывать вероятности и WCS.
Выходные каталоги и метаданные
Каталог может быть текстовым или FITS-структурой в зависимости от CATALOG_TYPE. Текст удобен для просмотра и простых Unix-пайплайнов; FITS-каталог лучше сохраняет типы, размерности и научные метаданные. При автоматизированном импорте следует привязываться к именам колонок и схеме, а не только к их позициям: изменение .param может переставить значения в ASCII-файле.
SExtractor умеет формировать XML-резюме/VOTable-совместимые метаданные. Параметры WRITE_XML и XML_NAME позволяют сохранять машинно-читаемую информацию о запуске. Такой продукт полезен для provenance: он помогает понять конфигурацию, статистику и состояние выполнения, особенно когда каталог проходит следующие этапы автоматически.
Выходной каталог не хранит исходное изображение. Для воспроизводимой обработки обычно сохраняют имя или идентификатор входного FITS, версию SExtractor, конфигурацию, .param, используемые фильтры, weight/flag maps и контрольные CHECKIMAGE. Без этого одинаковые имена колонок не гарантируют одинаковую методику измерения.
Интеграции и место в астрономическом конвейере
SExtractor спроектирован как отдельный Unix-подобный процесс, поэтому интегрируется через файлы и командную строку. Shell, Make, Snakemake, Nextflow, Python subprocess или пакетный планировщик могут запускать экземпляры на разных кадрах. Такой уровень интеграции прост и устойчив: программе не нужен постоянно работающий сервер или пользовательская сессия.
В классических астрометрических цепочках SExtractor часто отвечает только за детекцию и центроиды, а решение WCS выполняет другой компонент. Для photometric calibration каталог сопоставляют с внешним эталоном и рассчитывают нулевую точку уже вне SExtractor. Для coaddition подготовленные изображения могут проходить через отдельный ресэмплер или коаддер, после чего SExtractor строит итоговый каталог. Разделение обязанностей облегчает замену отдельного шага.
В Python-ориентированном проекте можно либо запускать SExtractor как внешний процесс, либо использовать SEP, который переносит основные алгоритмы Source Extractor в C-библиотеку и Python-обёртку над массивами NumPy. Выбор зависит от требуемой совместимости конфигураций и архитектуры: готовый SExtractor естественен в файловом конвейере, SEP — внутри процесса Python.
Производительность и масштабирование
Документация приводит ориентир до примерно 50 мегапикселей в секунду или около 10 000 объектов в секунду на процессоре порядка 3 ГГц для типичных задач. Это не гарантированный benchmark: фактическая скорость зависит от глубины поля, числа объектов, deblending, фильтра, каталожных параметров, модельной подгонки, ввода-вывода и аппаратной платформы. Ориентир показывает, что базовый extraction проектировался для крупных обзоров, но собственный набор данных всё равно требует измерения времени.
На 64-битных системах буферизованный доступ позволяет работать с очень большими изображениями, вплоть до размеров порядка миллиардов пикселей по измерению в пределах внутренних ограничений. Практическая пропускная способность определяется не только адресным пространством: FITS-файл должен читаться с накопителя, фоновые сетки и буферы занимают память, а интенсивный deblending на плотном поле создаёт дополнительную нагрузку.
Память
Для одиночного обычного кадра типичный расход памяти описывается порядком 100 МБ. Для изображений в сотни мегапикселей, dual-image mode и весовых карт расход может достигать порядка 500 МБ; тяжёлые варианты способны приблизиться к 2 ГБ. Если система начинает активно использовать swap, время обработки резко растёт. Поэтому на массовом узле число параллельных процессов ограничивают не только по ядрам, но и по худшему расходу RAM.
Что делает обработку дороже
- низкий порог детектирования увеличивает число сегментов и нагрузку deblending;
- плотное поле создаёт больше перекрывающихся объектов и ветвей разделения;
- модельная PSF/galaxy-подгонка требует итеративной оптимизации;
- большое число тяжёлых выходных параметров заставляет выполнять дополнительные вычисления;
- несколько CHECKIMAGE увеличивают запись на диск;
- медленный сетевой FITS-том может сделать I/O главным ограничением;
- короткие отдельные запуски на огромном числе мелких файлов увеличивают накладные расходы процесса и файловой системы.
Параллелизм
SExtractor поддерживает потоковые возможности сборки, но наиболее прозрачная стратегия для независимых кадров — запуск нескольких процессов, каждый со своим входом и собственными выходными именами. Это хорошо масштабируется на пакетном кластере, пока хватает памяти и I/O. Нельзя запускать несколько процессов с одинаковыми CATALOG_NAME или CHECKIMAGE_NAME: они будут конкурировать за один файл.
Практические сценарии использования
Каталог объектов обзорной съёмки
Для крупного sky survey SExtractor применяют после калибровки и приведения кадров к рабочей геометрии. Настраивают mesh фона под масштаб градиентов, weight map — под карту глубины, фильтр — под PSF, затем строят каталог с координатами, AUTO/апертурной фотометрией, формой и FLAGS. Контроль включает сегментацию и пространственное распределение числа объектов. Массовый прогон начинается только после фиксации параметров на репрезентативных полях.
Многополосная фотометрия
В dual-image mode детектирование выполняют на глубоком reference-кадре, а потоки измеряют в другой полосе. До запуска изображения приводят к одной пиксельной сетке и проверяют astrometric registration. Для каждой полосы задают собственную noise/weight map. Такой способ обеспечивает согласованный список объектов, но PSF между полосами всё равно может различаться; для точных цветов часто требуется PSF matching или модельная поправка вне SExtractor.
Список звёзд для астрометрии
Задача требует чистых компактных объектов и стабильных центроидов. Используют оконные координаты, исключают saturated/truncated FLAGS, ограничивают диапазон S/N и морфологию. Затем каталог передают решателю WCS или сопоставляют с опорным каталогом. SExtractor в этой цепочке не вычисляет саму plate solution; он подготавливает измерения объектов.
Сегментационная маска для последующей обработки
CHECKIMAGE_TYPE SEGMENTATION создаёт карту меток. Её можно использовать, чтобы маскировать объекты перед оценкой фона другим алгоритмом, анализировать незанятые области или передавать footprint в Python. Для такой задачи важнее геометрия сегментации, чем точность MAG_AUTO, поэтому .param можно сделать минимальным и сократить ненужные измерения.
Выбор кандидатов PSF
Каталог с S/N, SPREAD_MODEL или CLASS_STAR, размерами, FLAGS и насыщением позволяет выделить чистую выборку точечных объектов. Затем выборку проверяют по изображению и пространственному распределению. Нельзя строить PSF по объектам, выбранным одним фиксированным порогом классификатора без проверки: seeing и S/N меняют распределение признаков.
Контроль качества экспозиций
На серии кадров можно отслеживать медиану фонового RMS, число объектов, распределение оконных размеров, долю FLAGS и плотность детекций по полю. Резкое изменение этих статистик сигнализирует об облаках, фокусе, трекинге, дефекте калибровки или неправильном входном файле. SExtractor здесь выступает стандартизованным измерительным этапом, а решение о браковке принимает внешний контрольный код.
Поиск протяжённых объектов
Для галактик требуется осторожный deblending и фон. BACK_SIZE должен быть достаточно крупным, чтобы внешние части профиля не считались небом; DETECT_THRESH и MINAREA настраивают под ожидаемый поверхностно-яркостный режим. AUTO/PETRO и модельные параметры дают дополнительные измерения, но слабые низкоповерхностные крылья остаются чувствительными к фону — их точность нельзя оценивать только по формальной MAGERR.
Создание входа для статистического анализа
SExtractor удобен как генератор табличных признаков: координаты, потоки, размеры, моменты, флаги и классификаторы можно передать в статистический пакет. При этом важно помнить, что признаки коррелированы и зависят от одной сегментации. Если обучение модели использует данные из разных телескопов, параметры extraction должны быть согласованы либо включены в доменную калибровку.
Ограничения, которые важно учитывать
- Нет оконного GUI. Пользователь работает с оболочкой, текстовыми файлами и внешним FITS-просмотрщиком. Для интерактивного анализа это менее удобно, чем интегрированная среда.
- Основной вход — FITS. Программа не предназначена для обычных JPEG/PNG-фотографий и не заменяет фотоконвертер.
- Тайл-сжатый FITS не читается как штатный вход. Такой файл приходится предварительно преобразовывать.
- Куб NAXIS>2 не обходится автоматически. Используется первая двумерная плоскость, поэтому спектральные и временные кубы требуют внешнего цикла.
- Dual-image mode требует согласованной пиксельной сетки. Произвольная WCS-регистрация не выполняется внутри SExtractor.
- Коррелированный шум описывается неполно. Формальные ошибки после ресэмплинга следует эмпирически проверять.
- CLASS_STAR зависит от seeing и S/N. Его нельзя считать универсальной вероятностью класса.
- Фон для протяжённых объектов требует ручной валидации. Неподходящий BACK_SIZE способен вычесть реальный низкоповерхностный свет.
- Deblending — компромисс. Один параметр не обеспечивает одновременно идеальное разделение пар и целостность сложных галактик.
- Модельная подгонка ограничена набором моделей и предположениями о шуме. Для сложных многокадровых сцен лучше подходят более новые инструменты.
- Различие имён бинарного файла. В старых сценариях встречается
sex, а Debian предоставляетsource-extractor, что требует явной интеграции. - Windows не является нативной GUI-платформой. Документирован POSIX-путь через Cygwin; это увеличивает сложность установки.
Плюсы и минусы SExtractor
Плюсы
- специализированный алгоритм detection/deblending и измерений для астрономических FITS, сформированный вокруг задач больших обзоров;
- консольный интерфейс хорошо автоматизируется и не требует графической сессии на сервере;
- текстовая конфигурация делает параметры обработки воспроизводимыми и удобными для контроля версий;
- выходной набор параметров задаётся отдельно, поэтому каталог можно адаптировать к астрометрии, фотометрии, морфологии или контролю качества;
- поддерживаются weight maps, flag maps, dual-image mode и диагностические FITS-продукты;
- есть несколько типов фотометрии, оконные координаты, классификационные признаки и модельная подгонка;
- буферизованная обработка рассчитана на большие изображения и массовые пакетные прогоны;
- GPLv3+ позволяет использовать и изменять исходный код при соблюдении условий лицензии.
Минусы
- нет встроенного оконного просмотра результатов и интерактивной настройки сегментации;
- качество зависит от понимания фона, шума, PSF, deblending и значения каталожных полей;
- часть внешних конфигурационных файлов должна находиться по корректным путям, иначе запуск завершается ошибкой;
- формальная модель ошибок не описывает все систематические и коррелированные эффекты;
- классический dual-image режим менее гибок, чем современные многокадровые модельные пакеты;
- для работы в Windows требуется дополнительное POSIX-окружение;
- исторически накопившиеся поля и имена, например MAG_BEST и CLASS_STAR, требуют знания того, какие методы предпочтительны в новых проектах.
Системные требования
| Компонент | Подтверждённое требование или характеристика | Практическая рекомендация |
|---|---|---|
| Операционная среда | Разработка ориентирована на GNU/Linux и POSIX; сборка возможна на macOS и в Cygwin | Для наиболее простого развёртывания использовать Linux-пакет или воспроизводимый Linux-контейнер |
| Интерфейс | ANSI text mode, запуск из shell | Графическая среда для самого SExtractor не нужна; FITS-просмотрщик нужен только для визуальной диагностики |
| Процессор | Специального минимального поколения не задано; производительность CPU влияет на throughput | Для массового запуска масштабировать по независимым кадрам и контролировать RAM/I/O |
| Оперативная память | Около 100 МБ типично для одиночного изображения; около 500 МБ для больших, dual или weighted задач; тяжёлые случаи до порядка 2 ГБ | Оставлять запас и не допускать интенсивного swap |
| FFTW | Версия 3.0 или новее для сборки из исходников | Установить development-пакет при самостоятельной компиляции |
| Линейная алгебра | ATLAS 3.6+ или совместимые BLAS/LAPACK; поддерживается Intel MKL | Выбирать одну согласованную реализацию библиотек и проверять линковку |
| Формат входа | FITS, включая multi-extension FITS; tiled-compressed FITS не поддерживается штатно | Преобразовать неподдерживаемое сжатие до запуска |
| Разрядность | 64-битная среда позволяет адресовать очень крупные изображения и большие рабочие буферы | Для современных обзорных кадров использовать 64-битную систему |
| Диск | Размер зависит от входных FITS, каталогов и CHECKIMAGE | При массовой диагностике учитывать, что несколько FITS-карт могут быть сопоставимы по объёму с исходным кадром |
Публичный Debian-пакет 2.28.2+ds-1 доступен для amd64 и ряда других архитектур, что подтверждает современную пакетную поддержку Linux. Конкретный бинарный пакет связан с ABI и библиотеками своего дистрибутива: файл для Debian amd64 нельзя считать универсальным бинарником для macOS или Windows.
Отзывы пользователей и профильных изданий
Что отмечают пользователи
В технических обсуждениях повторяются не оценки внешнего вида, а эксплуатационные детали. Одна типичная проблема — сообщение cannot open default.conv: программа запускается, но включённый FILTER ссылается на отсутствующее ядро свёртки. Решение состоит в корректном размещении файла и настройке FILTER_NAME. Это показывает, что рабочая конфигурация SExtractor включает внешние файлы, а не только один .sex.
Другой повторяющийся класс проблем связан с именем и путём бинарного файла. На macOS SExtractor может успешно запускаться пользователем, но интегрирующее приложение не находит source-extractor или sex. Указание абсолютного пути устраняет именно интеграционную проблему. Для автоматизации проверять нужно не только интерактивную команду в shell, но и окружение процесса, который запускает SExtractor.
Пользователи также обсуждают компромисс между скоростью, полнотой и чистотой каталога. Отключение фильтрации или CLEAN, повышение порога и упрощение deblending способны ускорить обработку, но меняют набор найденных объектов. Поэтому производительность оценивают вместе с научной метрикой, а не только по времени выполнения.
Вопросы о PSF-фотометрии и настройке модельных файлов показывают ещё одно свойство программы: базовую детекцию освоить проще, чем продвинутую модельную подгонку. Для сложных режимов необходимо понимать структуру PSF-модели и значение модельных параметров; простое копирование чужого файла не гарантирует корректность.
Оценки профильных публикаций и научных организаций
Статья Bertin & Arnouts 1996 года описывает SExtractor как программу автоматического анализа больших астрономических изображений: детектирование, deblending, измерение и классификация выполняются с минимальным ручным вмешательством, что соответствует потребностям больших внегалактических обзоров. Публикация A&AS 117, 393–404 стала основной научной ссылкой для классического SExtractor и объясняет происхождение многих его алгоритмических решений.
Hubble Legacy Archive использовал отдельные списки объектов, сформированные разными методами: DAOPHOT — для точечных объектов, SExtractor — как предпочтительный вариант для протяжённых. Этот пример не означает, что SExtractor универсально лучше другого детектора; он показывает специализацию. Для конкретной научной задачи параметры извлечения всё равно требуют оптимизации под тип объектов и данные.
Профессиональная ценность SExtractor связана не с интерактивным удобством, а с автоматизацией, детерминированной конфигурацией и богатым набором измерений. Одновременно та же архитектура предъявляет высокий порог к пониманию параметров: публикации, использующие SExtractor как компонент методики, обычно фиксируют detection threshold, deblending, apertures и критерии отбора, а не просто называют программу.
Сравнение с аналогами
Аналоги ниже сравниваются только как инструменты для той же технологической зоны — обнаружения и измерения астрономических объектов. Они не меняют предмет обзора. Главное различие проходит между готовой консольной программой с конфигурационными файлами и библиотеками или новыми фреймворками, которые встраиваются в код.
| Критерий | SExtractor | SourceXtractor++ | SEP | Photutils |
|---|---|---|---|---|
| Форма продукта | Отдельная консольная программа | Отдельная программа нового поколения | C-библиотека и Python-обёртка | Python-пакет экосистемы Astropy |
| Основной сценарий | FITS → detection/deblend → каталог | Многокадровое измерение и модельная подгонка | Source Extractor-подобные алгоритмы прямо над массивами NumPy | Модульное построение собственного Python-пайплайна |
| Конфигурация | Текстовый .sex, .param и вспомогательные файлы | Python-конфигурация и модульная архитектура | Функции API и параметры Python/C | Python-классы и функции |
| Вход | FITS, включая MEF; ограничение для tiled-compressed FITS | FITS через FITSIO; measurement-кадры могут иметь разные сетки при валидной WCS | Массивы в памяти; чтение FITS остаётся коду пользователя | Массивы и инструменты Astropy для работы с FITS |
| Многокадровая модель | Dual-image с согласованной пиксельной сеткой | Рассчитан на множество measurement-изображений и совместную модель | Оркестрацию нескольких кадров пишет пользователь | Оркестрацию определяет Python-пайплайн |
| Интерактивность | Нет собственного GUI | Также ориентирован на программный и консольный workflow | Интерактивность возможна через Jupyter/Python | Хорошо сочетается с Jupyter и Astropy |
| Совместимость со старым SExtractor workflow | Нативная | Концептуальный преемник, но не drop-in копия | Реализует основные алгоритмы Source Extractor, но API иной | Алгоритмы и API самостоятельные |
| Когда выбирать | Нужен зрелый файловый CLI и воспроизводимая классическая конфигурация | Нужна сложная многокадровая модель и Python-конфигурация | Нужно остаться внутри Python/NumPy и получить знакомые extraction-алгоритмы | Нужен модульный Python-набор background, detection, aperture и PSF-инструментов |
SExtractor и SourceXtractor++
SExtractor и SEP
SEP переносит основные алгоритмы Source Extractor в библиотеку C и Python-интерфейс. Данные поступают как массивы в памяти, поэтому Python-код сам открывает FITS, управляет WCS и формирует остальную логику. Это удобно, когда весь проект уже построен на NumPy и Astropy. SExtractor удобнее, когда важна совместимость с существующей файловой конфигурацией и независимый бинарный этап.
SExtractor и Photutils
Photutils — модульный пакет Astropy с фоновыми оценками, segmentation, aperture photometry, PSF-фотометрией, центроидами и другими компонентами. Он не пытается быть одним монолитным клоном SExtractor. Пользователь собирает pipeline на Python, получает тонкий контроль и тесную работу с Astropy, но отвечает за интеграцию шагов. SExtractor даёт более жёстко определённый готовый маршрут в одном процессе.
Частые ошибки и способы исправления
| Симптом | Причина | Что сделать | Как проверить |
|---|---|---|---|
cannot open default.conv | FILTER включён, но файл свёртки не найден | Указать существующий FILTER_NAME либо осознанно отключить фильтр | Повторный запуск проходит, FILTERED CHECKIMAGE соответствует выбранному ядру |
Команда sex не найдена | Пакет использует имя source-extractor или путь отсутствует в PATH | Найти фактический бинарный файл и использовать корректное имя или полный путь | Версия и help выводятся из того же окружения, где работает pipeline |
| Очень много шумовых детекций | Слишком низкий порог, малая площадь, неверный RMS или неподходящая фильтрация | Проверить background/RMS, DETECT_THRESH, DETECT_MINAREA и фильтр | Шумовые пустые области перестают давать кластер детекций без потери контрольных объектов |
| Галактика раздроблена на множество объектов | Агрессивный deblending или слишком мелкий фон | Проверить DEBLEND_MINCONT, DEBLEND_NTHRESH и BACK_SIZE | SEGMENTATION сохраняет физически разумную структуру на контрольных галактиках |
| Близкие объекты слиты | Недостаточное deblending-разделение | Настроить DEBLEND_NTHRESH и DEBLEND_MINCONT, при необходимости фильтр | Известные пары получают отдельные сегменты без массового дробления одиночных объектов |
| Потоки зависят от положения на кадре | Неправильный фон, weight map или flat-field | Сравнить BACKGROUND и BACKGROUND_RMS, проверить калибровку и веса | Остаточные тренды уменьшаются на стандартных объектах |
| Формальная MAGERR слишком мала | Коррелированный шум или систематика не отражены моделью | Оценить шум пустыми апертурами или повторными экспозициями | Эмпирический разброс согласуется с принятой моделью ошибки |
| Небесные координаты неверны | Ошибочная или отсутствующая WCS | Исправить WCS до extraction | Сопоставление с опорным каталогом даёт малые остатки без пространственного тренда |
| Разные полосы дают смещённые апертуры в dual mode | Кадры не приведены к одной пиксельной сетке | Зарегистрировать и ресэмплировать изображения заранее | Контрольные звёзды совпадают в пиксельных координатах |
| Выходной каталог меняет смысл колонок | Изменён .param, а downstream-парсер читает позиции | Читать имена колонок или фиксировать схему | Автотест проверяет наличие, тип и размерность ожидаемых полей |
| FLAGS содержит 64 или 128 | Переполнение внутренних буферов сложного объекта | Проверить memory-параметры и сложность сегментации | После исправления флаг исчезает на проблемном объекте, а карта сегментации остаётся разумной |
| CLASS_STAR ведёт себя по-разному на кадрах | Разный seeing, S/N или параметры классификатора | Калибровать порог по каждому набору либо использовать SPREAD_MODEL с контролем ошибок | Эталонная выборка звёзд и галактик показывает устойчивое разделение |
Как проверять качество результата
1. Фоновая карта
Откройте BACKGROUND и -BACKGROUND. На модели не должны проступать контуры объектов, которые требуется измерять, а на вычтенном кадре не должно оставаться крупномасштабного градиента, объяснимого неверной сеткой. Проверку выполняют в центре, на краях и в участках с разной плотностью объектов.
2. Сегментация
Наложите SEGMENTATION на исходный FITS. Просмотрите яркие одиночные звёзды, близкие пары, крупные галактики, слабые объекты у порога и края. Хорошая настройка не определяется одним примером: параметры должны сохранять приемлемый компромисс на всех типах сцен, важных для проекта.
3. Негативный тест
На изображении, где сигнал умножен на -1 с корректным обращением фоновой логики, число «объектов» даёт эмпирическое представление о шумовых экстремумах. Это не универсальная оценка ложных детекций для асимметричных артефактов, но полезный контроль глубины.
4. Инжекция искусственных объектов
В копии кадра можно разместить модели звёзд или галактик с известными потоками и размерами, затем измерить completeness, смещение фотометрии и зависимость от позиции. Объекты должны иметь реалистичный PSF и добавляться до detection, иначе тест не отражает deblending и пороговый отбор.
5. Повторные экспозиции
Объекты, измеренные независимо на нескольких экспозициях, позволяют проверить формальные ошибки. Нормированная разность потоков или координат должна иметь ожидаемый разброс. Слишком широкое распределение указывает на недооценённые ошибки или систематику; слишком узкое — на консервативную модель либо коррелированность выборки.
6. Карта плотности объектов
Постройте число детекций по координатам изображения. Полосы, сетка или резкий рост на краях часто соответствуют неоднородному шуму, flat-field, швам мозаики или неправильной weight map. Реальная астрофизическая структура тоже меняет плотность, поэтому сравнивают несколько полей и диагностические карты.
7. Проверка FLAGS
Посчитайте долю каждого бита FLAGS и её зависимость от положения и яркости. Большая доля saturated-флагов у ярких звёзд ожидаема, но массовый bit 8 в середине кадра говорит о проблеме интерпретации границы или подизображения. Bit 64 или 128 требует внимания к буферам и очень сложным сегментам.
8. Кривая роста
Если выводятся несколько MAG_APER, сравните разность соседних апертур у чистых звёзд. Стабильная кривая роста помогает выбрать апертурную поправку и увидеть spatial PSF variation. Резкая зависимость от фона или координат указывает на систематику.
9. Сравнение AUTO и модельной или апертурной фотометрии
Разности между методами должны вести себя объяснимо с размером и S/N. Сильный тренд у ярких компактных объектов может означать неверную апертурную поправку; выбросы у deblended объектов — проблемы сегментации. Один метод не используется как абсолютная истина для проверки другого, но их расхождение хорошо выявляет классы проблем.
10. Фиксация версии и конфигурации
После валидации сохраните версию бинарного файла, конфигурацию, .param, FILTER, NNW и PSF-файлы при их использовании, контрольные метрики и небольшой эталонный каталог. При обновлении версии повторите этот набор и сравните результаты. Так патч-релиз или изменение системной библиотеки не пройдёт незаметно в длинной серии.
Ошибки измерений и интерпретация неопределённостей
SExtractor вычисляет формальные ошибки из модели пиксельного шума, gain и геометрии измерения. Эти величины полезны для ранжирования S/N и построения весов, но не включают весь error budget. Flat-field uncertainty, zero-point error, PSF mismatch, residual background, correlated noise и выбор segmentation способны доминировать над формальным photon/statistical error.
Для апертурной фотометрии наиболее частая недооценка возникает после ресэмплинга. Пиксели становятся коррелированными, а сумма variance по независимой формуле уже не соответствует разбросу суммы. Эмпирическая оценка на большом числе пустых апертур того же размера даёт коэффициент коррекции для конкретного продукта обработки.
Для AUTO и PETRO добавляется неопределённость геометрии апертуры. Слабый объект может иметь шумный Kron или Petrosian radius, поэтому ошибка не сводится к сумме пиксельного RMS в фиксированной области. Для каталога полезно отдельно характеризовать bias и scatter через injection/recovery, особенно около предела детектирования.
Для координат формальные ERRX/ERRY-подобные параметры не включают все систематические смещения. Атмосфера, оптика, undersampling, saturation и blending создают дополнительный floor. После решения WCS строят остатки по яркости, цвету и положению, чтобы увидеть систематический компонент.
Воспроизводимость и управление конфигурациями
У SExtractor нет проекта в формате одного контейнера с изображениями и настройками. Поэтому воспроизводимость строится вокруг файловой дисциплины. Для каждого production-run полезно хранить каталог конфигурации, точный .param, filter kernel, NNW и PSF при их использовании, версию программы и команду запуска. Эти файлы должны быть неизменяемыми после публикации результата.
Имена вроде default.sex и default.param удобны для теста, но плохо различают методики. В производственном каталоге лучше давать смысловые имена, например deep_galaxy_v3.sex, и хранить их в системе контроля версий. Тогда изменение BACK_SIZE или DEBLEND_MINCONT оформляется как отдельная версия методики, а не тихая правка одного default-файла.
Контрольный набор должен включать несколько FITS с разными сложными случаями: плотное поле, крупный протяжённый объект, неоднородный фон, край мозаики и обычное поле. Автотест сравнивает число объектов, контрольные колонки и распределения, а не требует бит-в-бит идентичности плавающей арифметики на разных CPU без необходимости.
При контейнеризации нужно зафиксировать не только SExtractor, но и библиотеки FFTW/BLAS, CFITSIO и базовый образ. Это особенно важно для длительных проектов, где системный репозиторий позже обновляет зависимости. Контейнер также устраняет различия PATH и рабочих каталогов, которые часто вызывают ошибки с FILTER_NAME и именем бинарного файла.
Безопасность и приватность
SExtractor работает локально как командная программа и не требует загрузки FITS на внешний сервер. Для научных данных с ограниченным доступом это уменьшает поверхность передачи: содержимое остаётся в файловой системе, доступной процессу. Сама программа не является системой разграничения доступа, поэтому права каталогов, шифрование диска, резервное копирование и политика хранения остаются задачей операционной среды.
Риск при пакетном запуске связан прежде всего с обычными правилами Unix. Не следует формировать shell-команду простым склеиванием недоверенных имён файлов; пути нужно корректно экранировать либо передавать через безопасный API запуска процессов. Выходные имена должны быть уникальны, иначе параллельные процессы могут перезаписывать каталоги или CHECKIMAGE.
Сборку из исходников лучше выполнять из проверенного релиза и в контролируемом окружении зависимостей. При использовании пакета дистрибутива проверку целостности и подписи обеспечивает его пакетный менеджер. Для воспроизводимой инфраструктуры фиксируют номер пакета и базовый репозиторий, чтобы новый образ не получил другую сборку без валидации.
FAQ по SExtractor
Есть ли у SExtractor графический интерфейс?
Нет. Это консольная программа. Настройки хранятся в текстовых файлах и передаются через командную строку; изображения контроля создаются как FITS и просматриваются внешним инструментом.
Какой формат изображения нужен?
Основной рабочий формат — FITS. Поддерживаются обычные двумерные FITS и multi-extension FITS. Тайл-сжатое представление не является штатно поддерживаемым входом.
Можно ли обработать FITS-куб?
Не как серию плоскостей одним запуском. При NAXIS больше двух используется первая двумерная плоскость. Для куба требуется внешний цикл, который выделяет или адресует нужные изображения.
Почему в одних инструкциях команда sex, а в Debian source-extractor?
Это различие упаковки. Историческое upstream-имя — sex, а Debian использует source-extractor. Проверяйте фактический бинарный файл вашей системы и явно задавайте путь в интеграциях.
Что такое default.sex?
Обычное имя конфигурационного файла. Его содержание задаёт фон, detection, deblending, фотометрию, веса, каталоги и другие параметры. Лучше генерировать шаблон средствами установленной версии и хранить свою копию вместе с методом обработки.
Для чего нужен default.param?
Он определяет, какие поля попадут в каталог. Можно вывести несколько минимальных параметров или широкий набор координат, потоков, ошибок, формы и флагов.
Почему появляется ошибка про default.conv?
Фильтрация включена, но файл ядра свёртки не найден по указанному пути. Укажите существующий FILTER_NAME либо отключите FILTER только в том случае, если это соответствует выбранной методике.
Что лучше для центроидов: X_IMAGE или XWIN_IMAGE?
Оконные XWIN/YWIN используют итеративное гауссово взвешивание и обычно предпочтительны для точечных объектов с хорошим S/N. Для конкретной камеры точность проверяют по повторным экспозициям и WCS-остаткам.
MAG_AUTO — это полный поток объекта?
Нет. Это Kron-подобная адаптивная апертура, которая охватывает большую, но не гарантированно всю долю профиля. Для точной total photometry нужна поправка или модель, соответствующая задаче.
Когда использовать MAG_APER?
Когда нужна фотометрия в фиксированной апертуре: например, для точечных объектов, кривых роста или согласованных цветов после PSF matching. Диаметр задаётся PHOT_APERTURES.
Что означает FLAGS=2?
Объект был разделён deblending-алгоритмом из общей структуры. Это не автоматический брак, но для точной фотометрии следует проверить соседей и segmentation.
Что означает FLAGS=4?
В объекте присутствуют насыщенные пиксели. Поток, центр и форма могут быть смещены, поэтому такой объект обычно исключают из калибровочных выборок.
FLAGS складываются?
Да. Это битовая маска. Несколько условий одновременно дают сумму соответствующих битов; разбирать их нужно побитовыми операциями.
Можно ли задать разный шум для разных частей кадра?
Да. Для этого используют weight map подходящего типа. Карта должна иметь правильную физическую интерпретацию: RMS, variance и inverse weight — разные величины.
Учитывает ли SExtractor коррелированный шум?
Полная ковариация соседних пикселей не моделируется. После ресэмплинга формальные ошибки полезно корректировать по эмпирическому шуму пустых апертур или повторных измерений.
Можно ли детектировать в одной полосе, а измерять в другой?
Да, dual-image mode предназначен именно для этого. Изображения должны быть согласованы по пиксельной сетке; произвольную регистрацию между ними SExtractor не выполняет.
Делает ли SExtractor plate solving?
Нет. Он может выдать центры объектов и небесные координаты при уже существующей WCS, но построение WCS-решения выполняет другой инструмент.
Можно ли получить сегментационную карту?
Да. CHECKIMAGE_TYPE SEGMENTATION формирует FITS, где пиксели размечены идентификаторами объектов. Карта удобна для масок и контроля deblending.
Что выбрать для звезда/галактика: CLASS_STAR или SPREAD_MODEL?
CLASS_STAR остаётся доступным историческим классификатором, но SPREAD_MODEL является более современным морфологическим показателем. Оба требуют калибровки по S/N, seeing и данным.
Можно ли подгонять PSF?
Да, SExtractor поддерживает PSF и модельные измерения при наличии подходящей PSF-модели. Это более сложный режим, чем базовый extraction, и его флаги подгонки нужно включать в контроль качества.
Как уменьшить время обработки?
Сначала уберите ненужные тяжёлые параметры из .param, ограничьте число CHECKIMAGE и используйте быстрый локальный storage. Изменять detection или deblending ради скорости следует только после измерения влияния на полноту и чистоту каталога.
Можно ли запускать несколько экземпляров параллельно?
Да, независимые кадры естественно обрабатываются разными процессами. У каждого процесса должны быть уникальные имена каталогов и диагностических файлов, а число процессов ограничивают доступной RAM и пропускной способностью диска.
Нужен ли интернет для работы?
Нет. После установки SExtractor обрабатывает локальные файлы. Сеть нужна только внешним этапам, если ваш pipeline сам обращается к удалённым каталогам или хранилищам.
Подходит ли SExtractor для Windows?
Документированный путь исходной сборки относится к POSIX-средам, включая Cygwin. Это не нативное оконное приложение Windows; для минимальной сложности чаще выбирают Linux-окружение.
Почему текущая версия 2.28.2, а документация помечена 2.28.0?
2.28.2 — более поздний патч-релиз той же функциональной линии. Его изменения относятся главным образом к исправлениям и сборке, поэтому основная документация ветки остаётся маркированной 2.28.0.
Как понять, что конфигурация готова к массовому запуску?
Нужно пройти визуальную проверку background и segmentation, измерить completeness и ложные детекции на контрольных данных, проверить распределения FLAGS и фотометрических ошибок, а затем зафиксировать версию и конфигурационные файлы.
Как выбрать SExtractor для конкретного проекта
| Сценарий | Насколько SExtractor уместен | Что учитывать |
|---|---|---|
| Большая серия FITS с одинаковой методикой | Очень уместен | CLI, стабильная конфигурация и пакетная обработка соответствуют задаче |
| Однократная интерактивная разметка изображения | Менее удобен | Нет GUI; визуальные действия выполняются внешними программами |
| Классический survey catalog | Уместен | Требуется тщательная настройка фона, deblending и completeness |
| Много фильтров на общей сетке | Уместен через dual-image mode | Изображения должны быть геометрически согласованы |
| Сотни measurement-кадров на разных WCS | Ограничен | SourceXtractor++ предоставляет более прямую многокадровую модель |
| Весь анализ находится внутри Python/NumPy | Работает как subprocess, но не всегда оптимален | SEP или Photutils уменьшают файловую границу между этапами |
| Нужна нативная Windows GUI-программа | Не соответствует ожиданию | SExtractor консольный и POSIX-ориентированный |
| Высокая цена систематической фотометрической ошибки | Уместен только с внешней валидацией | Инжекция, пустые апертуры, повторные экспозиции и контроль PSF обязательны независимо от программы |
Для пользователя, которому нужен воспроизводимый массовый extraction из FITS, SExtractor остаётся рациональным выбором благодаря узкой специализации. Для интерактивной работы без терминала он неудобен. Для сложной многокадровой model fitting задачи классический dual-image подход может стать ограничением. Для Python-приложения, где данные уже находятся в памяти, библиотечный API SEP или модульный Photutils часто уменьшает интеграционные накладные расходы.
Итог
SExtractor — зрелый консольный инструмент для превращения астрономических FITS-изображений в каталоги объектов. Его сильные стороны проявляются в повторяемой пакетной обработке: конфигурация отделена от данных, набор выходных полей задаётся явно, поддерживаются фон, deblending, разные типы фотометрии, weight и flag maps, dual-image mode, сегментация и модельные измерения. Цена такой гибкости — необходимость понимать научный смысл параметров и проверять результат через диагностические FITS и статистические тесты.
Для ярких звёзд при астрометрии приоритетны устойчивые оконные центроиды и строгий отбор FLAGS. Для глубокого каталога галактик важнее фон, deblending, completeness и смещения AUTO или PETRO. Для многополосной фотометрии dual-image mode полезен при общей пиксельной сетке и отдельных noise maps. Для очень сложной совместной подгонки многих кадров уместны более новые фреймворки, но SExtractor сохраняет самостоятельную роль воспроизводимого этапа классического астрономического pipeline.
Список изменений
История версий:
- SExtractor развивается с середины 1990-х. Ранние ветки сформировали базовую модель detection/deblending и классификацию звезда/галактика; затем добавлялись WCS, weight maps, large-file support, multi-extension FITS, новые типы каталогов, оконные измерения и модельная подгонка. В современной ветке темп функциональных изменений ниже: 2.28.x поддерживает зрелый код и переносимость, а релиз 2.28.2 является патч-выпуском с исправлениями сборки и ошибок.
- Последняя запись релизов — 2.28.2 от 19 января 2025 года. Пакеты Debian и Fedora продолжают распространять 2.28.2 в актуальных репозиториях 2026 года. Это различает три понятия: номер текущей версии программы — 2.28.2; основная онлайн-документация маркирована 2.28.0; дистрибутивные сборки могут добавлять собственный суффикс пакета, например Debian +ds-1 , не меняя upstream-версию.

Оставте свой отзыв о SExtractor