[fitswcs] SOLARNET {External}

Thompson, William T. (GSFC-671.0)[ADNET SYSTEMS INC] william.t.thompson at nasa.gov
Fri May 19 15:42:54 EDT 2023


Folks:

I wanted to share with you a draft document that some of my colleagues have been developing.  My particular focus is on Appendix VI which describes an extension of the Paper V mechanism for describing distortions, but you may wish to peruse and comment on the rest of the document as well.

I’ve just implemented part of Appendix VI in the SolarSoft WCS routines (https://soho.nascom.nasa.gov/solarsoft/gen/idl/wcs/).  This was needed to support corrections to the pointing in Solar Orbiter SPICE files due to spacecraft motions during an observation.  I’ve attached a figure showing a particularly strong example of these spacecraft induced distortions.  SPICE is a scanning slit spectrometer, and builds up an image by taking multiple exposures, changing the internal pointing by the slit width for each exposure.  The attached plot shows the difference from the nominal spacecraft pointing in the scan (X) direction and along the slit (Y).

The FITS file associated with the attached plot contains the following HDUs:


Primary HDU -- O III 703 + Mg IX 706 (Merged)

Extension 1 -- O II 718 - Peak

Extension 2 -- Ne VIII 770 - Peak

Extension 3 -- S V 786 / O IV 787 - Peak

Extension 4 -- C III 977 - Peak

Extension 5 -- Ly Beta 1025 (Merged)

Extension 6 -- O VI 1032 - Peak

Extension 7 -- VARIABLE_KEYWORDS

Extension 8 -- WCSDVARR

Extension 9 -- WCSDVARR

The primary HDU and the first 6 extensions contain spectral line data for subsections of the detector containing those lines.  It’s sufficient to look at the primary HDU, since the extensions follow the same general format.  The data in this HDU has the dimensions (224,1024,82,1) associated with the axes (X,Y,Lambda,Time).  Note that the time axis is degenerate, but the PCj_i matrix ties time to the X dimension, since each X position is a separate exposure. The header has the following keywords to tie the coordinates into the WCSDVARR extensions:

CRDER1  =       0.175124208406 / [arcsec] Mean stddev of Solar X
CWERR1  =        1.47306831780 / [arcsec] Max absolute distortion, Solar X
CWDIS1  = 'Lookup  '           / Type of WCS distortion correction
DW1     = 'EXTVER: 1'          / Extension version
DW1     = 'NAXES: 1'           / Axes in the distorion array
DW1     = 'AXIS.1: 1'          / Correction of Solar X
DW1     = 'ASSOCIATE: 1'       / Association stage is pixel coordinates
DW1     = 'APPLY: 6'           / Application stage is world coordinates

and

CRDER2  =       0.338068853111 / [arcsec] Mean stddev of Solar Y
CWERR2  =        14.1500402581 / [arcsec] Max absolute distortion, Solar Y
CWDIS2  = 'Lookup  '           / Type of WCS distortion correction
DW2     = 'EXTVER: 2'          / Extension version
DW2     = 'NAXES: 1'           / Axes in the distorion array
DW2     = 'AXIS.2: 1'          / Correction of Solar Y
DW2     = 'ASSOCIATE: 1'       / Association stage is pixel coordinates
DW2     = 'APPLY: 6'           / Application stage is world coordinates

With ASSOCIATE=1 and APPLY=6, what’s really happening is that the distortion values are exposure-by-exposure corrections to CRVAL1 and CRVAL2 respectively.  The other use case identified in the SOLARNET document also has ASSOCIATE=1 and APPLY=6.

The first of the WCSDVARR extensions contains the following keywords:


XTENSION= 'IMAGE   '           /  Written by IDL:  Thu Dec 22 03:33:32 2022

BITPIX  =                  -64 / Real*8 (double precision)

NAXIS   =                    1 /

NAXIS1  =                  224 /

PCOUNT  =                    0 /  number of random group parameters

GCOUNT  =                    1 /  number of random groups

DATE    = '2022-12-22T04:03:29' /



EXTNAME = 'WCSDVARR'           / Extension name

EXTVER  =                    1 / Extension version number, Solar X distortions

FILENAME= 'solo_L1_spice-n-ras_20210914T025031_V08_67109159-000.fits' / Filename



CRVAL1  =                    1 / Image array pixel index

CDELT1  =                    1 / Distortion array increment along image coord 1

CRPIX1  =                    1 / [pixel] Index of distortion array ref point

That makes it a pretty simple one-to-one association between the first coordinate of the data array and the distortion table.  The second WCSDVARR extension is formatted similarly.

I’ve only implemented part of Appendix VI, specifically:


  1.  Only for LOOKUP tables
  2.  Only ASSOCIATE=1-4 is supported
  3.  APPLY=5 and APPLY=6 are treated as identical.
  4.  Appendix VI-a is not supported

This supports the use cases that have been identified so far.  Implementing other parts of Appendix VI would require a deeper rewrite of the underlining software, which I don’t think is necessary right now.

In any case, I wanted to open this document up to a broader FITS community.

Cheers,

Bill Thompson
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listmgr.nrao.edu/pipermail/fitswcs/attachments/20230519/78e89540/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: SOLARNET_Metadata_Recommendations_v1.6-live.docx
Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document
Size: 478630 bytes
Desc: SOLARNET_Metadata_Recommendations_v1.6-live.docx
URL: <http://listmgr.nrao.edu/pipermail/fitswcs/attachments/20230519/78e89540/attachment-0001.docx>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: distortion.gif
Type: image/gif
Size: 12555 bytes
Desc: distortion.gif
URL: <http://listmgr.nrao.edu/pipermail/fitswcs/attachments/20230519/78e89540/attachment-0001.gif>


More information about the fitswcs mailing list