From 44c0686f690647d1b1374cf849f6c3ed78c05b20 Mon Sep 17 00:00:00 2001 From: antoniar Date: Fri, 24 Jul 2020 10:58:40 +0200 Subject: [PATCH 1/2] fixed central frequency parsing --- tkp/accessors/fitsimage.py | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/tkp/accessors/fitsimage.py b/tkp/accessors/fitsimage.py index 61ec38703..b309ef5a1 100644 --- a/tkp/accessors/fitsimage.py +++ b/tkp/accessors/fitsimage.py @@ -124,23 +124,34 @@ def parse_frequency(self): try: header = self.header if header['TELESCOP'] in ('LOFAR', 'AARTFAAC'): - freq_eff = header['RESTFRQ'] - if 'RESTBW' in header: - freq_bw = header['RESTBW'] + if 'RESTFRQ' in header: + freq_eff = header['RESTFRQ'] + if 'RESTBW' in header: + freq_bw = header['RESTBW'] - else: - logger.warning("bandwidth header missing in image {}," + else: + logger.warning("bandwidth header missing in image {}," " setting to 1 MHz".format(self.url)) - freq_bw = 1e6 + freq_bw = 1e6 + else: + if ('CTYPE3' in header) and (header['CTYPE3'] in ('FREQ', 'VOPT')): + freq_eff = header['CRVAL3'] + freq_bw = header['CDELT3'] + elif ('CTYPE4' in header) and (header['CTYPE4'] in ('FREQ', 'VOPT')): + freq_eff = header['CRVAL4'] + freq_bw = header['CDELT4'] + else: + freq_eff = header['RESTFREQ'] + freq_bw = 0.0 else: - if ('ctype3' in header) and (header['ctype3'] in ('FREQ', 'VOPT')): - freq_eff = header['crval3'] - freq_bw = header['cdelt3'] - elif ('ctype4' in header) and (header['ctype4'] in ('FREQ', 'VOPT')): - freq_eff = header['crval4'] - freq_bw = header['cdelt4'] + if ('CTYPE3' in header) and (header['CTYPE3'] in ('FREQ', 'VOPT')): + freq_eff = header['CRVAL3'] + freq_bw = header['CDELT3'] + elif ('CTYPE4' in header) and (header['CTYPE4'] in ('FREQ', 'VOPT')): + freq_eff = header['CRVAL4'] + freq_bw = header['CDELT4'] else: - freq_eff = header['restfreq'] + freq_eff = header['RESTFREQ'] freq_bw = 0.0 except KeyError: msg = "Frequency not specified in headers for {}".format(self.url) From ae5aa598b142567138058771488c87dc9b6acfeb Mon Sep 17 00:00:00 2001 From: antoniar Date: Fri, 24 Jul 2020 12:36:57 +0200 Subject: [PATCH 2/2] Improvements to solution to Issue 571 following Adam's suggestions --- tkp/accessors/fitsimage.py | 43 +++++++++++++------------------------- 1 file changed, 15 insertions(+), 28 deletions(-) diff --git a/tkp/accessors/fitsimage.py b/tkp/accessors/fitsimage.py index b309ef5a1..8ca6ffa23 100644 --- a/tkp/accessors/fitsimage.py +++ b/tkp/accessors/fitsimage.py @@ -123,36 +123,23 @@ def parse_frequency(self): freq_bw = None try: header = self.header - if header['TELESCOP'] in ('LOFAR', 'AARTFAAC'): - if 'RESTFRQ' in header: - freq_eff = header['RESTFRQ'] - if 'RESTBW' in header: - freq_bw = header['RESTBW'] - - else: - logger.warning("bandwidth header missing in image {}," - " setting to 1 MHz".format(self.url)) - freq_bw = 1e6 + if 'RESTFRQ' in header: + freq_eff = header['RESTFRQ'] + if 'RESTBW' in header: + freq_bw = header['RESTBW'] else: - if ('CTYPE3' in header) and (header['CTYPE3'] in ('FREQ', 'VOPT')): - freq_eff = header['CRVAL3'] - freq_bw = header['CDELT3'] - elif ('CTYPE4' in header) and (header['CTYPE4'] in ('FREQ', 'VOPT')): - freq_eff = header['CRVAL4'] - freq_bw = header['CDELT4'] - else: - freq_eff = header['RESTFREQ'] - freq_bw = 0.0 + logger.warning("bandwidth header missing in image {}," + " setting to 1 MHz".format(self.url)) + freq_bw = 1e6 + elif ('CTYPE3' in header) and (header['CTYPE3'] in ('FREQ', 'VOPT')): + freq_eff = header['CRVAL3'] + freq_bw = header['CDELT3'] + elif ('CTYPE4' in header) and (header['CTYPE4'] in ('FREQ', 'VOPT')): + freq_eff = header['CRVAL4'] + freq_bw = header['CDELT4'] else: - if ('CTYPE3' in header) and (header['CTYPE3'] in ('FREQ', 'VOPT')): - freq_eff = header['CRVAL3'] - freq_bw = header['CDELT3'] - elif ('CTYPE4' in header) and (header['CTYPE4'] in ('FREQ', 'VOPT')): - freq_eff = header['CRVAL4'] - freq_bw = header['CDELT4'] - else: - freq_eff = header['RESTFREQ'] - freq_bw = 0.0 + freq_eff = header['RESTFREQ'] + freq_bw = 1e6 except KeyError: msg = "Frequency not specified in headers for {}".format(self.url) logger.error(msg)