2014г.
За последние годы было разработано несколько программ для быстрой координатной привязки изображений в FITS-файлах. Координатная привязка выполняется путем сравнения выделенных на снимке объектов с опорным каталогом. Точность координатной привязки составляет от 0.2-0.9 угловой секунды в зависимости от размера пикселя, плотности объектов поля и предела звездной величины выбранного опорного каталога. Результатом является новый FITS-файл с добавленными в заголовок параметрами WCS. Программы установлены на основные общедоступные серверы САО. Для облегчения их использования разработаны два типа Web-интерфейсов. Также они включены в состав Web-итерфейса Архива САО.
CGI-программа guide_fix.cgi разработана в 2009-м году и с тех пор непрерывно работает на сервере БТА. На ней первоначально были отработаны алгоритмы определения смещения звездного поля методом поиска максимума корреляции с модельным изображением (см. отчет за 2009г.). Определяется только смещение, поворот поля и масштаб считаются уже известными, что позволяет сделать процедуру привязки более надежной. В качестве опорного каталога была использована комбинация из двух каталогов: Tycho-2 и USNO-A2 (других тогда у нас не было). Яркие звезды выбираются из Tycho, а все прочие, не совпадающие с ними, из USNO.
Компьютеры обслуживающие ТВ-камеры гидов очень старые и маломощные. Они только формируют FITS-файлы накопленных изображений. Во время наблюдений эти файлы переписываются по FTP на сервер БТА. После каждой закачки, через протокол HTTP запускается guide_fix.cgi (именно поэтому она оформлена как CGI-программа). Кроме выходного FITS-файла с добавленными WCS-параметрами, программа формирует JPEG и JS файлы для Web-интерфейса представления результатов привязки.
Web-интерфейс
дает возможность визуально оценить качество привязки, посмотреть
данные из использованных каталогов, указателем мышки получить
координаты любого не каталожного объекта.
Вся эта работа была начата в порядке подготовки к использованию 70-см гида БТА после реконструкции. К сожалению эта реконструкция так и не была закончена и гидом БТА работает 15-ти сантиметровый лабораторный коллиматор с плохой телекамерой. Также предполагалось, что на Цейсс-1000 эти же алгоритмы позволят значительно значительно увеличить время экспозиции для прямых снимков, но для этого нужен сколько нибудь приличный приемник на его 20-ти сантиметровом гиде.
Программа разработана в 2011-м году. Предназначена для снимков с CCD-фотометра Цейсс-1000 с программой регистрации DinaSystem (см. отчет за 2011г.). FITS-шапки файлов формируемые этой системой не соответствуют стандартам, что вызывает трудности их использования. Задача программы zdina_wcs_fix - формирование FITS-файлов со стандартными шапками содержащими корректные FITS-параметры. В их число входят и WCS-параметры для координатной привязки.
Конфигурация набора FITS-строк в выходном файле задается с помощью файла образца шапки: zdina_sample.hdr. Он может находится либо в одном справочнике вместе с исходным файлом, либо в текущем справочнике, либо в одном справочнике с самой программой.
В качестве опорного каталога используется локальный GSC-2.3. Обращение к нему по протоколу HTTP через программу gsc23.cgi либо на самом сервере, либо на местном сайте base1.sao.ru.
Алгоритм определения смещения звездного поля взят из предыдущей программы. Но для его успешного применения нужно сначала скорректировать возможный поворот изображения.
Параметр масштаба IMSCALE в FITS-шапке неточный, а поворотный стол может быть установлен с ошибкой (или же специально повернут), поэтому делается попытка определить реальный масштаб и поворот изображения. Разработан новый алгоритм на основе FFT и поиска максимума корреляции. Суть его в формировании двух полей псевдо-объектов, которые можно сравнивать также как звездные поля. Метод хорошо работает на большинстве изображений, когда в поле видно хотя бы с десяток каталожных объектов. Но он более «капризный» (чем предыдущий) в случае плохого соответствия самых ярких объектов каталогу. Если он таки не срабатывает, то можно пробовать задавать угол параметром в строке вызова программы (масштаб обычно подходит тот что по-умолчанию).
Если вызвать программу без параметров она выдаст справку:
FITS-reconstructor for Zeiss-1000 CCD FITS-files. Uses 'zdina_sample.hdr' file as a sample for output FITS-header. Includes WCS-header for images (not spectra). Uses local(@base1.sao.ru) GSC-2.3 catalog and FFT-correlation method when trying to fix WCS-parameters. Usage: zdina_wcs_fix name.fts [-CleanOut] [-PM] [-dRA[=Sec]] [-dDec[=ArcSec]] [-dAng=[Degr]] [-Scale=ArcSec] [-Nobj=n] [-Force] [-Iter=n] [-Dbg[=Level]] Where: -CleanOut - output "cleaned" image data (source otherwise) -PM - use proper motion data from GSC-2.3 -dRA[=Sec] - "Old" Zeiss TCS shift on R.A. (default=3612.0) -dDec[=ArcSec] - "Old" Zeiss TCS shift on Decl. (default=6470.0) -dAng[=Degr] - Zeiss Cassegrain table turn (degr., default=-0.3) -Scale=ArcSec - new image scale ("/pix, default=0.21615 for bin:1x1) Note: -dAng,-Scale are used only(!) if programm can't determine dA and Scale automaticaly -Nobj=n - min.number of objects that should be detected in image (default=5) -Force - to force X/Y-shifting despite the correlation results -Iter=n - number of attempts (iterations, default=1)
Большие или малые буквы в названиях ключей не важны и опознаются они по первым символам (т.е. -c и -CleanOut одно и тоже, так же как -da и -dAng). Имя выходного файла формируется добавлением _wcs.fits к имени входного (например: obj023.fts—>obj023_wcs.fits). Программа пытается записать его в тот же справочник откуда взят входной. Также программа формирует в текущем справочнике изображение out_cat.jpeg, иллюстрирующее качество координатной привязки.
Пример использования:
vsher> zdina_wcs_fix ../z1000_CCD/obj023.fts Can't read sample header from: ./zdina_sample.hdr. But sample header: /usr/local/bin/zdina_sample.hdr was found. Try to use it instead... 134 objects found 494 catalog objects dAng=-0.14dgr. Scale:0.43230->0.43241 RA=322.60206 Dec=-0.19785 HA=1.585 dX=56.9 dY=75.2 dHA=-24.5 dDec=32.6 113 matching objects (without PM) root-mean-square deviation: 0.36" Can't write result to ../z1000_CCD/obj023_wcs.fits So, try to write result to ./obj023_wcs.fits
Файл out_cat.jpeg:
Программа применялась в 2012-2013-м годах при автоматизированной обработке результатов технических наблюдений на Цейсс-1000 для получения таблиц поправок наведения телескопа и последующего расчета коэффициентов СКН (см. отчеты за 2012г. и 2013г.).
Программа разработана в 2012-м году. Предназначена для снимков с CCD-камеры Apogee Alta U16M с программой управления разработанной Э.Емельяновым под ОС Linux. Использовалась в составе комплекса автоматических технических наблюдений реализующего новую технологию получения поправок наведения БТА (см. отчет за 2012г.).
Первоначальный вариант программы разработан в 2011-м году. В 2013-м она была значительно доработана для автоматического использования с составе ПО Архива САО (см. отчеты за 2011г. и 2013г.).
За время существования метода SCORPIO несколько раз менялись как CCD-приемники (1Kx1K, 2Kx2K, 4Kx2K) так и применяемое ПО системы сбора (LIma, версии DinaSystem, версии CCD Server + скрипты на IDL). Соответственно менялись и версии FITS-шапок. Но все они характеризуются нестандартным использованием стандартных параметров. Кроме того наблюдатели иногда отправляли в архив не исходный файл, а после обработки сторонними программами. Задача программы scorpio_wcs — нивелирование этого исторического разнообразия и формирование FITS-файлов с более-менее однотипными стандартными шапками содержащими корректные FITS-параметры. В их число входят и WCS-параметры для координатной привязки.
Конфигурация набора FITS-строк в выходном файле задается с помощью файла образца шапки: scorpio_sample.hdr. Он может находится либо в вместе с исходным файлом, либо в текущем справочнике, либо в одном справочнике с самой программой. Если в этих справочниках файл не найден программа еще попытается найти его в файловой системе командой locate.
Если вызвать программу без параметров она выдаст справку:
FITS-reconstructor for SCORPIO FITS-files. Uses 'scorpio_sample.hdr' file as a sample for output FITS-header. Includes WCS-header for images (not spectra). Uses local(@base1.sao.ru) GSC-2.3 catalog and FFT-correlation method when trying to fix WCS-parameters (with optional SIP/TPV-distortion). Usage: scorpio_wcs Name.FTS [-dRA=Sec] [-dD=ArcSec] [-dA=Degr] [-Scale=ArcSec] [-SIP] [-TPV] [-Xc=ddd] [-Yc=ddd] [-Cat=CatName] [-PM] [-Dbg[=Level]] Where: -dr=Sec - telescope shift to subtract from R.A. (default=0.0) -dd=ArcSec - telescope shift to subtract from Decl.(default=0.0) -da=Degr - rot.angle shift to add to P2-PA (default=0.0) -s=ArcSec - new image scale ("/pix, default: from FITS-header) Note: -da,-s are used only if programm can't determine dA and Scale automaticaly -x=ddd - X of Reference Pixel (suppose to be BTA rotator center) -y=ddd - Y of Reference Pixel (suppose to be BTA rotator center) -sip - try to make WCS-header with SIP distortion coefficients -tpv - try to make WCS-header with TPV distortion coefficients -cat=CatName - try to use another catalog instead of GSC-2.3 where CatName: gsc - for local HST GSC ub1 - for local USNO-B1 ua2 - for local USNO-A2 uc3 - for local UCAC3 2mass - for local 2MASS PSC gsc2 - for local GSC-2.3 (default) sdss - try Internet access to SDSS-III site local access - to base1.sao.ru site Internet access - through relay.sao.ru proxy -pm - use proper motion data from GSC-2.3 or USNO-B1
Имя выходного файла формируется добавлением _wcs.fits к имени входного (например: S11080251.FTS—>S11080251_wcs.fits). Программа пытается записать его в тот же справочник откуда взят входной. Также программа формирует в текущем справочнике изображение out.jpeg, иллюстрирующее качество координатной привязки.
Пример использования программы когда она не находит файла образца шапки, а справочник с исходными файлами недоступен для записи:
vsher> scorpio_wcs ../Scorpio/S11080251.FTS Can't open sample header: nor scorpio_sample.hdr nor ../Scorpio/scorpio_sample.hdr nor /usr/local/bin/scorpio_sample.hdr But sample header: /Users/vsher/FITS/scorpio_sample.hdr was found. Try to use it instead... 263 objects found 574 GSC-2.3 catalog objects dAng=0.10dgr. Scale:0.35700->0.35281 dX=13.7 dY=3.8 RA=287.37575 Dec=38.61870 dRA=3.4 dDec=4.2 A=16.20000 Z=5.20000 dA=1.5(16.3) dZ=4.8 245 matching objects root-mean-square deviation(RMSD): 0.28" Can't write to ../Scorpio/S11080251_wcs.fits
Файл out.jpeg:
Программа использовалась в 2013-м году при массовом переформатировании всего архива SCORPIO и создания параллельного архива SCORPIO_С. Затем она была включена в состав ПО Архива САО для дальнейшего пополнения раздела SCORPIO_С и для использования в составе Web-итерфейса Архива.
Программа разработана в 2014-м году. Это универсальная программа для привязки FITS-изображений. Она должна создавать (или исправлять) WCS-параметры в их FITS-заголовках. Предыдущие программы разрабатывались для того чтобы приводить к стандартному виду FITS-заголовки файлов с основных инструментов САО, добавляя WCS-привязку если удалось отождествление с каталогом. Задача универсальной программы fits_wcs иная. Она должна быть максимально нечувствительна к формату FITS-файла и составу параметров в его заголовке. Даже если в FITS-заголовке не хватает нужных параметров (или они ошибочные), их можно добавить (заменить) в строке вызова.
Если вызвать программу без параметров она выдаст справку:
Usage: fits_wcs [Options] [PropFile] filename.fits Options/Properties format: 'name=value' PropFile - file with Properties (one in one line) Possible Options/Properties names: x0, y0, xsize, ysize - use only this frame of large image scale - one pixel size (if square, "/pix) flip - 'no' or 'yes'(default - one of axes is mirrored) Note: scale and flip are used only if there is no WCS in source FITS-header. dang - rotation angle shift (used only if programm can't determine it automaticaly) mag - faint magnitude from catalogue (default=20.0) cat - catalogue identifier: 'gsc' - for local HST GSC 'ub1' - for local USNO-B1 'ua2' - for local USNO-A2 'uc3' - for local UCAC3 '2mass' - for local 2MASS PSC 'gsc2' - for local GSC-2.3 (default) 'sdss' - try Internet access to SDSS-III site local access - to base1.sao.ru site Internet access - through relay.sao.ru proxy pm - 'yes','no'(default) use Proper Motions for GSC-2.3 and USNO-B1 Note: this makes sense only if the header contains the date of observation. dbg - 0 -:- 4 debuging (verbosity) level Possible Properties that replace or complement FITS-parameters: BSCALE BZERO DATAMIN DATAMAX RA DEC EPOCH FILTER CRVAL1 CRVAL2 CDELT1 CDELT2 CRPIX1 CRPIX2 EQUINOX CD1_1 CD1_2 CD2_1 CD2_2
Программы привязки FITS-изображений (zdina_wcs_fix, scorpio_wcs, fits_wcs) были установлены на три общедоступных сервера: base1.sao.ru, big2.sao.ru и tb.sao.ru. Сотрудники САО, имеющие доступ на эти серверы по ssh, могут использовать программы из командной строки или писать командные файлы для массовой обработки. Для быстрой и простой привязки отдельных снимков, безотносительно к возможности доступа на серверы, разработан Web-интерфейс. Он реализуется программами fits_www.cgi и fits_wcs.cgi на Web-сайтах этих серверов: http://base1.sao.ru/fits/, http://big2.sao.ru/fits/, http://tb.sao.ru/fits/, http://oasis.sao.ru/fits/.
На
сервере выделена временная область (справочник) куда можно загружать
свои файлы. Время хранения файлов в этой области — одни сутки.
Файлы всех пользователей находятся в одном справочнике. Но каждый
браузер показывает только свои файлы. Это достигается сохранением
списка файлов в cookie с именем fitslist в самом
браузере. Т.к. размер cookie ограничен (4Кбайт), не
предполагается одновременная работа с очень большим количеством
файлов. Ненужные файлы желательно уничтожать
.
Файлы
можно загужать из Интернета, если известен их URL. Например: URL
можно скопировать из Web-интерфейса Архива. Если
файл сжатый (bzip2),
он будет разархивирован.
Другой пример: URL из Web-интерфейса представления результатов привязки гида Цейсс-1000.
Если
URL
не из локальной сети САО, а из внешнего Интернета, нужно использовать
proxy,
т.к.
серверы все внутренние, не имеют прямого выхода в Интернет и должны
использовать наш proxy-сервер.
Файлы можно загружать со своего компьютера (Upload).
Загруженные файлы появляются в списке.
Иконка
используется для просмотра FITS-файлов при помощи программы
showfits.cgi.
Иконка
- для запуска закачки файла на свой компьютер. Иконка
- для чистки списка.
Само имя файла является ссылкой по которой вызывается программа fits_wcs.cgi. Она проверяет какого типа файл ей предложен и формирует разные типы Web-интерфейса для ввода параметров и запуска программ привязки. Все они ориентированы на то чтобы просто стартовать обработку без параметров. Форма ввода параметров разворачивается если кликнуть [+]. Исходно поля параметров отключены, подключаются кнопками («checkbox», «галочка») рядом с именем поля. Если выбранный файл это исходный FITS от DinaSystem фотометра Цейсс-1000, то показывается форма для zdina_wcs_fix.
Сслылка «Go to common fits_wcs form» служит для перехода к обработке файла универсальной программой fits_wcs вместо этой.
Если выбранный файл это исходный FITS с одного из вариантов SCORPIO, то показывается форма для scorpio_wcs.
После клика кнопки «Start scorpio_wcs» будет вызвана программа привязки с выбранными параметрами.
Для всех остальных типов FITS-файлов будет предоставлена страница программы fits_wcs.
Нижняя часть ее выглядит по-разному в зависимости от набора параметров в FITS-шапке. Если в ней уже есть WCS-параметры, то показаны будут именно они.
После клика кнопки «Start fits_wcs» будет вызвана программа привязки с выбранными параметрами.
В этом примере использован старый архивный файл с фотометра БТА с матрицей 1К.
Файл результата можно либо запустить в программу просмотра , либо скачать на свой компьютер .
Еще один пример: «пере-привязка» загруженного через Интернет снимка с гида Цейсс-1000 с целью контроля правильности угла поворота и качества привязки в guide_fix.cgi.
Использован наиболее подходящий в данном случае каталог USNO-UCAC3. Несоответствие угла поворота ≈1/3º. Это из-за Dec≈71º, следствие не совсем точной полярной оси Цейсс-1000 (чем ближе к полюсу, тем больше поворот). Масштаб не изменился. Смещение — десятые доли пикселя (при средне-квадратическом отклонении ≈1/2 пикселя).
Все вновь полученные файлы (в том числе и JPEG-картинки) также отображаются в списке.
Теперь можно скачать их на свой компьютер и уничтожить .
Описанные выше программы координатной привязки были установлены и на архивный сервер oasis.sao.ru. Соответственно появился и неавторизованный Web-доступ. Причем, поскольку архивный сервер «виден» снаружи через ProxyPass на сайте САО, этот Web-доступ есть не только из локальной сети САО, но и из внешнего Интернета http://www.sao.ru/oasis/fits/.
Для файлов из архива можно использовать загрузку по HTTP копируя адрес URL из таблицы найденных файлов, но это не очень удобно. Менять сам интерфейс доступа к архиву также было нежелательно. Поэтому, просто была немного изменена программа просмотра FITS-файлов showfits.cgi (см. отчет за 2013г.), которая в таблице найденных архивных файлов вызывается иконкой . В ее меню «Params» была добавлена кнопка «Try Match for WCS» (или «ReMatch for WCS») которая вызывает программу fits_wcs.cgi с адресом просматриваемого файла.
Далее все как в описанном выше Web-доступе. Программа fits_wcs.cgi проверяет какого типа файл ей предложен и формирует разные типы Web-интерфейса для ввода параметров и запуска программ привязки.
В данном случае это файл с системы регистрации SCORPIO.
Результаты
работы программ представляются пользователю. Файл результата
записывается во временную область архива. Его можно скачать на свой
компьютер или снова запустить в просмотр для сравнения с другими
каталогами.
Для пользователей предпочитающих работу на серверах через ssh, разработан новый принцип организации Web-сессий. Он позволяет пользователю зайти под своим именем-паролем и работать с FITS-файлами в своем Home-справочнике. Предполагается что этот Web-интерфейс будет использоваться параллельно с обычной работой пользователя на сервере через ssh, облегчая ему использование программ координатной привязки.
...
Программа login.cgi может вызываться только по защищенному протоколу HTTPS. Она получает имя и пароль пользователя и проверяет их стандартным образом (по passwd+shadow). Если авторизация успешна, создается уникальный идентификатор сессии и FIFO-канал с именем этого идентификатора. Затем запускается даемон поддержки сессии fits_session, который для ввода/вывода использует созданный FIFO-канал. Он имеет привилегии только данного авторизованного пользователя и работает в его Home-справочнике. Даемон сессии заканчивает работу либо по тайм-ауту, либо по команде Logout от пользователя.
Идентификатор сессии передается браузеру в виде cookie. Вся дальнейшая работа выполняется по обычному протоколу HTTP. Вместо пароля в его заголовках циркулирует уникальный идентификатор сессии. Вызываемая при этом CGI-программа session.cgi использует его для подключения к FIFO-каналу сессии. Эта программа вызывается сервером httpd при каждом HTTP-запросе. Данные запроса передаются через FIFO-канал пользовательскому даемону fits_session. В ответ он передает сформированную HTML-страницу, которая в итоге передается назад через httpd как ответ CGI-программы.
Программа login.cgi предоставляет форму авторизации пользователя. Кроме имени и пароля можно еще при входе задать тайм-аут сессии.
Если имя-пароль правильные, предоставляется простой файл-браузер который «видит» только справочники и файлы FITS или JPEG.
На картинке представлен пример одновременного использования сервера через Web-сессию и через ssh.
Оставшееся до окончания сессии время непрерывно показывается в верхней строчке. Там же ссылка Logout для завершения сессии. Остальной функционал очень похож на описанный выше Web-доступ без авторизации.
Программы включены в сайты трех серверов САО: https://base1.sao.ru/fits/login.cgi, https://big2.sao.ru/fits/login.cgi, https://tb.sao.ru/fits/login.cgi.
Web-доступ к одному из серверов (big2.sao.ru) обеспечен и из внешнего Интернета через ProxyPass: http://www.sao.ru/fits/ -> http://big2.sao.ru/fits/. Т.е. сотрудники могут пользоваться программами и из внешних сетей. Соответственно URL для входа пользователя с авторизацией: https://www.sao.ru/fits/login.cgi.