deepskystacker / DSS

DeepSkyStacker
Other
894 stars 90 forks source link

Where next ... #159

Open perdrix52 opened 1 year ago

perdrix52 commented 1 year ago

This is a tracking issue for use only by the development team to list possible future enhancements:

Comment from Tony Cook:

The existing group feature should be the jumping off point for handling the calibration of L,R,G,B channels,

The addition of narrowband channels should also be considered. This should include options for the standard Ha, OIII, SII, NII named filters but should also include the ability to create custom named channels (e.g. I use Semrock CN, CO+ and C2 filters for comet imaging, but others might be using red continuum and other specialist AP filters)

Finally (as mentioned above) to complete this feature there has to be a channel mixing tool. For example it could be modeled on Images Plus interface as this is quite simple (we would have DSS group(s) to output LRGB channel assignments each with 0 - 1 weightings). It would be nice to be able to do the channel mixing in (near) real time.

Comment from Robert Pascale

I like this request, but I think there is an interim use case that might be beneficial.

When importing the images, use the FILTER to split the images in to groups (if you could name the groups to make it easier to identify, that would be a bonus). This would simplify having to go through and pull each sub type and put it in to different groups manually.

When stacking, I will select a reference image (in one group) and then stack all images in that 1 group (eg my Red filter) and save the image as my Red stack. Then, leaving the reference image the same, uncheck all the images in Group 1, select all the images in Group 2 (eg. Green filter), stack them to produce my Green stack. Then rinse and repeat for Blue and H-alpha.

The above process is a bit of a click fest, interrupted by waiting for each stack to process, and is therefore error prone.

If the resulting process could all be done "at once", and then the autosave files could be named something like autosave<group-name(filtername)>. Then the resultant files could be dragged in to another program to combine and edit.

The above feature request is mostly within the scope of DSS as a file processing workflow enhancement, not so much as adding to the complexity image processing itself of combining the various channels to a single image (eg. in my use case, if you merged the RGB channels, there's be the left over luminance channel)

  • [ ] Astrometric registration. This may be useful and or necessary for stacking multi-scale images.
  • [ ] Stack multi-scale images: From HenkSB (haling@cox.net) One idea would be to stack the sets of subs in their own individual groups then use plate solving to find the exact scale and angle factors. Use the lowest resolution stacked image as a reference and scale the high resolutions down to it using the scale factors. Then use DSS to stack once more - this time the per-group stacked images.

Adding a plate solver is hugely inconvenient of course with maps and all. DIY plate solving is simpler to implement than a completely blind plate solver because we only have one map, namely the lowest resolution image. It is likely that the higher resolution images fit within it, so create a quad hash table of stars for it to be used as the map, and one for each higher resolution. Then calculate quads for the other images to find the scale and rotation factors. To be honest I just read up on this, looking at steps 3 and higher of https://olegignat.com/how-plate-solving-works/

If an optimal preconditioning is needed before stacking the plate-solved group stacked images, implement a 2D Poisson resampling algorithm based on the scale factors so DSS does not have to rotate over ridiculous angles. For work I have implemented 1D resampling of Poisson data, but 2D is much harder. Not impossible though.

It's easy to make simple requests that are difficult to implement, I think this is one of them. Some of it sounds fun to prototype in Scilab but translating it to C++ is another story. And of course, adding the camera characteristics per group, I think currently it is probably just one. Maybe there are public domain codes that already do this. If I can help let me know, I could prototype some if you think it has merit. Clearly, it's not a simple task.

Martin Toeltsch said: What I can imagine is this: DSS just assumes that the frames of different resolutions show similar areas of the sky. Then we rely on our Matching-Stars algorithm (just as now for all the frames of same resolution) to find the proper shift/rotate. We do this after downscaling of the higher-resolution frames to the lower resolution. It's the user's responsibility that all frames show similar details of the sky. If not, he/she shall not be disappointed about bad results. Darks/flats/offsets will be applied only to those light-frames with identical resolution. So we should probably not allow more than 2 different resolution at all in one group.

  • [ ] Support of Astro-TIFF See https://astro-tiff.sourceforge.io/
  • [x] Debayer of OSC TIFF Images Added support to TIFFUtils to Read and Write TIFFTAG_CFAREPEATPATTERNDIM and TIFFTAG_CFAPATTERN which are defined in the TIFF/EP standard. The only TIFF files DSS writes with a CFA pattern are the master flat and master offset files. This requires an update to SharpCap to write the TIFF files with these tags. Will look at re-using the same logic for manually setting CFA as for TIFF files.
  • [ ] Add option to RAW/DDP settings to permit reading of camera RAW as monochrome images (i.e. don't de-bayer).
  • [x] Comet stacking issues: Raised by Ray Butler in this topic: https://groups.io/g/DeepSkyStacker/topic/comet_algorithm_bug/96837388 Martin Toeltsch has started on the Comet Position interpolation/extrapolation code
  • [ ] Validate existing Per Channel Background Calibration and RGB Channels Background Calibration code My gut feeling is that they aren't quite right because I don't think that adjustment of the background level should render the final stacked image as monochromatic as it seems to.
  • [ ] Add option to FITS/DDP settings to read FITS vertically flipped
  • [ ] Add option to either FITS/DDP settings or to Stacking Settings/Output tab to write FITS vertically flipped.
  • [ ] Issue #91
markmac99 commented 1 year ago

For platesolving, I'm not sure i see the benefit but you could investigate the online capabilities of nova.astrometry.net. I have a (python) example showing how to use astrometry.net to platesolve but its pretty straightforward - you upload a set of x/y star coordinates and an approximate FOV range (say 2-10 degrees) and you get back the RA/Dec of the centre plus the image scale. orientation, and fields of view (horiz + vert). Seems to me DSS probably has the required info already.