<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hi All,</p>
    <p>A proof of concept stand-alone application for the exposure
      calculator is available in new repository github. I have not yet
      started to integrate the calculator into a branch on KStars.  I
      was hoping some of you might do some testing with this tool, and
      give me some feedback before I move forward with integration. <br>
    </p>
    <p>The branch with my initial commit is here:
    </p>
    <p><a class="moz-txt-link-freetext"
href="https://github.com/Stingray65/KStars-ExposureCalculator/tree/master">https://github.com/Stingray65/KStars-ExposureCalculator/tree/master</a></p>
    <p>(I have not yet applied the standard artistic style to the code,
      so please ignore any odd formatting at this time).<br>
    </p>
    <p>The project includes a set of 16 xml camera files that provide
      some needed data to the calculator, like the gain (or ISO) to
      read-noise values. <br>
    </p>
    <p>I also wrote a doc that would be an initial draft for changes to
      the KStars user guide. There are some comments for the development
      team in this document, the comments are enclosed with "[]". One of
      which explains how new camera files can be created.
    </p>
    <p><a class="moz-txt-link-freetext"
href="https://github.com/Stingray65/KStars-ExposureCalculator/blob/master/Documentation/HelpManualDraft.pdf">https://github.com/Stingray65/KStars-ExposureCalculator/blob/master/Documentation/HelpManualDraft.pdf</a></p>
    <p>The proof of concept is a straight Qt app, and I think that
      anyone who pulls it will need to edit the
      SubExposureCalculatorPOC.pro.user file to change some values of
      directories.</p>
    Thanks
    <p><br>
    </p>
    <p><br>
    </p>
    <p></p>
    <div class="moz-cite-prefix">On 3/12/23 22:48,
      <a class="moz-txt-link-abbreviated" href="mailto:joseph.mcgee@sbcglobal.net">joseph.mcgee@sbcglobal.net</a> wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:a868bd31-b7ee-a309-63bd-aac07ad2f0c3@sbcglobal.net">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <p>Hi All:<br>
      </p>
      <p>Sorry, for long email...</p>
      <p>I've built a Qt app as a proof of concept for the optimal sub
        exposure calculation. The Qt project source can be found on my
        google drive, (I did not want to "pollute" the Kstars git with
        what might be considered pool quality design and my sloppy
        (java-like) code: my last real c++ project was in 1998, and this
        was my first experience with Qt).  <br>
      </p>
      <p>A link to this project is here:  
        <a class="moz-txt-link-freetext"
href="https://drive.google.com/drive/folders/11BIS5tyPeJcZeoysgjdrG2j_J8Cbu0zj?usp=sharing"
          moz-do-not-send="true">https://drive.google.com/drive/folders/11BIS5tyPeJcZeoysgjdrG2j_J8Cbu0zj?usp=sharing</a></p>
      <p>I may be have bugs in this code... I have not taken the time to
        validate all test results back to Dr Glover calculations. But
        the results this tool is producing for my camera are matching
        what my old, (and validated), Java code produced.</p>
      <p>Before you run it, please be aware that this implementation
        does not include any compensation for the effect of a filter in
        the optical train. So the results of the calculation would only
        be relevant for an unfiltered exposure.  My Java code from years
        ago attempted to apply compensation for two broadband filters
        that I use, but my calculation method for filters was only based
        on some comments found on cloudy nights web site; it was not
        from the presentation of Dr Glover.  <br>
      </p>
      <p>Since I'm not applying filter compensation in this POC
        application, the results will not translate to your real-world
        experience of imaging with filters.  It is likely that the
        calculated exposure times from this application could be on the
        order of 10x lower that what you would expect with a filtered
        exposure.  I plan to continue my research on how best to
        implement filter compensation.  (I might be sending a separate
        email on this topic).<br>
      </p>
      <p>This POC application relies upon gain to read-noise data for a
        few specific ZWO cameras.  I've created xml files to provide
        this data, (in a folder named "ImageSensorData"). This POC app
        will read the folder and add the files names into a QComboBox
        for ease of selection. The format of the xml files is simple,
        and new files can be added to the folder to expand the options
        for testing.</p>
      <p>When launched, the application will present a window with two
        frames. The small frame on the left represents data that we
        might pull from KStars Ekos/Indi.  This will be used to
        initialize the calculator in the frame on the right.  The panel
        on the right would be the only display a user would experience
        in KStars.   So there are two SQM controls in this application
        for a reason, the SQM control on the left frame would not exist
        in KStars, the SQM control on the "user" interface (right frame)
        will present to the user and allow the user to experiment with
        SQM values of different locations.<br>
      </p>
      <p><img src="cid:part1.dQKBoItJ.tsdA89mP@sbcglobal.net" alt=""
          class=""> </p>
      <p>To initialize the calculator, select an imaging camera, a focal
        ratio and the desired "initial" SQM value, then click "Apply". 
        The calculator will present a graph of the optimal sub-exposures
        based on the initial data, (I have gain defaulted to 50). <br>
      </p>
      <p><br>
      </p>
      <p><img src="cid:part2.rzFf1Ae0.h9qluF2t@sbcglobal.net" alt=""
          class=""></p>
      <p>To find an optimal exposure time for a given gain, simply
        adjust the gain slider relative to the x-axis values on the
        graph. For this example camera, notice there is a severe step in
        the exposure times caused by the camera read-noise having a
        prominent step at gain 100. For this camera, moving gain just
        above 100 will drastically reduce the exposure time, and the
        noise for the sub-exposure. <br>
      </p>
      <p>To calculate for a different location, the (right) SQM control
        can be adjusted. A higher SQM will naturally produce longer
        optimal exposures, since there will be reduced light pollution. 
        Here is the same case in a darker sky; the optimal exposure
        graph and results changed to a longer exposure. Notice that the
        exposure noise remained the same, but we have a longer
        exposure... so the proportion  signal to noise is better.  And
        the predicted noise on the stacked images is significantly
        reduced for roughly the same integration times.<br>
      </p>
      <p><img src="cid:part3.cqNEKabT.gXmpMmY0@sbcglobal.net" alt=""
          class=""></p>
      <p>The calculations by Dr Glover also included a value for a
        tolerance of the increased noise. The default is 5% which he
        stated was a good "general" value. This value can be adjusted
        based upon personal preference. Adjusting this will effect the
        allowed noise for the single exposure, and that will also effect
        the stack noise. <br>
      </p>
      <p>On the subject of trying to capture read-noise data from bias
        frames; I encountered a hurdle, so I may be sending another
        email in a day or so.</p>
      <p>Finally,  I don't claim to fully comprehend the physics that Dr
        Glover presented. But as I have tested his equations with this
        application, the results seem make sense, his equations lead to
        exposures times that provide a higher signal to noise value.<br>
      </p>
      <p>Please feel free to openly criticize what I'm suggesting with
        this tool being added to KStars.  I think it will add some
        value, but supporting data for cameras may not be easy, and so
        the implementation of this tool may need to be limited to only
        those cameras where we can easily find the needed gain
        read-noise data. <br>
      </p>
      <p>Please experiment with this tool, let me know what you think,
        (good or bad).</p>
      <p>Thanks<br>
      </p>
      <p><br>
      </p>
      <p>Qt Project source code can be found here:<br>
      </p>
      <p><a class="moz-txt-link-freetext"
href="https://drive.google.com/drive/folders/11BIS5tyPeJcZeoysgjdrG2j_J8Cbu0zj?usp=sharing"
          moz-do-not-send="true">https://drive.google.com/drive/folders/11BIS5tyPeJcZeoysgjdrG2j_J8Cbu0zj?usp=sharing</a></p>
      <div class="moz-cite-prefix">On 3/7/23 04:00, <a
          class="moz-txt-link-abbreviated moz-txt-link-freetext"
          href="mailto:kstars-devel-request@kde.org"
          moz-do-not-send="true">kstars-devel-request@kde.org</a> wrote:<br>
      </div>
      <blockquote type="cite"
        cite="mid:mailman.15.1678190403.8999.kstars-devel@kde.org">
        <pre class="moz-quote-pre" wrap="">Send Kstars-devel mailing list submissions to
        <a class="moz-txt-link-abbreviated moz-txt-link-freetext" href="mailto:kstars-devel@kde.org" moz-do-not-send="true">kstars-devel@kde.org</a>

To subscribe or unsubscribe via the World Wide Web, visit
        <a class="moz-txt-link-freetext" href="https://mail.kde.org/mailman/listinfo/kstars-devel" moz-do-not-send="true">https://mail.kde.org/mailman/listinfo/kstars-devel</a>
or, via email, send a message with subject or body 'help' to
        <a class="moz-txt-link-abbreviated moz-txt-link-freetext" href="mailto:kstars-devel-request@kde.org" moz-do-not-send="true">kstars-devel-request@kde.org</a>

You can reach the person managing the list at
        <a class="moz-txt-link-abbreviated moz-txt-link-freetext" href="mailto:kstars-devel-owner@kde.org" moz-do-not-send="true">kstars-devel-owner@kde.org</a>

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Kstars-devel digest..."
</pre>
        <br>
        <fieldset class="moz-mime-attachment-header"></fieldset>
        <pre class="moz-quote-pre" wrap="">Today's Topics:

   1. Re: Optimal Exposure and Noise Calculator (Jens Scheidtmann)
</pre>
        <br>
        <fieldset class="moz-mime-attachment-header"></fieldset>
        <pre class="moz-quote-pre" wrap="">_______________________________________________
Kstars-devel mailing list
<a class="moz-txt-link-abbreviated moz-txt-link-freetext" href="mailto:Kstars-devel@kde.org" moz-do-not-send="true">Kstars-devel@kde.org</a>
<a class="moz-txt-link-freetext" href="https://mail.kde.org/mailman/listinfo/kstars-devel" moz-do-not-send="true">https://mail.kde.org/mailman/listinfo/kstars-devel</a>
</pre>
      </blockquote>
    </blockquote>
  </body>
</html>