WBPP Drizzle preference

7 replies277 views
Jon Brown avatar

Hi everyone - like the subject states, let’s talk about drizzling.

My SOP with imaging is to expose between 3-6 minutes with a OCS camera (ASI585 or 294mc pro) and I dither 10px every frame. With that said, I’ve found if I drizzle 2x, i often get artifacts when using StarX. I figured maybe i just didn’t have enough data, but then i also found if I drizzle 1x or resample my 2x data by 50%, the artifacts are gone and data looks cleaner.

Through some tests, I’ve found I get the best results with 3x drizzle, resample 50%. No artifacts, and good SNR relative to my integration times. Has anyone else found oddities like this? Or know why?

Clear skies

Helpful Insightful Respectful Concise Engaging
Mikołaj Wadowski avatar

The artifacts you’re seeing are likely standard drizzle artifacts. Unfortunately, they’re not exclusive to OSC cameras. I believe they’re caused by poor normalization. Enabling local normalization seems to get rid of them, though it significantly increases stacking time and can slightly decouple linearity sometimes.

Well Written Concise
Jon Brown avatar

Mikołaj Wadowski · Oct 2, 2025 at 11:03 PM

The artifacts you’re seeing are likely standard drizzle artifacts. Unfortunately, they’re not exclusive to OSC cameras. I believe they’re caused by poor normalization. Enabling local normalization seems to get rid of them, though it significantly increases stacking time and can slightly decouple linearity sometimes.

Oh, interesting. I’ll have to check that out. Thanks for the info!

Well Written Respectful
lunohodov avatar

Jon,

Can you show the artifacts?

StarXTerminator can leave artifacts on its own or it could be revealing hidden drizzle artifacts. First, I would suggest determining the source:

  • Do you see artifacts before applying SXT?

  • Do you see artifacts when not using Drizzle?

Before all, I would like to list the two main reasons to use Drizzle:

  1. When undersampled, Drizzle helps you get better sampling.

  2. It is recommended when using an OSC camera as it allows debayering without interpolation, preserving photometry and avoiding color artifacts.

So with OSC you’ll definitely benefit from drizzle.

DrizzleIntegration’s documentation suggests checking the FWHM in your (debayered and calibrated) images to determine whether you’ll benefit from improved sampling. You can use either DynamicPSF or FWHMEccentricity scripts:

  • When FWHM < 2.5 pixels, big sampling improvement.

  • When FWHM > 2.5 and < 3 pixels, medium sampling improvement.

  • When FWHM > 3, no sampling improvement, you’ll only benefit for integration without interpolation i.e. always for OSC cameras.

One thing to note is that with an OSC camera, compared to monochromatic, drizzling requires larger number of well dithered images (15-20 minimum for scale=1, 50+ for scale=2 upsampling). Good dithering is when the dithering amount is close to 10px, and the frequency is every 1-2 frames. Some people recommend fractional dithering amount e.g. 9.3 instead of 9.

Now, back to the artifacts. A couple of reasons that come to my mind are:

  • Low number images or insufficient dithering.

  • Inappropriate combination of Drop Shrink, kernel Function, grid size, etc.

  • Pixel rejection. Test with disabling "Clip high range" in ImageIntegration's pixel rejection settings (or "Large Scale Pixel Rejection - High" in WBPP) and turning off CosmeticCorrection.

First, check if the artifacts are present with:

  • Enable CFA drizzle: checked

  • Scale: 1

  • Drop Shrink: 0.9. Then compare with value of 1

If there are no artifacts, move on to troubleshoot the rest of the parameters. DrizzleIntegration produces a weight map which indicates whether the integration was good:

  • Aim for a map with uniform weights (no dark patches). Use the Readout tool to check the values – 1 indicates good pixel coverage, where 0 suggests none.

  • Go for the lowest Drop Shrink value that provides good pixel coverage.

  • While kernel functions such as Gaussian and VarShape can produce better results, they require more images. Fall back to Circular or Square if necessary.

You can shorten your testing time with defining one or more ROIs.

Clear skies

Helpful Engaging
Jon Brown avatar

lunohodov · Oct 3, 2025, 07:07 AM

Jon,

Can you show the artifacts?

StarXTerminator can leave artifacts on its own or it could be revealing hidden drizzle artifacts. First, I would suggest determining the source:

  • Do you see artifacts before applying SXT?

  • Do you see artifacts when not using Drizzle?

Before all, I would like to list the two main reasons to use Drizzle:

  1. When undersampled, Drizzle helps you get better sampling.

  2. It is recommended when using an OSC camera as it allows debayering without interpolation, preserving photometry and avoiding color artifacts.

So with OSC you’ll definitely benefit from drizzle.

DrizzleIntegration’s documentation suggests checking the FWHM in your (debayered and calibrated) images to determine whether you’ll benefit from improved sampling. You can use either DynamicPSF or FWHMEccentricity scripts:

  • When FWHM < 2.5 pixels, big sampling improvement.

  • When FWHM > 2.5 and < 3 pixels, medium sampling improvement.

  • When FWHM > 3, no sampling improvement, you’ll only benefit for integration without interpolation i.e. always for OSC cameras.

One thing to note is that with an OSC camera, compared to monochromatic, drizzling requires larger number of well dithered images (15-20 minimum for scale=1, 50+ for scale=2 upsampling). Good dithering is when the dithering amount is close to 10px, and the frequency is every 1-2 frames. Some people recommend fractional dithering amount e.g. 9.3 instead of 9.

Now, back to the artifacts. A couple of reasons that come to my mind are:

  • Low number images or insufficient dithering.

  • Inappropriate combination of Drop Shrink, kernel Function, grid size, etc.

  • Pixel rejection. Test with disabling "Clip high range" in ImageIntegration's pixel rejection settings (or "Large Scale Pixel Rejection - High" in WBPP) and turning off CosmeticCorrection.

First, check if the artifacts are present with:

  • Enable CFA drizzle: checked

  • Scale: 1

  • Drop Shrink: 0.9. Then compare with value of 1

If there are no artifacts, move on to troubleshoot the rest of the parameters. DrizzleIntegration produces a weight map which indicates whether the integration was good:

  • Aim for a map with uniform weights (no dark patches). Use the Readout tool to check the values – 1 indicates good pixel coverage, where 0 suggests none.

  • Go for the lowest Drop Shrink value that provides good pixel coverage.

  • While kernel functions such as Gaussian and VarShape can produce better results, they require more images. Fall back to Circular or Square if necessary.

You can shorten your testing time with defining one or more ROIs.

Clear skies

Wow, thank you for the in depth summary. I’ll run some tests and let you know.

Well Written Respectful
Daemon de Chaeney avatar

Lunohodov, is there a way to determine the optimum drop shrink?

lunohodov avatar

Daemon de Chaeney · Oct 3, 2025 at 10:56 PM

Lunohodov, is there a way to determine the optimum drop shrink?

There's no formula—it depends on your specific data quality and frame count, so testing is the way to go.

The key is using the drizzle weight map to verify your settings are appropriate. Here's what I do:

Start with Drop Shrink = 0.9 (the default). Generate the drizzled image and immediately check the weight map:

If the weight map looks good and the resulting image has no artifacts, you can try a lower Drop Shrink. Compare the weight maps side-by-side. If you start seeing issues, go back to the previous value.

A few things that help this process:

  • Use ROIs to speed up testing (check DrizzleIntegration docs!)

  • Lower Drop Shrink needs more well-dithered frames.

  • Kernel function matters too: Square needs fewest frames, Gaussian/VarShape need the most. Circular can be an acceptable fallback.

One gotcha: If you see black holes in star cores, it's probably not a Drop Shrink problem—disable "Clip high range" in ImageIntegration's pixel rejection settings before drizzling.

Some helpful reading if you want to dive deeper:

Hope this helps! Let me know what results you get.

Edit: Added a link to examples for bad signs in a drizzle weight map.

Well Written Helpful Engaging
Daemon de Chaeney avatar

Thanks Lunohodov, much appreciated