This document explains how to use IDL to read DKIST data. It also provides a standalone version of the IDL codes, extracted from SolarSoft suite to read DKIST data. It provides the new code READ_DKIST.PRO, which will work with both ViSP and VBI data.
Any questions should be sent to Alisdair Davey.
Standalone IDL Code to Read DKIST Data
Note this version of the IDL code are designed to be run standalone only. If you have SSW installed and you have run the SSW startup, then the codes here will likely not work. A version of READ_DKIST.PRO to run under SSW is in the process of being created.
IDL gzipped tarball attached to this document. Extract the archive (gunzip and tar -xvf) and it will create a set of IDL files needed to read DKIST data under the directory dkist_idl. e.g.
# alisdair% gunzip dkist_idl_latest.tar.gz # alisdair% tar xvf dkist_idl_latest.tar x dkist_idl/ x dkist_idl/strn.pro x dkist_idl/chk_dir.pro x dkist_idl/sxpar.pro x dkist_idl/strspecial.pro x dkist_idl/ut_diff.pro x dkist_idl/valid_num.pro x dkist_idl/fxpar.pro etc ... [ALISDAIRs-MacBook-Pro:~] alisdair% ls -ld dkist_idl drwxr-xr-x 184 alisdair staff 5888 Apr 17 15:46 dkist_idl
This tarball also contains a binaries directory taken from SolarSoft which contains the binaries needed to decompress RICE compressed images.
To begin, download the the gzipped tar file attached to this document or from here. Gunzip the file and then run tar xvf on the dkist_idl.tar tarball. This will place all files in a dkist_idl directory. Follow the directions below to run the code from this directory. For ease of use, you may want to add the path to the files in you .idl_startup file.
# defsysv,'!path',expand_path('+/Users/alisdair/DKIST/IDL/StandAlone/dkist_idl')+':'+!path
To make this work you will need to first set one environment variable:
In csh/tcsh
# setenv SSW_ONTOLOGY PATH_TO_DKIST_IDL_DIRECTORY e.g. # setenv SSW_ONTOLOGY /Users/alisdair/DKIST/dkist_idl
or in bash
# export SSW_ONTOLOGY="PATH_TO_DKIST_IDL_DIRECTORY" e.g. # export SSW_ONTOLOGY="/Users/alisdair/DKIST/dkist_idl"
Then for ViSP data
# idl IDL> file = 'VISP_2022_07_09T19_32_33_519_00630205_I_AGNPG_L1.fits' IDL> read_dkist, file, index, data, /uncomp_delete VISP_2022_07_09T19_32_33_519_00630205_I_AGNPG_L1.fits --------------------------------------------------------------------- | Uncompressing to> /var/folders/jr/8cm_h72d0y3857d9hhgbrvrr0000gn/T/ | --------------------------------------------------------------------- VISP_2022_07_09T19_32_33_519_00630205_I_AGNPG_L1.fits -> /var/folders/jr/8cm_h72d0y3857d9hhgbrvrr0000gn/T/VISP_2022_07_09T19_32_33_519_00630205_I_AGNPG_L1_uncomp.fits ------------------------------------------- | Removing uncompressed versions on request | ------------------------------------------- IDL> IDL> help, index, data INDEX STRUCT = -> <Anonymous> Array[1] DATA DOUBLE = Array[2556, 977] IDL> help, index, /str ** Structure <6a071e08>, 262 tags, length=6128, data length=6036, refs=1: SIMPLE INT 1 BITPIX LONG -64 NAXIS LONG 3 NAXIS1 LONG 2556 NAXIS2 LONG 977 NAXIS3 LONG 1 EXTEND INT 1 ZQUANTIZ STRING 'NO_DITHER' BUNIT STRING 'ct' DATE STRING '2023-03-10T05:51:03.592' DATE_D$BEG STRING '2022-07-09T19:32:33.519' DATE_D$END STRING '2022-07-09T19:32:33.851' TELAPSE DOUBLE 0.33200006 DATE_D$AVG STRING '2022-07-09T19:32:33.685000' ORIGIN STRING 'National Solar Observatory' TELESCOP STRING 'Daniel K. Inouye Solar Telescope' OBSRVTRY STRING 'Haleakala High Altitude Observatory Si'... NETWORK STRING 'NSF-DKIST' INSTRUME STRING 'VISP' OBJECT STRING 'unknown' < Press Spacebar to continue, ? for help >
etc...
You are strongly recommended to use the /UNCOMP_DELETE flag when reading DKIST data.
Similarly, for VBI data
IDL> read_dkist, file, index, data, /use_shared_lib, /uncomp_delete VBI_2022_06_03T20_02_53_753_00430500_I_ADQVB_L1.fits -------------------------------------------------------------- | reading VBI_2022_06_03T20_02_53_753_00430500_I_ADQVB_L1.fits | -------------------------------------------------------------- % Compiled module: FITSIO_READ_IMAGE.
etc.
To make READ_DKIST working with the VBI data you will need to specify the /USE_SHARED_LIB option.
READ_DKIST is based upon READ_SDO with SDO specific features removed. Additional tidying up to make the code more DKIST instrument specific is ongoing.
Reading DKIST Data in SolarSoft
A version of READ_DKIST.PRO to run under SSW is being created. Note that if you have SolarSoft already installed, the READ_SDO.PRO code should be able to read in DKIST data albeit not cleanly.