Friday, March 18, 2022

KStars v3.5.8 Released

 KStars v3.5.8 is released on 2022.03.19 for MacOS, Linux, and Windows. This is a mostly bugfix release with a couple of exciting new features.

Faster plate-solving with StellarSolver 2.2

Robert Lancaster released StellarSolver 2.2 with significant improvements. StellarSolver is the library used by Ekos for star extraction and plate-solving. It is now so fast that sub-second plate-solves are quite common. Here are some highlights:

  • Eliminating the last external files: solved and cancel files from the internal solver
  • Making an interface between the C++ and astrometry.net logging that works well to fix logging issues
  • Making StellarSolver easier to use in a blocking way, including using it as a C++ temporary object
  • Making the convolution filter easier to generate and use as well as adding more types of filters
  • Significantly reducing the astrometry code needed for the solver
  • Adding support for a new external solver: the Watney Astrometry Solver
  • Improving the abort code so that it shuts down faster
  • Adding a number of demos to show how to use StellarSolver
  • Adding healpix and index series hints so that you can speed up solves in localized areas based on former solves
  • Making it possible to run two stellar solvers simultaneously
  • Adding some new options for star extraction
  • Making API simplifications
  • Fixing some memory leaks and other warnings on various operating systems
  • Removing some unused code

Greed is Eternal (10th Rule of Acquisition)

Hy Murveit introduced a new type of scheduling algorithm which he dubbed as the Greedy algorithm.

In both the Classic and Greedy schedulers, jobs are listed as "earlier on the job list means higher priority". With the Classic scheduler, priority is of the highest importance. It will not schedule a lower priority job until the higher priority job is done, even if that job takes several nights, and even if the higher-priority job cannot run at the current time, e.g. due to altitude/terrain/etc.  In contrast to this, the Greedy scheduler attempts to keep Ekos busy as much as possible. Although it gives priority to earlier-listed-jobs, it will run later-listed ones if the earlier one can't run. Of course, the lower priority job will get preempted when the high-priority job can finally start to run.

If you start the scheduler with only one job, there is no difference between Classic and Greedy scheduling. However, if you have more than one job, depending on your setup, there is a good chance that the Greedy scheduler will schedule more imaging time than Classic.

Here's a recommended way to try this out. Let's assume you have a main target for which you want to collect as many images as possible. Set that target up as first on the scheduler list, have it start ASAP and set its completion condition as "Repeat Until Terminated". It should be scheduled to image whenever possible (even across multiple nights) until you turn off the scheduler or Ekos. Add several other targets as well, ones that you might also be interested in, and that can be imaged in other parts of the night. Make sure those are listed below the primary target on the jobs list. Set those the same way (ASAP/RepeatUntilTerminated). They will be scheduled to run whenever the primary target can't be imaged.  Of course, make sure the twilight restriction is set for all your targets. Altitude and terrain restrictions are important as well--if Ekos doesn't know that there's a tree or house blocking your target, it can't be smart about scheduling it.

Since jobs will be preempted/restarted more often with Greedy than with Classic, the "Remember Job Progress" option is now more important.  You can find this setting in the KStars Setting Menu --> Ekos --> Scheduler --> "Remember job progress".  This option only works if you are storing images on the same machine where the scheduler is running. You should enable "Remember Job Progress" with this scheduler to get the most benefit, assuming your capture sequences use multiple/different filters. If your capture sequences are just used with one type of filter/or OSC then it probably doesn't matter. (RememberJobProgress has also be updated a bit, and should now do a better job of picking up where the last attempt finished.)

The screenshot above shows the scheduler running with this new scheme. Note that there are 4 jobs, and they are listed in order of precedence. You can see the next start times for each of the jobs on the scheduler table, and the highlighted (4th) job is the one currently running. A schedule for the next 48 hours is also printed in the log window at the bottom.


The scheduler is (minimally) integrated with Analyze. During testing I let the Greedy Scheduler run for 3 days. Here's a screenshot of the Analyze timeline for the 3 days. (Note some timelines didn't display well because of screen resolution.) The top line is the new scheduler timeline in Analyze. The different colors correspond to different jobs that were run, each one keeping its same color on different stars. You can see the different jobs ran as expected each night.

Support for Capture Format

New in this release is support for INDI v1.9.5 Capture Format selection. This was previously explicitly selected by the user in INDI Control Panel but is now available in the Sequence settings in the capture module.



Full change log

907bc629b 2022-03-15 Jasem Mutlaq         Replace repeated message with just a label update
fead0a8d4 2022-03-15 Wolfgang Reissenberger Avoid in-sequence-counter countdown when already zero
b10c443f7 2022-03-14 Robert Lancaster     Forgot Prefix path for DriverSupport
0a552226f 2022-03-14 Jasem Mutlaq         Only emit newCoord when mount is connected
e02adcf48 2022-03-14 Wolfgang Reissenberger Bugfix initial guide deviation set blocks post MF calibration
6853eec35 2022-03-14 Jasem Mutlaq         If telescope device is not defined or connected, do not process coordinates
1640c7a2b 2022-03-13 Robert Lancaster     Moving KStars Mac INDI copy instructions to cmakelists
56cd0535f 2022-03-13 Jasem Mutlaq         Add an exact parameter to findByName so that catalog component can customize its search behavior globally
64b9ec0c3 2022-03-13 Akarsh Simha         Fix  CatalogsComponent::findByName() to find only 1 exact match
0e2a3ab07 2022-03-13 Akarsh Simha         Fixes and some improvements to the "Add catalog object" UI
e22bfc6ed 2022-03-11 Akarsh Simha         Fix truncation of observing list upon adding to it from popup menu
993692eaa 2022-03-13 Akarsh Simha         Make some usability improvements, especially in the Find Dialog
9245f9b75 2022-03-12 Hy Murveit           reduce log spam
e23a7ab8c 2022-03-12 Jasem Mutlaq         Various memory leaks. Still there is definitely memory leaks when performing...
dabeeec3d 2022-03-11 Jasem Mutlaq         Fix compile on 18.04
f34bcb7d9 2022-03-11 Jasem Mutlaq         Disable event-driven setScopeStatus from INDI::Telescope since it sets m_Status which prevents the polling method from working
5033fba01 2022-03-11 Jasem Mutlaq         Fix bug that caused PAA to fail if a driver send HORIZONTAL_COORD as well
836f47c89 2022-03-11 Jasem Mutlaq         Improve Look n Feel tab
23bb6cbfd 2022-03-10 Robert Lancaster     updating to StellarSolver 2.1
f184fd378 2022-03-09 Nicolas Fella        Don't find KAuth
96ed6a6d7 2022-03-10 Jasem Mutlaq         Fix compile on Windows
755c34e96 2022-03-09 Hy Murveit           Make the test_ekos_scheduler_ops tests more stable.
860301309 2022-03-09 Jasem Mutlaq         Fix typo
abec3e796 2022-03-09 Jasem Mutlaq         Extra check
e4685108d 2022-03-09 Jasem Mutlaq         vShapeSolution should be reset in stop
d38a27b17 2022-03-08 Akarsh Simha         Whenever stars have Henry Draper numbers, make them show up as their names
21635a353 2022-03-08 Robert Lancaster     Fix memory leak
4c71e6262 2022-03-07 Jasem Mutlaq         No need to explicitly load the dark frame
50c523bdc 2022-03-07 Jasem Mutlaq         Clear pointers on disconnect
d973ffec2 2022-03-06 Robert Lancaster     Making it faster by reusing stellarsolver.
4ea60c7fe 2022-03-07 Jasem Mutlaq         Capture encoding is now fully implemented in the code along with capture format. Fix issue when setting temperature and filters in non-light frames
e1a1f7c33 2022-03-06 Jasem Mutlaq         Make it compile on 18.04
8e7fd183f 2022-03-06 Hy Murveit           change scheduler colors for analyze
146577ca6 2022-03-06 Robert Lancaster     Fixing a KHelpClient bug on MacOS
3b39d06b4 2022-03-06 Philip Mair          Fixed restoring of bin settings
134d3d8d1 2022-03-06 Yuri Chornoivan      Fix minor typos
52e0e4d1e 2022-03-06 Jasem Mutlaq         Improve tooltip and simplify UI
961575df9 2022-03-05 Robert Lancaster     Improving Tooltips
d2724f80c 2022-03-05 Jasem Mutlaq         Clear sequence array on clear sequence
24d0806b5 2022-03-02 Akarsh Simha         Fix bug due to addition of new sky culture by saving config differently
ec9448cbd 2022-03-05 Hy Murveit           New Greedy Algorithm for Scheduler
a39d48e8e 2022-03-04 Mattia Procopio      Allow to provide a custom URL to download index data from
3e5b922c1 2022-03-04 Robert Lancaster     Fixing some issues found by Jussi Saarvirta
56a377826 2022-03-03 Hy Murveit           fix maxGuidestarsHFR issue, fix test, increase max dither size
cf5db0400 2022-03-02 Robert Lancaster     Updating KStars to support StellarSolver 2.0
9f20fe9e7 2022-03-02 Jasem Mutlaq         Make minimum exposure value 1 for refresh phase
831dc2890 2022-03-02 Hy Murveit           Allow older capture sequence files
cc7225978 2022-03-01 Salman Naheed        Ekoslive dark library
bfa23a060 2022-02-28 Nate Graham          Add Release tags to AppStream metadata file
06d6c0460 2022-02-26 Nate Graham          Make default color scheme default
8fe6068e0 2022-02-24 Salman Naheed        Ekoslive dark library
5dbb32de0 2022-02-23 Hy Murveit           Unconstrain Ekos' main vertical slider
df71cbf3e 2022-02-22 Salman Naheed        Ekoslive dark library
cd1cb58cf 2022-02-22 Wolfgang Reissenberger Timer based update of mount coordinates
8c457d62a 2022-02-22 Jasem Mutlaq         Add support for INDI capture format
2de2a7d0b 2022-02-21 Akarsh Simha         Adding popular asterisms as a sky culture
bbe08f422 2022-02-21 Salman Naheed        Ekoslive dark library
46d5fd47b 2022-02-21 Hy Murveit           Change gpg period spinbox from int to double
5a04cdbaa 2022-02-19 Wolfgang Reissenberger Bugfix selecting guide deviation when guiding is not running
9071245d7 2022-02-17 Wolfgang Reissenberger Bugfix darks jobstate and #158
e23f1c33d 2022-02-16 Hy Murveit           Small bug fixes: calibration not always shown. MultiStar graphics offset by a frame.
5bd737613 2022-02-16 Jasem Mutlaq         Fix meridian flip message, should be KSMessageBox and not newLog
628cf1241 2022-02-15 Yuri Chornoivan      Fix minor typo
99410cd62 2022-02-15 Hy Murveit           Make sure SolverUtils doesn't delete a running StellarSolver
c3bd4bd40 2022-02-14 Wolfgang Reissenberger State machine for capture control | preparation phase
f60d72d9b 2022-02-14 Salman Naheed        Ekoslive dark library
f103653f4 2022-02-14 Jasem Mutlaq         Disable stellarsolver logging
59f0a1301 2022-02-14 Wolfgang Reissenberger Display of filter name corrected
22e0ec011 2022-02-14 Jasem Mutlaq         More refinement to the polynomial method. Discard bad data points.
d606ffd33 2022-02-14 Jasem Mutlaq         Check target position versus current position every N frames
76e733a3e 2022-02-13 Robert Lancaster     removing setLoadWCS in another spot
80eabfa07 2022-02-12 Jasem Mutlaq         Change default guide exposure to 2 seconds
0fd94a4a5 2022-02-11 Hy Murveit           guider bugfix, firstframe improperly set
dd1c4becb 2022-02-10 Jasem Mutlaq         Allow send module frame to send from dark library
be665df18 2022-02-10 Hy Murveit           Check position after captures
ce83f275f 2022-02-08 Jasem Mutlaq         INDI drivers sync
d9e30a0fe 2022-02-08 Jasem Mutlaq         Remove check for parking time over 12 hours since it is acceptable if within 24 hours
6978d77d9 2022-02-08 Robert Lancaster     Removing WCS Coord disabling line
1ba2464c3 2022-02-07 Hy Murveit           Changes needed for upcoming Indi AstroPhysics driver
e40d833de 2022-02-05 Hy Murveit           guider cleanup and bugfix
b831c904e 2022-02-05 Hy Murveit           Add developer options tab, add option to save internal guider images.
62a551549 2022-01-31 Jasem Mutlaq         Catalog search should not be limited so that we can check for multiple identifiers
9305fe2b2 2022-01-31 Hy Murveit           Analyze: update graphics plot for completed capture or focus if latest is checked
3a778dc16 2022-01-27 Jasem Mutlaq         Increase test timeout
1c8e607e9 2022-01-27 Hy Murveit           Adjust dbus interfaces and paths to allow test_ekos_scheduler_ops tests to...
0515257a7 2022-01-27 Hy Murveit           Min #detections to initialize SEP MultiStar
6a5a96382 2022-01-26 Hy Murveit           add missing signal to analyze for focus restarts
0f2a4c951 2022-01-26 Jasem Mutlaq         Fix wrong arg
55b462887 2022-01-25 Toni Schriber        Standardized dialog for guider 'Control Parameters' &'Other Settings'
35236a51c 2022-01-23 Jasem Mutlaq         Check if regionItem is null
b3114467b 2022-01-23 Jasem Mutlaq         Fix issue in treating calibration frames since we used to only check a single channel whereas we were supposed to check all three
8808d3309 2022-01-23 Jasem Mutlaq         Add else for multiple channels
1efbbc7cc 2022-01-22 Robert Lancaster     Adding translations to Mac prebuild
6dafdc27b 2022-01-21 Jasem Mutlaq         Fix bug where filter is sometimes not set in camera or dustcap drivers unless it is set explicitly by the user by selecting it from the dropdown. No..
003a29faa 2022-01-21 Jasem Mutlaq         Fix issue when saving dark flats with sub-second exposures as we need to update the full prefix if duration was selected
0032701b6 2022-01-21 Jasem Mutlaq         Invalidate download timer to avoid bogus reports
18174ad1c 2022-01-21 Jasem Mutlaq         Reduce threashold to 1000ms
ff1ac9cfe 2022-01-21 Salman Naheed        Add generate dark flats to EkosLive
0ecfd135b 2022-01-20 Jasem Mutlaq         Make it so it is possible to create a 1x1 mosaic for purposes of framing
0f5c633c5 2022-01-20 Jasem Mutlaq         Update sequence prefix for ADU-calculated flat frames since full prefix can...
36e47a522 2022-01-20 Jasem Mutlaq         Set Focus module to the filter of the first light job in the sequence so that...
7c0807ad4 2022-01-19 Jasem Mutlaq         Starting KStars v3.5.8 development cycle
06277101e 2022-01-18 Jasem Mutlaq         INDI drivers sync
2e8345b8f 2022-01-17 Jasem Mutlaq         Improve message when failing to establish connection for remote devices
6f94491d3 2022-01-17 Jasem Mutlaq         Move options before ekoslive