После долгого затишья

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

Отдельно прошу прощения у народа из IDEC, потому что пост в основном откладывался из-за того, что мне было лень ответить на фидбек к предыдущему посту =)

Картинка для привлечения внимания

Уже традиционно скидываю в блог некоторые красивые картинки поняш, которые попадают под настроение поста и которые лично мне западают в мозги на какое-то время; в этот раз ловите одну няшку в космическом стиле:

some art here

Ещё немного про социальные проекты

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

Идея кратко:
  1. Люди с психологическими проблемами (или жизненными трудностями) хотят выговориться, получить поддержку, пообщаться с такими же людьми, они создают что-то вроде тем на форуме, где рассказывают анонимно свою историю и ждут отклика
  2. Ты можешь либо ответить на обсуждение в виде комментария, либо зайти в отдельное приложение, через которое можно поддержать этого человека в приватном чате
  3. В отличие от классических соцсетей и сайтов знакомств, через такое приложение легко подружиться и сблизиться с человеком, потому что вы изначально подходите друг к другу с "уязвимой" стороны и пытаетесь наладить доверительный контакт
О приложениях
  • Разрабатывается всё одним человеком, русскоязычное
  • Проприетарщина
  • Ссылка: https://olympapp.com/install/ru
  • В магазинах приложений есть аналоги, но их крайне немного

Лично я всегда принимал участие в Олимпе в качестве "поддерживающего" (через приложение Друг). Почему? Наверное, потому что в моих личных проблемах достаточно трудно разобраться и ещё труднее их решить. И, кроме этого, когда я читаю о чужих проблемах и пытаюсь подбодрить человека, то становится легче самому, и собственные переживания отступают на задний план.

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

Небольшое видео для размышлений

Выступление на TED Talks о зависимости от соцсетей, о цифровом дауншифтинге и ему подобных вещах. Запостил один товарищ из группы физиков, но разговор на эту тему среди наших не развился

https://www.youtube.com/watch?v=S_1sRvNpkdg

Учёба, контрольные, домашки, это вот всё

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

  1. Домашка по термодинамике; сдавать, начиная со следующей недели
  2. Несколько лабораторных по физике плазмы, расчёты, обоснование + защита
  3. Несложные, но отнимающие время лабораторные по компьютерным практикумам в пятницу
  4. Физика сплошных сред
  5. Начинает поджимать статистическая физика, там куча жести

по Солнцу родимому

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

Список событий на 100 000 Кельвин

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

События с порченными данными появляются из-за того, что алгоритм работает на основе анализа шумов на корреляционных кривых и радиояркостей, и если радиояркость сильно и высоко прыгает, а на корреляционной кривой выше шума ничего не поднимается, то такой подход обязательно гарантирует ложноположительные срабатывания. К счастью, отсекать Bad Data достаточно просто, и никаких неоднозначностей это за собой не несёт. Так что проехали =)

Проверка на рентген

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

Обыкновенные вспышки
  1. Длятся на более 2-3 часов, часто сильно меньше
  2. "Экспоненциально" затухают и не держатся весь день
  3. Сильно фонят в рентгеновских лучах
  4. Могут не иметь стабильных активных областей

А это означает, что нужно провести ещё и проверки по максимальной яркости в рентгеновском диапазоне, сравнив их с корреляционными кривыми и с графиками максимальной радиояркости. Написал скрипт для загрузки данных с Geostationary Operational Environmental Satellites (GOES), благо, в библиотеке Sunpy уже есть готовые инструменты, которые загружают оттуда графики и позволяют их отобразить.

Пример графика GOES X-Ray Imager

На нижнем графике те же самые данные, что и на верхнем, только в логарифмическом масштабе. По оси есть пересчёт в шкалу классов вспышек, и этим заведует библиотека SunPy.

GOES plot

Jupyter Widgets

Так как мне хотелось сделать построение графиков для нужных дат наиболее простым и удобным способом, и чтобы не было путаницы, решил сделать менюшку, в которой можно подцепить конкретную дату и построить график точно по времени корреляционной кривой. Так как код пишу в среде разработки JupyterLab, то решил воспользоваться встроенной фишкой Jupyter Widgets, которая позволяет делать простенькое GUI прямо посреди кода с графиками и расчётами. И вот что получилось:

Jupyter widget

Код виджетов с примера выше
import ipywidgets as widgets
from IPython.display import display, clear_output

dates = []
dates29 = []

for crv in curves_100k_filtered:
    tm = crv["times"][-1]
    dates.append("%d-%02d-%02d" % (tm.year,tm.month, tm.day))

for crv in curves_29events:
    tm = crv["times"][-1]
    dates29.append("%d-%02d-%02d" % (tm.year,tm.month, tm.day))

choose = widgets.Select(options = dates)
choose29 = widgets.Select(options = dates29)
button = widgets.Button(description="Plot xray")
button29 = widgets.Button(description="Plot for 29events")
output = widgets.Output()

def on_button_clicked(b):
    with output:
        clear_output()
        cc = curves_100k_filtered[dates.index(choose.value)]
        # строим график
        goes_plotter.ccflares(cc)

def on_button_clicked29(b):
    with output:
        clear_output()
        cc = curves_29events[dates29.index(choose29.value)]
        goes_plotter.ccflares(cc)

button.on_click(on_button_clicked)
button29.on_click(on_button_clicked29)
left_box = widgets.VBox([choose, button])
right_box = widgets.VBox([choose29, button29])
hbox = widgets.HBox([left_box, right_box])
display(hbox, output)

Ознакомиться с виджетами Jupyter можно в официальной документации: https://ipywidgets.readthedocs.io/en/latest/, а ещё вот здесь: https://jupyter.org/widgets

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

Line of sight, угол обзора

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

  1. По углу луча зрения наблюдателя
  2. По истинной долготе на Солнце

В случае 2 распределение должно получиться равновероятным. Это один из видов проверки на дурака, что исследование корректно. В случае 1 всё должно быть смещено по координатам ближе к краю диска Солнца

Корреляционная кривая - это сумма только по высоким частотам

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

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

Если кто-то не понял про высокие пространственные частоты, то срочно смотреть инфу про преобразование Фурье и разложение в спектр =) Вот когда кто-то сжимает картинки в JPEG ("Давай, сжимай, е***ий шакал"), то высокие частоты отсекаются, из-за чего мелкие детали на картинке становятся плохо различимыми, теряется чёткость. А при составлении корреляционных кривых для радиотелескопа, я предполагаю, отсекают наоборот низкие частоты, чтобы пренебречь изменениями фоновых яркостей диска Солнца.