Kstars

stellarsolverprofile.cpp
1/*
2 SPDX-FileCopyrightText: 2017 Jasem Mutlaq <mutlaqja@ikarustech.com>
3 SPDX-FileCopyrightText: 2017 Robert Lancaster <rlancaste@gmail.com>
4
5 SPDX-License-Identifier: GPL-2.0-or-later
6*/
7
8#include "stellarsolverprofile.h"
9
10#include <stellarsolver.h>
11#include <KLocalizedString>
12
13namespace Ekos
14{
15
16QList<Parameters> getDefaultFocusOptionsProfiles()
17{
19
20 Parameters focusDefault = getFocusOptionsProfileDefault();
22
23 Parameters focusDefaultDonut = getFocusOptionsProfileDefaultDonut();
25
26 Parameters stars;
27 stars.listName = "2-AllStars";
28 stars.description = i18n("Profile for the source extraction of all the stars in an image.");
29 stars.maxEllipse = 1.5;
30 stars.convFilterType = SSolver::CONV_GAUSSIAN;
31 stars.fwhm = 1;
32 stars.r_min = 2;
33 profileList.append(stars);
34
35 Parameters smallStars;
36 smallStars.listName = "3-SmallSizedStars";
37 smallStars.description = i18n("Profile optimized for source extraction of smaller stars.");
38 smallStars.maxEllipse = 1.5;
39 smallStars.convFilterType = SSolver::CONV_GAUSSIAN;
40 smallStars.fwhm = 1;
41 smallStars.r_min = 2;
42 smallStars.maxSize = 5;
43 smallStars.initialKeep = 500;
44 smallStars.saturationLimit = 80;
45 profileList.append(smallStars);
46
47 Parameters mid;
48 mid.listName = "4-MidSizedStars";
49 mid.description = i18n("Profile optimized for source extraction of medium sized stars.");
50 mid.maxEllipse = 1.5;
51 mid.minarea = 20;
52 mid.convFilterType = SSolver::CONV_GAUSSIAN;
53 mid.fwhm = 4;
54 mid.r_min = 5;
55 mid.removeDimmest = 20;
56 mid.minSize = 2;
57 mid.maxSize = 10;
58 mid.initialKeep = 500;
59 mid.saturationLimit = 80;
60 profileList.append(mid);
61
62 Parameters big;
63 big.listName = "5-BigSizedStars";
64 big.description = i18n("Profile optimized for source extraction of larger stars.");
65 big.maxEllipse = 1.5;
66 big.minarea = 40;
67 big.convFilterType = SSolver::CONV_GAUSSIAN;
68 big.fwhm = 8;
69 big.r_min = 20;
70 big.minSize = 5;
71 big.initialKeep = 500;
72 big.removeDimmest = 50;
73 profileList.append(big);
74
75 return profileList;
76}
77
78SSolver::Parameters getFocusOptionsProfileDefault()
79{
80 Parameters focusDefault;
81 focusDefault.listName = FOCUS_DEFAULT_NAME;
82 focusDefault.description = i18n("Default focus star-extraction.");
83 focusDefault.initialKeep = 250;
84 focusDefault.keepNum = 100;
85 focusDefault.minarea = 20;
86 focusDefault.maxEllipse = 1.5;
87 focusDefault.convFilterType = SSolver::CONV_GAUSSIAN;
88 focusDefault.fwhm = 1;
89 focusDefault.r_min = 5;
90 focusDefault.maxSize = 10;
91 focusDefault.removeBrightest = 10;
92 focusDefault.removeDimmest = 20;
93 focusDefault.saturationLimit = 90;
94 return focusDefault;
95}
96
97SSolver::Parameters getFocusOptionsProfileDefaultDonut()
98{
99 Parameters focusDefaultDonut;
100 focusDefaultDonut.listName = FOCUS_DEFAULT_DONUT_NAME;
101 focusDefaultDonut.description = i18n("Profile optimized for source extraction of stars including Donuts.");
102 focusDefaultDonut.initialKeep = 10000;
103 focusDefaultDonut.keepNum = 1000;
104 focusDefaultDonut.minarea = 20;
105 focusDefaultDonut.maxEllipse = 1.5;
106 focusDefaultDonut.convFilterType = SSolver::CONV_DEFAULT;
107 focusDefaultDonut.deblend_contrast = 1.0;
108 focusDefaultDonut.r_min = 5;
109 focusDefaultDonut.maxSize = 0.0;
110 focusDefaultDonut.removeBrightest = 0.0;
111 focusDefaultDonut.removeDimmest = 0.0;
112 focusDefaultDonut.saturationLimit = 90.0;
113 return focusDefaultDonut;
114}
115
116QList<SSolver::Parameters> getDefaultGuideOptionsProfiles()
117{
119
120 Parameters guideDefault;
121 guideDefault.listName = "1-Guide-Default";
122 guideDefault.description = i18n("Default guider star-extraction.");
123 guideDefault.initialKeep = 250;
124 guideDefault.keepNum = 100;
125 guideDefault.minarea = 10;
126 guideDefault.maxSize = 8;
127 guideDefault.saturationLimit = 98;
128 guideDefault.removeBrightest = 0;
129 guideDefault.removeDimmest = 0;
131
132 SSolver::Parameters stars;
133 stars.listName = "2-AllStars";
134 stars.description = i18n("Profile for the source extraction of all the stars in an image.");
135 stars.maxEllipse = 1.5;
136 stars.convFilterType = SSolver::CONV_GAUSSIAN;
137 stars.fwhm = 1;
138 stars.r_min = 2;
139 profileList.append(stars);
140
141 SSolver::Parameters smallStars;
142 smallStars.listName = "3-SmallSizedStars";
143 smallStars.description = i18n("Profile optimized for source extraction of smaller stars.");
144 smallStars.maxEllipse = 1.5;
145 smallStars.convFilterType = SSolver::CONV_GAUSSIAN;
146 smallStars.fwhm = 1;
147 smallStars.r_min = 2;
148 smallStars.maxSize = 5;
149 smallStars.initialKeep = 500;
150 smallStars.saturationLimit = 80;
151 profileList.append(smallStars);
152
153 SSolver::Parameters mid;
154 mid.listName = "4-MidSizedStars";
155 mid.description = i18n("Profile optimized for source extraction of medium sized stars.");
156 mid.maxEllipse = 1.5;
157 mid.minarea = 20;
158 mid.convFilterType = SSolver::CONV_GAUSSIAN;
159 mid.fwhm = 4;
160 mid.r_min = 5;
161 mid.removeDimmest = 20;
162 mid.minSize = 2;
163 mid.maxSize = 10;
164 mid.initialKeep = 500;
165 mid.saturationLimit = 80;
166 profileList.append(mid);
167
168 SSolver::Parameters big;
169 big.listName = "5-BigSizedStars";
170 big.description = i18n("Profile optimized for source extraction of larger stars.");
171 big.maxEllipse = 1.5;
172 big.minarea = 40;
173 big.convFilterType = SSolver::CONV_GAUSSIAN;
174 big.fwhm = 8;
175 big.r_min = 20;
176 big.minSize = 5;
177 big.initialKeep = 500;
178 big.removeDimmest = 50;
179 profileList.append(big);
180
181 return profileList;
182}
183
184QList<SSolver::Parameters> getDefaultAlignOptionsProfiles()
185{
187
188 SSolver::Parameters defaultProfile;
189 defaultProfile.listName = "1-Default";
190 defaultProfile.description = i18n("Default profile. Generic and not optimized for any specific purpose.");
191 defaultProfile.convFilterType = SSolver::CONV_GAUSSIAN;
192 defaultProfile.fwhm = 1;
193 profileList.append(defaultProfile);
194
195 SSolver::Parameters fastSolving;
196 fastSolving.listName = "2-SingleThreadSolving";
197 fastSolving.description = i18n("Profile intended for Plate Solving telescopic sized images in a single CPU Thread");
198 fastSolving.multiAlgorithm = NOT_MULTI;
199 fastSolving.minwidth = 0.1;
200 fastSolving.maxwidth = 10;
201 fastSolving.keepNum = 50;
202 fastSolving.initialKeep = 500;
203 fastSolving.maxEllipse = 1.5;
204 fastSolving.convFilterType = SSolver::CONV_GAUSSIAN;
205 fastSolving.fwhm = 4;
206 profileList.append(fastSolving);
207
208 SSolver::Parameters parLargeSolving;
209 parLargeSolving.listName = "3-LargeScaleSolving";
210 parLargeSolving.description = i18n("Profile intended for Plate Solving camera lens sized images");
211 parLargeSolving.minwidth = 10;
212 parLargeSolving.maxwidth = 180;
213 parLargeSolving.keepNum = 50;
214 parLargeSolving.initialKeep = 500;
215 parLargeSolving.maxEllipse = 1.5;
216 parLargeSolving.convFilterType = SSolver::CONV_GAUSSIAN;
217 parLargeSolving.fwhm = 4;
219
220 SSolver::Parameters fastSmallSolving;
221 fastSmallSolving.listName = "4-SmallScaleSolving";
222 fastSmallSolving.description = i18n("Profile intended for Plate Solving telescopic sized images");
223 fastSmallSolving.minwidth = 0.1;
224 fastSmallSolving.maxwidth = 10;
225 fastSmallSolving.keepNum = 50;
226 fastSmallSolving.initialKeep = 500;
227 fastSmallSolving.maxEllipse = 1.5;
228 fastSmallSolving.convFilterType = SSolver::CONV_GAUSSIAN;
229 fastSmallSolving.fwhm = 4;
231
232 return profileList;
233}
234
235QList<Parameters> getDefaultHFROptionsProfiles()
236{
238
239 Parameters hfrDefault;
240 hfrDefault.listName = "1-HFR-Default";
241 hfrDefault.description = i18n("Default. Set for typical HFR estimation.");
242 hfrDefault.initialKeep = 250;
243 hfrDefault.keepNum = 100;
244
245 hfrDefault.minarea = 20;
246 hfrDefault.maxEllipse = 1.5;
247 hfrDefault.convFilterType = SSolver::CONV_GAUSSIAN;
248 hfrDefault.fwhm = 2;
249 hfrDefault.r_min = 5;
250 hfrDefault.maxSize = 10;
251
252 hfrDefault.removeBrightest = 10;
253 hfrDefault.removeDimmest = 20;
254 hfrDefault.saturationLimit = 90;
255
256 profileList.append(hfrDefault);
257
258
259 Parameters big;
260 big.listName = "2-BigSizedStars";
261 big.description = i18n("Set for typical HFR estimation on big stars.");
262 big.initialKeep = 250;
263 big.keepNum = 100;
264
265 big.minarea = 40;
266 big.maxEllipse = 1.5;
267 big.convFilterType = SSolver::CONV_GAUSSIAN;
268 big.fwhm = 8;
269 big.r_min = 20;
270 big.maxSize = 0;
271
272 big.removeBrightest = 0;
273 big.removeDimmest = 50;
274 big.saturationLimit = 99;
275
276 profileList.append(big);
277
278 Parameters most;
279 most.listName = "3-MostStars";
280 most.description = i18n("Set for HFR estimation on most stars.");
281 most.initialKeep = 1000;
282 most.keepNum = 1000;
283
284 most.minarea = 10;
285 most.maxEllipse = 0;
286 most.convFilterType = SSolver::CONV_GAUSSIAN;
287 most.fwhm = 1;
288 most.r_min = 3.5;
289 most.minSize = 0;
290 most.maxSize = 0;
291
292 most.removeBrightest = 0;
293 most.removeDimmest = 0;
294 most.saturationLimit = 0;
295 profileList.append(most);
296
297 return profileList;
298}
299
300}
QString i18n(const char *text, const TYPE &arg...)
Ekos is an advanced Astrophotography tool for Linux.
Definition align.cpp:78
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:19:02 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.