From ca498a36b73c7f485c30bac823c69a7b206b12bb Mon Sep 17 00:00:00 2001
From: Paul Chote
Date: Tue, 27 Nov 2018 11:02:11 +0000
Subject: [PATCH] Add support for space-separated sexagesimal.
---
findingchart.py | 14 ++++++++------
static/findingchart.js | 35 +++++++++++++++++++++++++----------
templates/input.html | 3 ++-
3 files changed, 35 insertions(+), 17 deletions(-)
diff --git a/findingchart.py b/findingchart.py
index 70fb8e0..34e9ed4 100644
--- a/findingchart.py
+++ b/findingchart.py
@@ -14,7 +14,6 @@
# pylint: disable=invalid-name
-import argparse
import base64
import datetime
import io
@@ -23,6 +22,7 @@
import numpy
import os
import sys
+import traceback
from PIL import Image, ImageOps
from astropy import wcs
from astropy.io import fits
@@ -115,12 +115,13 @@ def offset_proper_motion(ra_degrees, dec_degrees, pm_ra_degrees, pm_dec_degrees,
return (ra, dec)
def generate_finding_chart(out_year, in_ra, in_dec, in_format, in_year, ra_pm, dec_pm, width, height, survey):
- if in_format == 'sexagesimal':
- ra_j2000_degrees = parse_sexagesimal(in_ra) * 15
- dec_j2000_degrees = parse_sexagesimal(in_dec)
- else:
+ if in_format == 'decimal':
ra_j2000_degrees = float(in_ra)
dec_j2000_degrees = float(in_dec)
+ else:
+ ra_j2000_degrees = parse_sexagesimal(in_ra) * 15
+ dec_j2000_degrees = parse_sexagesimal(in_dec)
+
ra_pm_degrees = float(ra_pm) / 3600
dec_pm_degrees = float(dec_pm) / 3600
@@ -181,5 +182,6 @@ def input_display():
def generate_chart_json():
try:
return generate_finding_chart(request.args['outepoch'], request.args['ra'], request.args['dec'], request.args['format'], request.args['epoch'], request.args['rapm'], request.args['decpm'], request.args['size'], request.args['size'], request.args['survey'])
- except Exception as e:
+ except Exception:
+ traceback.print_exc(file=sys.stdout)
abort(500)
diff --git a/static/findingchart.js b/static/findingchart.js
index b592afe..3818360 100644
--- a/static/findingchart.js
+++ b/static/findingchart.js
@@ -261,11 +261,19 @@ function setup() {
var name = parts[0];
var ra = parts[1];
var dec = parts[2];
- var rapm = parts[3];
- var decpm = parts[4];
- var epoch = parts[5];
+ var coord_offset = 0;
- if (format == 'sexagesimal') {
+ if (format == 'decimal') {
+ if (ra === undefined || parseFloat(ra) != ra) {
+ $('#error').html('Line ' + line + ': Unable to parse "' + ra + '" as decimal degrees');
+ return;
+ }
+
+ if (dec === undefined || parseFloat(dec) != dec) {
+ $('#error').html('Line ' + line + ': Unable to parse "' + dec + '" as decimal degrees');
+ return;
+ }
+ } else if (format == 'sexagesimal-colon') {
if (ra === undefined || !testSexagesimal.test(ra)) {
$('#error').html('Line ' + line + ': Unable to parse "' + ra + '" as HH:MM:SS');
return;
@@ -276,17 +284,24 @@ function setup() {
return;
}
} else {
- if (ra === undefined || parseFloat(ra) != ra) {
- $('#error').html('Line ' + line + ': Unable to parse "' + ra + '" as decimal degrees');
+ ra = parts[1] + ':' + parts[2] + ':' + parts[3];
+ dec = parts[4] + ':' + parts[5] + ':' + parts[6];
+ coord_offset = 4;
+ if (ra === undefined || !testSexagesimal.test(ra)) {
+ $('#error').html('Line ' + line + ': Unable to parse "' + ra + '" as HH MM SS');
return;
}
- if (dec === undefined || parseFloat(dec) != dec) {
- $('#error').html('Line ' + line + ': Unable to parse "' + dec + '" as decimal degrees');
+ if (dec === undefined || !testSexagesimal.test(dec)) {
+ $('#error').html('Line ' + line + ': Unable to parse "' + dec + '" as DD MM SS');
return;
}
}
+ var rapm = parseFloat(parts[3 + coord_offset]);
+ var decpm = parseFloat(parts[4 + coord_offset]);
+ var epoch = parseFloat(parts[5 + coord_offset]);
+
if (rapm === undefined || parseFloat(rapm) != rapm) {
$('#error').html('Line ' + line + ': Unable to parse "' + rapm + '" as number');
return;
@@ -310,9 +325,9 @@ function setup() {
// Enumerate through line to find start of comment (if it exists)
// Want to make sure we take all character from the start of the comment
var comment = undefined;
- if (parts.length > 6) {
+ if (parts.length > 6 + coord_offset) {
var start = 0;
- for (var j = 0; j < 7; j++)
+ for (var j = 0; j < 7 + coord_offset; j++)
start = coords[i].indexOf(parts[j], start);
comment = coords[i].substring(start);
}
diff --git a/templates/input.html b/templates/input.html
index c4fedfc..dccb091 100644
--- a/templates/input.html
+++ b/templates/input.html
@@ -40,7 +40,8 @@ Finding chart generator
-
+
+