Kstars

fitscommon.h
1/*
2 SPDX-FileCopyrightText: 2012 Jasem Mutlaq <mutlaqja@ikarustech.com>
3
4 SPDX-License-Identifier: GPL-2.0-or-later
5*/
6
7#pragma once
8
9#include <QString>
10#include <KLazyLocalizedString>
11#include "dms.h"
12
13typedef enum { FITS_NORMAL, FITS_FOCUS, FITS_GUIDE, FITS_CALIBRATE, FITS_ALIGN, FITS_UNKNOWN } FITSMode;
14
15// Focus States
16static const QList<KLazyLocalizedString> FITSModes =
17 { kli18n("Normal"),
18 kli18n("Focus"),
19 kli18n("Guide"),
20 kli18n("Calibrate"),
21 kli18n("Align"),
22 kli18n("Unknown")};
23
24const QString getFITSModeStringString(FITSMode mode);
25
26typedef enum { FITS_CLIP, FITS_HFR, FITS_WCS, FITS_VALUE, FITS_POSITION, FITS_ZOOM, FITS_RESOLUTION, FITS_LED, FITS_MESSAGE} FITSBar;
27
28typedef enum
29{
30 FITS_NONE,
31 FITS_AUTO_STRETCH,
32 FITS_HIGH_CONTRAST,
33 FITS_EQUALIZE,
34 FITS_HIGH_PASS,
35 FITS_MEDIAN,
36 FITS_GAUSSIAN,
37 FITS_ROTATE_CW,
38 FITS_ROTATE_CCW,
39 FITS_MOUNT_FLIP_H,
40 FITS_MOUNT_FLIP_V,
41 FITS_AUTO,
42 FITS_LINEAR,
43 FITS_LOG,
44 FITS_SQRT,
45 FITS_CUSTOM
46} FITSScale;
47
48typedef enum { ZOOM_FIT_WINDOW, ZOOM_KEEP_LEVEL, ZOOM_FULL } FITSZoom;
49
50typedef enum { HFR_AVERAGE, HFR_MEDIAN, HFR_HIGH, HFR_MAX, HFR_ADJ_AVERAGE } HFRType;
51
52typedef enum { ALGORITHM_GRADIENT, ALGORITHM_CENTROID, ALGORITHM_THRESHOLD, ALGORITHM_SEP, ALGORITHM_BAHTINOV } StarAlgorithm;
53
54typedef enum { RED_CHANNEL, GREEN_CHANNEL, BLUE_CHANNEL } ColorChannels;
55
56typedef enum { CAT_SKYMAP, CAT_SIMBAD, CAT_VIZIER, CAT_NED, CAT_MAX_REASONS } CatType;
57
58static const QString CatTypeStr[CAT_MAX_REASONS] =
59{
60 "Sky Map",
61 "Simbad",
62};
63
64// Size of box drawn on fitsview for each Catalog Object
65static constexpr double CAT_OBJ_BOX_SIZE = 10.0;
66
67// Structure to hold catalog object data information
68typedef struct
69{
70 int num;
71 CatType catType;
73 QString typeCode;
74 QString typeLabel;
75 dms r;
76 dms d;
77 double dist; // distance from search center in arcsecs
78 double magnitude;
79 double size;
80 double x; // pixel x, y
81 double y;
82 bool highlight;
83 bool show;
84} CatObject;
85
86// Simbad catalog object type structure
87struct CatObjType
88{
89 int depth;
90 QString code;
91 QString candidateCode;
92 QString label;
93 QString description;
94 QString comments;
95};
96
97static constexpr int CAT_OBJ_MAX_DEPTH = 5;
98static constexpr int MAX_CAT_OBJ_TYPES = 149;
99static CatObjType catObjTypes[MAX_CAT_OBJ_TYPES] =
100{
101 // STARS
102 {0, "*", "", "Star", "Star", ""},
103
104 // Massive Stars and their Remnants
105 {1, "Ma*", "Ma?", "Massiv*", "Massive Star", "Initial mass > 8-10 Mo"},
106 {2, "bC*", "bC?", "bCepV*", "Massiv*", ""},
107 {2, "sg*", "sg?", "Supergiant", "Evolved Supergiant", "Luminosity type 0,Ia,Iab,(I). Includes A-type SG"},
108 {3, "s*r", "s?r", "RedSG", "Red Supergiant", "SpT like K/M 0,Ia,Iab,(I)"},
109 {3, "s*y", "s?y", "YellowSG", "Yellow Supergiant", "SpT like F/G 0,Ia,Iab,(I)"},
110 {3, "s*b", "s?b", "BlueSG", "Blue Supergiant", "SpT like O/B 0,Ia,Iab,(I)"},
111 {4, "WR*", "WR?", "WolfRayet*", "Wolf-Rayet", "SpT like W"},
112 {2, "N*", "N*?", "Neutron*", "Neutron Star", ""},
113 {3, "Psr", "", "Pulsar", "Pulsar", ""},
114
115 // Young Stellar Objects (Pre-Main Sequence Stars)
116 {1, "Y*O", "Y*?", "YSO", "Young Stellar Object", "Pre-Main Sequence"},
117 {2, "Or*", "", "OrionV*", "Orion Variable", ""},
118 {2, "TT*", "TT?", "TTauri*", "T Tauri Star", "Includes classical and weak-line T Tauri"},
119 {2, "Ae*", "Ae?", "Ae*", "Herbig Ae/Be Star", ""},
120 {2, "out", "of?", "Outflow", "Outflow", ""},
121 {3, "HH", "", "HerbigHaroObj", "Herbig-Haro Object", ""},
122
123 // Main Sequence Stars
124 {1, "MS*", "MS?", "MainSequence*", "Main Sequence Star", "Main Sequence"},
125 {2, "Be*", "Be?", "Be*", "Be Star", ""},
126 {2, "BS*", "BS?", "BlueStraggler", "Blue Straggler", ""},
127 {3, "SX*", "", "SXPheV*", "SX Phe Variable", "See Pu* for candidate"},
128 {2, "gD*", "", "gammaDorV*", "gamma Dor Variable", "See Pu* for candidate"},
129 {2, "dS*", "", "delSctV*", "delta Sct Variable", "See Pu* for candidate"},
130
131 // Evolved Stars
132 {1, "Ev*", "Ev?", "Evolved*", "Evolved Star", "Post-Main Sequence"},
133 {2, "RG*", "RB?", "RGB*", "Red Giant Branch star", ""},
134 {2, "HS*", "HS?", "HotSubdwarf", "Hot Subdwarf", "SpT like sdB, sdO"},
135 {2, "HB*", "HB?", "HorBranch*", "Horizontal Branch Star", ""},
136 {3, "RR*", "RR?", "RRLyrae", "RR Lyrae Variable", ""},
137 {2, "WV*", "WV?", "Type2Cep", "Type II Cepheid Variable", "Includes W Wir and BL Her subtypes"},
138 {2, "Ce*", "Ce?", "Cepheid", "Cepheid Variable", "Includes anomalous Cepheids"},
139 {3, "cC*", "", "ClassicalCep", "Classical Cepheid Variable", "delta Cep type"},
140 {2, "C*", "C*?", "C*", "Carbon Star", "Mostly AGB or RGB. SpT like C,N,R C-N,C-R, or C-rich"},
141 {2, "S*", "S?", "S*", "S Star", "Mostly AGB or RGB. SpT like S,SC,MS"},
142 {2, "LP*", "LP?", "LongPeriodV*", "Long-Period Variable", "AB*, RG*, or s*r. Includes L, SR, and OSARG"},
143 {2, "AB*", "AB?", "AGB*", "Asymptotic Giant Branch Star", ""},
144 {3, "Mi*", "Mi?", "Mira", "Mira Variable", ""},
145 {2, "OH*", "OH?", "OH/IR*", "OH/IR Star", "O-rich AGB or PAGB, doubled-peaked OH maser profile"},
146 {2, "pA*", "pA?", "post-AGB*", "Post-AGB Star", ""},
147 {2, "RV*", "RV?", "RVTauV*", "RV Tauri Variable", ""},
148 {2, "PN", "PN?", "PlanetaryNeb", "Planetary Nebula", "Includes the progenitor Star when known"},
149 {2, "WD*", "WD?", "WhiteDwarf", "White Dwarf", "SpT like D and PG1159"},
150
151 // Chemically Peculiar Stars
152 {1, "Pe*", "Pe?", "ChemPec", "Chemically Peculiar Star", "Includes metal-poor stars"},
153 {2, "a2*", "a2?", "alf2CVnV*", "alpha2 CVn Variable", "Ap stars; magnetic"},
154 {2, "RC*", "RC?", "RCrBV*", "R CrB Variable", ""},
155
156 // Interacting Binaries and close Common Proper Motion Systems
157 {1, "**", "**?", "**", "Double or Multiple Star", "Interacting binaries and close CPM systems"},
158 {2, "EB*", "EB?", "EclBin", "Eclipsing Binary", ""},
159 {2, "El*", "El?", "EllipVar", "Ellipsoidal Variable", ""},
160 {2, "SB*", "SB?", "SB*", "Spectroscopic Binary", ""},
161 {2, "RS*", "RS?", "RSCVnV*", "RS CVn Variable", ""},
162 {2, "BY*", "BY?", "BYDraV*", "BY Dra Variable", ""},
163 {2, "Sy*", "Sy?", "Symbiotic*", "Symbiotic Star", ""},
164 {2, "XB*", "XB?", "XrayBin", "X-ray Binary", ""},
165 {3, "LXB", "LX?", "LowMassXBin", "Low Mass X-ray Binary", ""},
166 {3, "HXB", "HX?", "HighMassXBin", "High Mass X-ray Binary", ""},
167 {2, "CV*", "CV?", "CataclyV", "Cataclysmic Binary", ""},
168 {3, "No*", "No?", "Nova", "Classical Nova", ""},
169
170 // SuperNovae
171 {1, "SN*", "SN?", "Supernova", "SuperNova", ""},
172
173 // Low mass Stars and substellar Objects
174 {1, "LM*", "LM?", "Low-Mass*", "Low-mass Star", "M ~< 1 Mo"},
175 {2, "BD*", "BD?", "BrownD*", "Brown Dwarf", "SpT L,T or Y"},
176 {1, "Pl", "Pl?", "Planet", "Extra-solar Planet", ""},
177
178 // Properties . variability. spectral. kinematic or environment
179 {1, "V*", "V*?", "Variable*", "Variable Star", ""},
180 {2, "Ir*", "", "IrregularV*", "Irregular Variable", ""},
181 {2, "Er*", "Er?", "Eruptive*", "Eruptive Variable", ""},
182 {2, "Ro*", "Ro?", "RotV", "Rotating Variable", ""},
183 {2, "Pu*", "Pu?", "PulsV*", "Pulsating Variable", "Non LPV Pulsating Star"},
184
185 // Spectral Properties
186 {1, "Em*", "", "EmLine*", "Emission-line Star", "Can be sg*, YSO, Be*, AB*, Sy*, etc..."},
187
188 // Kinematic and Environment Properties
189 {1, "PM*", "", "HighPM*", "High Proper Motion Star", "Total proper motion >= 50 mas/yr"},
190 {1, "HV*", "", "HighVel*", "High Velocity Star", ""},
191
192 // SET OF STARS
193 {0, "Cl*", "Cl?", "Cluster*", "Cluster of Stars", ""},
194 {1, "GlC", "Gl?", "GlobCluster", "Globular Cluster", ""},
195 {1, "OpC", "", "OpenCluster", "Open Cluster", ""},
196 {0, "As*", "As?", "Association", "Association of Stars", ""},
197 {1, "St*", "", "Stream", "Stellar Stream", ""},
198 {1, "MGr", "", "MouvGroup", "Moving Group", ""},
199
200 // INTERSTELLAR MEDIUM
201 {0, "ISM", "", "ISM", "Interstellar Medium Object", ""},
202 {1, "SFR", "", "StarFormingReg", "Star Forming Region", ""},
203 {1, "HII", "", "HIIReg", "HII Region", ""},
204 {1, "Cld", "", "Cloud", "Cloud", ""},
205 {2, "GNe", "", "GalNeb", "Nebula", ""},
206 {3, "RNe", "", "RefNeb", "Reflection Nebula", ""},
207 {2, "MoC", "", "MolCld", "Molecular Cloud", ""},
208 {2, "DNe", "", "DarkNeb", "Dark Cloud (nebula)", ""},
209 {2, "glb", "", "Globule", "Globule (low-mass dark cloud)", ""},
210 {2, "CGb", "", "ComGlob", "Cometary Globule / Pillar", ""},
211 {2, "HVC", "", "HVCld", "High-velocity Cloud", "Vlsr > ~90 km/s"},
212 {1, "cor", "", "denseCore", "Dense Core", "N(H) > ~1D23 at/cm2, or detection of NH3,HCN,CS,HCO,.."},
213 {1, "bub", "", "Bubble", "Bubble", ""},
214 {1, "SNR", "SR?", "SNRemnant", "SuperNova Remnant", ""},
215 {1, "sh", "", "HIshell", "Interstellar Shell", ""},
216 {1, "flt", "", "Filament", "Interstellar Filament", ""},
217
218 // TAXONOMY OF GALAXIES
219 {0, "G", "G?", "Galaxy", "Galaxy", ""},
220 {1, "LSB", "", "LowSurfBrghtG", "Low Surface Brightness Galaxy", ""},
221 {1, "bCG", "", "BlueCompactG", "Blue Compact Galaxy", ""},
222 {1, "SBG", "", "StarburstG", "Starburst Galaxy", ""},
223 {1, "H2G", "", "HIIG", "HII Galaxy", ""},
224 {1, "EmG", "", "EmissionG", "Emission-line galaxy", ""},
225 {1, "AGN", "AG?", "AGN", "Active Galaxy Nucleus", ""},
226 {2, "SyG", "", "Seyfert", "Seyfert Galaxy", ""},
227 {3, "Sy1", "", "Seyfert1", "Seyfert 1 Galaxy", ""},
228 {3, "Sy2", "", "Seyfert2", "Seyfert 2 Galaxy", ""},
229 {2, "rG", "", "RadioG", "Radio Galaxy", ""},
230 {2, "LIN", "", "LINER", "LINER-type Active Galaxy Nucleus", ""},
231 {2, "QSO", "Q?", "QSO", "Quasar", ""},
232 {3, "Bla", "Bz?", "Blazar", "Blazar", ""},
233 {4, "BLL", "BL?", "BLLac", "BL Lac", ""},
234
235 // SETS OF GALAXIES
236 {0, "IG", "", "InteractingG", "Interacting Galaxies", ""},
237 {0, "PaG", "", "PairG", "Pair of Galaxies", ""},
238 {0, "GrG", "Gr?", "GroupG", "Group of Galaxies", ""},
239 {1, "CGG", "", "Compact_Gr_G", "Compact Group of Galaxies", ""},
240 {0, "ClG", "C?G", "ClG", "Cluster of Galaxies", ""},
241 {0, "PCG", "PCG?", "protoClG", "Proto Cluster of Galaxies", ""},
242 {0, "SCG", "SC?", "SuperClG", "Supercluster of Galaxies", ""},
243 {0, "vid", "", "Void", "Underdense Region of the Universe", ""},
244
245 // GRAVITATION
246 {0, "grv", "", "Gravitation", "Gravitational Source", ""},
247 {1, "Lev", "", "LensingEv", "(Micro)Lensing Event", ""},
248 {1, "gLS", "LS?", "GravLensSystem", "Gravitational Lens System (lens+images)", ""},
249 {2, "gLe", "Le?", "GravLens", "Gravitational Lens", ""},
250 {2, "LeI", "LI?", "LensedImage", "Gravitationally Lensed Image", ""},
251 {3, "LeG", "", "LensedG", "Gravitationally Lensed Image of a Galaxy", ""},
252 {3, "LeQ", "", "LensedQ", "Gravitationally Lensed Image of a Quasar", ""},
253 {1, "BH", "BH?", "BlackHole", "Black Hole", ""},
254 {1, "GWE", "", "GravWaveEvent", "Gravitational Wave Event", ""},
255
256 // GENERAL SPECTRAL PROPERTIES
257 {0, "ev", "", "Transient", "Transient Event", ""},
258 {0, "var", "", "Variable", "Variable source", ""},
259 {0, "Rad", "", "Radio", "Radio Source", ""},
260 {1, "mR", "", "metricRad", "Metric Radio Source", ""},
261 {1, "cm", "", "cmRad", "Centimetric Radio Source", ""},
262 {1, "mm", "", "mmRad", "Millimetric Radio Source", ""},
263 {1, "smm", "", "smmRad", "Sub-Millimetric Source", ""},
264 {1, "HI", "", "HI", "HI (21cm) Source", ""},
265 {1, "rB", "", "radioBurst", "Radio Burst", ""},
266 {1, "Mas", "", "Maser", "Maser", ""},
267 {0, "IR", "", "Infrared", "Infra-Red Source", ""},
268 {1, "FIR", "", "FarIR", "Far-IR source (λ >= 30 µm)", "e.g. IRAS 60/100, AKARI-FIS, Hershel"},
269 {1, "MIR", "", "MidIR", "Mid-IR Source (3 to 30 µm)", "e.g. IRAS 12/25, AKARI-IRC, WISE, Spitzer-IRAC-MIPS"},
270 {1, "NIR", "", "NearIR", "Near-IR Source (λ < 3 µm)", "JHK, 2MASS, UKIDSS, ..."},
271 {0, "Opt", "", "Optical", "Optical Source", "Corresponding to BVRI range"},
272 {1, "EmO", "", "EmObj", "Emission Object", "Mostly YSO, Em*, PNe, WR*, Sy*, Galaxies, AGN, QSO"},
273 {1, "blu", "", "blue", "Blue Object", "Mostly WD*, HS*, blue HB*, QSO"},
274 {0, "UV", "", "UV", "UV-emission Source", ""},
275 {0, "X", "", "X", "X-ray Source", ""},
276 {1, "ULX", "UX?", "ULX", "Ultra-luminous X-ray Source", ""},
277 {0, "gam", "", "gamma", "Gamma-ray Source", ""},
278 {1, "gB", "", "gammaBurst", "Gamma-ray Burst", ""},
279
280 // BLENDS, ERRORS, NOT WELL DEFINED OBJECTS
281 {0, "mul", "", "Blend", "Composite Object, Blend", ""},
282 {0, "err", "", "Inexistent", "Not an Object (Error, Artefact, ...)", ""},
283 {0, "PoC", "", "PartofCloud", "Part of Cloud", ""},
284 {0, "PoG", "", "PartofG", "Part of a Galaxy", ""},
285 {0, "?", "", "Unknown", "Object of Unknown Nature", ""},
286 {0, "reg", "", "Region", "Region defined in the Sky", ""}
287};
An angle, stored as degrees, but expressible in many ways.
Definition dms.h:38
QString name(StandardAction id)
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Sat Dec 21 2024 17:04:46 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.