Warning, /education/kstars/Mainpage.dox is written in an unsupported language. File is not indexed.
0001 /*! \mainpage KStars API 0002 \tableofcontents 0003 0004 \section Introduction Introduction 0005 0006 KStars is free, open source, cross-platform Astronomy Software. 0007 0008 It provides an accurate graphical simulation of the night sky, from any location on Earth, at any date and time. The display includes up to 100 million stars, 13,000 deep-sky objects,all 8 planets, the Sun and Moon, and thousands of comets, asteroids, supernovae, and satellites. 0009 0010 For students and teachers, it supports adjustable simulation speeds in order to view phenomena that happen over long timescales, the KStars Astrocalculator to predict conjunctions, and many common astronomical calculations. For the amateur astronomer, it provides an observation planner, a sky calendar tool, and an FOV editor to calculate field of view of equipment and display them. Find out interesting objects in the "What's up Tonight" tool, plot altitude vs. time graphs for any object, print high-quality sky charts, and gain access to lots of information and resources to help you explore the universe! 0011 0012 Included with KStars is Ekos astrophotography suite, a complete astrophotography solution that can control all INDI devices including numerous telescopes, CCDs, DSLRs, focusers, filters, and a lot more. Ekos supports highly accurate tracking using online and offline astrometry solver, autofocus and autoguiding capabilities, and capture of single or multiple images using the powerful built in sequence manager. 0013 0014 \section APIStructure Structure 0015 0016 KStars is a simulation of the night sky. The whole program is essentially a (very complicated) model/view implementation. The "model" is all of the data regarding objects in the night sky, and how 0017 they change with time, and the "view" is the graphical display of this model on your screen. 0018 0019 The "model" is encapsulated in the KStarsData class, and the "view" is encapsulated in the KStars class. Here is a list of the major components of KStars: 0020 0021 \subsection Data Data 0022 - KStarsData: Master class for the backend "model". 0023 - SkyMapComposite: Top of hierarchy for plottable objects. 0024 - SkyComponent are lists of objects of the same type that are drawn in the sky map. Individual objects are represented as an instance of SkyPoint, or one of its children. 0025 Only imaginary positions in the sky use SkyPoint directly. Most real objects use the derived class SkyObject, which adds names and other data. Stars, planets, comets, asteroids, deep-sky objects, constellations, 0026 guide lines, the Milky Way, etc. each have their own Component 0027 - \subpage Stars "Stars: How stars are handled in KStars?" 0028 - SkyObject itself has many derivatives for different kinds of objects: 0029 - StarObject 0030 - DeepSkyObject 0031 - KSPlanetBase 0032 - KSSun 0033 - KSPlanet 0034 - KSMoon 0035 - KSAsteroid 0036 - KSPluto 0037 - KSComet 0038 - PlanetMoons 0039 - JupiterMoons 0040 - Satellite 0041 - Supernova 0042 - TrailObject 0043 0044 \subsection View View 0045 - KStars: main window; master class for the frontend "view". 0046 - SkyMap: sky widget 0047 - KSPopupMenu: right-click menu 0048 - InfoBoxes: on-screen information on time, position, and focused object 0049 - SkyLabeler 0050 - Flags: FlagComponent represents a flag on the sky map and is managed by FlagManager. 0051 - FOVs: FOV represents a Field-of-View symbol on the skymap. The \ref FOVDialog "FOV Dialog" enables editing and \ref NewFOV "adding a new FOV". 0052 - \ref Projector "Projections": Multiple projection systems are supported to map the celestial sphere unto a 2D surface. 0053 0054 \subsection Time Time 0055 - \subpage TimeKeeping "Time Keeping": How is time stored and simulated in KStars? 0056 - SimClock (controls passage of time in the simulation) 0057 - KStarsDateTime 0058 0059 \subsection Math Math 0060 - KSNumbers 0061 - HTMesh: Primary backbone to index stars and deep sky objects using \subpage HTMIndexing "multi-level Hierarchical Triangular Mesh" 0062 - KSAlmanac 0063 0064 \subsection Tools Tools 0065 - \ref AstroCalc "Calculator": Calculator tool covering many astronomical calculations. 0066 - FITSViewer: Open and preview FITS files. 0067 - \ref INDI "Devices & INDI": Establish INDI drivers locally or connect to remote INDI servers. 0068 - Ekos 0069 - \ref SkyCalendar "Sky Calendar" 0070 - \ref DetailDialog "Detail Dialog" 0071 - \ref WUTDialog "What's up tonight" 0072 - What's interesting 0073 - \ref PlanetViewer "Solar System": Display an overhead view of the solar system 0074 - \ref JMoonTool "Jupiter Moons" 0075 - \ref StarHopper "Star Hopper" 0076 - \ref PrintingWizard "Printing" 0077 0078 \subsection Observation Observation 0079 - OAL: Open Astronomy Log 0080 - \ref ObservingList "Observation Planner" 0081 0082 \subsection Auxiliary Auxiliary 0083 Auxiliary are helper classes/dialogs/functions used throughout KStars. 0084 - \ref ImageViewer "Image Viewer" 0085 - dms : Encapsulates an angle value. 0086 - GeoLocation: Encapsulates a location on Earth. 0087 - TimeZoneRule: Encapsulates a daylight savings time rule. 0088 - \ref ColorScheme "Color Schemes" 0089 - ThumbnailPicker / ThumbnailEditor 0090 - \ref FocusDialog "Focus Dialog" 0091 - \ref KSWizard "Wizard" 0092 - Settings: OpsCatalog, OpsAdvanced, OpsColors, OpsGuides, OpsSatellites, OpsSolarSystem, OpsSupernovae, OpsINDI, OpsEkos 0093 - \ref KSNotification "Notifications" 0094 0095 \subsection Scripting Scripting 0096 - \ref DBusInterface KStars DBus Interface 0097 - \ref INDIDBusInterface INDI DBus Interface: Provides low level access to all INDI devices and properties. 0098 - \ref EkosDBusInterface Ekos DBus Interface: Provides high level access to Ekos \ref Manager and corresponding modules. Ekos Modules with DBus Interface: 0099 <ul> 0100 <li>\ref CaptureDBusInterface "Capture Module DBus Interface"</li> 0101 <li>\ref FocusDBusInterface "Focus Module DBus Interface"</li> 0102 <li>\ref MountDBusInterface "Mount Module DBus Interface"</li> 0103 <li>\ref GuideDBusInterface "Guide Module DBus Interface"</li> 0104 <li>\ref AlignDBusInterface "Align Module DBus Interface"</li> 0105 <li>\ref SchedulerDBusInterface "Scheduler Module DBus Interface"</li> 0106 <li>\ref DomeDBusInterface "Dome DBus Interface"</li> 0107 <li>\ref DustCapDBusInterface "Dust Cap DBus Interface"</li> 0108 </ul> 0109 - \ref ScriptBuilder Script builder 0110 0111 \section HowItWorks How does it work? 0112 0113 The following explanation is a \e very high level and general overview on the basic workflow in KStars. When you run KStars, the following general steps are executed (not necessarily in this order): 0114 -# An Instance of KStars is created. KStars will start with the SimClock running and set to the system date and time unless otherwise specified in command line arguments. 0115 -# An Instance of KStarsData is created. Data for stars, catalogs, deep sky objects, comets...etc are read and loaded into memory. 0116 Some data are not read unless necessary, such as stars that only appear at very high zoom levels. 0117 -# Date and Time are initialized. Simulated clocks normally ticks forward at a particular interval, the default being once per second like a real clock. 0118 -# KStars splash screen is created. 0119 -# An Instance of SkyMap is created. The SkyMap is the primary central widget in KStars. Toolbars, menus, actions, and status bar are initialized. 0120 -# SimClock emits the timeAdvanced() signal, which is connected to KStarsData::updateTime(), which takes care of updating object coordinates and drawing the skymap. 0121 Effects for precession, nutation, aberration, and refraction are taken into account. 0122 -# SkyMap can have multiple draw backends (QPainter or OpenGL). It calls the selected backend to draw the overlays and objects unto the sky map. 0123 -# The backend implementing SkyMapDrawAbstract receives a PaintEvent(..) from SkyMap which begins by drawing the background first. Afterwards, it calls KStarsData SkyMapComposite instance which in turn calls 0124 all child composites and components to draw themselves. Each component draws itself on the skymap. The order of the drawing routine ensures layers such as equatorial/horizontal 0125 grid lines are drawn last. 0126 -# The sky map responds to user input from keyboard and mouse to perform various actions such as panning, zooming, invoking the popup menu for a particular object...etc. 0127 -# SimClock emits timeAdvanced() signal and the cycle repeats. 0128 -# The user can invoke tools, change settings, download new data, run scripts..etc while the cycle above is taking place in the background. 0129 -# Upon exit destructors are called to properly terminate all objects, free memory, and save options if necessary. 0130 0131 \author Jasem Mutlaq 0132 */