A A A A Автор Тема: Python для любителей астрономии  (Прочитано 5611 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн krusshАвтор темы

  • *****
  • Сообщений: 2 461
  • Благодарностей: 112
  • http://www.soulfulbits.com/
    • Сообщения от krussh
Re: Python для любителей астрономии
« Ответ #20 : 09 Фев 2016 [06:35:58] »
в общем есть такая программа - astrometry.net. написана для линукса, запускается как solve-field ........ name.fits. один хитрый финн (кажется) засунул ее в cygwin и собрал это все в .exe. Обозвал astrotortilla.exe и свободно распространяет. после установки мы имеем эмулятор линукса (cygwin), программу для астрометрии в нем (astrometry) и win приложение (tortilla) которое все это дело запускает с помощью типичного для win интерфейса. но беда в том, что там скрыты некоторые параметры и нет пакетной обработки файлов.
собственно для этого костыль и написан.

Оффлайн Андрей Курилов

  • *****
  • Сообщений: 7 385
  • Благодарностей: 170
  • homo homini lupus est
    • Сообщения от Андрей Курилов
Re: Python для любителей астрономии
« Ответ #21 : 09 Фев 2016 [11:54:00] »
в общем есть такая программа - astrometry.net. написана для линукса, запускается как solve-field
Ясно. Интересная программка. Только вот её вполне можно собрать под винду.
http://ru.wikipedia.org/wiki/MinGW

Оффлайн krusshАвтор темы

  • *****
  • Сообщений: 2 461
  • Благодарностей: 112
  • http://www.soulfulbits.com/
    • Сообщения от krussh
Re: Python для любителей астрономии
« Ответ #22 : 09 Фев 2016 [21:15:01] »
продолжаем складывать кирпичи.

вроде как сделали калибровки и астрометрическую шапку. пора переходить к фотометрии и астрометрии всех объектов на кадре.
в папочке http://optlab.astro.usu.ru/Python/photometry/
лежит скрипт который ищет звезды на кадре. для тестов можно взять кадры из папки для астрометрии. добавлен кадр полученный сложением. для него немного другие методы оценки шума.

имя файла для обработки прописывается в 105-й строке, в 107-й параметры функции - массив с данными (изображение), уровень насыщения ПЗС, пороговый сигнал/шум, грубая оценка FWHM в пикселях и показать/не показать картинку.

функция создает массив с приблизительными (+-0.5пикс) координатами X-Y найденных объектов. для уточнения надо будет посчитать центроиды изображений (это чуть позже выложу).
можно использовать для автоматизации измерения координат или/и блеска всех объектов на кадре

Оффлайн krusshАвтор темы

  • *****
  • Сообщений: 2 461
  • Благодарностей: 112
  • http://www.soulfulbits.com/
    • Сообщения от krussh
Re: Python для любителей астрономии
« Ответ #23 : 12 Фев 2016 [19:47:39] »
новые функции по адресу http://optlab.astro.usu.ru/Python/photometry/

search_stars(Data, Saturation, SN, FWHM_e)
ищем звезды на кадре.
Параметры: массив с изображением, порог линейности ПЗС, порог сигнал/шум, грубая оценка FWHM.
Выход: массив с грубыми координаты XY, значение максимального пикселя в апертуре.

get_PSF(Data, PSF_stars, FWHM_e)
ищем PSF для кадра. Используется эллиптическая функция Моффата.
Параметры: массив с изображением, массив с координатами XY, грубая оценка FWHM.
Выход: параметры модели PSF.

PSF2FWHM(PSF_model)
Вычисление FWHM по двум осям (XY), угла и фона неба по модели PSF.

PSF_phot(Data, all_stars, PSF_model, FWHM, Gain, Rnoise)
Фотометрия звезд из списка.
Параметры: массив с изображением, массив с координатами XY, модель PSF, FWHM, gain для ПЗС-камеры, шум считывания ПЗС-камеры.
Выход:
список из массивов содержащих: точные XY координаты, инструментальную звездную величину, ошибку зв. величины, поток в ADU, отношение сигнал/шум.

Чтобы все это запустить для одного кадра можно использовать функцию auto_phot.py
Там же лежат кадры для тестов.

Оффлайн krusshАвтор темы

  • *****
  • Сообщений: 2 461
  • Благодарностей: 112
  • http://www.soulfulbits.com/
    • Сообщения от krussh
Re: Python для любителей астрономии
« Ответ #24 : 12 Фев 2016 [21:45:50] »
добавил функции для чистки от космиков и горячих пикселей. алгоритм LACosmic.
http://optlab.astro.usu.ru/Python/fits_utils/Pix_and_cosmic_cleaner/

функция list_cosmo_cleaner(dir_name, list_name, out_list_name) позволяет запустить очистку для списка файлов.
там же пример кадра с all-sky камеры с горячими пикселями и почищенный.

Оффлайн SERIV

  • *****
  • Сообщений: 4 599
  • Благодарностей: 191
  • Первооткрыватель новых переменных звёзд
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от SERIV
Re: Python для любителей астрономии
« Ответ #25 : 15 Фев 2016 [23:04:53] »
Любопытно весьма. Не планируете ли  сделать автоматическую фотометрию всех переменных звезд на данном снимке?
Ясного неба и успехов!

Оффлайн krusshАвтор темы

  • *****
  • Сообщений: 2 461
  • Благодарностей: 112
  • http://www.soulfulbits.com/
    • Сообщения от krussh
Re: Python для любителей астрономии
« Ответ #26 : 16 Фев 2016 [06:33:25] »
так уже сделано. все кирпичи лежат. надо просто сложить из них пирамидку)
как будет свободное время - допишу в один скрипт все.

Оффлайн xd

  • *****
  • Сообщений: 17 982
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Python для любителей астрономии
« Ответ #27 : 16 Фев 2016 [10:21:04] »
Главное чтобы пирамида сложилась, а не куча ;D
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн krusshАвтор темы

  • *****
  • Сообщений: 2 461
  • Благодарностей: 112
  • http://www.soulfulbits.com/
    • Сообщения от krussh
Re: Python для любителей астрономии
« Ответ #28 : 16 Фев 2016 [10:30:31] »
Главное чтобы пирамида сложилась, а не куча ;D

если и куча, то лишь бы не пахла))

вообще то уже все сделано и прошло тесты. остается причесать.

Оффлайн krusshАвтор темы

  • *****
  • Сообщений: 2 461
  • Благодарностей: 112
  • http://www.soulfulbits.com/
    • Сообщения от krussh
Re: Python для любителей астрономии
« Ответ #29 : 26 Апр 2016 [10:36:47] »
скрипты для ленивого фотометриста
http://optlab.astro.usu.ru/Python/photometry/

star_extractor.py / search_stars(Data, Saturation, SN, FWHM_e)
ищем звезды на кадре.
Параметры: массив с изображением, порог линейности ПЗС, порог сигнал/шум, грубая оценка FWHM.
Выход: массив с грубыми координаты XY, значение максимального пикселя в апертуре.

get_PSF(Data, PSF_stars, FWHM_e)
ищем PSF-модель для кадра. Используется эллиптическая функция Моффата.
Параметры: массив с изображением, массив с координатами XY, грубая оценка FWHM.
Выход: параметры модели PSF.

PSF2FWHM(PSF_model)
Вычисление FWHM по двум осям (XY), угла и фона неба по модели PSF.

PSF_phot(Data, all_stars, PSF_model, FWHM, Gain, Rnoise)
Фотометрия звезд из списка.
Параметры: массив с изображением, массив с координатами XY, модель PSF, FWHM, gain для ПЗС-камеры, шум считывания ПЗС-камеры.
Выход:
список из массивов содержащих: точные XY координаты, инструментальную звездную величину, ошибку зв. величины, поток в ADU, отношение сигнал/шум.
добавляет данные о фоне неба и FWHM в шапку файла.

simple_WCS
простые преобразования из экваториальных координат в декартовы и обратно

auto_phot
объединяет все модули в общий скрипт.
выполняет фотометрию для одного изображения либо с использованием списка экваториальных координат звезд, либо просто ищет все звезды на кадре.

phot_gui - запускается именно этот файл!
графический интерфейс для auto_phot.
позволяет выбрать один файл или директорию для обработки и список звезд для фотометрии.
необходимо задать параметры:
границу линейного диапазона ПЗС
сигнал/шум для поиска звезд
примерное значение FWHM в пикселях
Gain ПЗС-камеры
Шум считывания ПЗС-камеры
Процент звезд на кадре для построения PSF-модели (выбираются самые яркие звезды без перекопа)

если задан список звезд, то формируются файлы содержащие:
время начала экспозиции (time.txt)
инструментальные звездные величины (magnitudes.txt)
ошибки (errors.txt)
поток в ADU (flux.txt)
сигнал/шум (SN.txt)

если нет списка звезд, то для каждого файла выполняетя фотомтерия всех звезд с блеском выше порога С/Ш и формируется один файл с экваториальными и декартовыми координатами, блеском и т.д. Файл совместим с Aladin.


Оффлайн ekvi

  • *****
  • Сообщений: 6 919
  • Благодарностей: 400
    • Сообщения от ekvi
Re: Python для любителей астрономии
« Ответ #30 : 14 Мая 2016 [21:22:36] »
В начале 1990х, когда все операционные системы были беременны графическими интерфейсами, и я увлекался ОС/2 и линюксом. Тогда же познакомился и с питоном.
С тех пор минуло четверть века. Венда (по слову Андрея Курилова) стала стандартом. А питон продолжает упорствовать, катаясь на шее ДОСовского командного интерпретатора. Что это: лень, самодовольство или убогость? Только сейчас в интерфейсе питона появились зачатки интегрированной среды разработчика, которая в совершенстве была обустроена в Дельфи ещё в середине 1990х.
Слов нет: фанаты линюкса вспахали глубоко и обширно, но всё это - хаотично и любительски. В винде же графика - в фундаменте ОС, а от добра добра не ищут.
Сегодня я нехотя вернулся к питону: а вдруг? Нет: всю графику придётся решать за лодыря.
Много математического жемчуга, но начинаешь прокапывать математику - в хитросплетённой  паутине сам бес ногу сломит.
Вот пусть он сам и путается в ней!
« Последнее редактирование: 16 Мая 2016 [09:34:38] от ekvi »

Оффлайн xd

  • *****
  • Сообщений: 17 982
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Python для любителей астрономии
« Ответ #31 : 14 Мая 2016 [22:37:06] »
PyGTK чем не угодил?

PS: Не путайте язык программирования и графические библиотеки.
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн ekvi

  • *****
  • Сообщений: 6 919
  • Благодарностей: 400
    • Сообщения от ekvi
Re: Python для любителей астрономии
« Ответ #32 : 16 Мая 2016 [09:28:31] »
PyGTK чем не угодил?
И что, Вы предлагаете взять эту "рассыпуху" glade, picairo, pygobject и pygtk, установить её под Винду и, засучив рукава, начать бороться с ветряными мельницами?! Ничуть не сомневаюсь в их "оконечной" работоспособности, но они идут путями, пройденными Дельфи ещё в середине 1990х. После 50 лет программирования на нормальных, "человеческих" языках? Нет уж, увольте!
Лучше скачайте одним файлом Delphi7Lite (http://yadi.sk/d/N4u6GIV23pgYs), установите и наслаждайтесь зрелым продуктом, готовым к употреблению под Виндоуз. (В скобках замечу: обратите внимание на говорящие названия сопоставляемых программ).

Единственное, на что я рассчитывал в Питоне, так это на исходники - мат. и др. модули. Но они так написаны, что ... - см. предыд. пост.
« Последнее редактирование: 16 Мая 2016 [09:39:36] от ekvi »

Оффлайн Самодуров Владимир

  • ASTRONOMY.RU
  • *****
  • Сообщений: 13 783
  • Благодарностей: 600
  • Пусть цветут сто цветов! Кроме сорняков...
    • Сообщения от Самодуров Владимир
    • АстроТоп России
Re: Python для любителей астрономии
« Ответ #33 : 16 Мая 2016 [09:40:46] »
Дилетантский (пока, только приступаю к Питону) вопрос - а есть ли какие-нибудь стандартные сайты с библиотеками всяко-разных (в первую очередь, конечно, астрономических) функций на Питоне? Ну, типа как  у Perl существует CPAN , там только поройся - почти все найдешь нужное...
Нужны ли мы нам? ((С)  Братья Стругацкие)

Оффлайн xd

  • *****
  • Сообщений: 17 982
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Python для любителей астрономии
« Ответ #34 : 16 Мая 2016 [09:58:17] »
Как правило графические средства гвоздями прибиты к операционной системе. Любая кроссплатформенная среда представляет собой обёртку поверх системных вызовов к графическим функциям операционной системы. Пример - GTK. У него есть биндинги на многие языки программирования, в том числе Python (зовётся PyGTK).
Но тут есть всего три варианта:
1. используется общее подмножество средств графики, и оно будет урезанным для любой платформы, поскольку не включает функционал, отсутствующий на других платформах
2. полностью свой рендеринг всех элементов управления, что будет медленно на любой платформе и скорее всего будет выглядеть неродным для любой платформы
3. абстрагируемся от операционки, делая часть функций прямой проекцией на средства операционной системы, а недостающий функционал делаем собственным рендерингом. Такое решение сочетает в себе достоинства и недостатки первых двух пунктов, плюс несогласованность внешнего вида интерфейса.

Поэтому если хотите использовать кроссплатформенный язык и кроссплатформенную графическую библиотеку - см. выше. GTK, насколько мне известно, использует третий путь. Python изначально не затачивался под винду. К слову, можно из него импортировать функции WinAPI и писать "родные" Windows-приложения ;D

Ещё одно извращение - берёте .NET Framework версии не ниже 4.0, берёте любой основной язык (C#, VB.NET или всё что придёт в голову), а Python заменяйте на IronPython - это реализация Python для .NET.
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн xd

  • *****
  • Сообщений: 17 982
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Python для любителей астрономии
« Ответ #35 : 16 Мая 2016 [10:02:28] »
Dephi7 - это, простите, немножко анахронизм, особенно для вычислительных задач. Отсуствие поддержки перегрузки арифметических операторов чего стоит.
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн xd

  • *****
  • Сообщений: 17 982
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Python для любителей астрономии
« Ответ #36 : 16 Мая 2016 [10:03:10] »
Дилетантский (пока, только приступаю к Питону) вопрос - а есть ли какие-нибудь стандартные сайты с библиотеками всяко-разных (в первую очередь, конечно, астрономических) функций на Питоне? Ну, типа как  у Perl существует CPAN , там только поройся - почти все найдешь нужное...
https://pypi.python.org/pypi
https://pypi.python.org/pypi/pip

У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн ekvi

  • *****
  • Сообщений: 6 919
  • Благодарностей: 400
    • Сообщения от ekvi
Re: Python для любителей астрономии
« Ответ #37 : 16 Мая 2016 [10:25:58] »
Как правило графические средства гвоздями прибиты к операционной системе.
Это понятно. Но умиляет главное: у Питона нет даже собственного текстового редактора: иди, мол, к дяде, напиши там на бумажке черновик   и т.д., в том же духе.
Dephi7 - это, простите, немножко анахронизм, особенно для вычислительных задач. Отсуствие поддержки перегрузки арифметических операторов чего стоит.
Это - сопоставление идеологий Паскаля и Си. Как пишет Финогенов, в Си сделано всё, чтобы алгоритм сделать неочевидным. А всякая перегрузка - ещё один способ запутаться. Всё должно быть прозрачным.
Но тут - дело вкусов и склада характеров.
« Последнее редактирование: 16 Мая 2016 [10:31:35] от ekvi »

Оффлайн xd

  • *****
  • Сообщений: 17 982
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Python для любителей астрономии
« Ответ #38 : 16 Мая 2016 [10:52:25] »
Как правило графические средства гвоздями прибиты к операционной системе.
Это понятно. Но умиляет главное: у Питона нет даже собственного текстового редактора: иди, мол, к дяде, напиши там на бумажке черновик   и т.д., в том же духе.
Под Питон существует несколько (десятков?) IDE c подсветкой синтаксиса, автодополнением и отладкой - выбирай любой. Потому что не может быть одной и той же IDE на разных плаформах.

Это - сопоставление идеологий Паскаля и Си.
Ну зачем же сразу Си.
Возьмите любую вычислительную задачу, где есть манипуляции числами, векторами, матрицами и т.п. Например то же преобразование Фурье, и напишите реализацию на разных языках. Реализация на паскалеподобных языках будет самой многословной. Это не плохо и не хорошо - просто факт. Перегрузка операторов делает семантику вычислений более естественной.
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн xd

  • *****
  • Сообщений: 17 982
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Python для любителей астрономии
« Ответ #39 : 16 Мая 2016 [10:53:13] »
(PS: я на Питоне не пишу и сам его немного недолюбливаю по разным причинам, но необоснованные наезды выглядят немного странными)
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/