Вопрос: «Как правильно складывать кадры, снятые в разные дни?»

Чтобы знания и опыт не пропадали в личке astronomy.ru, решил публичные ответы публиковать на страницах сайта обсерватории. Всё равно текст набираю, так пусть он здесь лежит и будет доступен для поиска. Так сказать, рубрика «Вы нам писали…» 🙂

Итак, получил сегодня сообщение:

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

Да. Так получилось, что я люблю снимать дипскай долго. Сотня часов не предел. Можно снимать на разные телескопы, лучше — на один. Но однозначно, даже 10 часов сложно набрать за одну ночь. Почти наверняка придётся складывать фиты, отснятые в разные ночи. С разной температурой за бортом. С чуть разным поворотом камеры, разными флетами соответственно. Не так уж это и сложно. Вот несколько известных мне способов:

 

1. Простой способ

MainScreen - Вопрос: "Как правильно складывать кадры, снятые в разные дни?"Не факт, что худший. Но простой. Обожаю бесплатную программу DeepSkyStacker (DSS), написанную достаточно давно французским любителем астрономии Люком э… забыл фамилию. Скайвокер? Кажется нет. Но помню точно — Люк.

В DSS есть понятие групп. Интерфейсно выполнены в виде табов под списком файлов, внизу экрана. Группа и есть по сути одна ночь. В группу входят свои дарки, свои биасы, свои флеты и свои лайты.

Раскидали всё по группам, наклонились, прошептали три раза «хочу»… DSS призадумался крепко и выдал Autosave.fts. Что с ним делать — отдельный вопрос.

 

2. Замороченный способ

Именно этим способом я пользуюсь в последнее время. Замороченность его в количестве используемого софта. Некоторые используемые программы платные.

Почему же, несмотря на простой способ, всё ещё существует этот… замороченный? Он лучше. Он универсальнее. Он позволяет складывать не только мои кадры с моими, снятыми на одном телескопе и камере в разные ночи. Его мегафича в возможности сложить любые кадры с любыми, лишь бы объект был один нарисован 🙂

На самом деле и в нём есть ограничения, но они выходят за рамки этой экспресс-статьи.

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

Если камеру вращали, трясли и как-то иначе обижали; если прошло слишком много времени с последнего флета — будь добр отсними для одних лайтов одни флеты, для других — другие.

Менялась температура? Даже термостабильные камеры имеют ограничения. Я сегодня, например, из-за жары за бортом, не смог одну камеру вывести на рабочую температуру. Снимал на соседней, на 5 градусов выше обычной. Нужны дарки под эту температуру.

Однако, вопрос был о термонестабильной камере. Поэтому я рекомендую:

  • не снимать дарки в астроночь. Снимать их. Много… в другие ночи. В холодильнике, на балконе, в пакете за окном, если нет балкона. Современные кэноны все как один записывают температуру сенсора в EXIF. Есть программы сортировки и фильтрации дарков по температуре лайтов. Одну из них писал я, но … есть лучшие решения;
  • за ночь накопили десяток-два лайтов. Не забыли отснять флеты. Из заранее накопленной библиотеке дарков выбрали подходящие по длительности, ISO и температуре. Откалибровали. Можно в DSS, можно в Maxim, IRIS (свят-свят), в PixInsight, FitsWork и т.п. Не суть. Суть в том, что взамен этой кучи мы получили откалиброванные лайты;

Дальше для любого типа камер:

  • всю кучу откалиброванных фитов именуем по-разному (включая дату съёмки), кидаем в одну папку;
  • дальше дебаеризация (если нужна), выравнивание, и собственно сложение.

Получаем итоговый фит. И, опять таки, что с ним делать — отдельный большой сказ …

 

Чтобы не ухудшить результат…

Автор вопроса задал резонный вопрос. Набрали мы десяток лайтов в одну ночь, десяток в другую и аж 15 кадров в третью. Что будет если сложить всё как есть, без разбора? Если в одну ночь была мазня, то скорее всего в сумме она проявится. Как сильно? Ну … как сильно присутствовала :), так и проявится.

Поэтому, конечно же, есть несколько способов. Я, по привычке, озвучу два.

  1. простой способ;
    Предполагает фильтрацию исходников и недопускание г… в сумму. В DSS эта фильтрация происходит настройкой сколько процентов войдёт в сумму. В замороченном варианте сложения банально удаляем (перекладываем в другую папку) нехорошие исходники;
  2. сложный, но заметно более эффективный способ;
    Способ заключается в формировании двух сумм. Одна (менее чёткая) идёт на формирование периферии. Вторая — центры галактик, туманностей, чёткие звёзды и т.п. Требует нехилого навыка в масках в фотошопе, например.

 

Disclamer (отмазка): Ну конечно же, текст этот не более, чем моё мнение о происходящем. Комментируйте, обсудим, скорректируем. Выработаем лучшее описание!

Где летают геостационары?

Геостационарный спутник, то есть тот, что относительно Земли, висит боль-менее на одном месте. То есть берёшь антенну спутниковую и целишься воон туда. Там спутник есть, там он и будет. Конечно же, в идеальном случае, в отсутствии внешних воздействий и при чётко рассчитанной орбите.

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

В рамках поиска астероидов мы обычно снимаем выдержкой 320 секунд. 15 * 320 = 4800″ = 80′ ~= 1.3° успевает проползти геостационар за время экспозиции кадра. Ширина кадра Большого Телескопа ИванСемёныча — полтора градуса. То есть спутник как раз успевает пересечь почти весь кадр… и спутников там немало!

В описании к видео я перечислил все спутники, которые в этих кадрах нашёл Антон.

Влага в воздухе, влага на телескопе

Уже писал о том, как порой орошается всё вокруг. Сегодня как раз такая ночь. Машина, железные стены обсерватории, железные телескопы и пластиковые детали — всё в воде.

Влажность высокая, но не запредельная, как здесь бывает в ноябре-декабре. Вот AllSky камера вчера, было суше:

allsky last - Влага в воздухе, влага на телескопе

Слева-сверху — засветка от соседнего НПЗ, будь он неладен. Одна радость, засветка эта на северо-востоке.

А вот снимок с той же камеры сегодня:

allsky last wet - Влага в воздухе, влага на телескопе

По кругу — свет близ горизонта. Все немногочисленные соседние деревни светят своим почти что единственным фонарём, ухудшая небо в такие мокрые ночи.

Хорошо, ухудшение это не сильно высоко от горизонта поднимается.

Сегодня настроил новый астрограф. Завтра займусь грелками. Нужно сделать грелки на:

  • этот новый небольшой АПО. Там есть грелка R-Sky, но почему-то её контроллер коротит питание. Вскрою, гляну. Может там таракан сидит на контактах и при подаче питания его пронизывает ток на его электрическом стуле;
  • нужен обогрев вторички ньютона 300ф4. Огромный лапоть вторички требует около 4 Вт грелки. Намотаю нихром, закрою силиконом. Грелку к мосфету, мосфет в ардуину, ардуину в комп, комп в локальную сеть, её в Сеть… 🙂
  • нужен обогрев самьянга 135ф2. Который установлен поверх этого самого 300ф4. Ещё один мосфет, ещё один ds18b20 и в ту же ардуину;
  • чуть позже понадобится обогрев объектива обзорного фотоаппарата. Который видит этот 300ф4 и самьянг.

Так что завтра объявляю день грелок!

Спутники, которые нам мешают

Как определить что за спутник помешал съёмке.

 

В очередной раз искал новые астероиды на снимках Олега. В этот раз шансов было мало, погода плохая, съёмка велась в цветных фильтрах, что достаточно сильно снижает проницание. Так и получилось – новых астероидов обнаружено не было. Но зато на двух кадрах обнаружился трек от спутника. Такое не очень часто бывает, т.к. спутники движутся быстро, и «поймать» спутник сразу на двух кадрах удаётся достаточно редко. Как говорится: «на безрыбье и рак – щука», решил определить, что же это за спутник, которому так повезло.

Блинковал я кадры в программе Izmccd, в ней же и определял координаты положения спутника.

Нашёл на каком кадре трек появляется впервые и постарался определить координаты конца этого трека. Для этого я для начала изменил время экспозиции кадра (было 300с, а стало 600). Это нужно для того, чтобы правильно было вычислено время, когда камера закончила снимать (конец трека). Программа прибавляет ко времени начала кадра половину времени экспозиции, в результате будет добавлено 300 с – действительное время экспозиции. После этого можно уже определить сами координаты. Для этого воспользовался возможностью программы по определению координат штриха. Получилось так:

sat1 300x237 - Спутники, которые нам мешают

Видно, что определились координаты не совсем конца штриха (жёлтый крожёк), но для определения спутника такая ошибка не существенна.

Далее нужно определить на следующем кадре координаты начала трека. Всё то же самое, но в этот раз время экспозиции нужно выставить в 0 (т.к. определяем координаты начала трека). Для определения координат я выбрал звезду рядом с началом трека. Тоже не совсем точно, но достаточно.

sat2 300x237 - Спутники, которые нам мешают

Получились такие строки в MPC формате:

MB133    C2018 04 04.99354 15 17 19.38 +02 34 33.4          16.4 B      L71

MB133    C2018 04 04.99411 15 18 02.41 +02 05 50.6          18.2 B      L71

Их я поместил в форму на сайте https://www.projectpluto.com/sat_id2.htm (спасибо Леониду Еленину за эту ссылку). Сайт выдал такую информацию:

2 observations found

2 observations left after dropping extras

MB133    C2018 04 04.99354 15 17 19.38 +02 34 33.4       16.4 B      L71

33379U = 2008-046B  e=0.00; P=675.7 min; i=65.6: COSMOS 2443 (GLONASS)

motion 37.35″/sec at PA 159.4; dist= 20429.2 km; offset= 0.09 deg

 

Отсюда видно, что в кадр попал спутник Космос 2443 (Глонасс).

Зачастую спутники только мешают съёмке, создают дополнительные проблемы при обработке. Но знание того, что это за спутник несколько скрашивает картину. Делайте больше хороших кадров, и пусть треки от спутников вызывают у вас только положительные эмоции!

Начало астросезона 2018

Уф… наконец-то и в Краснодарский край пришла весна и хорошая погода!

Удивительный (отвратительный) в плане погоды выдался 2018й год. Был момент, когда даже в Самой Москве неба было больше, чем у меня в КК. Это … вызывало у меня перекос сознания и желание переехать … в Чили.

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

weather 2018 04 05 768x193 - Начало астросезона 2018

Будет чуть ветренно, но в остальном…. небо держись! Мы идём! 🙂

В чём сила? В пиксельсиле!

Не так давно я понял, что в астрофотографии есть достаточно простая формула, характеризующая количество света, попадающее на пиксель конкретного объектива с не менее конкретной камерой. Я назвал это число «пиксельсилой астрографа». Созвучно со светосилой, но включает в себя и слово пиксель.

Формула, и правда простая, но позволяет очень чётко и просто — в цифрах сравнить астрограф 1 с астрографом 2. Пиксельсила измеряется в мм2 апертуры помноженных на угловую секунду, приходящихся на пиксель (корректура от 22 декабря) на телесный угол пикселя.

Я начал считать с самого крутого астрографа своего зоопарка (астрохостела) — это БТИ, большой телескоп ИванСемёныча. Если взять его за основу, а он к слову сказать, стоит того, чтобы взять его за основу — великолепнейший и достаточно сбалансированный астрограф… то получается такая картина:

320 мм апертуры этого телескопа (80424 мм2 площади без учёта ЦЭ) аккуратненько укладываются в 1.31″ пиксель телескопа, получая 108.5к пиксельсилы.

Взяв это число за ориентир, за «один БТИ» я просчитал свой 250ф4.6+KAF8300 телескоп и данный мне погонять мак 200ф10 с тем же KAF8300. Вот какая картина получилась:

  • мой ньютон 250ф4.6 с KAF8300 на борту имеет пиксельсилу 31.6% БТИ;
  • мак 200ф10 тоже с KAF8300 в bin1 — пиксельсила = 6.66% БТИ;
  • он же в bin2 = 27.1%.

%25C0%25EB%25FC%25E1%25EE%25EC%25FB 2017 %25CE%25EB%25E5%25E3 %25C0%25F1%25F2%25F0%25EE %25C4%25EE%25E1 2017 12 18 7842 - В чём сила? В пиксельсиле!То есть мак рисует небо лишь в четверть БТИ силы даже в bin2!
И можно долго рассуждать, что сила мака не в светосиле, а в чёткости. Но беда в том, что 0.56″ на пиксель при сиинге в 1.5 … 2.5″ не имеет никакого смысла.

И тут я глянул в угол обсерватории, где уже год без дела стоит доб 10″ф5. Хороший доб, разве что механика монтировки добсона несколько залипучая что по азимуту, что по высоте. Но оптика с виду приличная, разве что вторичка «визуальная» (мелкая), да разве что фокусёр не менее визуальный — хлипкий односкоростной синта. В общем, требует приложения рубля и рук. А что не требует? Что, если подсчитать пиксельсилу этого объектива с корректором 1:1 и KAF8300 на борту? 40.3% БТИ в bin1! При хорошем пикселе 0.9″, с намёком на потенциал средне-высокого разрешения и достаточной светосилы пиксельсилы.

… в порыве нелюбви к маку я снял его с монтировки и нашёл пару колец для этого доба — вон они уже висят на ручке доба. Буду вешать его на лебедя и искать корректор на барахолке.

%25C0%25EB%25FC%25E1%25EE%25EC%25FB 2017 %25CE%25EB%25E5%25E3 %25C0%25F1%25F2%25F0%25EE %25CB%25E5%25E1%25E5%25E4%25FC 2017 12 18 7841 - В чём сила? В пиксельсиле!

К слову сказать, метровый ричи в Чили с f8 светосилой и 9 мкм пикселем не так уж силён, в нём лишь 1.6796875 БТИ. Однако, его 0.232″ на пиксель ТАМ порой могут работать. И это, конечно, многое меняет.

А нам в болоте остаётся лишь посмотреть последние Звёздные Войны и воскликнуть:

— Да пребудет со мной пиксельсила! 🙂

 


Добавка от 21 декабря.

Спасибо Сергею Иванову (astronomy.ru: GraY25) и Владимиру (astronomy.ru: Csve), помогли разобраться и …, кажется на этот раз вывели формулу пиксельсилы как простое произведение телесного угла поля зрения пикселя на площадь апертуры. Подробности здесь и здесь.

Получилась пиксельсила в БТИ:

  • мой ньютон: 31.6%;
  • мак bin1: 6.8%;
  • мак bin2: 27.1%.

Правильно я снял мак с монтировки 🙂

%25C0%25EB%25FC%25E1%25EE%25EC%25FB 2017 %25CE%25EB%25E5%25E3 %25C0%25F1%25F2%25F0%25EE %25C4%25EE%25E1 2017 12 21 7924 - В чём сила? В пиксельсиле!

P.S. Теперь можно будет подготовить калькулятор пиксельсилы астрографов себе на сайт. А пока что ссылка на гугл-калькулятор тут.

Как получить кадр с камеры (Linux+Python+INDI)?

Скажем, перед вами возникла задача… такая же, как когда-то передо мною. Или похожая. Задача получения кадра изображения с камеры, подключенной к мини-компу типа Raspberry Pi / Orange Pi и т.п. клона.

Все эти мини-компы (пока что), уверенно работают под разными клонами Linux. Я привык к RH-way дистрибутивам, поэтому с удовольствием установил не самую обновляемую Fedora 22 на мой Orange Pi компик.

Мне нравится идея универсализации, создания некой абстрактной прослойки меж астрооборудованием ил астрософтом. На винде это ASCOM (пусть он трижды кривой и тормозной, но свою функцию «универсализатора» он выполняет). На юниксах и, в частности, на Linux — это INDI.

Я довольно неплохо знаю ASCOM, писал и драйвера, и в клиентских прогах использовал как монтировку, так и камеры. Если не брать во внимание, что мне не нравится dotnet и win-программирование (да и сама винда как ось) в целом, то идеология ASCOM мне близка. Скажем, наша задача получения кадра с камеры решается так:

  • есть аском. Он просто есть. Он есть центр этой вселенной. Всё общение происходит через него;
  • есть драйвер камеры. Скажем, QHY5 камерки. Или симулятор. Или Starlight Oculus (именно её кадры я получал на Orange Pi), или … В этом и суть, что все драйвера всех камер реализуют ASCOM.iCamera интерфейс. Он декларирует, что все дрова должны поддерживать таки и такие вызовы;
  • есть софтина, которую я пишу. Например, «получалка одного кадра длительностью 1с». В этой софтине я подключаюсь к COM-объекту ASCOM.Camera (написание не точное, лишь чтобы предать суть), то есть создаю экземпляр нужного класса. И у этого объекта уже есть методы/свойства задания выдержки, экспозиции и получения массива кадра. С виду всё логично.

В инди всё … по-Индийски, я думаю. Нисколько не хотя обидеть индусов, встреченные мною программисты часто из них … (нет-нет, я не буду ругаться матом сейчас) :).

  • первым делом запускается INDI-сервер для моей камеры:
    /usr/bin/indiserver -v -m 100 indi_sx_ccd
    Можно сказать, что ASCOM сам это делает, подгружая нужный «драйвер».
    То есть в INDI, в отличии от ASCOM, нет центра. Есть один процесс под эту камеру. Второй — под другую. Третий под монти и т.п. В этом есть смысл, но есть и геморой, кмк;
  • теперь на выбранном языке программирования (я выбрал Python) мы пишем INDI-Клиент. Это класс! Не в смысле, как классно, что мы пишем клиент, а в смысле, это именно объявление ООП-класса 🙂
    Собственно, экземпляр этого класса и общается с камерой… через callback’и.

import PyIndi
class IndiClient(PyIndi.BaseClient):
… и понеслось

Создаём экземпляр класса, запускаем коннект и дальше объект живёт своей жизнью:

  • инди-сервер вызывает метод newDevice, типа появилось новое устройство;
  • инди-сервер вызывает метод newProperty, передаёт им свойства. Все, что сам сочтёт нужным в последовательности, которую сам сочтёт нужным. В объёме, который именно ему будет интересен. Как в седьмом классе школы — тебе не интересно учить площадь треугольников, но никого это не волнует — тебе всё равно перечисляют все свойства треугольника и не только эту ненужную сейчас информацию;
  • чтобы начать экспозицию, мы в newProperty получаем факт подключения и заполнения нужных свойств, даём команду серверу «смени число в свойстве CCD_EXPOSURE». Подняв его выше 0, начинается экспозиция. Правда, нужно крепко обкуриться в ГОА, чтобы так перевернуть простую клиент-серверную логику?
  • получение кадра изображения — через callback вызов экземпляра класса, метод newBLOB. Типа ура, новый бинарник пришёл.

Мой исходник Python+INDI+Starlight Oculus AllSky камеры, чутка замусоренный в процессе поиска рабочего решения, я выложу сюда:
http://download.milantiev.com/astro/INDI/allsky.py.

И да, там огромный простор для чистки, оптимизации и улучшений. Но … мне хватило трёх дней борьбы с INDI, чтобы получив первый кадр больше не лезть в эту программу целый месяц. Нижняя часть программы вовсе не используется, но показывает неплохой диагностический пример использования INDI. Мопед не мой, моя адаптация под задачу.

Астрофото: иголка в стоге сена — NGC891

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

Roman FSQ NGC891 LRGB 29of5m 100percent 768x768 - Астрофото: иголка в стоге сена - NGC891 Roman FSQ NGC891 LRGB 29of5m full size 768x575 - Астрофото: иголка в стоге сена - NGC891

На самом деле я просто тестировал годзиллу и не знал, что ж выбрать на фокус 390 мм 🙂

GoogleDoc журнальчик отснятого

Спросил меня Женя Букликов, есть ли такой софт, чтобы записывать что когда ты отснял, а тот сам складывал и выводил суммы. Я сходу решил показать ему гуглдок, точнее гугл-таблицы. Это, если кто не в курсе, упрощённый аналог экселя, доступный с любой точки инета почти с любого современного устройства. Вот что получилось, здесь набросок начала журнала.

dss journal 768x364 - GoogleDoc журнальчик отснятого

В левой части сырой журнал. За сегодня отсняли такой-то объект, такие-то субы.

В правой части выжимка из журнала по объектам. Плюс «Итого», куда ж без него.

Поймал самолёт в кадр

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

Не абы какая редкость, но мне понравился этот пятиминутный кадр на мак 8″ f10.

IC348 plane - Поймал самолёт в кадр