Combining stacks with different SNRs

MortenBalling

Well-known member
Hi all,

I'm currently working on a project, with data gathered by different people/telescopes/cameras.

I have three different luminance stacks. First i did a Linear fit. Next I measured Median and StdDev on a small preview of the background. Two of the stacks have a SNR=400, and the third has a SNR=1300.

I then tried to combine the stacks using PixelMath using the formula:

(StackA*4+StackB*4+StackC*13)/21

However, when I measure SNR of the resulting image, I get a value of 1100, which is lower than Stack3.

What am I doing wrong? Is my method wrong?

Thanks in advance

Regards

Morten
 
I'm not that strong on statistics, but I realized the square root sign involved calculating the better SNR when stacking, might hold some of the answer.

I therefore tried to square the factors in the equation above, giving:

(StackA*16+StackB*16+StackC*169)/(16+16+169)

That gave me an SNR of the resulting image, which was slightly higher than "1300". Before the SNR of Stack3 was actually 1307 and the new resulting image (using the squared formula) had a SNR=1324.

I could try to iterate my method, but if somebody, with better math skills than me, could enlighten me on what's going on, I'd appreciate it very much. It would probably save me a lot of time, and next up I have six different Ha stacks ;)
 
well i'm with you on statistics, i'm not that strong on it either.

but - PI's II module uses SNR as a weighting factor by default. so you can actually just throw all the subs into II and stack them together, as long as they're all registered beforehand of course. it might be worth a try.

rob
 
Hi Rob

Thanks.

I allready tried that, but didn't think the result was good enough. Maybe I should give it another try. Come to think of it, I didn't use linear fit before II, which might explain why it didn't work very well.

Morten :)

Edit: Another reason for using PixelMath, was that I only had two OIII stacks, but I recently learned the trick of using each stack twice.
 
For best combination, Images are weighted by by SNR**2. So in your case, Signal is multiplied by 400*2+400*2+1300*2=2010000. Noise only grows with the square root, so Noise would be sqrt(2010000)=1417. So the expected SNR for the combination would be 1417 (I hope I got the math right)

Not so much higher than 1300...
 
Thanks  :)

I tried the squaring method on our Ha data, and it seems to work flawlessly. I used...

Stack#*((Mean value/StdDev value)^2)

...for each stack, using a small preview together with PI Statistics to measure the values above:

Screen%2520Shot%25202013-05-26%2520at%252012.38.59%2520PM.png


and ended up with the following (very long) expression:

emberson_alle_filer_DBE_registered*((148486/1430)^2)+MR_Ha_12x1800_DBE_registered*((148433/816)^2)+MR_Ha_8x1800s_DBE_registered*((148387/888)^2)+MS_Ha_47x600s_registered*((148433/886)^2)+Paul_Ha*((148444/952)^2)+TOC_Ha_registered*((148463/769)^2)

Then I used LinearFit on the resulting image, and the result was the best so far:

Screen%2520Shot%25202013-05-26%2520at%252012.44.48%2520PM.png


Using a rough estimate, I have 6 images with an average StdDev of about 1000. That should give a StdDev of the Master stack of 1000/sqrt(6)=408.

Please correct me, if I've done something wrong.

Next up is OIII, SII and RGB.

Btw. The project is the planetary nebula JnEr1. I know it's already been done, but I tried to convince people from the danish Astronomical Society, that we should try to work together on a project, instead of shooting the usual Messier objects. We are 6 people, using 5 very different telescopes/cameras, and we have gathered more than 125 hours of data. I highly recommend trying that. Especially nowadays, where the internet makes communication and sending data much easier.

Regards

Morten
 
I would use the built-in SNR estimation weighting method in ImageIntegration (Noise Evaluation), that also takes care of scaling and offset normalization. Otherwise SNR comparisons can be way off.

Ignacio

 
Hi Ignacio

You are absolutely right. That was also my first weapon of choice. I just could not get any good results. I guess a reason could be, that the different stacks I have are pretty different. Here are two different II integrations:

Screen%2520Shot%25202013-05-27%2520at%25207.53.18%2520AM.png


The image on he left, is Avg/AdditiveNormalization/NoWeights. The one on the right is Avg/AdditiveNormalization/NoiseEvaluation.

Measuring SNR on the background of the "No_Weights" image I get a value of 99.5, which is far lower than when i combine the different stacks using PixelMath as described above.

I'm sure that I must have done something wrong in ImageIntegration, but I simply couldn't figure out what it was. Therefore I watched one of Harry's tutorials involving some PixelMath, decided that it didn't look "that difficult" and gave it a try.

Since then I've really come to like PM. It's kind of like programming my Commodore Vic20 again, which makes me very nostalgic ;D

Morten
 
Have you tried normalizing with "Additive + scaling"? Additive takes care of different additive zero offsets, while scaling takes care of mean dispersion.

Ignacio
 
Yes I tried that as well. It gives a result very similar to when I only use additive normalization. (Kind of strange btw.)

As I mentioned above, the stacks I recieved from the different members of the team are very different when it comes to pedistal, SNR, etc.

They also differ a lot in FWHM, but I can solve most of that by making two stacks, one with max SNR and one with max FWHM (haven't quite figured that one out yet). Those are then combined with a modified luminance mask.

Morten
 
Strange that it doesn't work, as I would expect it to accommodate different pedestals (additive normalization), different illumination, and weight to estimated SNR.

Ignacio
 
I agree. Normally II does a way better job, than anything I can come up with myself. I've been working as a compositor in the movie industry for many years, and started my astrophoto experience using homemade scripts for calibration, alignment and post processing  (using software for VFX called NukeX). I then moved to Nebulosity, because it's so easy to learn, but the last few months I've really gotten into the wonderful world of PI.

Pi has processes/scripts that are able to do all the "smart stuff" I "invented" in my homemade scripts, and a lot more. Here is an example of the image done using my own methods:

Jner1Pi2_v15.jpg


Using DynamicPSF/Deconvolution, ATW, MorphologicalTransform and PixelMath, I'm getting a much better result, but now it's really hard to let go of the image, because I find new features in PI all the time. All good things must come to and end, so I hope this is the final round. We have several new projects coming up.

Morten :)
 
Back
Top