Warning, /education/kstars/kstars/tools/whatsinteresting/WI_Improvement_Notes.org is written in an unsupported language. File is not indexed.
0001 * Aim 0002 + Get what's interesting to auto-suggest objects for all user levels. 0003 + Show only interesting objects, not every object under the sun like 0004 we do now. 0005 + "Interesting" is decided then by manual input -- either from 0006 pre-loaded hand-coded lists [default], or at the option of the user, 0007 their own observing wishlist 0008 + Incidentally, we should move observing wishlist into the user DB so 0009 that we only insert / remove -- prevents losing the wishlist upon a 0010 crash like it happens now 0011 * User settings / input 0012 The user chooses the following in the configuration dialog: 0013 ** Already present 0014 + Sky conditions (Bortle) 0015 + Equipment availability (Naked eye / binocular / telescope) 0016 ** New 0017 + Meridian +/- how many hours to show 0018 + A checkbox to avoid "the hole" for Dobsonian telescopes 0019 + Experience level of the user (scale of 1 to 6) 0020 + Special interest: Astrophotography vs. Visual (may be a later feature) 0021 *** Auto-suggest 0022 + What kinds of objects to auto-suggest (eg: open clusters, globular 0023 clusters, nebulae, galaxies...) 0024 OR 0025 + Suggest only from observing wishlist 0026 * How does it work 0027 ** Lists of objects 0028 + We have hand-coded lists of objects for each user level, for each 0029 special interest, that are put into a SQLite db, say interesting.db 0030 + Only bright and/or truly interesting objects go into these 0031 lists. Showing every NGC open cluster is meaningless. 0032 + Lists in the DB are indexed by RA hour 0033 + Each list entry has Name, RA hour (index), Dec ten-degree zone, 0034 guesstimated minimum aperture needed (can be zero), guesstimated aperture in which 0035 it gets interesting (can be zero), a hand-written translatable 0036 description, a last observed timestamp, and links to websites. 0037 *** What goes into the lists? 0038 + The level 1 lists contain things like planets, constellations, 0039 double stars, naked eye objects, bright telescopic double stars. 0040 + The level 2 lists contain most of the (bright) Messier objects 0041 (excluding things like Virgo cluster galaxies, M 76, M 97, M 74...) 0042 and some bright NGC/other objects (eg: many Caldwell objects, Double 0043 cluster, NGC 253, and other 'why is this not a Messier?' candidates) 0044 + The level 3 lists contain the remaining Messier objects, the fainter 0045 Caldwell objects, and many of the brighter NGC/IC/other objects (eg: 0046 The Eyes, Ghost of Jupiter, NGC 55, NGC 891...) 0047 + The level 4 lists contain lesser known NGC/IC objects (eg: NGC 0048 134, NGC 247, NGC 40, ...) and a few lesser known catalogs (eg: 0049 Seagull nebula). 0050 + The level 5 lists have some of the usual 'challenge' objects (eg: 0051 Leo-I, B33, Jellyfish neb, Integral sign, Jones 1, JnEr 1, Stephen's 0052 Quintet, Medusa Neb...) 0053 + The level 6 lists unleash the hard catalogs (eg: Holmberg, HCG, Arp, 0054 Palomar, some hand-picked ACO...) 0055 + The level 7 lists go into the land of advanced observers (eg: Tidal 0056 tails, Voorwerps, Shakbazians, Ring galaxies, lensed quasars and 0057 other scary stuff) 0058 ** Algorithm 0059 *** Iterate the following until a solution is found, or we tried 10 times: 0060 + By using some fuzzy combination of the user's observing conditions, 0061 we pick a different one of the 7 lists at random. We will weight it 0062 such that the list matching the user's skill level is the most 0063 likely one to be hit, compensating a bit for Bortle and 0064 instrumentation. 0065 + We then look at the user's hour-angle range preferences to pick the 0066 RAs currently in the range, and load all objects matching into 0067 memory. 0068 + We then remove any objects in the list that are not available in 0069 KStars (check the objectNames hashes). 0070 + We then apply the type filter on the list. The list probably doesn't 0071 contain more than 20 ~ 30 objects (might grow to a 200 ~ 300 0072 eventually) at this point, so it should be fast to do these 0073 operations. 0074 + We then pick an element of this list at random; at any point if we 0075 the object fails to meet criteria, we remove that element and pick a 0076 different one. 0077 + We then apply the hole constraint. 0078 + Then, we check if the object is compatible with the user's 0079 observing conditions (surface brightness of the object vs Bortle, 0080 telescope availability...) 0081 + Then, we present the object 0082 + If we have an empty list before we can present an object, we go back 0083 to the beginning and pick a different list. 0084 *** If we fail, we show the user an info message saying they must relax their constraints. 0085 ** Algorithm if we are using the wishlist 0086 + Wishlist must be saved with RA hour. 0087 + Select items from the wishlist that satisfy the hour angle 0088 constraint (DB query) and load into a list. 0089 + Select an element at random and check if it satisfies the hole 0090 constraint. If it does not, remove it from the list, then try again. 0091 + If we find no objects, display the same error message. 0092 ** Improvements: 0093 + Incorporate timestamp of last observation, i.e. show only 0094 non-observed objects for a long time. 0095 + Try to repeat showing 'all-time favorites'.