<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>