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

KDE's Doxygen guidelines are available online.