Edges of stack showing, dark spots in stacked star field image, what's wrong here?

No, not with poor quality, it depends on the number of images. If you have 100 images stacked in some parts of the frame, and 120 images elsewhere, the part you are saying has “low quality”, still has 100 images stacked.

The SNR will be higher in the parts with 120 by 9.5%. That’s a tiny difference in SNR. It shouldn’t be visible. The portions with 100 images stacked can still be very high quality by any absolute standard.

This ought to have nothing to do with mosaic mode. I did NOT use mosaic mode in either DSS or APP. I am stacking images on a reference frame. The result is clipped to that refence frame.

How is that a mosaic? There is only a single panel.

It’s true that my subs do not all line up perfectly, but that does not make it a mosaic.

SIRIL made a design decision to not do mosaics. Mosaics involve correcting for lens distortion and are more complicated in the image geometry.

But that’s not relevant here. Apparently you are interpreting no mosaics as an excuse to do a bad job on stacking a single frame.

What is the origin of the edges? Doing the math on averaging would suggest that the should not be big difference between an average of 100 versus say an average of 120.

Obviously if there was a big difference in the background brightness in the 20 shots that were different between the two that would be one thing but that is not the case for my shots.

And, even if there is some difference, SIRIL has a normalization option, which I used, which is supposed to (as much as possible) get rid of variations in background brightness.

So its not clear to me why the edges are so visible in SIRIL.

But regardless of why its there, it’s a bug. It just means SIRIL is useless for stacking unless there is perfect alignment.

Which is unfortunate - it makes SIRIL very limited in applicability for people that want to incorporate subs from previous sessions. If you set out to shoot a specific shot, then you can align things, but if you have relevant frames you shot with a different alignment in the past - then you can’t.

I belive this mode is called mosaic in DSS. Even if it is just an overlap.

Hey please, feel free to contribute if you think you can do better.

In DSS:
StackingMode

Blockquote I belive this mode is called mosaic in DSS. Even if it is just an overlap.

No, it is called normal mode. There is an example showing overlapping frame in normal mode in the DSS manual http://deepskystacker.free.fr/english/index.html

Hey please, feel free to contribute if you think you can do better.

Actually, I just did contribute. I pointed out a deficiency in the specifications.

In general for a software developer to tell a user “contribute if you think you can do better” is a super arrogant, defensive and dismissive way to shut down criticism. As if the only people who can comment need to be able to be developers.

I hope that attitude isn’t typical of SIRIL, because it is very hard to make something great if there is nothing but aggressive defense of the current limitations. Why would a good developer try to push things ahead with that kind of attitude?

1 Like

Um, lock042, can you see that the shot you demonstrated is showing exactly this case - and that the software is in Standard mode, NOT mosaic mode.

You are so defensive that you didn’t even look at your own example.

This kind of comment doesn’t help me to be kind. But that’s probably me.

The screen shot from DSS is from the manual page that I have a link to.

Standard mode takes a reference frame - outlined in green, and clips the result to its borders. That is the mode that does the correct stacking of my frames in posts above.

Mosaic mode would give you all of the frames shown.

Intersection mode gives you only the part where they all intersect.

Please let’s chill out.

1 Like

In the event that there is somebody from the SIRIL development team reading this thread who is actually interested in the technical aspect, here is a suggestion of what is going on.

During integration, one does an average of all of the pixels for a given location in the image. That average might be a weighted average, and there is also the option of doing outlier rejection.

So if we have M sub-frames in a given area, you find the M pixels at a location, do outlier rejection to get N pixels where N<= M. Those N pixel values are then added together - possibly after multiplying by a weighting factor (quality factor, or SNR factor, there are several approaches). And then you do the average - i.e. sum the N pixel values and divide by N.

The result that SIRIL is putting out seems to me that it MIGHT be do a bug where the the number M is a global value for a stack. So if we have M images to stack, you base M, or the quality factors on the maximum number of rather than the number of pixels that are actually overlapping at that place in the image.

That’s just a guess on my part, and it could be that the problem is due to something else.

However, this would explain why there are such pronounced edges - the areas where there are fewer frames are not actually an average. There should be very little difference between the averages. But if the maximum number across the whole stack is Mglobal, then the areas of the stack that have a lower number Mlocal would effectively be suppressed by a factor Mlocal/Mglobal.

Or as an alternative, something similar could occur in the process of image normalization. In that case each pixel of each image might effectively be multiplied by something like (Mlocal/Mglobal).

Isn’t telling a software developer doing a bad job also arrogant? We reap what we sow.

1 Like

The actual quote was a bad job of stacking - not an overall bad job. There are many good aspects of SIRIL.

However, I think that if you look at the images I posted, SIRIL does a bad job of stacking my frames, while DSS and APP do vastly better.

If you think that the SIRIL result is good compared to DSS, then I really don’t know what to say.

Also, note that in my original post I suggested that that the problem was my mistake and/or ignorance. It’s only when I got the aggressive assertion that this is the way SIRIL is supposed to be, that the others are low quality etc that I was goaded into calling out the obvious bad result.

1 Like

As a moderator, I did not even think about comparing Siril to DSS or whatever. My intention was just about being polite and wording constructive vs. destructive criticism.

Fair enough, I will try to be constructive at all times.

1 Like

It’s clear for nobody.

What kind of normalization did you use?

additive with scaling

Can you show the script you are using? Otherwise, what’s the rejection method you used? What version of siril on what OS did you use?

Here is a sample of how siril is being invoked:

stack r_pp_IMG rej 5 5 -norm=addscale -output_norm

Where the r_pp_ images have already been pre-processed and registered by siril, but that was done in previous stages.

Here is a portion of the log for the stacking portion:

log: Rejection stacking complete. 99 images have been stacked.
log: Integration of 99 images:
log: Pixel combination … average
log: Normalization … additive + scaling
log: Pixel rejection … Winsorized sigma clipping
log: Rejection parameters … low=5.000 high=5.000
log: Background noise value (channel: #0): 153.785 (2.347e-03)
log: Background noise value (channel: #1): 123.203 (1.880e-03)
log: Background noise value (channel: #2): 101.252 (1.545e-03)
log: Saving FITS: file Final_Stacked_IMG.fits, 3 layer(s), 6072x4044 pixels

I have also tried other rejection settings.

If you would like me to try some specific combinations of settings, I am happy to try them.

I could also upload the files but they are huge. I could perhaps make a lower resolution version by binning them prior to registration.

This is all on Windows 10, siril version 0.99.6

Somewhere in the log not far from here you should have a rejection report, something like "Pixel rejection in channel ", can you copy these?

Maybe you could make available an image of each of the sessions, from the r_pp_ sequence, to see the differences in level and how the normalization manages to cope with it?
Thanks

OK, here is an experiment to show the problem clearly.

I took 120 sub-exposures which were very well aligned during capture so they should stack without much in the way of messy edges.

I made three stacks:

  1. All 120 subs.

  2. 100 subs - I just omitted 20 subs.

  3. 100 subs + 20 cropped square. In this case I took the same 20 subs that were omitted from #2, and I cropped them to square in the middle of the frame.

Here they are after an identical stretch.

First, all 120 images

Second, 100 images

Note that visually, this looks identical to the 120 image stack. That’s because the average of 100 samples and the average of 120 samples are bound to be very similar.

Here is the stack of 120 images, with 20 of them cropped to square, and 100 not cropped. The 100 that are not cropped are the same images as the 100 image stack. The 20 which are cropped are the same ones in the 120 stack.

So, the square center of this image ought to be identical to the center of the 120 stacked. The left and right edges of this image ought to be identical to the 100 stacked.

But the visual effect is quite different.

This is with additive + scaling for normalization, and linear fit clipping for rejection (low and high of 5 as per default).

This behavior is consistent with my theory in a post above that the wrong normalization number is being used in the areas which are exposed by cropping and only have 100 subs, versus the center that has 120. But I don’t know siril internals so perhaps it could be caused another way.

Here is the log description of rejection and stacking:

19:17:45: Starting stacking…
19:18:57: Pixel rejection in channel #0: 0.096% - 37.173%
19:18:57: Pixel rejection in channel #1: 0.152% - 42.457%
19:18:57: Pixel rejection in channel #2: 0.054% - 34.100%
19:18:58: Rejection stacking complete. 120 images have been stacked.
19:18:58: Integration of 120 images:
19:18:58: Pixel combination … average
19:18:58: Normalization … additive + scaling
19:18:58: Pixel rejection … linear fit clipping
19:18:58: Rejection parameters … low=5.000 high=5.000
19:18:58: Background noise value (channel: #0): 55.160 (8.417e-04)
19:18:58: Background noise value (channel: #1): 47.334 (7.223e-04)
19:18:58: Background noise value (channel: #2): 50.414 (7.693e-04)

That’s an interesting test, thank you. When you say you cropped the images, does it mean you replaced the sides by black or white pixels or you really changed their dimensions?