本站提供正體中文版。切換到正體中文本站提供简体中文版。切换到简体中文This site is available in English.View in Englishこのサイトには日本語版があります。日本語で表示이 사이트는 한국어로도 제공됩니다.한국어로 보기Diese Website ist auch auf Deutsch verfügbar.Auf Deutsch ansehenEste sitio web también está disponible en español.Ver en españolQuesto sito è disponibile anche in italiano.Visualizza in italianoCe site est également disponible en français.Afficher en françaisEste site também está disponível em português.Ver em portuguêsDeze website is ook beschikbaar in het Nederlands.In het Nederlands bekijkenयह वेबसाइट हिन्दी में भी उपलब्ध है।हिन्दी में देखेंهذا الموقع متاح أيضًا باللغة العربية.عرض بالعربيةSitus ini juga tersedia dalam bahasa Indonesia.Lihat dalam bahasa IndonesiaBu site Türkçe olarak da mevcut.Türkçe görüntüleTa strona jest dostępna także po polsku.Wyświetl po polskuTrang web này cũng có phiên bản tiếng Việt.Xem bằng tiếng Việtاین وب‌سایت به فارسی هم در دسترس است.مشاهده به فارسی

Устранение неполадок WBPP: частые ошибки и известные баги

Предобработка и сложение2022.04Ранние заметки

Эта статья составлена по заметкам 2022–2025 годов; некоторые инструменты или процессы с тех пор были обновлены, учитывайте это при чтении; сообщения об ошибках и особенности поведения версий в тексте зафиксированы такими, какими они были на тот момент. Об интерфейсе WBPP, мастер-калибровочных кадрах и обычном порядке выполнения см. другую статью «Полное руководство по WBPP».

Прогонять WBPP от начала до конца одним нажатием кнопки, конечно, приятно, но когда доходит до реального использования, всегда приходится сталкиваться с ситуациями, когда всё зависает, выдаёт ошибку или результат выглядит как-то не так. В этой статье я собрал в единый справочник по устранению неполадок несколько категорий проблем с WBPP, с которыми сталкивался за эти годы и о которых меня чаще всего спрашивают, — от диагностического подхода до нескольких конкретных известных багов.

Первый шаг устранения неполадок: сначала смотрим Process Console

Когда при обработке в PixInsight что-то идёт не так, первое, о чём всегда стоит подумать, — это посмотреть Process Console. Она подскажет, где произошла ошибка и какого она типа, — это отправная точка любой диагностики.

Однако WBPP — это скрипт, и пока скрипт не выполняется, console свёрнута и её нельзя выделить. Поэтому, чтобы увидеть console, часто приходится сначала закрыть WBPP. Звучит хлопотно, но для многих проблем это единственный источник подсказок — разгадка каждого из описанных ниже багов начиналась именно с той красной строки в console.

Сбои и баги на этапе калибровки

Калибровка завершилась ошибкой (failed) — сначала закройте PI, потом откройте заново. Если при запуске WBPP уже самая первая калибровка (с использованием мастер-калибровочных кадров) заканчивается неудачей и status показывает красный failed, можно приостановить весь процесс, закрыть PI, снова открыть WBPP и запустить ещё раз — эта ошибка калибровки обычно после этого исчезает. При обработке снимков с OSC-камеры я сталкивался с этим багом как минимум четыре раза, и каждый раз решал его именно этим приёмом.

Экран этапа калибровки WBPP, на котором status показывает красный failed

Флэты постоянно выдают ошибку калибровки — вернитесь к ручной, пошаговой обработке. В некоторых версиях WBPP есть баг, который постоянно вызывает ошибку калибровки флэтов. В таких случаях важно уметь обрабатывать всё самостоятельно, шаг за шагом. Заодно повторим шаги Pre-Process:

  1. Calibration: light − dark / ((flat − flat dark) * med(flat))
  2. Cosmetic Correction
  3. Debayer: интерполяция по матрице Байера
  4. Star Alignment
  5. NSG
  6. Integration

Ошибки калибровки флэтов в WBPP и справка по шагам ручной пошаговой обработки

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

Проблемы с путями: две возможные причины File I/O Error

При использовании WBPP в Windows, если на этапе калибровки (calibration) выскакивает File I/O Error, обычно это одна из двух причин:

  1. Путь к файлу вместе с именем файла слишком длинный и превышает системное ограничение, поэтому его нужно сократить.
  2. В целевую папку нельзя записать данные, например если вывод настроен в системную папку.

Экран ошибки File I/O Error на этапе калибровки WBPP

Первая причина встречается чаще всего. Чтобы устранить «слишком длинный путь» в корне, можно включить в Windows поддержку длинных путей (в regedit установить LongPathsEnabled в 1); также рекомендуется избегать путей с символами не из ASCII (например, китайскими). Подробные шаги для этих двух предварительных настроек среды я описал в разделе о настройке среды Windows статьи «Полное руководство по WBPP», поэтому здесь не повторяю.

Баг координат RA/DEC «60 секунд без переноса»

Это самая коварная и вместе с тем самая заслуживающая отдельного разбора проблема, потому что её симптомы бывают самыми разными, а первопричина всегда одна: в координатах прямого восхождения / склонения в FITS Header значение секунд равно «60», но перенос в старший разряд не произошёл.

Я сталкивался с этим дважды, и каждый раз проявление было разным.

Первый раз: WBPP не мог загрузить файл. Я закрыл WBPP и посмотрел Process Console — оказалось, что одна из строк какого-то js-скрипта сообщала «invalid coordinates». В тот момент я решил, что это баг WBPP, взял текст ошибки и поискал в интернете, и только тогда нашёл на PixInsight Forum несколько таких же сообщений об ошибке — выяснилось, что проблема с координатами мешает изображению загрузиться в WBPP. Имея направление поиска, я всё же потратил час, копаясь в нескольких сотнях лайтов, прежде чем нашёл проблемное изображение: его координата OBJCTDEC была неверной. Я открыл в PI процесс FITSHeader, прокрутил до OBJCTDEC и изменил значение, которое «должно было перенестись, но не перенеслось», — например, -69 26 60 я изменил на -69 27 0, — и этот кадр после этого успешно загрузился, а последующие файлы больше не застревали из-за него.

Исправление не перенесённой координаты OBJCTDEC с помощью процесса FITSHeader

Второй раз: файлы не добавлялись, а console сообщила too much recursion. Позже это случилось снова: при добавлении файлов в WBPP программа зависла, и в итоге ни один файл не добавился. Я закрыл WBPP и посмотрел Console — там была красная строка InternalError: too much recursion. После повторного открытия WBPP оказалось, что часть файлов уже загрузилась, а часть нет; проверив те, что не загрузились, я снова обнаружил аномалию FITS Header — на этот раз DEC показывал -46 01 60, где секунды «60» должны были перенестись в -46 02 00. Стоит WBPP прочитать подобное аномальное значение, как программа зависает, а заодно тянет за собой все последующие изображения, из-за чего они тоже не могут загрузиться. Я снова открыл FITS Header, вручную перенёс секунды, и после исправления просто заново добавил файлы — этого хватило. Когда все файлы успешно загружаются, WBPP автоматически выводит диагностическое сообщение, например «60 of 60 light frames were added».

Сообщение об ошибке InternalError: too much recursion в console

Аномальное значение -46 01 60 в поле DEC в FITS Header

Общий вывод: эта проблема автоматического непереноса координат, по моим наблюдениям на сегодняшний день, почти всегда возникает в ситуациях, когда программой съёмки выступал MDL (удалённое управление), но нельзя исключить, что тот же дефект встречается и в другом программном обеспечении для съёмки. Поэтому всякий раз, когда WBPP зависает и файлы не добавляются, сначала проверьте Process Console, чтобы определить тип ошибки, а затем проверьте Header RA/DEC на наличие бага «60 секунд без переноса» — после ручного исправления проблема в большинстве случаев решается.

Производительность: почему полный пакет выполняется так долго

Напоследок поговорим о проблеме, которая формально не является «ошибкой», но выматывает — полный пакет WBPP работает попросту слишком медленно. Однажды ради пяти изображений, из которых я хотел сделать HDR, я оставил полный пакет работать целых четыре часа (тогдашняя машина была AMD R5-4650G, DDR4 3200 32 ГБ, Gen4 SSD, изображения по 24 мегапикселя — от такого ожидания и правда хочется поменять компьютер).

Экран выполнения полного пакета WBPP, занявшего четыре часа

Особенно много времени отнимают два момента:

  1. Separated RGB: раздельная обработка каналов RGB цветного снимка для устранения хроматической аберрации.
  2. Local Normalization: выбор нескольких лучших изображений в качестве опорных и применение Local Normalization к остальным.

Если отключить эти два пункта, WBPP станет намного быстрее. Стоит ли жертвовать ими ради скорости, зависит от ваших требований к итоговому результату — что касается практических замеров того, «какие шаги отключить, сколько времени это сэкономит и сколько качества будет потеряно», в статье «Полное руководство по WBPP» у меня есть набор данных, показывающий ускорение в 7–8 раз, на который можно ориентироваться.


Подведём итог принципам этого справочника по устранению неполадок: если что-то пошло не так, сначала смотрите Process Console; если калибровка завершилась failed — закройте PI и откройте заново; если флэты постоянно выдают ошибку калибровки — вернитесь к ручной пошаговой обработке; File I/O Error чаще всего означает слишком длинный путь или папку, недоступную для записи; а если что-то не загружается, зависает или сообщает о recursion — проверьте, не остались ли в RA/DEC в FITS Header секунды со значением 60 без переноса в старший разряд. Освойте эти несколько приёмов, и вы справитесь с большинством капризов WBPP.