Bug 376708 - KStars 2.7.5 (WIN) Plate Solver Command Line Arguments Error
Summary: KStars 2.7.5 (WIN) Plate Solver Command Line Arguments Error
Status: RESOLVED FIXED
Alias: None
Product: kstars
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Microsoft Windows Microsoft Windows
: NOR normal
Target Milestone: ---
Assignee: Jasem Mutlaq
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-02-20 11:51 UTC by Bill Long
Modified: 2017-02-21 08:36 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In: 17.04
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Bill Long 2017-02-20 11:51:33 UTC
When customizing the option arguments for the plate solver in KStars/Ekos I noticed a fair amount of inconsistencies. 

With the default values all enabled through the UI button, the options show this:
--no-verify --no-plots --resort --no-fits2fits --downsample 2 -O -L 0 -H 0 -u aw -3 287.817 -4 89.9972 -5 30

When I attempt to use Blind Solve via the Load and Slew button, this is what the ANSVR log shows:

[2017-02-20 03:18:48] [Connect from 127.0.0.1]
[2017-02-20 03:18:48] POST /api/login HTTP/1.1
[2017-02-20 03:18:48] removing stale tmpdir /var/tmp/platesolve/000045
[2017-02-20 03:18:48] removing stale tmpdir /var/tmp/platesolve/000046
[2017-02-20 03:18:48] POST /api/upload HTTP/1.1
[2017-02-20 03:18:48] request_json is: {"allow_commercial_use":"n","allow_modifications":"n","center_dec":24,"center_ra":45,"downsample_factor":2,"publicly_visible":"n","radius":2.440489677610497e-152,"scale_lower":2.1132927118286117e+214,"scale_type":"ul","scale_units":"arcminwidth","scale_upper":2.234263831832233e-52,"session":"64"}
[2017-02-20 03:18:48] UPLOAD: session is 64
[2017-02-20 03:18:48] upload type is: FITS
[2017-02-20 03:18:48] GET /api/submissions/64 HTTP/1.1
scale_args: -u arcminwidth -L 2.11329271182861e+214 -H 2.23426383183223e-52 -3 45 -4 24 -5 2.4404896776105e-152
UPLOAD: /opt/ansvr/run_solver 480 /usr/bin/solve-field -p -O -U none -B none -R none -M none -N none -C cancel --crpix-center  -z 2  -u arcminwidth -L 2.11329271182861e+214 -H 2.23426383183223e-52 -3 45 -4 24 -5 2.4404896776105e-152 stars.fit
[2017-02-20 03:18:48] SUBS: solve is not done yet
[2017-02-20 03:18:48] SUBS: jstr: {"processing_finished":"0","user":"0","processing_started":"1","user_images":[],"jobs":[]}
[2017-02-20 03:18:50] GET /api/submissions/64 HTTP/1.1
Using timeout = 480
exec /usr/bin/solve-field -p -O -U none -B none -R none -M none -N none -C cancel --crpix-center -z 2 -u arcminwidth -L 2.11329271182861e+214 -H 2.23426383183223e-52 -3 45 -4 24 -5 2.4404896776105e-152 stars.fit
Reading input file 1 of 1: "stars.fit"...
Computing image percentiles...
Extracting sources...
Downsampling by 2...
[2017-02-20 03:18:50] SUBS: solve is not done yet
[2017-02-20 03:18:50] SUBS: jstr: {"processing_started":"1","user":"0","jobs":[],"user_images":[],"processing_finished":"0"}
[2017-02-20 03:18:52] GET /api/submissions/64 HTTP/1.1
simplexy: found 1595 sources.
[2017-02-20 03:18:52] SUBS: solve is not done yet
[2017-02-20 03:18:52] SUBS: jstr: {"processing_finished":"0","user_images":[],"jobs":[],"user":"0","processing_started":"1"}
[2017-02-20 03:18:54] GET /api/submissions/64 HTTP/1.1
Solving...
Reading file "./stars.axy"...
backend-main.cScale range 2.72332e+212 to 2.87921e-54 is invalid: min must be >= 0, max must be >= min.
:321:main: Failed to read job file "./stars.axy"
solve-field.c:518:run_backend backend failed.  Command that failed was:
  /usr/lib/astrometry/bin/backend ./stars.axy
 ioutils.c:605:run_command_get_outputs Command failed: return value 255
@@@@ FAILED
pid 1556 exiting
[2017-02-20 03:18:54] SUBS: solve is done
[2017-02-20 03:18:54] SUBS: jstr: {"processing_started":"1","user":"0","user_images":[],"jobs":[64],"processing_finished":"1"}
[2017-02-20 03:18:54] GET /api/jobs/64 HTTP/1.1
[2017-02-20 03:18:54] JOBS: jobid: 64  calibration: ''
[2017-02-20 03:18:54] send job status
[2017-02-20 03:18:54] JOBS: jstr: {"status":"failure"}
[2017-02-20 03:18:54] JOBS: job completed in 6 seconds
scale_args: -u arcminwidth -L 2.11329271182861e+214 -H 2.23426383183223e-52 -3 45 -4 24 -5 2.4404896776105e-152
UPLOAD: /opt/ansvr/run_solver 480 /usr/bin/solve-field -p -O -U none -B none -R none -M none -N none -C cancel --crpix-center  -z 2  -u arcminwidth -L 2.11329271182861e+214 -H 2.23426383183223e-52 -3 45 -4 24 -5 2.4404896776105e-152 stars.fit
Using timeout = 480
exec /usr/bin/solve-field -p -O -U none -B none -R none -M none -N none -C cancel --crpix-center -z 2 -u arcminwidth -L 2.11329271182861e+214 -H 2.23426383183223e-52 -3 45 -4 24 -5 2.4404896776105e-152 stars.fit
Reading input file 1 of 1: "stars.fit"...
Computing image percentiles...
Extracting sources...
Downsampling by 2...
simplexy: found 1595 sources.
Solving...
Reading file "./stars.axy"...
backend-main.cScale range 2.72332e+212 to 2.87921e-54 is invalid: min must be >= 0, max must be >= min.
:321:main: Failed to read job file "./stars.axy"
solve-field.c:518:run_backend backend failed.  Command that failed was:
  /usr/lib/astrometry/bin/backend ./stars.axy
 ioutils.c:605:run_command_get_outputs Command failed: return value 255
@@@@ FAILED
pid 1556 exiting

If I disable --no-fits2fits, click the Ok button, the Options now shows this:

--no-verify --no-plots --resort --downsample 2 -O -L 0 -H 0 -u aw -3 287.817 -4 89.9972 -5 30

When I run another blind solve, this is what the ANSVR logfile shows:

2017-02-20 03:22:12] [Connect from 127.0.0.1]
[2017-02-20 03:22:12] POST /api/upload HTTP/1.1
[2017-02-20 03:22:12] request_json is: {"allow_commercial_use":"n","allow_modifications":"n","center_dec":24,"center_ra":45,"downsample_factor":2,"publicly_visible":"n","radius":2.440489677610497e-152,"scale_lower":2.1132927118286117e+214,"scale_type":"ul","scale_units":"arcminwidth","scale_upper":2.234263831832233e-52,"session":"64"}
[2017-02-20 03:22:12] UPLOAD: session is 64
[2017-02-20 03:22:12] upload type is: FITS
[2017-02-20 03:22:12] GET /api/submissions/64 HTTP/1.1
scale_args: -u arcminwidth -L 2.11329271182861e+214 -H 2.23426383183223e-52 -3 45 -4 24 -5 2.4404896776105e-152
UPLOAD: /opt/ansvr/run_solver 480 /usr/bin/solve-field -p -O -U none -B none -R none -M none -N none -C cancel --crpix-center  -z 2  -u arcminwidth -L 2.11329271182861e+214 -H 2.23426383183223e-52 -3 45 -4 24 -5 2.4404896776105e-152 stars.fit
[2017-02-20 03:22:12] SUBS: solve is not done yet
[2017-02-20 03:22:12] SUBS: jstr: {"processing_finished":"0","user":"0","processing_started":"1","user_images":[],"jobs":[]}
[2017-02-20 03:22:14] GET /api/submissions/64 HTTP/1.1
exec /usr/bin/solve-field -p -O -U none -B none -R none -M none -N none -C cancel --crpix-center -z 2 -u arcminwidth -L 2.11329271182861e+214 -H 2.23426383183223e-52 -3 45 -4 24 -5 2.4404896776105e-152 stars.fit
Using timeout = 480
Reading input file 1 of 1: "stars.fit"...
Computing image percentiles...
Extracting sources...
Downsampling by 2...
[2017-02-20 03:22:14] SUBS: solve is not done yet
[2017-02-20 03:22:14] SUBS: jstr: {"user_images":[],"jobs":[],"user":"0","processing_started":"1","processing_finished":"0"}
[2017-02-20 03:22:16] GET /api/submissions/64 HTTP/1.1
simplexy: found 1595 sources.
[2017-02-20 03:22:16] SUBS: solve is not done yet
[2017-02-20 03:22:16] SUBS: jstr: {"jobs":[],"user_images":[],"user":"0","processing_started":"1","processing_finished":"0"}
[2017-02-20 03:22:18] GET /api/submissions/64 HTTP/1.1
Solving...
Reading file "./stars.axy"...
backend-main.cScale range 2.72332e+212 to 2.87921e-54 is invalid: min must be >= 0, max must be >= min.
:321:main: Failed to read job file "./stars.axy"
solve-field.c:518:run_backend backend failed.  Command that failed was:
  /usr/lib/astrometry/bin/backend ./stars.axy
 ioutils.c:605:run_command_get_outputs Command failed: return value 255
@@@@ FAILED
pid 4480 exiting
[2017-02-20 03:22:18] SUBS: solve is done
[2017-02-20 03:22:18] SUBS: jstr: {"processing_started":"1","user":"0","user_images":[],"jobs":[64],"processing_finished":"1"}
[2017-02-20 03:22:18] GET /api/jobs/64 HTTP/1.1
[2017-02-20 03:22:18] JOBS: jobid: 64  calibration: ''
[2017-02-20 03:22:18] send job status
[2017-02-20 03:22:18] JOBS: jstr: {"status":"failure"}
[2017-02-20 03:22:18] JOBS: job completed in 6 seconds
scale_args: -u arcminwidth -L 2.11329271182861e+214 -H 2.23426383183223e-52 -3 45 -4 24 -5 2.4404896776105e-152
UPLOAD: /opt/ansvr/run_solver 480 /usr/bin/solve-field -p -O -U none -B none -R none -M none -N none -C cancel --crpix-center  -z 2  -u arcminwidth -L 2.11329271182861e+214 -H 2.23426383183223e-52 -3 45 -4 24 -5 2.4404896776105e-152 stars.fit
exec /usr/bin/solve-field -p -O -U none -B none -R none -M none -N none -C cancel --crpix-center -z 2 -u arcminwidth -L 2.11329271182861e+214 -H 2.23426383183223e-52 -3 45 -4 24 -5 2.4404896776105e-152 stars.fit
Using timeout = 480
Reading input file 1 of 1: "stars.fit"...
Computing image percentiles...
Extracting sources...
Downsampling by 2...
simplexy: found 1595 sources.
Solving...
Reading file "./stars.axy"...
backend-main.cScale range 2.72332e+212 to 2.87921e-54 is invalid: min must be >= 0, max must be >= min.
:321:main: Failed to read job file "./stars.axy"
solve-field.c:518:run_backend backend failed.  Command that failed was:
  /usr/lib/astrometry/bin/backend ./stars.axy
 ioutils.c:605:run_command_get_outputs Command failed: return value 255
@@@@ FAILED
pid 4480 exiting

If I then exit the KStars application entirely, and load it again. This is what the options section shows:

--no-verify --no-plots --resort --downsample 2 -O -L 0 -H 0 -u aw -3 287.817 -4 89.9972 -5 30

If I run another blind solve, here is what the log shows on ANSVR:

[2017-02-20 03:24:54] [Connect from 127.0.0.1]
[2017-02-20 03:24:54] POST /api/login HTTP/1.1
[2017-02-20 03:24:54] removing stale tmpdir /var/tmp/platesolve/000048
[2017-02-20 03:24:54] POST /api/upload HTTP/1.1
[2017-02-20 03:24:54] request_json is: {"allow_commercial_use":"n","allow_modifications":"n","center_dec":24,"center_ra":45,"downsample_factor":2,"publicly_visible":"n","radius":0,"scale_lower":0,"scale_type":"ul","scale_units":"arcminwidth","scale_upper":0,"session":"65"}
[2017-02-20 03:24:54] UPLOAD: session is 65
[2017-02-20 03:24:54] upload type is: FITS
[2017-02-20 03:24:55] GET /api/submissions/65 HTTP/1.1
scale_args: -u arcminwidth -L 0 -H 0 -3 45 -4 24 -5 0
UPLOAD: /opt/ansvr/run_solver 480 /usr/bin/solve-field -p -O -U none -B none -R none -M none -N none -C cancel --crpix-center  -z 2  -u arcminwidth -L 0 -H 0 -3 45 -4 24 -5 0 stars.fit
[2017-02-20 03:24:55] SUBS: solve is not done yet
[2017-02-20 03:24:55] SUBS: jstr: {"processing_finished":"0","user":"0","processing_started":"1","jobs":[],"user_images":[]}
[2017-02-20 03:24:57] GET /api/submissions/65 HTTP/1.1
Using timeout = 480
exec /usr/bin/solve-field -p -O -U none -B none -R none -M none -N none -C cancel --crpix-center -z 2 -u arcminwidth -L 0 -H 0 -3 45 -4 24 -5 0 stars.fit
Reading input file 1 of 1: "stars.fit"...
Computing image percentiles...
Extracting sources...
Downsampling by 2...
[2017-02-20 03:24:57] SUBS: solve is not done yet
[2017-02-20 03:24:57] SUBS: jstr: {"user_images":[],"jobs":[],"processing_started":"1","user":"0","processing_finished":"0"}
[2017-02-20 03:24:59] GET /api/submissions/65 HTTP/1.1
simplexy: found 1595 sources.
[2017-02-20 03:24:59] SUBS: solve is not done yet
[2017-02-20 03:24:59] SUBS: jstr: {"jobs":[],"user_images":[],"processing_started":"1","user":"0","processing_finished":"0"}
[2017-02-20 03:25:01] GET /api/submissions/65 HTTP/1.1
Solving...
Reading file "./stars.axy"...
Only searching for solutions within 0 degrees of RA,Dec (45,24)

this will continue to loop looking through indices, eventually stalling out like this:

[2017-02-20 03:25:23] SUBS: solve is not done yet
[2017-02-20 03:25:23] SUBS: jstr: {"user_images":[],"jobs":[],"processing_started":"1","user":"0","processing_finished":"0"}
[2017-02-20 03:25:25] GET /api/submissions/65 HTTP/1.1
Field 1 did not solve (index index-4210.fits, field objects 71-80).
[2017-02-20 03:25:25] SUBS: solve is not done yet
[2017-02-20 03:25:25] SUBS: jstr: {"processing_started":"1","user":"0","jobs":[],"user_images":[],"processing_finished":"0"}

If I change the options to this:

--no-verify --no-plots --resort --downsample 2 -O -L 1 -H 3 -u dw -3 287.817 -4 89.9972 -5 30

The looping happens again... but the changes I made to the options, do not seem to have been passed to ANSVR:

scale_args: -u arcminwidth -L 0 -H 0 -3 45 -4 24 -5 0
UPLOAD: /opt/ansvr/run_solver 480 /usr/bin/solve-field -p -O -U none -B none -R none -M none -N none -C cancel --crpix-center  -z 2  -u arcminwidth -L 0 -H 0 -3 45 -4 24 -5 0 stars.fit

If I exit KStars and load it again, I can see that the changes I made to the options are no longer there:

--no-verify --no-plots --resort --downsample 2 -O -L 0 -H 0 -u dw -3 287.817 -4 89.9972 -5 30

No matter what I do, I cannot seem to get the options to pass just like I want them to.

If I run Sequence Generator Pro against the ANSVR, using the exact same image, this is what is passed to ANSVR:

scale_args: -u arcsecperpix -L 6.85596 -H 7.57764
UPLOAD: /opt/ansvr/run_solver 480 /usr/bin/solve-field -p -O -U none -B none -R none -M none -N none -C cancel --crpix-center  -z 2  -u arcsecperpix -L 6.85596 -H 7.57764 stars.fit
Using timeout = 480
exec /usr/bin/solve-field -p -O -U none -B none -R none -M none -N none -C cancel --crpix-center -z 2 -u arcsecperpix -L 6.85596 -H 7.57764 stars.fit

This completes successfully in 4-5 seconds. If I go back to KStars and change the options to match what SGP is doing via the options:

-p -O -U none -B none -R none -M none -N none -C cancel --crpix-center -z 2 -u arcsecperpix -L 6.85596 -H 7.57764 

It completely ignores my options, and passes the same thing it did before to ANSVR:

-p -O -U none -B none -R none -M none -N none -C cancel --crpix-center  -z 2  -u arcminwidth -L 0 -H 0 -3 45 -4 24 -5 0 stars.fit

To wrap this up, it seems that the options are not saving/passing to the ANSVR in the right manner.
Comment 1 Jasem Mutlaq 2017-02-20 12:04:10 UTC
Thanks for the report. I actually started rewriting astrometry.net options handler this morning, so hopefully by evening I'll have something in working order for all modules.
Comment 2 Bill Long 2017-02-20 12:18:10 UTC
Fantastic. Once the new build is live, I will be sure to grab it and do some testing.
Comment 3 Jasem Mutlaq 2017-02-20 19:29:56 UTC
Git commit 9764bad786aa851f24493d0b5d6f79a5a3ce3b28 by Jasem Mutlaq.
Committed on 20/02/2017 at 19:27.
Pushed by mutlaqja into branch 'master'.

Re-work how alignment module options are generated for different modes (online, offline, remote, from file) and how they are saved between sessions. Move Alignment options from Ekos settings to alignment module own settings module.
FIXED-IN:17.04

CCMAIL:kstars-devel@kde.org

M  +5    -1    kstars/CMakeLists.txt
M  +259  -470  kstars/ekos/align/align.cpp
M  +29   -17   kstars/ekos/align/align.h
M  +26   -136  kstars/ekos/align/align.ui
D  +0    -696  kstars/ekos/align/astrometryoptions.ui
M  +8    -7    kstars/ekos/align/offlineastrometryparser.cpp
M  +3    -3    kstars/ekos/align/onlineastrometryparser.cpp
A  +91   -0    kstars/ekos/align/opsalign.cpp     [License: GPL (v2+)]
A  +48   -0    kstars/ekos/align/opsalign.h     [License: GPL (v2+)]
A  +207  -0    kstars/ekos/align/opsalign.ui
A  +156  -0    kstars/ekos/align/opsastrometry.cpp     [License: GPL (v2+)]
A  +51   -0    kstars/ekos/align/opsastrometry.h     [License: GPL (v2+)]
A  +741  -0    kstars/ekos/align/opsastrometry.ui
M  +1    -1    kstars/ekos/align/remoteastrometryparser.cpp
M  +21   -8    kstars/ekos/ekosmanager.cpp
M  +0    -63   kstars/ekos/opsekos.cpp
M  +0    -6    kstars/ekos/opsekos.h
M  +2    -208  kstars/ekos/opsekos.ui
M  +121  -64   kstars/kstars.kcfg

https://commits.kde.org/kstars/9764bad786aa851f24493d0b5d6f79a5a3ce3b28
Comment 4 Bill Long 2017-02-20 21:16:41 UTC
I tested this and the new module is fantastic. 

There is one remaining problem. The arguments defined dont actually get passed to the ANSVR:

Configured this:
-O --no-plots --no-verify --resort --downsample 2

Verbose window shows this: 
2017-02-20T13:05:32 Using solver options: -O --no-plots --no-verify --resort --downsample 2 -3 45 -4 24 -5 15

ANSVR receives this:
UPLOAD: /opt/ansvr/run_solver 480 /usr/bin/solve-field -p -O -U none -B none -R none -M none -N none -C cancel --crpix-center  -z 2  -u arcminwidth -L 0 -H 0 -3 45 -4 24 -5 0 stars.fit

If I put this in the custom box:
-u arcsecperpix -L 6.85596 -H 7.57764

Verbose shows this:

2017-02-20T13:13:02 Using solver options: -O --no-plots --no-verify --resort --downsample 2 -u arcsecperpix -L 6.85596 -H 7.57764 -3 45 -4 24 -5 15

ANSVR receives this:

UPLOAD: /opt/ansvr/run_solver 480 /usr/bin/solve-field -p -O -U none -B none -R none -M none -N none -C cancel --crpix-center  -z 2  -u arcminwidth -L 0 -H 0 -3 45 -4 24 -5 0 stars.fit

The problem with user inputted values disappearing is gone, those seem to work fine now. The actual command sent to the ANSVR still doesn't seem to use the right string.
Comment 5 Jasem Mutlaq 2017-02-21 08:36:34 UTC
When using the astrometry.net online in KStars, the number of options are limited. See them here: http://astrometry.net/doc/net/api.html

However, it was sending many values if there were invalid (because before it was receiving ALL values, there was no option to turn some values off like now). Point is, it is fixed in GIT and another Windows build should be ready in 1 hour.