Bringing out the faint details of a galaxy

Since last year, I’ve been “working” on a project that involves shooting a neighbor. Don’t call the police just yet, because our neighbor is galaxy M31.

This galaxy is visible to the naked eye in the Andromeda constellation. This animation highlights the benefits of using a dedicated filter. Here, a narrowband filter centered on the Halpha spectroscopic line. In other words, this filter lets through the light produced by immense clouds of hydrogen at a point where the light takes more than 2.5 million years to reach us.

A quick reminder: 2.5 million years ago, the first prehistoric humans lived on Earth: the Australopithecus… As a result, if someone were to observe the Earth from this galaxy, it’s unlikely they’d find any obvious traces of civilization: fire hadn’t even been domesticated yet.

Ha_anim

EDIT: in order to see what looks like the hydrogen alpha channel, when all the continuum signal were removed:
image
A closer look to the core:
image

And if we compare to an image from the Spitzer telescope, in infrared, we can see the stream in the galaxy’s core in my photo as well.

6 Likes

Is the second(? the brighter one with more detail) image using only frames taken with the filter or is it a mix?

Great capture by the way, it looks great.

1 Like

The second is a mix of the red channel and the hydrogen channel.

1 Like

How can you remove the continuum using SIRIL?

1 Like

Using pixel math

How did you separate Ha and OIII? Probably in the stacking process with extractHa or extractHaOIII.

There are many examples online of how this can be implemented with PixInsight. Unfortunately, the Pixelmath extension in Siril is structured very differently than the one in PIxInsight and you have to use a lot of tricks. In PIx you can even process and combine the Spizer data directly.

Nice post anyway. I’m looking forward to the new version with the drizzle function so that the noise can finally be removed with Graxpert or CosmicClarity.

Best regards

Here I don’t show any OIII data. And I use a monochrome sensor.

It is not that different. One thing does not exist in the Siril Pixelmath, this is the use of the $T variable. That’s all. But we can easily workaround.

I have already succeeded in doing this and have already implemented the bypassing of the variables in one of my scripts for deconvolution and sharpening of the stars.

I’m looking forward to the Python interface, the tools will just sprout up.

Is there already a timetable for when the new version 1.3 can be expected?

I wanted to add that I tested it with the fits of the Seestar with integrated LP filter OIII and Ha separately and corrected the L fits separately using deconvolution after LRGB. Ha edited and put back together. M33 was a grateful object for this.

I wrote the decon/sharpening script for this.

############################################
# Sep 2024
# Martin.K
# 3 Method x3 Iteration Starreduction
# Script for star reduction using pixel math.
# Requirements:
#	StarNet++ Command Line version must be installed
#   and configured in Siril.
#
# Original pixel math formula by Bill Blanshan.
#
# How to use this script: 
# Use the script with final stretched images
# https://youtu.be/Na6GzKozpCI
#
##############################################
requires 1.2.4

#Creaate a directory
link test -out=3x3starreduction
cd 3x3starreduction


#Create a copy of the current image and open it.

save starReduction.fit



#Enter the parameters for your base image if it is stretched or linear and select a resizing factor if necessary.
#starnet -stretch -upscale -nostarmask
starnet -upscale -nostarmask


save starless.fit
load starReduction.fit
#iteration-1
pm "$starReduction$*~(~(max(0,min(1,$starless$/$starReduction$)))*~$starReduction$)"
save iter1strong.fit
load starReduction.fit
pm "max($iter1strong$,($starReduction$*$iter1strong$)+($iter1strong$*~$iter1strong$))"
save iter1moderate.fit


#iteration-2
load starReduction.fit
pm "$iter1strong$*~(~(max(0,min(1,$starless$/$iter1strong$)))*~$iter1strong$)"
save iter2strong.fit
load starReduction.fit
pm "max($iter2strong$,($starReduction$*$iter2strong$)+($iter2strong$*~$iter2strong$))"
save iter2moderate.fit


#iteration3
load starReduction.fit
pm "$iter2strong$*~(~(max(0,min(1,$starless$/$iter2strong$)))*~$iter2strong$)"
save iter3strong.fit
load starReduction.fit
pm "max($iter3strong$,($starReduction$*$iter3strong$)+($iter3strong$*~$iter3strong$))"
save iter3moderate.fit

#Soft reduction mode with 3 iteration results
load starReduction.fit

pm " (($starReduction$-($starReduction$-$iter1moderate$))+($starReduction$*~($starReduction$-$iter1moderate$)))/2
save iter1soft.fit

pm " (($starReduction$-($starReduction$-$iter2moderate$))+($starReduction$*~($starReduction$-$iter2moderate$)))/2
save iter2soft.fit

pm " (($starReduction$-($starReduction$-$iter3moderate$))+($starReduction$*~($starReduction$-$iter3moderate$)))/2
save iter3soft.fit

load starReduction.fit

Unfortunately, no directories can be created legally in the script, so I took a detour.
Since no variables can be assigned via script in Siril, 9 variants are immediately thrown out.
LG