From 8178a7cd0cc886449ca2c5a70119b5638fbe9d83 Mon Sep 17 00:00:00 2001 From: Roberto Susino <roberto.susino@inaf.it> Date: Tue, 18 Jan 2022 14:38:00 +0100 Subject: [PATCH] Add Metis specific WCS keywords and fix bugs --- metis_wcs.pro | 48 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 9 deletions(-) diff --git a/metis_wcs.pro b/metis_wcs.pro index a7e1edf..85c0ec1 100644 --- a/metis_wcs.pro +++ b/metis_wcs.pro @@ -42,7 +42,7 @@ function metis_wcs, header, cal_pack, ref_detector = ref_detector ; determine spacecract pointing information in the hpc reference frame using the spice kernels - pointing = solo_get_pointing(header.date_avg) + pointing = solo_get_pointing(header.date_avg, /degrees, /arcsec) ; NOTE - values are defined as follows: ; pointing[0] = yaw (arcsec) @@ -58,16 +58,17 @@ function metis_wcs, header, cal_pack, ref_detector = ref_detector ; correct the roll angle value for metis misalignment roll = (pointing[2] + boresight.delta_roll.value) * !dtor - + ; wcs rotation matrix in the hpc reference frame pc = [[cos(roll), -sin(roll)], [sin(roll), cos(roll)]] + ctype1 = 'HPLN-TAN' + ctype2 = 'HPLT-TAN' + ; if requested, transform the wcs matrix to the detector reference frame and adjust the boresight and spacecraft pointing parameters if keyword_set(ref_detector) then begin - ctype1 = 'HPLT-TAN' - ctype2 = 'HPLN-TAN' if header.filter.contains('UV', /fold) then begin borpix_prime = borpix borpix[0] = detector_size - (borpix_prime[1] - 1.) @@ -88,11 +89,8 @@ function metis_wcs, header, cal_pack, ref_detector = ref_detector roll = roll + !dpi/2. pc = [[cos(roll), -sin(roll)], [sin(roll), cos(roll)]] endif - endif else begin - ctype1 = 'HPLN-TAN' - ctype2 = 'HPLT-TAN' - endelse - + endif + ; get sun's center pixel sunval = [0., 0.] @@ -179,6 +177,14 @@ function metis_wcs, header, cal_pack, ref_detector = ref_detector name: 'SUN_YCEN', $ value: sunpix[1], $ comment: '[pixel] Sun center location along axis 2'} + wcs.add, { $ + name: 'SUNPIX1', $ + value: sunpix[0], $ + comment: '[pixel] Sun center location along axis 1'} + wcs.add, { $ + name: 'SUNPIX2', $ + value: sunpix[1], $ + comment: '[pixel] Sun center location along axis 2'} wcs.add, { $ name: 'IO_XCEN', $ value: borpix[0], $ @@ -187,6 +193,14 @@ function metis_wcs, header, cal_pack, ref_detector = ref_detector name: 'IO_YCEN', $ value: borpix[1], $ comment: '[pixel] Metis IO center location along axis 2'} + wcs.add, { $ + name: 'IOPIX1', $ + value: borpix[0], $ + comment: '[pixel] Metis IO center location along axis 1'} + wcs.add, { $ + name: 'IOPIX2', $ + value: borpix[1], $ + comment: '[pixel] Metis IO center location along axis 2'} wcs.add, { $ name: 'FS_XCEN', $ value: crpix[0], $ @@ -195,6 +209,14 @@ function metis_wcs, header, cal_pack, ref_detector = ref_detector name: 'FS_YCEN', $ value: crpix[1], $ comment: '[pixel] Metis field-stop center location along axis 2'} + wcs.add, { $ + name: 'FSPIX1', $ + value: crpix[0], $ + comment: '[pixel] Metis field-stop center location along axis 1'} + wcs.add, { $ + name: 'FSPIX2', $ + value: crpix[1], $ + comment: '[pixel] Metis field-stop center location along axis 2'} wcs.add, { $ name: 'SC_XCEN', $ value: pntpix[0], $ @@ -203,6 +225,14 @@ function metis_wcs, header, cal_pack, ref_detector = ref_detector name: 'SC_YCEN', $ value: pntpix[1], $ comment: '[pixel] S/C pointing location along axis 2'} + wcs.add, { $ + name: 'SCPIX1', $ + value: pntpix[0], $ + comment: '[pixel] S/C pointing location along axis 1'} + wcs.add, { $ + name: 'SCPIX2', $ + value: pntpix[1], $ + comment: '[pixel] S/C pointing location along axis 2'} wcs.add, { $ name: 'SC_YAW', $ value: pointing[0], $ -- GitLab