Kstars

optimalsubexposurecalculator.h
1/*
2 SPDX-FileCopyrightText: 2023 Joseph McGee <joseph.mcgee@sbcglobal.net>
3
4 SPDX-License-Identifier: GPL-2.0-or-later
5*/
6
7#pragma once
8
9#ifndef OPTIMALSUBEXPOSURECALCULATOR_H
10#define OPTIMALSUBEXPOSURECALCULATOR_H
11#include <QAbstractItemModel>
12#include <QVector>
13#include "imagingcameradata.h"
14#include "calculatedgainsubexposuretime.h"
15#include "cameraexposureenvelope.h"
16#include "optimalexposuredetail.h"
17
19namespace OptimalExposure
20{
21
22
23class OptimalSubExposureCalculator
24{
25 public:
26 OptimalSubExposureCalculator();
27 OptimalSubExposureCalculator(double aNoiseTolerance, double aSkyQuality, double aFocalRatio, double aFilterCompensation,
28 ImagingCameraData &aCalculationImagingCameraData);
29
30 CameraExposureEnvelope calculateCameraExposureEnvelope();
31 // OptimalExposureDetail calculateSubExposureDetail(int aSelectedGainValue);
32 OptimalExposureDetail calculateSubExposureDetail();
33
34 double getANoiseTolerance();
35 void setANoiseTolerance(double newNoiseTolerance);
36
37 double getASkyQuality();
38 void setASkyQuality(double newSkyQuality);
39
40 double getAFocalRatio();
41 void setAFocalRatio(double newFocalRatio);
42
43 double getAFilterCompensation();
44 void setAFilterCompensation(double newFilterCompensation);
45
46 ImagingCameraData &getImagingCameraData();
47 void setImagingCameraData(ImagingCameraData &aNewCalculationImagingCameraData);
48
49
50 int getASelectedGain();
51 void setASelectedGain(int newSelectedGain);
52
53 int getASelectedCameraReadMode() const;
54 void setASelectedCameraReadMode(int aNewSelectedCameraReadMode);
55
56 protected:
57 double aNoiseTolerance;
58 double aSkyQuality;
59 double aFocalRatio;
60 double aFilterCompensation;
61 int aSelectedGain = 0;
62 int aSelectedCameraReadMode = 0;
63 ImagingCameraData anImagingCameraData;
64
65
66 private:
67 double calculateCFactor(double noiseTolerance);
68 double calculateLightPollutionElectronBaseRate(double skyQuality);
69 double calculateLightPolutionForOpticFocalRatio(double lightPollutionElectronBaseRate, double aFocalRatio,
70 double AFilterCompensation);
71 QVector<CalculatedGainSubExposureTime> calculateGainSubExposureVector(double cFactor,
72 double lightPollutionForOpticFocalRatio);
73
74
75};
76
77}
79
80#endif // OPTIMALSUBEXPOSURECALCULATOR_H
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri May 3 2024 11:49:50 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.