alekskryzh / X-galaxies

1 stars 0 forks source link

применить к обработанным галактикам код для прочерчивания максимумов Х-структуры #11

Open Amarchuk opened 1 year ago

Amarchuk commented 1 year ago

Александр, я залил код, который строит эллипсы вокруг х-структуры, вписывает в них 4 пика и таким образом прочерчивает как именно Х-структура идет. Попробуйте довольно оперативно применить его к тем галактикам, что Вы обработали.

В целом там все должно быть понятно, надо задать эллиптичность и остальные параметры и как часто проводить эллипсы. Запуск: xfit_v3 fits_name config_file. Делать для "изображение минус модель диска" (т.е. это будут остатки + балдж(и)). Работает код довольно долго, для одной галактики примерно часа два.

Попробуйте для какой-то одной и напишите, если концептуально что-то не ясно.

alekskryzh commented 1 year ago

Потестил на галактике mass_bulge 1640. В целом, вроде, работает. Результаты в папке mass_b_1640. Туда я на всякий случай закинул текстовый файлик log_terminal.txt с тем, что выдавало в терминале, т.к. есть пара моментов. Первый (наверное, некритичный): в самом начале вылезает ворнинг YAMLLoadWarning. Второе: в самом конце есть ValueError. Я пока особо не разбирался, но, видимо, из-за этого не успела отрисоваться интенсивность (единственная картинка, которой не хватает в папке). И ещё такой вопрос: в конфиге ref_radius пишется как-то интуитивно или исходя из каких-то соображений? Также в архив закинул слегка изменённый (просто чтобы отрисовать рисунок (Comp_with_Sav.jpg) конкретной галактики) ноутбук Untitled_0110.ipynb

Архив: https://github.com/alekskryzh/X-galaxies/blob/ad76dda829150f36442de15c18969fb38ce344f5/decomp_results/xfit_v3_res0110.rar

Отдельно ноутбук: https://github.com/alekskryzh/X-galaxies/blob/ad76dda829150f36442de15c18969fb38ce344f5/decomp_results/Untitled_0110.ipynb

greenyellowcat commented 1 year ago

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

Amarchuk commented 1 year ago

Александр, попробуйте подебажить код - может быть картинка на чем-то простом валится и быстрее Вам будет поправить.

А по эллипсам резюмируя - на глаз, чтоб довольно плотно покрывали, но не слишком часто и чтоб всю. Думаю понятно. Эллиптичность возьмите как у диска, но вроде это не слишком влияет.

alekskryzh commented 1 year ago

Исправил ошибку (см.ниже третий абзац), уменьшил шаг, запустил, проработала немного, выдала новую ошибку (см. в новом архиве mass_b_1640_1/log_terminal.txt), с которой я пока не разобрался.

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

Насчёт того, почему картинка с интенсивностями не рисовалась. Это было связано с ошибкой, которая написана в конце файла mass_b_1640/log_terminal.txt (см.предыдущий архив за 10 января https://github.com/alekskryzh/X-galaxies/blob/fbf7e87ba08f384fcc93c115c76a3b19e7373548/decomp_results/xfit_v3_res0110.rar ): "ValueError: LBFGSB - one of the lower bounds is greater than an upper bound.". Важное здесь в выводе ошибки:
File "/mnt/sdb2/science/Alexander_practice/xfit_v3/libs/mathFunctions.py", line 41, in fit_by_line
fit_result = differential_evolution(func=objective, bounds=bounds, polish=True). В mathFunctions.py, в функции fit_by_line есть строчка: bounds = ((slope_guess/10, slope_guess10), (intercept_guess/10, intercept_guess10)). Я вывел в терминал то, что идёт в bounds: ((-0.00651173755423576, -0.6511737554235759), (-0.15371172508544745, -15.371172508544744)). Как видно, нижняя граница действительно превышает верхнюю, отсюда и ошибка. Я поправил этот момент, ошибка исчезла, картинка строится (этот фрагмент кода, который рисует, писал и запускал отдельно, т.к. файлы с углами и интенсивностями были, оставалось только нарисовать).

Новый архив: https://github.com/alekskryzh/X-galaxies/blob/fbf7e87ba08f384fcc93c115c76a3b19e7373548/decomp_results/xfit_v3_res0118.zip

Amarchuk commented 1 year ago

Почему мы только диск вычитаем, а не всю модель?

Это связано с тем, что учесть балдж довольно сложно, и могут быть сайд-эффекты от его вычитания.

А что за новая ошибка? Суть в целом в том, что должно 4мя гауссианами приближаться то распределение, что по эллипсу получается, а тут как-то четыре горба явно не видно, может в этом дело (посмотрите пример в тех файлах, что я загружал).

alekskryzh commented 1 year ago

А там в log_terminal.txt эта ошибка записана. В xfit.py ругается на fitter.extract_lobes(), это, в свою очередь, ведёт на строчку idx_left_min = np.argmin(self.observed_intensity[inds_left_of_peak]) + inds_left_of_peak[0] (fitters.py), где что-то не так с argmin, т.к. сама ошибка такая: ValueError: attempt to get argmin of an empty sequence. Может, действительно, это связано с тем, что все 4 горба явно не видны. Возможно, надо поиграться с положением центра эллипса. Буду разбираться.

Amarchuk commented 1 year ago

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

alekskryzh commented 1 year ago

Есть некоторое продвижение.

Картинки с изображением галактики на фоне я сделал в LogNorm, чтобы лучше было видно.

Ошибка с пустыми последовательностями. Пришлось получше посмотреть программу, повыводить некоторые промежуточные значения. Причина ошибки следующая. Есть выражение inds_left_of_peak = np.where((self.exc_anomaly < peak_position) (dist < pi/4))[0], где dist = np.abs(self.exc_anomaly-peak_position) (т.е. это положительная величина), exc_anomaly - эксцентрическая аномалия (тоже положительная величина), а вот peak_position иногда почему-то получалась отрицательной (где-нибудь примерно -0.49 или около того), из-за этого self.exc_anomaly < peak_position меняло значение, и в inds_left_of_peak ничего не шло, т.е. не было индексов, значит, не было и дальнейших значений, отсюда пустые списки. Я это поправил добавлением условия if peak_position < 0.0: peak_position = 2pi + peak_position (по крайней мере, я так предположил). Ошибка исчезла. Почему peak_position получалось отрицательным-надо было залезать в код функции differential_evolution (т.к. peak_position - результат её работы), чего я не рискнул делать. Но в случае mass_bulge EON183 возникла аналогичная ошибка, там в проге следом идёт ещё один похожий фрагмент кода, но для, видимо, других индексов. Пока ещё не исправлял, mass_bulge EON183 показываю пока, как есть.

Часто вылезали: "Lobe DE problem: parameter 0 of lobe 0 is too close to the lower bound Its value is -0.4247 while bounds are -0.4247 -- 1.6461" (и т.п.) "General DE problem: parameter 0 is too close to the lower bound" (и т.п.). Это предусмотрено самой прогой, там отбираются те моменты, когда параметры (вроде, тоже определяемые алгоритмом differential_evolution) близко подходят к границам, и это приводит к Fitting failed. Не знаю, надо ли с этим что-то делать или нет.

Ещё не смогли построиться peaks.png, но это по моей невнимательности, забыл импортировать LogNorm, а это придётся ещё раз запускать прогу. Но отстроил в ноутбуке (находится в самом архиве). Например, mass bulge 1640, пики там, честно говоря, оставляют желать лучшего, на больших расстояниях не профитировалось из-за этих DE problems, на малых расстояниях тоже как-то размазывается. Добавил для сравнения картинку Comp_with_Sav.jpg, это первый раз, когда я запускал и по невнимательности сделал для "изображение минус модель", а не для "изображение минус модель диска".

Архив: https://github.com/alekskryzh/X-galaxies/blob/6dbe6fcc6aa7f89384bc4ff7332250c5c550d6b2/decomp_results/xfit_v3_res2201.zip

Amarchuk commented 1 year ago

Хорошо, что получилось исправить ошибку и вы так вдумчиво залезли в код.

Видно, что разница есть, оставить балдж или нет (и как будто можно дальше прочертить в том, где с балджем).
Долго отрабатывает?

Попробуйте решить проблему со второй галактикой, но по возможности не тратьте очень много времени.

Попробуйте также прогнать для остальных, чтоб понять как много из них с проблемами. И сделайте отдельный ноутбук, чтоб анализировать было можно - картинка галактики, она же минус диск, она же но минус вся модель, картинки что получается по скрипту (графики и как точки идут). Хорошо бы еще точки отдельно нанести на остатки после вычитания всей модели, чтобы посмотреть как оно соотносится с тем, как глаз прочерчивает.

alekskryzh commented 1 year ago

Окей, попробую сделать для всех галактик, как Вы предлагаете. Для одной галактики (для 20-30 эллипсов) это занимает где-то 1,5-2 часа.

Amarchuk commented 1 year ago

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

Еще не до конца понятно, почему получается два набора точек, надо в код залезть.

alekskryzh commented 1 year ago

Проблема со второй галактикой уже встречалась ранее, только в этот раз для другой границы индексов. Если ранее функция differential_evolution могла выдавать peak_position < 0, то в этот раз она выдала peak_position > 2pi (например, 6.51). Убрал с условием, что в таком случае peak_position = peak_position - 2pi, больше подобных ошибок не вылезало. Т.е. если формулировать проблему в общем, то почему-то получается так, что функция differential_evolution может выдавать peak_position вне промежутка [0,2pi].

Прогнал прогу для всех галактик.

Архив: https://disk.yandex.ru/d/3CLadmH9d8ZCZA

Ноутбук с картинками: https://disk.yandex.ru/d/GO4UTqW8KP65xQ

В ноутбуке сама галактика, она же, но минус диск, она же, но минус вся модель, потом картинки с точками, которые выдаёт прога xfit.py, потом ещё картинки с точками, но которые строились ноутбуком Untitled.ipynb, ну и ещё графики зависимости углов и интенсивностей от расстояния от центра (для "изображение минус модель диска" и для "изображение минус вся модель)". Ноутбук Untitled.ipynb я переименовал в plot_x_peaks_prepare.ipynb, при этом немного его модифицировал, в основном, для удобства (чтобы много чисел не писать в разных частях ноутбука + добавлена итеративность, чтоб прогонять сразу для всех галактик).

Посмотреть его можно здесь: https://github.com/alekskryzh/X-galaxies/blob/33e44d60b20b3940b1acd623a27fb58eaa6e9d5d/decomp_results/plot_x_peaks_prepare.ipynb

Оба ноутбука так же есть в самом архиве.

В самом архиве есть две группы папок: одна начинается на d - это результаты для случая "минус модель диска", а другая начинается на m - это результаты для случая "минус вся модель". В configs собраны все конфиги, в stdouts - стандартные выводы в терминал, stderrs - стандартные выводы ошибок, т.е всё это было перенаправлено в текстовые файлы. Рисунки picture....png - то, что plot_x_peaks.ipynb выводит (без графиков), graphs....png - тот же ноутбук, но сами графики. Также я сократил имена галактик до первого числа в их имени (или "eon"+число), группы галактик (hexagons, iso_break, mass_bulge) -- до h, ib, mb.

В рисунках picture....png есть такие рисунки, которые как бы не совсем влезают в subplot вместе со своими осями (это где точки нанесены самой прогой xfit.py), но эти оси с оцифровкой особо не важны, не портят картинку. При следующем прогоне в xfit.py сделаю так, чтобы не только png сохранялись, но и fits, просто png загружать в ноутбук как-то не очень удобно оказалось. Ну и, возможно, в xfit.py ещё что-нибудь в плане рисунков подредактирую (если надо будет).

Насчёт второго набора точек (которые, видимо, не зелёные, а чёрные точки), в коде ноутбука plot_x_peaks_prepare это обозначено как x_ideal, y_ideal, т.е, видимо, это случай "идеальной" х-структуры (прямая, без искажений).

Также пробовал простейшим образом распараллелить прогу, запустив в нескольких терминалах, работает нормально.

Amarchuk commented 1 year ago

Отлично!

Вы файлы все же загружайте в репозиторий, а не на я. диск, по крайней мере ноутбуки.

Вы молодец, очень много работы проделали, но важно еще и последний шаг делать: отрефлексировать результаты. Пока что я вижу, что у _m гораздо устойчивее, чем у _d получается, в которых часто точки вообще не стоят на определенных радиусах.

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

Amarchuk commented 1 year ago

Добрый день. Есть какое-то продвижение по задачам?

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

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

Если что-то не ясно хоть немного - давайте созвонимся.

alekskryzh commented 1 year ago

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

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

Amarchuk commented 1 year ago

А какие галактики еще остались? Или там что-то новое в декомпозиции?

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

По литературе: это мысль правильная, но скорее всего для большинства из этих галактик ничего такого нет. Тем не менее объектов немного, Вы просмотрите список работ с ними (в NED, например или в ADS) и составьте или конспект со ссылками или просто списки работ, где что-то интересное по ним

alekskryzh commented 1 year ago

Про галактики с их декомпозицией написал в соседней теме.

Написал новый более общий ноутбук: https://github.com/alekskryzh/X-galaxies/blob/c2aa5feb179ee87a2ffcad8c3a38708737d7b669/decomp_results/plot_x_peaks_0209.ipynb Он ещё будет дорабатываться. Возможно, ещё какие-нибудь картинки вставлю. Пока, в основном, технические детали.

Архив со всеми техфайлами (опять яндекс диск, так как больше 100 файлов): https://disk.yandex.ru/d/jZvll6gmb3pnpw

Теперь по продвижению по задачам. Первый момент. Я немного изменил подход к созданию рисунков. Часть рисунков (графики углов, интенсивностей, пики поверх галактики) создавались самими скриптом в конце своей работы. Но скрипт работает не так быстро, поэтому если что-то по картинкам захочется переделать, тогда придётся опять запускать скрипт и ждать. Я решил все эти графики создавать отдельно от скрипта - в ноутбуке. Скрипт даёт расстояния от центра, углы, интенсивности, координаты точек, всё это есть в соответствующих файликах (angles.dat и т.д.), которые можно без проблем прочитать и отрисовать. Так как-то удобнее и быстрее. Далее по пунктам:

1) Чёрные "прямые" точки - это и есть срезы "на глаз", как я делал при декомпозиции. Просто примерно берётся угол наклона эти прямых (в присланном вместе со скриптом ноутбуке было загадочное число k_ideal = 0.581458, которое я долго не мог понять, откуда взялось, а это просто = y_ideal / x_ideal, x_ideal берётся такое же, как и у точек, найденных скриптом (x_ideal = x), и далее y_ideal = k_ideal * x_ideal). При декомпозиции я тоже задавал наклон прямых. Так что это просто случай идеальных прямых, проведённых "на глаз".

Картинки с углами и интенсивностями по ним рисуются, в ноутбуке эти графики для каждой галактики находятся в одной куче, первые (верхние) 4 графика - для точек, полученных скриптом, 4 нижних графика - для чёрных точек.

2) Картинки с потоками в логарифм - сделано. Кстати, по чёрным "прямым" иногда встречаются отрицательные интенсивности. Я решил их просто занулять, хотя, наверное, лучше их вообще выкидывать.

3) Сложный пункт. Я пока ещё не придумал, как можно автоматически отбрасывать "плохие" точки. Можно и вручную - стереть эти "плохие" точки в файлах углов, интенсивностей, тогда при построении рисунков по этим файлам таких точек не должно быть.

4) Точки разным цветом, таким же, как у графиков интенсивностей и углов - сделано.

5) Всё свести в один ноутбук. Начало положено, ноутбук будет дорабатываться, расширяться.

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

Amarchuk commented 1 year ago

Отлично, часть Вы сделали!

По 1. Угол для черных тогда можно было не рисовать - он во всех картинках одинаковый.

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

Сильно больше точек не кажется нужным, почти везде выглядит как достаточное количество, и дотянуто почти до конца Х-структуры везде.

greenyellowcat commented 1 year ago

Вот архив с модельными фитсами и вычетами. Когда уже собрал, задумался, что может отрицательная интенсивность скриптом будет плохо обрабатываться. Если не будет работать, добавим диск в вычет. По поводу названий, все фитсы парные - общее изображение модели и вычет. Суффикс 0-45 - азимутальный угол бара. Накидал разных, вполне возможно, что оставим только одно. Но хотелось бы для себя заодно посмотреть как в разных моделях идет снижение потоков вдоль луча. Антон

чт, 9 февр. 2023 г. в 23:54, Amarchuk @.***>:

Отлично, часть Вы сделали!

По 1. Угол для черных тогда можно было не рисовать - он во всех картинках одинаковый.

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

Сильно больше точек не кажется нужным, почти везде выглядит как достаточное количество, и дотянуто почти до конца Х-структуры везде.

— Reply to this email directly, view it on GitHub https://github.com/alekskryzh/X-galaxies/issues/11#issuecomment-1424824524, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJFGEJ6VDVJHGYFHWGBMJMLWWVKORANCNFSM6AAAAAATWYVWWA . You are receiving this because you commented.Message ID: @.***>

alekskryzh commented 1 year ago

Похоже, архив потерялся, не вижу.

Amarchuk commented 1 year ago

@alekskryzh вот тут правильный архив. Могут быть проблемы с русскими буквами в названии (могут и не быть)

ДляСтудента.zip

alekskryzh commented 1 year ago

Выложу пока только архив ( https://disk.yandex.ru/d/zoCiY8j5e03g8A ) с результатами проги по модельным изображениям , т.к. в ноутбуке надо с путями разбираться и он с кириллицей через раз справляется, видимо, либо надо копировать названия на кириллице (не набирать вручную в ноутбуке), либо я и вовсе переименую на латиницу. Результаты проги не впечатляют (ну, может с вычетами и не так всё плохо), особенно, где не вычеты (как я понимаю, там что-то вроде диска или что там за тонкая горизонтальная яркая составляющая). Где не вычеты, там ещё была трудность подобрать более-менее нормальный референсный эллипс. В скрипте написал немного кода, который дублирует картинку с пиками, но подписывает их номерами (в архиве это peaks_check.png), по этим номерам будут отбираться плохие точки (скрипт почти написан).

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

Amarchuk commented 1 year ago

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

Еще у меня ощущение, что эллипс не попадает в центр - как будто ошибка на один пиксель в каждую сторону.

А что за проблемы с декомпозицией? Какая задача решается - новые галактики?

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

Amarchuk commented 1 year ago

@greenyellowcat посмотри пожалуйста архив https://disk.yandex.ru/d/zoCiY8j5e03g8A на предмет явно заметных проблем и на то, нужно ли нам обрабатывать все модели, что сейчас там выложены или можно некоторые не смотреть дальше.

alekskryzh commented 1 year ago

Про декомпозицию ответил в соседней теме.

Наконец-то дописал скрипт, который убирает плохие точки. В основной скрипт (xfit.py) я написал немного кода, который строит ещё одну картинку с точками поверх галактики, но эти точки уже пронумерованы. Единственное, что я понял, что в зависимости от размеров изображения эти точки с цифрами могут сильно накладываться друг на друга (особенно, для маленьких изображений, где маленькие галактики), это не очень удобно и понятно, поэтому я решил, что регулировать размеры точек и цифр буду вне основного скрипта, т.е. написал ещё один маленький скрипт, с помощью которого могу задавать все эти размеры. Итак, я вижу пронумерованные точки, смотрю, какие точки сильно отклоняются, записываю их номера в скрипт (можно сразу для нескольких галактик записывать, там оформлен цикл), запускаю скрипт, эти точки убираются. Здесь чуть подробнее, т.к. непростой момент. Скрипт по этим данным ему номерам записывает в определённые места в новых (скопированных) файлах с углами, интенсивностями, координатами, значение "-1". Т.е. я не могу просто удалить строчку, т.к. есть 4 луча у х-структуры, т.е. в строчке 4 числа, и только, например, одна точка (одно из 4-х чисел) на каком-то луче удаляется (определили её как плохую точку), а если я удалю всю строчку, то удалю тогда и хорошие точки. Записав в файлах на месте плохих точек значение "-1", скрипт перерисовывает картинки (точки поверх галактики, графики углов и интенсивностей) с учётом этих обозначенных плохих точек. В принципе, перерисовку тогда просто повторить и в ноутбуке, но ноутбук собирает картинки воедино, а скрипт всё же работает с конкретными изображениями, картинки у скрипта все раздельные. Возможно, всё это выглядит сложновато, зато сейчас уже просто можно указывать имя галактики и номера точек, и всё, скрипт всё сделает.

Собственно, архив: https://disk.yandex.ru/d/PQEmP2GghstmFg

В архиве и галактики, и модели. Я решил глобально по-другому называть папки - "без модели диска" с суффиксом _d, "без всей модели (минус диск и минус все балджи)" - с суффиксом _m. Раньше эти d,m стояли в самом начале имени, но сейчас я решил, что так всё, что относится к одной галактике, будет стоять рядом, ведь имена начинаются с имени галактики. Не знаю, насколько это покажется удобным или не очень, но это не такая большая проблема. Попробовал поудалять точки у всех - и у галактик, и у моделей. Отрицательные интенсивности я попытался тоже учесть (до этого я их занулял, сейчас просто выкидываю).

xfit_check_peaks.py - маленький скрипт, который регулирует размер точек и цифр. xfit_clear_peaks.py - скрипт по удалению плохих точек. В каждой папке можно найти angles_clean.dat и т.д., это просто скопированные скриптом файлы angles.dat и т.д. (т.е. исходные файлы никак не редактируются, только их копии). peaks_check.png - картинки с пронумерованными точками. peaks_clean.png - картинки с почищенными точками. В архиве есть не везде, т.к. не везде были плохие точки.

Собственно, ноутбук с моделями: https://github.com/alekskryzh/X-galaxies/blob/334e1d10a7e3109ac24d69e89e31f4bdff7cfc8c/decomp_results/plot_x_peaks_models_0227.ipynb И ноутбук с галактиками: https://github.com/alekskryzh/X-galaxies/blob/334e1d10a7e3109ac24d69e89e31f4bdff7cfc8c/decomp_results/plot_x_peaks_0227.ipynb

Ноутбук существенно переписан - добавлены заголовок, краткое описание, на вход гораздо больше данных, основной код по большей части переписан, картинки строятся итеративно. В прошлый раз ноутбук не смог заработать из-за интересных названий файлов. Например, ДваХ0.fits, я тогда на автомате писал английскую икс, а на самом деле это была русская "Х", поэтому ноутбук не мог найти файл, поэтому прошлый раз пришлось только архив кинуть.

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

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

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

Amarchuk commented 1 year ago

Спасибо за материал, посмотрю. Верно ли, что под "плохой" Вы понимали точку, которая выбилась на картинке, но при этом сами интенсивности вдоль эллипса, по которым эти точки собственно строятся, Вы не смотрели?

Немного не по теме, но всё же. А нам к какому моменту нужно быть с написанным дипломом? Т.е., наверное, к маю он должен по большей части быть готов?

Формально - кажется две недели до защиты, но лучше иметь возможность послать рецензенту текст раньше, т.е. середина мая.

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

Мы это обсудим. Сейчас кажется важно осмыслить имеющийся материал.

alekskryzh commented 1 year ago

Да, точка, которая выбивается на картинке. Интенсивность отбирается из уже имеющейся (полученной основным скриптом xfit.py), типа есть какая-то точка, для неё записана интенсивность в intensities.dat, если точка "плохая", то эта интенсивность не берётся (не отмечается на графике). Надеюсь, я правильно понял вопрос. Кстати, там в ноутбуках "плохие" точки, где они есть, убраны. Если нужно, могу скинуть вариант численных моделей без удалённых "плохих" точек.

Amarchuk commented 1 year ago

Понятно.

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

alekskryzh commented 1 year ago

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

alekskryzh commented 1 year ago

Краткий конспект того, что делать дальше.

  1. Сравнить финальные вычеты и вычеты, которые были в Легаси. Посмотреть на суммарные хи-квадрат.

  2. Нужны сводные таблицы или графики по тому, что получается (собирать нужно автоматически) - нужно B/T по всем галактикам, сравнить с моделями с одним балджем, с двумя балджами (возможно, нужна пометка в таблице в каких галактиках два балджа), как меняются хи-квадраты при добавлении второго балджа (это, возможно, понадобится для того, чтобы обосновать добавление второго балджа в модель), параметр Серсика.

  3. Вдоль х-структуры может быть два эксп.масштаба вместо одного (обрыв изофот). Возможно, стоить посмотреть и отметить те галактики, где их несколько.

  4. В ноутбук добавить недостающие модели ОбычнаяX0 и ОбычнаяX45 (важны).

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

  6. Выкидывали "плохие" точки. С одной стороны, это хорошо, т.к. графики стали выглядеть лучше, с другой стороны, плохо, т.к. нет понимания работы скрипта. Проблема, скорее, связана в этом скрипте с тем, что делается попытка вычесть горизонтальную составляющую: вписываются сначала две гауссианы, они вычитаются, потом вписываются 4 гауссианы и на них ищутся максимумы; первый шаг оказывается не очень устойчивым и будет не очень хорошо вписываться. Предлагается сделать всё руками (просто максимумы отмечать)

Amarchuk commented 1 year ago

3 - легкий, 4 - добавить только вторую, первая есть, 5 - этот тест чтобы проверить как влияет эллиптичность

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

alekskryzh commented 1 year ago

Маленькое обновление по численным моделям.

Архив: https://disk.yandex.ru/d/BmgxxA64clvNGw

Ноутбук: https://github.com/alekskryzh/X-galaxies/blob/18ee5e72816170105b9c073898043d469b064250/decomp_results/plot_x_peaks_models_0306.ipynb

Добавлены Обычная45, СБалджем0. В прошлый раз у них в случае _d (с модельным диском) имелось всего по одной точке на луч х-структуры, поэтому картинки не рисовались. Однако эта проблема осталась для СБалджем54, которого в данном ноутбуке нет (но есть в архиве). "Плохие" точки удалены. Кроме того, что-то по-прежнему не смог попасть в центр, хотя предварительно проверял с помощью написанного маленького скрипта, рисующего эллипсы. Там действительно где-то смещение на 1 пиксель как по х-оси, так и по у-оси идёт. Что ж, видимо, в следующий раз придётся детально разбираться с этим попаданием в центр.

Тест на проверку того, как влияет эллиптичность. Модель Обычная45. Выполнено для следующей сетки эллиптичностей: 0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7.

Архив: https://disk.yandex.ru/d/3mM-YjdAI-O5Lw

Ноутбук: https://github.com/alekskryzh/X-galaxies/blob/4db4710e62e62b630676b9d79f7c65384f649ea4/decomp_results/plot_x_peaks_%D0%9E%D0%B1%D1%8B%D1%87%D0%BD%D0%B0%D1%8F45_test.ipynb

Плохие точки НЕ были удалены (наверное, лучше посмотреть на работу скрипта, а не на "хороший" результат). Видимо, "хороший" результат скрипта всё-таки в какой-то степени зависит от эллиптичности. С большей эллиптичности, кажется, выглядит лучше, чем при более круглых эллипсах (особенно, результат достаточно неплох при ell=0.5). Однако для большой эллиптичности (ell=0.7) результат ухудшается. Честно говоря, пока не до конца понимаю, с чем это всё связано и как при других запусках других моделей/галактик подбирать оптимальную эллиптичность. Теоретически, конечно, можно для каждой модели/галактики такую сетку прогонять, чтоб взять оптимальную эллиптичность, но это будет неразумно долго.

Скрипт по отмечанию максимумов вручную дописываю (срез вдоль эллипса делается так же, как и в основном скрипте, сейчас работаю над записью данных, считанных с построенного среза, в файлы для углов, интенсивностей и координат максимумов для дальнейшего считывания ноутбуком). Я, может, ещё не до конца понял, в каком виде в итоге рисунки собирать, но пока думаю так: в две колонки - в одной нарисован эллипс поверх изображения модели/галактики, на этом эллипсе отмечены 4 точки-максимума разным цветом; в другой колонке срез интенсивности вдоль эллипса, на этом срезе 4 точки-максимума разным цветом. Каждая новая строчка в такой "таблице" из двух колонок - новый эллипс. Но, видимо, рисунков будет очень много. Да и нормально будет, если для каждой модели/галактики в общем ноутбуке будет много рисунков (изображения с точками поверх, графики углов и интенсивностей, эллипсы с интенсивностями вдоль них)? Сводную таблицу (B/T, хи-квадрат и т.п.) по всем галактикам я так понимаю лучше в ноутбуке с декомпозициями делать ( в самом начале)?

Amarchuk commented 1 year ago

Маленькое обновление по численным моделям.

Архив: https://disk.yandex.ru/d/BmgxxA64clvNGw

Ноутбук: https://github.com/alekskryzh/X-galaxies/blob/18ee5e72816170105b9c073898043d469b064250/decomp_results/plot_x_peaks_models_0306.ipynb

Добавлены Обычная45, СБалджем0. В прошлый раз у них в случае _d (с модельным диском) имелось всего по одной точке на луч х-структуры, поэтому картинки не рисовались. Однако эта проблема осталась для СБалджем54, которого в данном ноутбуке нет (но есть в архиве). "Плохие" точки удалены. Кроме того, что-то по-прежнему не смог попасть в центр, хотя предварительно проверял с помощью написанного маленького скрипта, рисующего эллипсы. Там действительно где-то смещение на 1 пиксель как по х-оси, так и по у-оси идёт. Что ж, видимо, в следующий раз придётся детально разбираться с этим попаданием в центр.

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

Тест на проверку того, как влияет эллиптичность. Модель Обычная45. Выполнено для следующей сетки эллиптичностей: 0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7.

Архив: https://disk.yandex.ru/d/3mM-YjdAI-O5Lw

Ноутбук: https://github.com/alekskryzh/X-galaxies/blob/4db4710e62e62b630676b9d79f7c65384f649ea4/decomp_results/plot_x_peaks_%D0%9E%D0%B1%D1%8B%D1%87%D0%BD%D0%B0%D1%8F45_test.ipynb

Плохие точки НЕ были удалены (наверное, лучше посмотреть на работу скрипта, а не на "хороший" результат). Видимо, "хороший" результат скрипта всё-таки в какой-то степени зависит от эллиптичности. С большей эллиптичности, кажется, выглядит лучше, чем при более круглых эллипсах (особенно, результат достаточно неплох при ell=0.5). Однако для большой эллиптичности (ell=0.7) результат ухудшается. Честно говоря, пока не до конца понимаю, с чем это всё связано и как при других запусках других моделей/галактик подбирать оптимальную эллиптичность. Теоретически, конечно, можно для каждой модели/галактики такую сетку прогонять, чтоб взять оптимальную эллиптичность, но это будет неразумно долго.

Понятно, что зависимость от эллиптичности может быть (вырожденный случай ell=1), вопрос насколько сильная. Сам тест не показателен, пока точки не расставлены руками или не проверены.

Скрипт по отмечанию максимумов вручную дописываю (срез вдоль эллипса делается так же, как и в основном скрипте, сейчас работаю над записью данных, считанных с построенного среза, в файлы для углов, интенсивностей и координат максимумов для дальнейшего считывания ноутбуком). Я, может, ещё не до конца понял, в каком виде в итоге рисунки собирать, но пока думаю так: в две колонки - в одной нарисован эллипс поверх изображения модели/галактики, на этом эллипсе отмечены 4 точки-максимума разным цветом; в другой колонке срез интенсивности вдоль эллипса, на этом срезе 4 точки-максимума разным цветом. Каждая новая строчка в такой "таблице" из двух колонок - новый эллипс. Но, видимо, рисунков будет очень много. Да и нормально будет, если для каждой модели/галактики в общем ноутбуке будет много рисунков (изображения с точками поверх, графики углов и интенсивностей, эллипсы с интенсивностями вдоль них)?

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

Сводную таблицу (B/T, хи-квадрат и т.п.) по всем галактикам я так понимаю лучше в ноутбуке с декомпозициями делать ( в самом начале)?

Да, там хорошее место. Но можно и отдельный ноутбук, а то они имеют тенденцию разрастаться.

alekskryzh commented 1 year ago

Архив: https://disk.yandex.ru/d/3Ug4TaTnstt3Zw

Ноутбук: https://github.com/alekskryzh/X-galaxies/blob/89f714bdc49b0c4a1462a91b40b51de5d003dc1b/decomp_results/plot_x_peaks_%D0%9E%D0%B1%D1%8B%D1%87%D0%BD%D0%B0%D1%8F45_test_0311.ipynb

Скрипт, позволяющий протыкивать максимумы: xfit_hand.py (лежит в архиве). Принцип его работы следующий. Есть некоторые входные данные (имя изображения, имя папки с результатами, координаты центра, радиусы, эллиптичность; по сути, это мигрировало из конфига для основного скрипта). Делается срез вдоль эллипса (так же, как это делалось в основном скрипте), этот срез рисуется (это интенсивность вдоль эллипса), протыкиваются точки, от них получаются аномалии (по х-оси) и интенсивности (по у-оси), интенсивности записываются в intensities_hand.dat (формат подобных файлов (почти) абсолютно такой же, как в случае основного скрипта), из аномалий получаются углы (записываются в angles_hand.dat) и координаты точек (с учётом входных данных; записываются в coord_xy_peaks_hand.dat); дальше всё, что записано в эти файлы, используется для построения рисунков: компоновка "эллипс с точками + срез с точками" (файлы вида ell_intenshand{radius}.png), точки поверх изображения (peaks_hand.png), графики углов (angles_hand.png) и интенсивностей (intensities_hand.png). Собственно, вся ручная работа здесь - следить за входными данными и тыкать. В ноутбуке я решил просто добавить точки поверх изображения и графики углов и интенсивностей, чтобы сравнивать с тем, что даёт основной скрипт.

Некоторые подробные замечания по данному скрипту. Во-первых, изменён в папке libs файл output.py (в архиве этого нет), а именно: init (который в самом начале) - добавлено условие, позволяющее не перезаписывать файл; функция write_data - добавлены строки кода, позволяющие перезаписывать строчку в файлах типа angles.dat и т.п. вместо перезаписи всего файла, если данный радиус равен радиусу в этой строчке. Во-вторых, чуть поясняя предыдущее замечания, раньше работа основного скрипта предполагала всегда перезапись файлов angles.dat и т.п., теперь можно перезаписать конкретные строки (нужно указать радиусы, совпадающие с радиусами в этих строках, иначе просто добавятся новые строки). Это гораздо удобнее в плане экономии времени, т.к. из-за одной бракованной строчки теперь не надо перезаписывать весь файл, т.е. не надо протыкивать заново все радиусы. В-третьих, формат файлов angles_hand.dat и т.п. чуть отличается: раньше на каждый луч х-структуры приходилась одна колонка (для углов и интенсивностей), теперь две (т.е. кол-во колонок удвоилось). Это сделано для возможности отмечать широкие максимумы. Такое изменение было учтено в ноутбуке. В-четвёртых, если максимум узкий, то при протыкивании нужно два раза нажать на этот максимум (получится пара одинаковых значений, на рисунке отметятся пара точек одного цвета, но они совпадут, т.е. будут выглядеть как единая точка (на других рисунках,графиках так же)). Если максимум широкий, то отмечаются его края, точки будут видны как раздельные (но одного цвета). После двух протыкивании цвет точек меняется. После 8-ми протыкивании графическое окно закрывается, открывается граф.окно уже для следующего радиуса. И так для 15-20 радиусов. В-пятых, при раздельных точках на графиках углов и интенсивностей линия одного цвета просто раздваивается.

Теперь про сам результат. Если в общем, то всё довольно неплохо выглядит, графики идут более аккуратно, точки поверх тоже. Успел скрипт опробовать только на тестовой задаче с эллиптичностями, дальше можно перекидываться на численные модели и реальные галактики. Замечания по данной задаче следующие. Во-первых. В прошлый раз работа основного скрипта дала то, что оптимальная эллиптичность ell=0.5, при меньших и бОльших результат хуже. После протыкивания я бы сказал, что при ell=0.5 было хорошо видны максимумы, всё очень хорошо протыкивалось. При бОльших ell протыкивалось чуть-чуть похуже, но результат, видимо, гораздо лучше, чем результат основного скрипта. При меньших ell максимумы для случая с диском видны очень и очень плохо, непонятно, где эти максимумы там вообще. Здесь я прекрасно понимаю необходимость аппроксимации и вычитания этого диска (те две гауссианы на первом этапе работы основного скрипта). Во-вторых, видимо, в данном случае оптимальная эллиптичность в пределах 0.5-0.7. В общем случае, предположу, что примерно 0.4-0.7. Хотя всё равно до конца не понимаю, как эту оптимальную эллиптичность угадывать. Маленькие ell, видимо, лучше не рассматривать. В-третьих, заметил интересную деталь. Если сравнить точки поверх изображения мальньких и больших, например, при ell=0.0 и ell=0.6-0.7 (ell=0.6 для основного скрипта), то при больших ell точки в верхней и нижней половинах изображения выстраиваются в что-то типа параболы. Т.е. при увеличении ell х-структура изгибается в такие "параболы", график углов заметно растёт с радиусом. В-четвёртых, везде график интенсивности, особенно для вычета, представляет собой горб и центральный пик. Синяя линия как-то не особо вписывается. Видимо, с ней надо что-то делать или вовсе не рисовать. Пришлось ещё фиксировать границы по игрек-оси, чтобы вся синяя прямая не вырисовывалась. В-пятых, в ноутбуке я ещё подумываю переделать чёрную идеальную х-структуру так, чтобы точки равномерно проходили по всей структуре, а то так как-то обрывисто получается. Но этот пункт уж как пойдёт...

Amarchuk commented 1 year ago

Отлично, подробнее в будни посмотрю.

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

alekskryzh commented 1 year ago

Не совсем понял про нормальную модель. В архиве есть и _d, и _m. Если я правильно помню, по численным моделям фитсы предоставлялись парами - модель и вычет. Первому соответствует _d, второму _m. В случае _d пики находятся очень тяжело для небольших ell, для ell побольше они видны лучше. Ещё такое предложение. В случае вычетов ( _m) на срезах между пиками есть сильные провалы в отрицательные значения. Может, эти отрицательные интенсивности на срезе и вовсе не рисовать? Например, ограничить y-ось снизу нулём. И ещё при больших радиусах дисковая составляющая на срезе сильно устремляется вверх, сами пики х-структуры на таких рисунках становятся мелкими, сложновато их разглядеть, подумываю как-то и сверху ограничить.

И ещё могу пока фоном протыкивать максимумы у других численных моделей и реальных галактик. Правда, оптимальную эллиптичность придётся пока как-то угадывать.

Amarchuk commented 1 year ago

Посмотреть для галактик из Dustpedia, где находится последняя точка спирали, внутри или за оптическим радиусом?Нам бы с диском еще посмотреть, возможно отрицательные значения как раз от него.

Про перевычет надо обсудить. На примере какой галактики его хорошо видно?

Протыкайте несколько хотя бы реальных галактик (в которых больше уверены), полезно будет на обсуждении на них взглянуть.

А что значит номер в ell_intens_hand? И старые картинки с эллиптичностями - они просто остались или все еще тоже рисуются?

(небольшой хинт: когда рисуете и сохраняете png, обрезайте им поля, а то слишком много неиспользуемого пространства plt.savefig("filename.pdf", bbox_inches = 'tight', pad_inches = 0))

alekskryzh commented 1 year ago

Галактики из Dustpedia? Знаю, что есть проект такой, возможно, где-то здесь на гитхабе в переписках упоминалось, но пока не вспоминаю. Возможно, речь о тех галактиках, которые декомпозировали?

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

Номер у ell_intens_hand означает радиус, т.е. большая полуось эллипса. Старые картинки просто остались.

Amarchuk commented 1 year ago

Галактики из Dustpedia?

Прошу прощения, кусок из другого репозитория вставился почему-то. Не обращайте внимание на это предложение.

alekskryzh commented 1 year ago

Три реальные галактики: EON150.398-2.994 (hexagons), 732_72_0_line4676 (iso_break), 2015_16_1_line2021 (iso_break).

Архив: https://disk.yandex.ru/d/pAB1JsC_kSvhBg

Ноутбук: https://github.com/alekskryzh/X-galaxies/blob/1dbfb60ccaafeebc2315bed2e1877d5505c00b48/decomp_results/plot_x_peaks_0321.ipynb

В архиве результаты для всех рассмотренных эллиптичностей (в названиях папок/файлов эллиптичность обозначается как, например, "_03"). В ноутбуке только по одной эллиптичности на каждую галактику, где результаты, на мой взгляд, выглядят лучше.

Для больших эллиптичностей (0.7-0.8) есть проблема - балдж (для случая "изображение минус диск"; и для вычетов, где балдж, видимо, не до конца вычтен, например, галактика 732_72_0_line4676 с ell = 0.7-0.8). Чем больше элл-ть, тем меньше расстояние от верхней и нижней точки эллипса до центра (при одном и том же радиусе эллипса), значит, чтобы эллипс не пересекал в этих двух точках балдж, нужно взять радиус гораздо больше. В таком случае максимумы х-структуры на срезе можно различить (выделить из интенсивности балджа) только на больших радиусах (т.е. ближе к концам х-структуры). На радиусах поменьше срез представлял собой только два чётких горба (в местах верхней и нижней точки эллипса), а они соответствуют балджу, выделить из этих горбов максимумы икса невозможно.

Вообще, есть ещё два максимума - "уши", но для ell = 0.7-0.8 не являются проблемой, т.к. максимумы х-структуры хорошо отделяются от максимумов "ушей". Для ell = 0.3-0.4 "уши" уже могут стать проблемой, т.к. максимумы икса почти сливаются с этими максимумами "ушей".

Автоматика для ell = 0.7-0.8 и случая "изображение минус диск" не дала вообще никакого результата (ни одной точки).

Результат автоматики для ell = 0.3-0.4 лучше, чем для ell = 0.7-0.8.

Amarchuk commented 1 year ago

Сделайте пожалуйста общие картинки по большим интенсивностям тоже, чтобы сравнивать можно было, хотя бы в архиве. Называйте graph и picture_peaks немного иначе, чтобы одинаковые картинки по смыслу шли подряд в папке-корне, чтобы можно было пролистывать и смотреть, как меняется результат. И сделайте поля меньше, а то полученное savefig смотреть странно, много свободного места.

Делать 4 элл. было не обязательно, достаточно одну маленькую (0.3-0.4 по желанию) и одну большую (0.7-0.8 по желанию).

Для больших эллиптичностей (0.7-0.8) есть проблема - балдж (для случая "изображение минус диск";

Как это увидеть, если картинки для этих срезов не сохзраняются?

alekskryzh commented 1 year ago

Архив: https://disk.yandex.ru/d/5YyRjTZd6q9ZMw

Сделал общие картинки для больших эллиптичностей, хоть и пришлось под них адаптировать ноутбук, т.к. это особые случаи, когда не везде есть точки (где-то нет точек от автоматики, где-то нет и от ручного режима), а значит, не все графики могут быть построены (на общих картинках такие графики отсутствуют). h_eon150_0_7_d, ib_732_0_7_d, ib_732_0_8_d - нет точек от автоматики. ib_2015_0_7_d, ib_2015_0_8_d - нет точек ни от автоматики, ни от ручного режима. Общие картинки построены только для _m. Имена общих картинок теперь начинаются с graph и picture_peaks, тем самым картинки одного смысла (точки поверх изображения или графики) для одной галактики и с разной эллиптичностью идут подряд. В ноутбук было добавлено plt.savefig( ... , bbox_inches = 'tight', pad_inches = 0.1), тем самым поля у общих картинок уменьшились. По остальным картинкам, кажется, должно быть нормально, такие аргументы savefig были внесёны в скрипты. Единственное, кажется, у h_eon150_0_4 там остались ещё старые картинки от автоматики, полученные когда-то давно.

Добавлены срезы для случаев, когда максимумы невозможно протыкать. Имена срезов такие же (ell_intenshand{radius}), просто не отмечены точки. Ничего другого больше не добавлялось и не изменялось. Такие срезы без точек добавлены для h_eon150_0_7_d,ib_732_0_7_d,ib_732_0_8_d,ib_2015_0_7_d,ib_2015_0_8_d.

Amarchuk commented 1 year ago

Хорошо, что учли все замечания. И результаты интересные вырисовываются.

В целом если автоматическое работает долго - можно дальше его не учитывать. Если быстро - то оставьте.

Советую для тех графиков, где выпадает картинка (как весь столбец для ib_2015_0_7_d, ib_2015_0_8_d) рисовать все же пустую, чтобы например 2015_0_4 и 2015_0_7 можно было бы сравнить перелистыванием.

Интересно конечно, что будет если не убирать диск.

Мы посмотрим и обсудим, делайте дальше. Думаю не нужно делать 4 эллиптичности на каждую, можно и две.

alekskryzh commented 1 year ago

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

Автоматический скрипт работает, в целом, не очень долго, так что планирую оставлять.

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

Amarchuk commented 1 year ago

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

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

Автоматический скрипт работает, в целом, не очень долго, так что планирую оставлять.

Хорошо. Он на самом деле тоже дает информацию - там где он получается, чаще всего совпадает с тем, что вручную.

Amarchuk commented 1 year ago

Для тех галактик, что уже сделано - готовьте сводные картинки с профилями. В частности все измеренные профили и углы на одном графике для разных галактик, чтобы сравнивать было удобно. Модельные тоже.

alekskryzh commented 1 year ago

Результаты для всех обработанных (в плане декомпозиции) галактик.

Архив: https://disk.yandex.ru/d/tA8GD05b5ANLNA

Ноутбук: https://github.com/alekskryzh/X-galaxies/blob/a14473d3df09183d682fdeca0feb8660181f69ee/decomp_results/plot_x_peaks_0419.ipynb

В ноутбуке результаты представлены только для меньшей эллиптичности (0.3-0.4).

На каждую галактику по 2 эллиптичности. В названиях папок суффикс "_a" означает, что это "целая" галактика, без вычитания диска и балджа; число типа "_0_4" - эллиптичность. Общие рисунки представлены в три колонки ("целая" галактика, минус диск, минус диск и балдж).

Хотелось бы уточнить насчёт сводных картинок. Как я понимаю, на выходе должно быть что-то вроде двух png-файлов: один в виде графика "угол - расстояние от центра", другой в виде "интенсивность - расстояние от центра", - и на этих двух графиках должно быть нарисовано всё, что получилось по всем галактикам и моделям? Здесь ещё возникает небольшой вопрос: на каждую галактику 4 линий (одна линия на один луч Х-структуры), 2 эллиптичности, 3 случая ("целая галактика", минус диск, минус диск и балдж), галактик 8-9 плюс ещё сколько-то там моделей - будет очень много линий. Думаю, можно углы взять средние (усреднение по лучам), интенсивность как раз можно попробовать просуммировать по лучам, взять одну эллиптичность, где результат получше, ну вот насчёт случаев пока не знаю, можно ли только вычет взять. Тогда кол-во линий на графике сократится. Ещё думаю, модели на графиках как-то выделить (другим цветом или как-то ещё), чтобы было видно, где модели, а где реальные галактики.

Amarchuk commented 1 year ago

А почему только маленькие эллиптичности?

Картинки теперь сравнивать удобнее - только рисуйте, пожалуйста, все данные в строки в одной шкале, чтоб еще проще было.

По общим картинкам: понятно, что линий много, и тут надо экспериментировать. Линий точно не нужно пять, только среднее. Пока сделайте как-нибудь, например коллажами 3х3.

alekskryzh commented 1 year ago

Ноутбук с коллажами: https://github.com/alekskryzh/X-galaxies/blob/ce2f6aafaf3d0c58573cf077e151646c2963b3af/decomp_results/plot_collage_0426.ipynb

Успел для галактик сделать коллажи интенсивности для малой элл-ти, для большой элл-ти, малая элл-ть VS большая элл-ть, а также коллаж углов для малой элл-ти VS большая элл-ть. Т.е. 4 коллажа. Для интенсивностей я брал точки вычета, как бы переносил эти точки на исходное изображение, изображение минус диск и в этих точках получал саму интенсивность. По крайней мере, так я понял из последнего обсуждения. В случае углов так не делал (иначе везде были бы одни и те же углы), брал те, которые получались при протыкивании исходного изображения, изображения минус диск, вычета. Результаты автоматики не брал, только то, что руками получилось.

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

Кстати говоря, а синюю сплошную линию для интенсивностей оставить или можно её убрать?

Amarchuk commented 1 year ago

Хорошо! И что получилось, есть "ступенька" где-нибудь или это диск так повлиял?

сплошная синяя - это приближение экспонентой, тут она только мешает на мой взгляд