This page was created by IDL
lasco_mk_html_help.pro
on
Wed Aug 17 12:22:01 2005.
PROJET SOHO-LASCO NAME: B32TOINT PURPOSE: Convert a base 32 number to integer CATEGORY: Mathematics CALLING SEQUENCE: DESCRIPTION: INPUTS: INPUT KEYWORD: OUTPUTS: PROCEDURE: CALLED ROUTINES: HISTORY: V1 A.Thernisien 10/07/2001 CVSLOG: $Log: b32toint.pro,v $ Revision 1.2 2002/07/11 07:24:12 arnaud Insertion of the Log in each header
PROJET: SOHO-LASCO NAME: build_c3_back.pro PURPOSE build a edge image (i.e. a planar image) varying in y for C3 background correction INPUT c3mask mask of useful pixels of c3 images KEYWORD INPUT: ROI=roi defines a specific area of CCD ( define it in the same unit than c3mask pixel coordinates) [x1,y1,x2,y2] XY={0,1} To build two edges (in X and Y) OUTPUT: c3back_y planar image varying in y (slope = 1 per pixel) c3back_x planar image varying in x (slope = 1 per pixel) RESTRICTIONS initial image must be square
NAME: C2_CALFACTOR PURPOSE: This function returns the calibration factor for a given C2 image CATEGORY: REDUCE CALLING SEQUENCE: result = C2_CALFACTOR(Header) INPUT: Header: image header, either fits or lasco structure Keywords: NOSUM If set, do not correct for summing OUTPUT: Image calibration factor in (B/Bsun)/(DN/pixel-second) PROCEDURE: Same as C3_CALFACTOR.pro the output is automatically scaled for pixel summing MODIFICATION HISTORY: Written Clarence Korendyke, NRL Added C2/C3 Orange ratio as c2c3match - DW 07/09/99 NBR Nov 7 2001 - Change Version to use SCCS version; change header HISTORY NBR Mar 11 2003 - Add /NOSUM SCCS variables for IDL and Header use er= '@(#)c2_calfactor.pro 1.5, 03/14/03' ;NRL LASCO IDL LIBRARY
NAME: C2_CALIBRATE PURPOSE: This function calibrates a C2 image to mean solar brightness units CATEGORY: REDUCE CALLING SEQUENCE: Result = C2_CALIBRATE(Img,Header) INPUTS: Img: A 2-D image array in units of DN Header: An image header (FITS or LASCO header structure) OUTPUTS: The calibrated image is returned. The units are mean solar brightness. The header is also modified. KEYWORDS: NEW Force read of calib arrays NO_UPDATE Do not use log files and force read of calib arrays NO_CALFAC Do not apply calibration factor (set = 1d) COMMON BLOCKS: C2_CAL_IMG, DBMS RESTRICTIONS: Only handles clear polarizer except for H-alpha Must have LASCO IDL Library Must have environment $LASCO_DATA defined PROCEDURE: The routine reads in the vignetting and a mask array from the $LASCO_DATA/calib directory. To obtain the calibration factors, it calls the C2_CALFACTOR procedure. MODIFICATION HISTORY: Written by: Ed Esfandiari April 08, 1999 V1 aee Apr 08, 99 First version (based on c3_calibrate). V2 dw Sep 18, 99 Added no_calfac keyword (apply summing and vignetting only) V3 aee Apr 25, 00 Removed !Version.os eq 'OSF' statement. It is not needed since C2 vignetting is a .fts file which is machine independent. nbr Nov 7 2001 - Add-ons for reduce_level_1: add HISTORY comments in header; use $LASCO_DATA; use SCCS version nbr Jun 25 2002 - Update get_cal_name argument nbr Mar 10 2003 - Add functionality for non-PB summed images nbr May 14 2003 - Remove errant stop nbr Aug 20 2003 - Name vig file explicitly Variables for SCCS and FITS header er= '@(#)c2_calibrate.pro 1.10, 09/08/03' ;NRL LASCO IDL LIBRARY
NAME: C3_CALFACTOR PURPOSE: This function returns the calibration factor for a given C3 image CATEGORY: REDUCE CALLING SEQUENCE: result = C3_CALFACTOR(Header) INPUT: Header: image header, either fits or lasco structure Keywords: NOSUM If set, do not correct for summing OUTPUT: Image calibration factor in (B/Bsun)/(DN/pixel-second) PROCEDURE: The document describes the C3 calibration factor derived from the laboratory images taken in April 1994. The calibration factor is in 10^-10 (B/Bsun)/(DN/pixel-second). The units of the image to be multiplied need to be DN/pixel-second. The calibration factor is then scaled appropriately for pixel summation. Additional work will be required to remove a number of other factors. The calibration factor numbers need the port amplifier effect removed; color effects removed (IR filter affected greatly) and a number of other corrections. The photometric effect of pixel summation will have to be examined. preliminary calibration factors for C3 (3/17/96): filter polarizer calibration factor (10^-10B/Bsun)/(DN/pixel-second) clear clear 0.00503 blue clear 0.1033 orange clear 0.0286 deep red clear 0.01937 infrared clear 0.1055 clear Halpha 1.541 These were evaluated with the flat field response set to 1.0 at 20Rsun altitude. Areas of the field inside and outside 20Rsun will be somewhat effected by the flat field calibration (+/- 10-15%). the output is automatically scaled for pixel summing MODIFICATION HISTORY: Written Clarence Korendyke, NRL V1 3/15/96 CMK raw calibration factors computed with tabulated exposure durations V2 3/17/96 CMK calibration factor corrected for exp cmd and exp duration and exp2 V3 6/13/98 RAH modified to allow polarizer coeffs to be different for each filter updated coeffs for latest values, obtained from calibration window ratios with door closed 7/19/00 NBR Change Version to use SCCS version; change header HISTORY 1/19/01 NBR Change clear-clear factor to match above comments 3/11/03 NBR Add /NOSUM 6/8/05 RAH Add time variable calibration coefficient 6/22/05 Karl B Small bug fix. SCCS variables for IDL use er= '@(#)c3_calfactor.pro 1.13 06/22/05' ;LASCO IDL LIBRARY
NAME: C3_CALFACTOR PURPOSE: This function returns the calibration factor for a given C3 image CATEGORY: REDUCE CALLING SEQUENCE: result = C3_CALFACTOR(Header) INPUT: Header: image header, either fits or lasco structure Keywords: NOSUM If set, do not correct for summing OUTPUT: Image calibration factor in (B/Bsun)/(DN/pixel-second) PROCEDURE: The document describes the C3 calibration factor derived from the laboratory images taken in April 1994. The calibration factor is in 10^-10 (B/Bsun)/(DN/pixel-second). The units of the image to be multiplied need to be DN/pixel-second. The calibration factor is then scaled appropriately for pixel summation. Additional work will be required to remove a number of other factors. The calibration factor numbers need the port amplifier effect removed; color effects removed (IR filter affected greatly) and a number of other corrections. The photometric effect of pixel summation will have to be examined. preliminary calibration factors for C3 (3/17/96): filter polarizer calibration factor (10^-10B/Bsun)/(DN/pixel-second) clear clear 0.00503 blue clear 0.1033 orange clear 0.0286 deep red clear 0.01937 infrared clear 0.1055 clear Halpha 1.541 These were evaluated with the flat field response set to 1.0 at 20Rsun altitude. Areas of the field inside and outside 20Rsun will be somewhat effected by the flat field calibration (+/- 10-15%). the output is automatically scaled for pixel summing MODIFICATION HISTORY: Written Clarence Korendyke, NRL V1 3/15/96 CMK raw calibration factors computed with tabulated exposure durations V2 3/17/96 CMK calibration factor corrected for exp cmd and exp duration and exp2 V3 6/13/98 RAH modified to allow polarizer coeffs to be different for each filter updated coeffs for latest values, obtained from calibration window ratios with door closed 7/19/00 NBR Change Version to use SCCS version; change header HISTORY 1/19/01 NBR Change clear-clear factor to match above comments 3/11/03 NBR Add /NOSUM 6/8/05 RAH Add time variable calibration coefficient SCCS variables for IDL use er= '@(#)c3_calfactor.pro 1.12 06/08/05' ;LASCO IDL LIBRARY
NAME: C3_CALIBRATE PURPOSE: This function calibrates a C3 image to mean solar brightness units CATEGORY: REDUCE CALLING SEQUENCE: Result = C3_CALIBRATE(Img,Header) INPUTS: Img: A 2-D image array in units of DN Header: An image header (FITS or LASCO header structure) OUTPUTS: The calibrated image is returned. The units are mean solar brightness. The header is also modified. KEYWORDS: NO_VIG Do not apply vignetting correction or pylon mask (set = 1.) NO_MASK Do not apply pylon/occulter mask to vig correction FUZZY Interpolate gaps with fuzzy logic procedure NEW Force read of calib arrays NO_UPDATE Do not use log files and force read of calib arrays NO_CALFAC Do not apply calibration factor (set = 1d) COMMON BLOCKS: C3_CAL_IMG, DBMS RESTRICTIONS: Only handles clear polarizer except for H-alpha PROCEDURE: The routine reads in the vignetting and a mask array from the $LASCO_DATA/calib directory. To obtain the calibration factors, it calls the C3_CALFACTOR procedure. MODIFICATION HISTORY: Written by: RA Howard, 4/96 V1 rah Apr 04 96 First version. V2 aee Sep 30 97 Added exposure factor and header updates. V3 rah Oct 31 97 Call to READ_EXP_FACTOR changed to GET_EXP_FACTOR V4 rah Nov 07 97 reference to FILEORIG changed to use DATE_OBS V5 dw Sep 10 98 Added more polariz id flags beside PB V6 dab Nov 25 98 Added SWAP_ENDIAN for OSF operating systems V7 dw Feb 10 99 Changed from IMG_SUM_2x2 to rebin for summed images V8 av Mar 17 99 Added SL ramp correction V9 dw Mar 28 99 changed SL ramp correction to ramp_fn(0) V9a rh Apr 9 99 changed ramp to ramp_full in common V10 aee Apr 09 99 Added no_update keyword (used in image_profiles). V11 dw Apr 09 99 Added no_calfac keyword (apply summing and vignetting only) nbr Jul 12 2000 - Change version init, header update nbr Jul 27 2000 - Apply ramp before vignetting correction nbr Aug 4 2000 - CD to calib directory instead of using full path; edit HISTORY in header nbr Aug 7 2000 - Change call to GET_EXP_FACTOR nbr Oct 2 2000 - Add FUZZY, NO_VIG keywords nbr Oct 25 2000 - Use READFITS to read vig and mask arrays nbr Jan 18 2000 - Change vig to vig_full in common block nbr Jan 24 2001 - Add bkg, mask_blocks to common block nbr Nov 6 2001 - Subtract ramp AFTER vignetting correction and add better documentation; different order; do not apply mask to ramp av Nov 20 2001 - Input image is now returned unchanged. nbr Jun 25 2002 - Update get_cal_name argument nbr Jul 5 2002 - Change bkg used for fuzzy_image nbr Mar 10 2003 - Add functionality for sub-fields and non-PB summed images; define mask even if NO_MASK is set; only one vig and one mask nbr Apr 10 2003 - Change bkg and order of operations around fuzzy_image nbr Aug 20 2003 - Name vig and mask files explicitly nbr Sep 8 2003 - Comment changes, use A.Thernisien vignetting nbr Nov 5 2003 - Use inverted A.Thernisien vignetting nbr Nov 6 2003 - Use expanded A.Thernisien vignetting nbr Nov 7 2003 - Fix mask application nbr Jan 2 2004 - Update mask nbr Apr 2 2004 - Remove comment about fuzzy_image; new mask nbr Apr 8 2004 - New mask K.Battams 6/22/2005 - Another new A.Thernisien vignetting function... This time there are two for pre- and post- interruption. K.Battams 7/28/2005 - New vig function (previous function shifted half-pixel left) - New C3 cl mask (very slightly larger) Variables for SCCS and FITS header er= '@(#)c3_calibrate.pro 1.51, 08/01/05' ; NRL LASCO IDL LIBRARY
NAME: CALC_DARK_BIAS PURPOSE: This procedure calculates minimum, mean, average and std dev of dark images CATEGORY: LASCO REDUCE CALLING SEQUENCE: CALC_DARK_BIAS,Files INPUTS: Files: If optional parameter, h, not present: String array of the file names to process If optional parameter, h, is present: image data array OPTIONAL INPUTS: H: Lasco header structure corresponding to image data in Files OUTPUTS: Write information to file in $NRL_LIB/lasco/data/bias PROCEDURE: Cacluates the average, standeard deviation, minimum (non-zero) value and the median value. Also gets the current value for the offset bias. Then appends the information to the file dark_bias_cX.dat, where X is the telescope number. EXAMPLE: For only one parameter, the input parameter is a list of files f = wlister() CALC_DARK_BIAS,f For two parameters, pass the image and the header: a = LASCO_READFITS(f,h) CALC_DARK_BIAS,a,h MODIFICATION HISTORY: Written by: RA Howard, 6/12/98 @(#)calc_dark_bias.pro 1.1 04/09/99 LASCO IDL LIBRARY
PROJET: SOHO-LASCO NAME: calib_c3_sqima.pro PURPOSE: Prepare a clean C3 image (image must be square) USE: calib_c3_sqima,imain,bias,exptime,imacorr,irebin,izero,nzero,c3msk,coef,jpix,prfle_xy,bkgd, $ IPIXN=ipixn, JPIXN=jpixn, IPOS=ipos, THRESH=thresh, vig_c3=vig_c3 INPUT: imain image get from a readfits(name,hdr) for instance bias bias value exptime time exposure irebin rebin level : 1 1024x1024; 2 512x512; 3 256x256 leb_rebin rebin level from LEB KEYWORD INPUT: THRESH=thresh treshold to add (default = 0.) VIG_C3=vig_c3 vignetting correction array OUTPUT: imacorr corrected image (background gradient and photometry) izero list of zero values (from not transmited blocks) nzero number of zero values c3msk mask of values for C3 KEYWORD OUTPUT: IPIXN=ipixn for verification of get_c3_bkgd (debug purposes) JPIXN=jpixn for verification of get_c3_bkgd IPOS=ipos for verification of get_c3_bkgd RESTRICTIONS: works only with square images MODIFICATIONS: nbr, 11/30/00 - Compute vig_c3 separately before multiplying
NAME: CHECK_OBESUMERROR PURPOSE: Checks for OBE error when doing LEB summing CATEGORY: Reduce CALLING SEQUENCE: CHECK_OBESUMERROR,A,Hdr INPUTS: A: Image to be checked Hdr: FITS Header KEYWORD PARAMETERS: FIXIT: If present, fixes the LEBXSUM and LEBYSUM keywords PROCEDURE: An error was discovered in OBE beginning 6 March 1997. It started after sending a command to sum difference in EIT images. The result was that the LEB summing parameter in the header was not being set to the proper value. It always read 1, even though the summing was performed. MODIFICATION HISTORY: RA Howard, NRL, 24 March 97 @(#)check_obesumerror.pro 1.1 05/14/97 LASCO IDL LIBRARY
PROJET: SOHO - LASCO NAME: corr_edges.pro PURPOSE: Correct edges of lasco frames CATEGORY: Instrumental correction tools, medium level routines, CALLING SEQUENCE: corr_edges, ima, iop, ideep [,/X] [,/Y] INPUTS: ima image array iop side to correct iop=0 nothing iop=1 upper side =2 lower sise =3 both ideep nb of contiguity lines to correct OPTIONAL INPUT PARAMETERS: None KEYWORD PARAMETERS: X border columns correction Y border lines correction OUTPUTS: ima corrected image array OPTIONAL OUTPUT PARAMETERS: None COMMON BLOCKS: None SIDE EFFECTS: inmput is modified RESTRICTIONS: PROCEDURE: MODIFICATION HISTORY: Written by ALL 05/14/96 SCCS variables for IDL use @(#)corr_edges.pro 1.0 25/01/95 :LAS
NAME: DCT PURPOSE: Computes the D.C.T. or the Inverse D.C.T. PROCEDURE: Computes the D.C.T. (Discrete Cosine Transform) or the I.D.C.T. (Inverse D.C.T.) of a 1D or 2D array The D.C.T. values here are deduced from the F.F.T. values CATEGORY: Transformation CALLING SEQUENCE: c = dct(x [, direction] ) INPUTS: array a 1D or 2D array Optional INPUTS: direction Direction of the transform : By convention a negative direction means a forward transform, and positive means a inverse transform; By default, the forward transform is performed KEYWORD PARAMETERS: INVERSE perform the inverse transform, reguardless of the value of the direction parameters OUTPUTS: the DCT spectrum, with the same dimentions as the input array x REFERENCE: DIGITAL IMAGE PROCESSING ALGORITHM Ioannis Pitas Prentice Hall, (c) 1993 (p107-108 for 1D DFT to DCT transform) (p111,113 for 2D DFT to DCT transform) See also the IDL documentation about the FFT function MODIFICATION HISTORY: Written by J. More, November 1996
NAME: DDISTIM2ECS PURPOSE: Convert date and times generated by DDIS into ECS format CATEGORY: REDUCTION CALLING SEQUENCE: Result = DDISTIM2ECS (In) INPUTS: In = date and time string in the format YYMMDD_HHMMSS or YYYYMMDD_HHMMSS OUTPUTS: Result = a string in the ECS format: YY/MM/DD HH:MM:SS or YYYY/MM/DD HH:MM:SS RESTRICTIONS: Only works on single strings PROCEDURE: Straightforward string parsing MODIFICATION HISTORY: Written RA Howard NRL 15 November 1995 VERSION: 1 Initial Release @(#)ddistim2ecs.pro 1.1 04 Apr 1996 LASCO IDL LIBRARY
NAME: DECODE_ALL_SCIENCE PURPOSE: Main program to decode all science TM files from DACS, ECS, or Level-0 into raw DDIS files CATEGORY: REDUCTION CALLING SEQUENCE: DECODE_ALL_SCIENCE, Date INPUTS: None OPTIONAL INPUTS: Date = Date to be processed, YYMMDD If date is not present, then all science files in $LEB_IMG will be processed. KEYWORD PARAMETERS: None OUTPUTS: None OPTIONAL OUTPUTS: None COMMON BLOCKS: decode_science SIDE EFFECTS: RESTRICTIONS: PROCEDURE: EXAMPLE: MODIFICATION HISTORY: Written RA Howard, NRL Version 1 RAH, 21 Dec 1995, Initial Release @(#)decode_sc_dacs.pro 1.1 04 Apr 1996 LASCO IDL LIBRARY
NAME: DIFF2TIME PURPOSE: Compares two times CATEGORY: REDUCTION CALLING SEQUENCE: Result = DIFF2TIME (Time1, Time2) INPUTS: Time1 = First time as CDS time structure Time2 = Second time as CDS time structure OUTPUTS: Result = Result of comparison: -1 if Time1 > Time2 0 if Time1 = Time2 +1 if Time1 < Time2 MODIFICATION HISTORY: @(#)diff2time.pro 1.1 04 Apr 1996 LASCO IDL LIBRARY
PROJET: SOHO - LASCO NAME: FIND_MISS_BLOCKS PURPOSE: Finds all the missing blocks on an image. Generate the map of the non usefull blocks and the missing blocks. Call this routine before using a chain of correction, otherwise the location of all missing blocks would be lost after the 1st correction CATEGORY: missing blocks CALLING SEQUENCE: find_miss_blocks,ima,hdr,missblock,imafuzz,hdrfuzz,/fuzzyima ADMITTED INPUT TYPE OF IMAGES: all INPUTS: ima : the image to make the map hdr : fits header of the image OUTPUTS: missblock : output structure for fits table FILENAME : filename of the image NBMISS : number of missing blocks NBNUSEF : number of non usefull blocks MBMAP : map of the missing blocks 1: block OK 0: non transmitted usefull block -1: non usefull block MBMAPALL : map of all the non transmited blocks (lost plus non useful) 1: block OK 0: non transmitted useful or non usefull block note that if a block is set to -1 in MBMAP and also set to 1 in MBMAPALL it means that, even so, this block was transmitted OPTIONAL OUTPUTS: imafuzz : image with the corrected blocks hdrfuzz : header of the corrected image: the HISTORY specify that the image was corrected by fuzzy_image procedure KEYWORD INPUT: fuzzyima : compute the missing block interpolation by fuzzy_image procedure hdrstru : header structure given by getl05hdrstru full : resample output maps to 32*32 strmap : string map for the DB CALLED ROUTINES: SXPAR.GETTOK.GET_TMASK.FUZZY_IMAGE.GET_MISS_BLOCKS.GET_TMASK_F.WHERE2D.HCIE_ZONE.READ_ZONE.GRAD_ZONE.REVERSE.SPLINE.TRI_SURF.WRITE_ZONE.FUZZY_BLOCK.READ_BLOCK.DCT.NUM_TO_FUZZY.INTER_FUZZY.FUZZY_TO_NUM.WRITE_BLOCK.SXADDPAR. MODIFICATION HISTORY: V1.0 Writen by A.Thernisien on 23/12/99 from get_miss_blocks.pro by J.MORE, September 1996 V2.0 by A.T. 18/01/2000 V2.1 by AT 18/09/2001 add of STRMAP and FULL keywords CVSLOG: $Log: find_miss_blocks.pro,v $ Revision 1.2 2002/07/11 07:24:17 arnaud Insertion of the Log in each header
NAME: FIX_OBESUMERROR PURPOSE: Fix an OBE error encountered when doing LEB summing CATEGORY: REDUCE CALLING SEQUENCE: FIX_OBESUMERRROR OPTIONAL INPUTS: Date: If present processes the date specified. Otherwise processes dates 6 March 1997 -20 March 1997 KEYWORD PARAMETERS: QL: If present goes to the quick-look Directory, the default is QL LZ: If present goes to the Level-0 Directory FIXIT: If specified then writes the FITS file out, with LEBXSUM and LEBYSUM corrected. PROCEDURE: An error was discovered in OBE beginning 6 March 1997 through xx March. It started after sending a command to sum difference in EIT images. The result was that the LEB summing parameter in the header was not being set to the proper value. It always read 1, even though the summing was performed. This routine goes out to the date directory specified and reads in all of the FITS files one by one and then calls CHECK_OBESUMERROR to see if the error has occurred. EXAMPLE: To see if the files on 970307 have the problem, use the following command: FIX_OBESUMERROR,'970307',/QL To correct the file FIX_OBESUMERROR,'970307',/QL,/FIXIT To correct all the files between 6 Mar and 20 Mar FIX_OBESUMERROR,/QL,/FIXIT MODIFICATION HISTORY: RA Howard, NRL, 23 March 97 @(#)fix_obesumerror.pro 1.1 05/14/97 LASCO IDL LIBRARY
NAME: FIX_TIME_JUMP PURPOSE: This procedure reads a file from CDROM and puts the packets in order of the packets. If there is a gap, attempts to fill in with QL packets using GET_MISSING_PCKTS. CATEGORY: LASCO PACKETS CALLING SEQUENCE: FIX_TIME_JUMPS,fname INPUTS: Fname: Name of file with packets in it OUTPUTS: Outname: Returns the temporary output file name SIDE EFFECTS: A file with same name as fname and at least as large is generated in $TMOUT PROCEDURE: The input files must reside in the current working directory. It then finds missing or out of order packets in science stream by looking at the packet counter, which should increment by one. MODIFICATION HISTORY: Written by: R.A. Howard, NRL, 3 Aug 1996 N. Rich 1/31/97 added tm_files variable RAH 2/04/97 Corrected high rate packet sizes N. Rich 3/29/97 added outdir variable N. Rich 1/2000 Implement GET_MISSING_PCKTS N. Rich 2/2000 Add ctrmin2 check N. Rich 4/2000 Fix case where badpckts are in middle; Use packet counter for gap if backwards clock-reset detected 4/21/00 Print packet length of gaps and result (LZ 000207 ff.) n. rich 6/19/00 Change how it recognizes packet out of order, and previous packet out of order n. rich 6/20/00 Start logging out-of-order packets jake 01/01/01 Up'd limit of numexp to 500000 to help 03240101.d01 n.rich, 03.10.09 - Allow path in input filename @(#)fix_time_jumps.pro 1.8 10/10/03 LASCO IDL LIBRARY
PROJET: SOHO - LASCO NAME: FUZZY_BLOCK PURPOSE: Retrieves high-frequency information of a lost block using fuzzy logic PROCEDURE: Retrieves high-frequency information of a lost block using fuzzy logic reasoning on blocks specta CATEGORY: Missing Blocks, Interpolation CALLING SEQUENCE: block = fuzzy_block (image, i, j) INPUTS: image the image containing the block to correct i, j the location (column, row) of this block KEYWORD INPUT: rebindex : rebin index (see fuzzy_image.pro) OUTPUTS: The corrected block (array of pixels) is returned SUB-ROUTINES: fuzzy_block.pro contains the following sub-routines : _ num_to_fuzzy convert a number to a fuzzy interval _ fuzzy_to_num convert a fuzzy interval to a number _ inter_fuzzy intersection of 2 fuzzy intervals _ FUZZY_BLOCK perform a spectrum correction of a block (=main routine) using fuzzy logic reasoning REFERENCE: ( see fuzzy_image.pro ) MODIFICATION HISTORY: Written by J. MORE, October 1996 Add of rebindex keyword on 28/01/2000 by A.Thernisien
unction fuzzy_image,ima,HDR=hdr,VERBOSE=verbose, TOO_MANY=too_many, ALL=all PROJECT: SOHO - LASCO NAME: FUZZY_IMAGE PURPOSE: Corrects missing blocks on a image with a fuzzy logic method CATEGORY: Missing Blocks, Enhancement CALLING SEQUENCE: image = fuzzy_image (ima,HDR=hdr) INPUTS: ima : the image containing blocks to correct OUTPUTS: The corrected image KEYWORDS: hdr : FITS header of the image. WARNING: If the image header is not passed, fuzzy_image concider that the image is from C2 and 1024 * 1024: the procedure failed if it's not the case. verbose : print running informations TOO_MANY: Flag for reduce_level_1.pro to mask missing blocks ALL: Replace all missing blocks, regardless of number or mask SUBROUTINES: fuzzy_image.pro getl05hdrparam.pro sxpar.pro getok.pro get_tmask.pro get_miss_blocks.pro where2d.pro hcie_zone.pro read_zone.pro grad_zone.pro tri_surf.pro reverse.pro write_zone.pro fuzzy_block.pro read_block.pro dct.pro num_to_fuzzy.pro inter_fuzzy.pro fuzzy_to_num.pro write_block.pro REFERENCE: -> This method is based upon the following : Information Loss Recovery for Block-Based Image Coding Techniques - A Fuzzy Logic Approach Xiaobing Lee, Ya-Qin Zhang, Alberto Leon-Garcia IEEE TRANSACTIONS ON IMAGE PROCESSING, VOL.4, NO.3, MARCH 1995 MODIFICATION HISTORY: V1.0 Written by J. MORE, October 1996 Modif by A.T. 13/01/2000 and 18/01/2000: - add of the HDR keyword the take account of the size and the detector. - small modif to avoid crash when a missing block is near a non transmitted block 1/23/01, nbr : Compute new blocks if number of good blocks in a zone greater than number of bad; remove if statement for doing fuzzy_block; add TOO_MANY keyword 12/4/01, nbr : Move function statement to top 12/31/01, nbr : Add ALL keyword 1/ 9/03, nbr : Add logfile; don't create window 2; change way n_in_zone is computed 3/20/03, nbr : Re-enable TOO_MANY and make threshold 16 4/ 9/03, nbr : add COMMON dbms, logging; add edge exclusion logic 4/11/03, nbr : set too_many equal to number missing; do not continue if gt 100 missing in a zone 05.07.25, nbr - Update/fix too_many implementation for subfield cases ersion = '@(#)fuzzy_image.pro 1.7, 07/25/05' ; LASCO IDL Library
NAME: FUZZY_TO_NUM PURPOSE: Converts a fuzzy number to a number PROCEDURE: Converts a fuzzy number (or array of fuzzy numbers) to a number (or an array of numbers) CALLING SEQUENCE: a = fuzzy_to_num (afuzzy) INPUTS: afuzzy a fuzzy number (scalar or array) OUTPUTS: The number (or array) best representing the fuzzy number (or array)
Project : SOHO - LASCO/EIT Name : GETIDLPID Purpose : Returns IDL Process ID Use : IDL> result = GETIDLPID() Inputs : Optional Inputs: Outputs : Keywords : Comments : Side effects: Category : Written : Jake Wendt, NRL, April 10, 2002 Version : 07/10/03 @(#)getidlpid.pro 1.4
PROJET SOHO-LASCO NAME: getl05hdrparam PURPOSE: Extracts from fits header parameters of the image CATEGORY Fits Management CALLING SEQUENCE: getl05hdrparam,hdr,hdrfieldstruct INPUTS: hdr : header of a C2 or C3 image KEYWORD INPUT: offsetbias : set to compute the electronical offset bias OPTIONAL INPUTS PARAMETERS: none OUTPUTS: structure containing image parameters filename : FILENAME bitpix : BITPIX detector : DETECTOR sx : NAXIS1 sy : NAXIS2 fystart : R1ROW-1 fxstart : R1COL-20 fyend : P2ROW-1 fxend : P2COL-20 nrebinx : (fxend-fxstart+1)/sx nrebiny : (fyend-fystart+1)/sy bias : bias give by offset_bias lebxsum : LEBXSUM lebysum : LEBYSUM sumcolx : SUMCOL (1,2,4: 1 instead of 0 in the header) sumrowy : SUMROW (1,2,4: 1 instead of 0 in the header) rebindex : = nrebinx if nrebinx==nrebiny else =-1 OPTIONAL OUTPUT PARAMETERS: none CALLED ROUTINES: t_param.pre_offset_bias HISTORY: V1.0 coded by A.Thernisien on 17/01/2000 based upon ima05dim.pro from A.LL
PROJET: SOHO-LASCO NAME: get_c3_bkgd.pro PURPOSE: get fit coefficients of the strayligh edge on C3 CATEGORY Pipeline, level1, straylight CALLING SEQUENCE: get_c3_bkgd, imain, xc, yc, profle, jpix, coef, ierr INPUTS: imain file with a full image name (includes the path) per line xc x coord. of occultor center yc y coord. of occultor center OUTPUTS: profle values of pylone profile jpix abscisses of pylone profile coef regression coefficients ierr -1 for not square images of 1024x1024 or 512x512 or 256x256 pixels RESTRICTIONS: Procedure appliable only to square images of 1024x1024 or 512x512 or 256x256 pixels KEYWORD OUPUTS: IPIXN JPIXN IPOS PROCEDURE: HISTORY:
NAME: GET_CAL_DARK PURPOSE: This function obtains the dark field calibration structure applicable to the current date and telescope configuration CATEGORY: REDUCTION CALLING SEQUENCE: GET_CAL_DARK, Tel_num, Date, Obs_mode, Dark INPUTS: Tel_num The telescope number [0=C1,.., 3=EIT] Date The date of the image (format = DATE-OBS) Obs_mode The telescope configuration (DBMS parameter) OUTPUTS: Dark The dark image calibration data structure Function result Gives the status of the search: 0 if the calibration file could not be found. 1 if successful COMMON BLOCKS DBMS, ludb,lulog SIDE EFFECTS An entry is written into a log file if the unit number exists MODIFICATION HISTORY: Written RA Howard, NRL, 4 October 1995 @(#)get_cal_dark.pro 1.1 04 Apr 1996 LASCO IDL LIBRARY
NAME: GET_CAL_PHOTOM PURPOSE: This function obtains the photometric calibration data structure applicable to the current date and telescope configuration CATEGORY: REDUCTION CALLING SEQUENCE: GET_CAL_PHOTOM, Tel_num, Date, Obs_mode, Photo INPUTS: Tel_num The telescope number [0=C1,.., 3=EIT] Date The date of the image (format = DATE-OBS) Obs_mode The telescope configuration OUTPUTS: Photo The photometric calibration data structure Function Result Gives the status of the search 0 if calibration file not found 1 if file found COMMON BLOCKS: DBMS, ludb, lulog SIDE EFFECTS: An entry in the processing log is produced if lulog is defined PROCEDURE: GET_CAL_STRUCT is called to find the appropriate calibration file, which is an IDL save set. Then the data is restored and an entry is made in the processing log. MODIFICATION HISTORY: Written RA Howard, NRL, 4 October 1995 @(#)get_cal_photom.pro 1.1 04 Apr 1996 LASCO IDL LIBRARY
NAME: GET_CAL_STRAY PURPOSE: This function obtains the stray light data structure applicable to the current date and telescope configuration CATEGORY: REDUCTION CALLING SEQUENCE: GET_CAL_STRAY, Tel_num, Date, Obs_mode INPUTS: Tel_num Telescope number [0=C1,.., 3=EIT] Date Date of the image (format = DATE-OBS) Dbs_mode Telescope configuration OUTPUTS: Stray Stray Light calibration structure Function Result The status of the query is returned as the function result: 0 if cal file was not found and 1 if it was found. COMMON BLOCKS: DBMS, ludb, lulog SIDE EFFECTS: An entry is written to the log file if lulog in the common block is defined. PROCEDURE: GET_CAL_STRUCTURE is called to obtain the name of the appropriate calibration file. Then the file (an IDL save set) is restored. MODIFICATION HISTORY: Written RA Howard, NRL, 4 October 1995 @(#)get_cal_stray.pro 1.1 04 Apr 1996 LASCO IDL LIBRARY
NAME: GET_CAL_STRUCT PURPOSE: This function is a general purpose function procedure to first read the date cal file, find the applicable calibration file, and then return the calibration structure CATEGORY: REDUCTION CALLING SEQUENCE: GET_CAL_STRUCT, Type, Tel_num, Date, Obs_mode, Filename INPUTS: Type String containing type of calibration file Tel_num Telescope number (0..3) Date Date and Time of image to be calibrated (format=UTC/ECS) Obs_mode Observing Mode number OUTPUTS: Filename Filename of calibration file Function Result the status of the query 0 = Valid 1 = Invalid COMMON BLOCKS: DBMS, ludb, lulog PROCEDURE: The file whose file name is built from the calibration type is opened and read. The file names are photo_date_config.txt stray_date_config.txt dark_date_config.txt vig_date_config.txt These files have records in the following format: telescope_number, date_start,date_end, configuration, filename where: Telescope_number is the number from 0 to 3 for C1 to EIT Date_start is the starting valid date and time End_start is the ending valid date and time Filename is the name of the calibration file MODIFICATION HISTORY: Written RA Howard, NRL, 4 October 1995 @(#)get_cal_struct.pro 1.1 04 Apr 1996 LASCO IDL LIBRARY
NAME: GET_CAL_VIGNET PURPOSE: Obtains the appropriate vignetting calibration file for the date and observing mode CATEGORY: REDUCTION CALLING SEQUENCE: Result = GET_CAL_VIGNET (Tel_num,Date,Obs_mode,Vig) INPUTS: Tel_num = Telescope Number (0..3) Date = Date of observation (format = UTC/ECS) Obs_mode = Telescope configuration OUTPUTS: Vig = Vignetting calibration structure Result = status of operation 1=success 0=failure COMMON BLOCKS: DBMS SIDE EFFECTS: A log entries are written to unit LULOG PROCEDURE: The routine get_cal_struct is called to find the file name for the appropriate date and configuration, and then the cal structure is restored. MODIFICATION HISTORY: WRITTEN RA Howard, NRL, 4 October 1995 Version 1 RAH Initial Release @(#)get_cal_vignet.pro 1.1 04 Apr 1996 LASCO IDL LIBRARY
Project : SOHO - LASCO/EIT Name : GET_CROTA Purpose : Returns Nominal Roll Attitude of SOHO ( degrees ) Use : IDL> result = GET_CROTA( DATE ) Inputs : DATE in format 2003/07/21 23:30:05.469 Optional Inputs: Outputs : Roll Attitude Keywords : Comments : # Nominal roll attitude of SOHO (degrees) # 1995-12-02 03:08:00 0.00 2003-07-08 13:00:00 180.00 IDL[hercules]>print, GET_CROTA('2003-07-08 12:59:59') 0.00000 IDL[hercules]>print, GET_CROTA('2003-07-08 13:00:00') 180.000 Side effects: Category : Written : Jake Wendt, NRL, July 10, 2003 Version : 030722 jake changed location of nominal_roll_attitude.dat 030804, nbr - Add ANCIL_DATA, check only uncommented lines of file 08/04/03 @(#)get_crota.pro 1.7
NAME: GET_MISSING_PCKTS PURPOSE: Searches index of REL/QKL files between times tai0 and tai1 (exclusive). If there are any packets in this interval, return them in 'result'. Otherwise return 0. CATEGORY: LASCO PACKETS INPUTS: tai0 LONG Tai time (seconds) of last packet before gap tai1 LONG Tai time of first packet after gap Keywords: USE_CTR If set, use packet counter instead of time to fill gap (necessary when LOBT clock is reset backwards). Set equal to [lastctr,ctr] (counter before and after gap) OUTPUTS: Result: BYTARR(packet length, number of packets) SIDE EFFECTS: PROCEDURE: MODIFICATION HISTORY: Written by: N.B. Rich, Jan. 2000 NBRich Apr 2000 - Account for case where files(ind0-1) includes files(ind0); Add USE_CTR keyword jake - changed /net/gorgon/gg3/ql/ to GETENV('QL_IMG') 03.10.08, nbr - Changed input index.txt name/location 10/08/03 @(#)get_missing_pckts.pro 1.5 LASCO IDL LIBRARY
PROJET: SOHO - LASCO NAME: GET_MISS_BLOCKS PURPOSE: Finds all the missing blocks on an image PROCEDURE: Finds all the missing blocks on an image, and designs the corresponding "missing zones"; returns a map of the missing blocks where each missing block is then given the number of the missing zone it belongs A missing zone is defined as the smallest rectangle that surrounds a cluster of missing blocks (likely to be neighbor missing blocks) but has no missing blocks on its border (its outermost rows and columns) Call this routine before using a chain of correction, otherwise the location of all missing blocks would be lost after the 1st correction CATEGORY: Detection, Missing Blocks CALLING SEQUENCE: get_miss_blocks, image, map_miss_blocks [ , list_miss_blocks, n_miss_blocks ] INPUTS: image the image to make the map of OUTPUTS: map_miss_blocks the map of the missing blocks, a 32x32 array Assume there are nz missing zones, then each element (i,j) on the map represents the state of the block at column i and row j : _ (-1) means it's a correct block _ A integer z (from 0 to nz-1) means this is a missing block belonging to the "z"th zone OPTIONAL OUTPUT: list_miss_blocks the total list of missing blocks, a 2 columns array, where each row (i,j) represents the location of a missing block n_miss_blocks the total number of missing blocks KEYWORD INPUT: detector : C2 or C3 to get the non transmitted block mask (default:C2) rebindex : 0: 1024 * 1024, 1: 512 * 512, 2:256 * 256 ALL: Do not get block mask EXAMPLE: Given a image "image1" with missing blocks, get its map: get_miss_blocks, image1, map_b Print the list and the number of missing blocks : print, where2d(map_b ge 0, n_b) & print, n_b Get the number of missing zones, then for each missing zone print the blocks it contains : n_z = max(map_b)+1 for z=0, n_z - 1 $ print, where2d(map_b eq z) MODIFICATION HISTORY: Written by J.MORE, September 1996 Modif 13/01/2000 A.T. add of detector and rebindex keyword 1/24/01, nbr - extend zone to two blocks in each direction instead of one 12/31/01, nbr - Add ALL keyword 4/10/03, nbr - Modify map_miss_blocks criteria
NAME: GET_NEW_FILE_NUMBER PURPOSE: Finds the last file number for the given telescope and source and increments it. CATEGORY: REDUCTION CALLING SEQUENCE: Result = GET_NEW_FILE_NUMBER(Tel, Source) INPUTS: Tel = Telescope number (0..3) Source = 0 for GSFC R/T 1 for NRL R/T 2 for NRL Playback 7 for test OUTPUTS: Result = Number to be used for file name COMMON BLOCKS: DBMS PROCEDURE: An entry is recorded in the processing log when the file number is found. MODIFICATION HISTORY: Written RA Howard, NRL Version 1 Initial Release 31 Oct 1995 Version 2 17 Jan 96 Added testing source Version 3 11 Feb 97 SEP Changed num to type LONG 29 Aug 2000, nbr - Use $LAST_IMG instead of $IMAGES 11 Oct 2000, nbr - Use $IMAGES if source=0 @(#)get_new_file_number.pro 1.3 01/12/01 ; NRL LASCO IDL LIBRARY
NAME: GET_TEL_CONFIG PURPOSE: Computes the telescope configuration number, given the telescope, the telescope mechanism configuration, and the camera configuration in the header CATEGORY: REDUCTION CALLING SEQUENCE: Result = GET_TEL_CONFIG(Tel_num,Fits_hdr) INPUTS: Tel_num = Telescope number (0..3) Fits_hdr = String containing the FITS header OUTPUTS: Result = Configuration number MODIFICATION HISTORY: WRITTEN RA Howard NRL Version 1 RAH 20 Oct 1995 Initial Release Version 2 RAH 6 Nov 1995 compute number rather than use DBMS @(#)get_tel_config.pro 1.1 04 Apr 1996 LASCO IDL LIBRARY
PROJET SOHO - LASCO NAME: get_tmask PURPOSE: Classify blocks of image level 0.5 CATEGORY: Masking, Missing Blocks CALLING SEQUENCE get_tmask,camera,rebin_index,imsk INPUTS camera string 'C1','C2','C3' rebin_index 0=1024x1024, 1=512x512, 2,256x256 KEYWORD INPUTS: none OUTPUTS: imsk intarray of 32x32, multivalued image mask of -2 non useful blocks (NUB) on the corner -1 non useful blocks (NUB) on center 1 useful blocks 2 fringe blocs 3 NS center fringe blocs 4 EW center fringe blocs note: 0 is reserved for non transmitted useful blocks PROCEDURE: HISTORY: written by A.LL. May 1996
NAME: GRAD PURPOSE: Designs a "gradient map", i.e. a image made with parallel lines, all of them perpendicular to a given gradient direction CALLING SEQUENCE: g = grad (xsize, ysize, theta) INPUTS: xsize, ysize the size of the map image theta the angle of the gradient vector (versus the (Ox) axis) expressed in radians; the parallel lines are thus along the direction theta+pi/2 OUTPUTS: the (xsize) x (ysize) array where the value of each point is equal to the distance beetween the line perpendicular to the gradient that pass through this point and the origin. The origin (just as for the dist function) is located at 1 of the 4 corner of the image, depending on the value of theta : _ for theta in [0, pi/2], the origin = (0, 0) - for theta in [pi/2, pi], the origin = (xsize-1, 0) _ for theta in [pi, 3.pi/2], the origin = (xsize-1, ysize-1) - for theta in [3.pi/2, 2.pi], the origin = (0, ysize-1)
NAME: GRAD_ZONE PURPOSE: Returns the main gradient orientation of a zone containing MB CATEGORY: Missing Blocks CALLING SEQUENCE: angle = grad_zone (image, list_miss_blocks) INPUTS: image the image containing missing blocks list_miss_blocks the missing blocks defining the zone KEYWORD INPUT: rebindex : rebin index (see fuzzy_image.pro) OUTPUTS: The angle of the gradient vector MODIFICATION HISTORY: Written by J. More, November 1996 Add of rebindex keyword on 28/01/2000 by A.Thernisien
hcie_zone.pro contains the following sub-routines : _ grad designs a image made with parallel lines, all of them perpendicular to a given direction _ multi_interp perform a multiple 1D interpolation of an image along a set of parallel lines _ multi_smooth perform a multiple 1D smoothing of an image along a set of parallel lines _ HCIE_ZONE performs a H.C.I.E. (Hierarchical Compass (=main routine) Interpolation/Extrapolation), i.e. a low-pass recovery, on a set of missing block (defining a missing zone)
PROJET: SOHO - LASCO NAME: HCIE_ZONE PURPOSE: Performs the Hierarchical Compass Interpolation / Extrapolation (H.C.I.E.), which is a low-frequency recovery of a lost block CATEGORY: Missing Blocks CALLING SEQUENCE: zone = hcie_zone (image, list_miss_blocks) INPUTS: image the image containing the block to correct list_miss_blocks the locations of the missing blocks defining the zone KEYWORD INPUT: rebindex : rebin index (see fuzzy_image.pro) OUTPUTS: The corrected zone (array of pixels) is returned REFERENCE: ( see fuzzy_image.pro ) MODIFICATION HISTORY: from the wonderful Dr. M.BOUT (c) 1996 Written by J. MORE, November 1996 Add of rebindex keyword on 28/01/2000 by A.Thernisien Modif line 219 on 11/02/2000 by A.T. to avoid crash when there are not enough sample for interpolation
NAME: INTER_FUZZY PURPOSE: Compute the intersection of 2 fuzzy numbers PROCEDURE: Compute the intersection of 2 fuzzy numbers (this for each element in the case of fuzzy number arrays) CALLING SEQUENCE: cfuzzy = inter_fuzzy (afuzzy, bfuzzy) INPUTS: afuzzy, bfuzzy 2 fuzzy numbers (or fuzzy number arrays) OUTPUTS: a fuzzy number (structure {low, high}) or array of fuzzy numbers
PROJET SOHO-LASCO NAME: INTTOB32 PURPOSE: Convert a integer to a base 32 number CATEGORY: Mathematics CALLING SEQUENCE: DESCRIPTION: INPUTS: INPUT KEYWORD: OUTPUTS: PROCEDURE: CALLED ROUTINES: HISTORY: V1 A.Thernisien 10/07/2001 CVSLOG: $Log: inttob32.pro,v $ Revision 1.2 2002/07/11 07:24:12 arnaud Insertion of the Log in each header
NAME: MAKE_BROWSE PURPOSE: Generates a "browse" image from the input image CATEGORY: REDUCTION CALLING SEQUENCE: Result = MAKE_BROWSE (Image, File_name) INPUTS: Image = Input 2D image File_name = String containing the File name KEYWORD PARAMETERS: Maxpix = Maximum number of columns or rows of browse image. If maxpix of browse image is not defined then set to 256 Noblob = Controls the output Nokeep = Delete the JPEG file Qual = starting quality indicator (<=100) OUTPUTS: Result = The JPEG compressed browse image is returned as the function result if noblob is not set. If set the output is the browse image without compression PROCEDURE: The browse image is defined to be a byte array not larger than the optional input parameter or a default size if it is not defined. The browse image is compressed using the JPEG algorithm. The objective is to create a representation of the full image which is less than 3 kbytes, in order to be able to quickly transfer the information electronically. The browse image can then be used to determine if the full image should be transferred, which might take much longer to transfer. The browse image is not intended to be used for analysis purposes. browse = JPEG ( bytscl (congrid(image,maxpix,maxpix))) MODIFICATION HISTORY: Written RA Howard, NRL, 4 Oct 1995 Version 1 Version 2 RAH 2/12/96 Changed order from 1 to 0 Version 3 RAH 3/09/96 Write image to specific directory and optionally save. Scale image using log Version 4 RAH 3/29/96 Changed max size to 2000 bytes, qf=90 Version 5 RAH 4/20/96 Removed "w" as second character in name Version 6 RAH 5/15/96 Corrected error if zeros everywhere Version 7 RAH 5/25/96 Use histogram equalization to scale image Version 8 RAH 10/21/96 Subtract background model Version 9 RAH 02/20/97 Correct case of constant image VERSION 10 NBR 02/01/02 Add /SH to SPAWN @(#)make_browse.pro 1.8 02/01/02 LASCO IDL LIBRARY
NAME: MAKE_FITS_HDR PURPOSE: Generate a FITS header for Level 0.5 images CATEGORY: REDUCTION CALLING SEQUENCE: Result = MAKE_FITS_HDR (h,img) INPUTS: H = Header structure Img = Image OUTPUTS: Result = FITS header PROCEDURE: Makes calls to FXADDPAR MODIFICATION HISTORY: Written RA Howard, NRL, 31 Oct 1995 Version 2 rah 16 Nov 1995 Converted filter/polarizer/lp_num/readport Version 3 rah 11 Dec 1995 Corrected tag name of polarizer & eit/detector Version 4 rah 18 Jan 1996 Corrected exposure time to be entire exp & added subsection times Version 5 rah 15 Feb 1996 Corrected DATE-OBS/TIME-OBS Version 6 rah 22 Feb 1996 Corrected FP WL Keywords to be 8 characters Version 7 rah 18 Mar 1996 Added KW for LEB summing, and corrected exptime Version 8 rah 19 Mar 1996 Corrected exposure time for dark and continuous images Version 9 rah 27 Mar 1996 Corrected lp_num structure tag Version 10 rah 03 Apr 1996 Modified exposure mid point names Version 11 rah 05 Apr 1996 Compute exposure time in real Version 12 sep 17 Jul 1996 Modified to work with new LEB header (obev145+) units on exp[1,2,3], version, order Version 13 rah 22 Jul 1996 Increased WAVELENG to double precision Version 14 rah 01 Aug 1996 Modified exptime calc for new OBE version Increased FP_WL* to double precision Version 15 sep 18 Jun 1997 Changed call for new OFFSET_BIAS() Version 16 rah 18 Jul 1997 BITPIX set to reflect the image data type @(#)make_fits_hdr.pro 1.10 07/24/97 :NRL Solar Physics
Project : SOHO - LASCO/EIT Name : MAKE_INDEX Purpose : Use : IDL> Inputs : Optional Inputs: Outputs : Keywords : Comments : Side effects: Category : Written : Version : Modification: 020606 Jake Changed End of Repeat loop to check numpckts as well 03.10.08, nbr - change name of output file @(#)make_index.pro 1.5 10/08/03 :LASCO IDL LIBRARY
PROJET: SOHO - LASCO NAME: MB2STRMAP PURPOSE: Convert a missing block image map to a 'string map' CATEGORY: missing blocks CALLING SEQUENCE: INPUTS: OUTPUTS: OPTIONAL OUTPUTS: KEYWORD INPUT: MODIFICATION HISTORY: V1.0 Writen by A.Thernisien on 18/09/2001 CVSLOG: $Log: mb2strmap.pro,v $ Revision 1.2 2002/07/11 07:24:17 arnaud Insertion of the Log in each header
NAME: MISS_BLOCKS PURPOSE: This function returns a list of the missing telemetry block numbers. CATEGORY: REDUCE CALLING SEQUENCE: Result = MISS_BLOCKS (Img, Hdr) INPUTS: Img: The image to be processed Hdr: The fits header of the image OUTPUTS: The function result is a long word array of the absolute block numbers that are missing. If no blocks are missing, the result is -1. PROCEDURE: The input image is rebinned to a 32 x 32 array and then teh IDL where function is used to identify the locations where the super pixels are zero. MODIFICATION HISTORY: Written by: RA Howard, 4 Oct 1995 @(#)miss_blocks.pro 1.1 10/05/96 LASCO IDL LIBRARY
NAME: MOVE_REDUCE_LOG PURPOSE: This procedure moves the log and db files produced by the pipeline processing from the directory pointed to by $REDUCE_LOG into subdirectories by process date. CATEGORY: REDUCE CALLING SEQUENCE: MOVE_REDUCE_LOG OPTIONAL INPUTS: Dte: String giving the date to be processed in the format YYMMDD. The default is to process all files. OUTPUTS: None SIDE EFFECTS: Moves files into a subdirectory MODIFICATION HISTORY: Written by: R.A. Howard, NRL, 25 Apr 1996 2002.02.01, NBR - Add /SH to SPAWN @(#)move_reduce_log.pro 1.2 02/01/02 LASCO IDL LIBRARY
NAME: MULTI_INTERP PURPOSE: Performs a multiple 1D interpolation on a 2D image, along a set of lines given by a map (for ex. parallel lines) CALLING SEQUENCE: interp_array = multi_interp (array, map, theta) INPUTS: array an array to interpolate; interpolation is performed on missing values within the array (i.e. null values) thanks to the correct values (non-null values) map an array of the same dimensions, showing the location of lines where to performs the multiple interpolations The value of each pixel in that map is the number of the line it belongs to (0, 1, ..., N-1) for N lines theta the angle perpendicular to the parallel lines OUTPUTS: The interpolated array
NAME: MULTI_SMOOTH PURPOSE: Performs a multiple 1D smoothing on a 2D image, along a set of lines given by a map (for ex. parallel lines) Multi-smooth works exactely in the same way than multi-interp CALLING SEQUENCE: smooth_array = multi_smooth (array, map, theta) INPUTS: array an array to smooth map an array of the same dimensions, showing the location of lines where to performs the multiple smoothing theta the angle perpendicular to the parallel lines OUTPUTS: The smoothed array
NAME: NUM_TO_FUZZY PURPOSE: Converts a number to a fuzzy number PROPCEDURE: Converts a number (or array of numbers) to a fuzzy number (resp. array of fuzzy numbers with the same dimensions) A "fuzzy number" is a confidence interval around a given number. Given 1 number a0 (highest confidence case) and a [min,max] interval (lowest confidence case), the fuzzy number is an compromise beetween [amin,amax] and [a0, a0] according to a confidence level (0 to 1) for the number a0. ; CALLING SEQUENCE: afuzzy = num_to_fuzzy (a0, amin, amax, conf) INPUTS: a0 a non-complex number or array of numbers amin the minimum value for a confidence level 0 amax the maximum value for a confidence level 0 conf a confidence level, ranging from 0 (no confidence in the number a0) to 1 (total confidence in the number a0) OUTPUTS: A fuzzy number (structure with the form {low,high})
NAME: PHOTOCAL PURPOSE: Performs the Level 1 photometric calibration of an image from digital counts to mean solar brightness units CATEGORY: REDUCTION CALLING SEQUENCE: Result = PHOTOCAL (X,Hx,Cal,Stray,Vig,Dark,Hnew) INPUTS: X = Input uncalibrated image Hx = Header structure for X Cal = Photometric Calibration Structure Stray = Stray Light Calibration Structure Vig = Vignetting Calibration Structure Dark = Dark Image Calibration Structure OUTPUTS: Result = Calibrated image Hnew = New FITS header COMMON BLOCKS: SIDE EFFECTS: RESTRICTIONS: PROCEDURE: The LASCO calibration images will be derived from flat field images through each filter / polarizer at several known brightness levels and for several exposure times. The flat field images also contain information about the vignetting function, but this information will be backed out of the flat fields to create the calibration images used here. A dark field image will be used to subtract off any dark counts for that exposure time and to correct for any electronic bias that is introduced. The CCD response is linear. However, there may be non-linearity due to the shutter opening and closing times. This gives the following formula to convert a raw image, in counts, to a calibrated image, in photometric units. B = ( cal.B1 + cal.slope * ( xd - DN1 ) * ( cal.e1 / exptime ) ) * vig.img - stray.img DN1 = cal.img1 + ( ( cal.img3 - cal.img1 ) ) / ( cal.e3 - cal.e1 ) ) * ( exptime - cal.e1 ) xd = x - dark1 dark1 = dark.img1 + ( (dark.img2 - dark.img1) ) / (dark.e2 - dark.e1) ) * ( exptime - dark.e1 ) where, cal.e1 = exposure time for reference image #1 cal.B1 = brightness level of reference image #1 cal.slope = slope to convert DN to MSB for exposure e1 x = observed image in counts (DN) hx = FITS header associated with image, x exptime = current exposure time (in FITS header) DN1 = reference image at current exposure time dark1 = dark field image at current exposure time xd = observed image in counts with dark field subtracted stray.img = stray light image vig.img = vignetting correction image The vignetting correction is the reciprocal of the function in the range of [0,1] except that close to the occulting disk where the function is close to 0, the correction might be set to 0, rather than permit the very large correction. hnew = FITS header associated with calibrated image cal is an idl structure containing the following elements version = version identification (string) date = date generated (string) start = start date and time when valid (UTC string) end = end date and time when valid (UTC string) teles = telescope (integer) tel_conf = telescope configuration (integer) cam_conf = camera configuration (integer) e1 = exposure time at reference image #1 (float) e2 = exposure time at reference image #2 (float) (must be equal to e1) e3 = exposure time at reference image #3 (float) B1 = brightness level of reference image #1 (float) B2 = brightness level of reference image #2 (float) B3 = brightness level of reference image #3 (float) (must be equal to B1) img1 = reference image #1 (integer image) dark subtracted img2 = reference image #2 (integer image) dark subtracted img3 = reference image #3 (integer image) dark subtracted slope = slope of linear conversion (MSB/DN) (float image) dark is an idl structure containing the following elements version = version identification (string) date = date generated (string) start = start date and time when valid (UTC string) end = end date and time when valid (UTC string) teles = telescope (integer) tel_conf = telescope configuration (integer) cam_conf = camera configuration (integer) e1 = exposure time at reference image #1 (float) e2 = exposure time at reference image #2 (float) img1 = reference image #1 (integer image) dark subtracted img2 = reference image #2 (integer image) dark subtracted stray is an idl structure containing the following elements version = version identification (string) date = date generated (string) start = start date and time when valid (UTC string) end = end date and time when valid (UTC string) teles = telescope (integer) tel_conf = telescope configuration (integer) cam_conf = camera configuration (integer) img = stray light image (float image) vig is an idl structure containing the following elements version = version identification (string) date = date generated (string) start = start date and time when valid (UTC string) end = end date and time when valid (UTC string) teles = telescope (integer) tel_conf = telescope configuration (integer) cam_conf = camera configuration (integer) img = vignetting correction image (float image) MODIFICATION HISTORY: Written R.A. Howard, Naval Research Lab, 23 Apr 1993 Version 1 2 RAH, 12 Nov 1994 additional comments 3 RAH, 3 Oct 1995 added sub image capability header is in fits format adding dark image correction 4 RAH, 15 Nov 1995 added additional HISTORY to header @(#)photocal.pro 1.1 04 Apr 1996 LASCO IDL LIBRARY
PROJEcT: SOHO - LASCO NAME: READ_BLOCK PURPOSE: returns the block (array of pixel) at column i and row j CATEGORY: Missing Blocks CALLING SEQUENCE: block = read_block (image, i, j) INPUTS: image the image where to read the block onto i, j the column i and the row j of the block (i and j ranges from 0 to 31) KEYWORD PARAMETERS: SIDE the side of the square blocks (default is 32 pixels) OUTPUTS: The function returns the corresponding block, a 32 x 32 integer array MODIFICATION HISTORY: written by J.More, September 1996
PROJET: SOHO - LASCO NAME: READ_ZONE PURPOSE: Gets the missing zone surrounding a given list of missing blocks PROCEDURE: Gets the missing zone (array of pixel) surrounding a given list of missing blocks A missing zone is defined as the smallest rectangle of blocks that surrounds a cluster of missing blocks (likely to be neighbor missing blocks) but has no missing block on its border (its outermost rows and columns) For example, 1 single block leads to a 3x3 surrounding block zone CATEGORY: Missing Blocks CALLING SEQUENCE: zone = read_zone (image, list_miss_blocks [,zone_width, zone_height]) INPUTS: image the image containing the zone to read list_miss_blocks a list of missing blocks (or 1 block) that the missing zone will surround KEYWORD INPUT: rebindex : rebin index (see fuzzy_image.pro) OUTPUTS: zone the zone surrounding these blocks Optional OUTPUTS: zone_width, zone_height the dimentions of the zone, in pixels MODIFICATION HISTORY: Written by J.MORE, September 1996 Add of rebindex keyword on 28/01/2000 by A.Thernisien
NAME: REDUCE_DAILY PURPOSE: This procedure performs the reduction tasks that are done on a daily basis. CATEGORY: LASCO REDUCE CALLING SEQUENCE: REDUCE_DAILY INPUTS: None OPTIONAL INPUTS: STDate: A string in the format YYMMDD that defines the starting date to be processed. If not present, the routine looks at the dates in daily.dat ENDATE: A string in the format YYMMDD that defines the ending date to be processed. If not present, then only one date is processed KEYWORD PARAMETERS: LZ: If present the level 0 data are to be processed. The default is to process the quick look data. NOMED: Do not do daily median images NO_C3: Do not do C3 daily medians PROCEDURE: This procedure calls the routines to do the following tasks: check the monexp file for duplicates generate the daily median image generate PB and %P images All 4 telescopes are processed. EXAMPLE: To process the quick look files for June 1, 1998: REDUCE_DAILY,'980601' To process the level 0 files for June 1, 1998: REDUCE_DAILY,'980601',/lz MODIFICATION HISTORY: Written by: RA Howard, NRL, 6/19/98 NB Rich 6/23/98 Comment out make-movie calls NB Rich 11/06/98 Add DO_POLARIZE NB Rich 07/07/99 Fixed typo with 'endate' NB Rich 12/99 Add NOMED keyword NB Rich 01/00 Add NO_C3 keyword D Wang 12 Jul 00 Added /VIG,/PTF to DO_POLARIZ call NB Rich 11 Jan 01 Fix call to open weekly.dat NB Rich 13 Apr 01 Add NOREBIN to calls to MK_DAILY_MED NB Rich 31 Jan 02 Add /SH to spawn calls jake 030716 removing old commented out code fixing indentations @(#)reduce_daily.pro 1.8 07/16/03: LASCO IDL LIBRARY
NAME: REDUCE_IMAGE PURPOSE: Perform the pipeline processing for one file CATEGORY: REDUCTION CALLING SEQUENCE: REDUCE_IMAGE,File_name,Source INPUTS: File_name = Name of DDIS file to be processed Source = 0 for R/T processed at GSFC 1 for R/T processed at NRL 2 for Level 0/PB processed at NRL OUTPUTS: None OPTIONAL OUTPUTS: None COMMON BLOCKS: DBMS SIDE EFFECTS: Moves DDIS file, Creates FITS file PROCEDURE: Processes a new image created by DDIS and detected by the CRON job moves the image to a new directory for permanent storage. Log entries are written. MODIFICATION HISTORY: Written, RA Howard, NRL, 13 Oct 1995 Version 1 2 RAH 15 Nov 1995 Modified log output 3 RAH 14 Dec 1995 Corrected condition to call to reduce_level_1 @(#)reduce_image.pro 1.1 04 Apr 1996 LASCO IDL LIBRARY
NAME: REDUCE_IMG_HDR PURPOSE: This procedure appends information from the current image header to the header files in $LAST_IMG and in the current image directory. CATEGORY: REDUCTION CALLING SEQUENCE: REDUCE_IMG_HDR, Hdr INPUTS: Hdr = FITS header OPTIONAL INPUTS: None KEYWORD PARAMETERS: DAY_ONLY Only update current directory OUTPUTS: None OPTIONAL OUTPUTS: None MODIFICATION HISTORY: Written, RA Howard, NRL VERSION 1 rah 16 Dec 1995 2 rah 28 Dec 1995 Changed environment variable to LAST_IMG 3 rah 29 Mar 1996 Write info to date directory also 4 rah 4 Apr 1996 Modify filt/polar filed to be A6 from A5 5 rah 26 Aug 1996 Added FP WL and OS Num to listing 6 nbr 6 Mar 1997 Write info to catalogs/daily directory 7 sep 3 Sep 1997 Write info to catalogs/daily_combined directory 8 aee 21 Oct 1997 If level 1 or 2 image, write img_hdr.txt info only to the date directory. nbr 29 Aug 2000 - Write catalog files to $LAST_IMG instead of $IMAGES; Add DAY_ONLY keyword nbr 11 Oct 2000 - Write img_hdr.txt file in $IMAGES also if NE $LAST_IMG nbr 9 Apr 2003 - Modify for level 1 processing nbr 25 Aug 2003 - imghdr changes k.battams 6/03/2005 -- get correct format for Level-1 img_hdr's SCCS variables for IDL use @(#)reduce_img_hdr.pro 1.13 09/08/03 :NRL LASCO IDL LIBRARY
NAME: REDUCE_LEVEL_05 PURPOSE: Perform the Level 0.5 Processing CATEGORY: REDUCTION CALLING SEQUENCE: Result = REDUCE_LEVEL_05 (File_name,Fits_name,Source) INPUTS: File_name = Name of file to process in the format YYMMDD_HHMMSS.img Source = parameter indicating file source OPTIONAL INPUTS: Fits_name = If DB_ONLY is set, then use this file to create a database update file KEYWORD PARAMETERS: DB_ONLY If set, then only create database update file from input fits_name OUTPUTS: Fits_name = Name of FITS file created Result = 0 do process to level 1 1 don't process to level 1 OPTIONAL OUTPUTS: None COMMON BLOCKS: DBMS PROCEDURE: processes a compressed LEB image created by DDIS to level 0.5 the image is assumed to be located in the current directory level 0.5 consists of decompression remove readout port effect rotate image to put solar north at top of image make FITS file generate DBMS update records make gif file for lastimg_cx The level 0.5 image file is named according to the standard name convention in the subdirectory tree: $IMAGES/level_05/date/tel Note: if dark, cal lamp or continuous image then put in $IMAGES/misc/tel/[dark,lamp,cont]/date if header from Ground to Peripheral LP then put in $IMAGES/misc/leb/gnd/date MODIFICATION HISTORY: WRITTEN RA Howard, 3 October 1995 Version 1 rah 3 Oct 95 Initial release 2 rah 6 Nov 95 Add log output 3 rah 15 Nov 95 Modified log output 4 rah 11 Dec 95 Changed call to write_last_image to be fits header 5 rah 15 Dec 95 Changed call to rectify to be fits header 6 rah 11 Jan 96 Changed rectify to include solar north 7 rah 12 Jan 96 Added call to rectify P1, P2 coords 8 rah 17 Jan 96 Corrected handling of read_leb_image image read error 9 rah 29 Mar 96 Rearranged reduce_img_hdr to be after changing to date directory to be able to write img hdr also to date directory. Changed browse image to be 128 x 128 Changed browse name to form from fits Added call to REDUCE_STATISTICS Added call to fill up DBMS IMG_STATS 10 rah 03 Apr 96 Added DBMS update of leb_img_hdr & _ip Added non-hdr parameters to leb_img_hdr 11 rah 10 Apr 96 Only compute stats if image found 12 rah 15 Apr 96 Added call to REDUCE_REFCOORD 13 sep 04 Jun 96 Added compression_str to img_leb_hdr table Corrected insertions into img_ip table 14 sep 28 Jun 96 Added chmod 640 on .fts files 15 sep 17 Jul 96 Modified for new LEB hdr (obev145+) added version and fp_order to DB updates. 16 sep 02 Oct 96 added proc_time, p1row, p1col, p2row, p2col to DB updates. 17 rah 21 Oct 96 added fits_hdr in call to make_browse 18 nbr 11 Mar 97 print FITS_filename and directory 19 rah 23 Mar 97 moved REDUCE_REFCOORD and REDUCE_STATISTIC to always process, not just if DISPLAY Also, added call to CHECK_OBESUMERROR 20 sep 13 Jun 97 Modified for new LEB hdr (obev203+) 21 aee 27 Jun 97 Added unique_os field to img_leb_hdr 22 rah 18 Jul 97 Check for image summing/differencing 23 sep 14 Apr 98 Modified diskpath entry to use $IMAGES (always /net/corona/cplex..) 24 rah 12 Jun 98 Add monexp and dark calcs 25 nbr 31 Jul 98 Change diskpath to use $DSKPATH 26 nbr 22 Oct 98 Use LASCO_FITSHDR2STRUCT, not FITSHDR2STRUCT 27 nbr 09 Mar 99 Set a.dateorig='NULL' for img_leb_hdr table 28 nbr 12 Apr 99 Set chmod to 644 on .fts files nbr 29 Aug 00 - Change to SCCS version for ver; Use $LAST_IMG as location of link directory if different from $IMAGES 30 aee 21 Nov 00 Subtract lpulse from exp3 (and therefore from exptime) for cal lamp images on and after july 28, 1997. nbr 22 Jan 01 - Add door_cls output directory nbr 30 Nov 01 - Add DB_ONLY option nbr 11 Dec 01 - Fix ss variable definition nbr 1 Feb 02 - Add /SH to SPAWN calls jake 030721 added CROTA[12] keywords to EIT images (these keywords are added to LASCO in REDUCE_REFCOORD) jake 030804 replaced GET_SOHO_ROLL with GET_CROTA SCCS variables for IDL use ersion= '@(#)reduce_level_05.pro 1.29 08/04/03' ; LASCO IDL LIBRARY
NAME: REDUCE_LEVEL_1 PURPOSE: This procedure performs the standard pipeline processing to take the level 0.5 image to Level 1. *** Note: This procedure is now designed to operate without any calling procedure. Simply input a level_05 FITS filename with path and it will do the rest. - NBR, 8/4/00 CATEGORY: LASCO REDUCTION CALLING SEQUENCE: REDUCE_LEVEL_1, Fits_name INPUTS: Fits_name = Name of FITS file to process, including path OPTIONAL INPUTS: $RED_L1_PATH, $REDUCE_OPTS: environment variable for pipeline processing KEYWORD PARAMETERS: /REM_CR Perform cosmic ray removal algorithm - THIS OPTION IS NOT RECOMMENDED because it doesn't work very well /NO_VIG Do not apply vignetting correction /PIPELINE Process for pipeline (saves in pipeline directory, creates database entry) /RESET Read in calibration images (vignetting, mask, ramp, etc.) from file instead of using what is stored in the common block SAVEDIR = 'pathname' Directory to save output in. Default is current directory. OUTPUTS: Default: Writes FITS file in current directory or SAVEDIR (or $IMAGES if PIPELINE set) Writes ./reduce_level_1.log (or unique log file if PIPELINE set) Description of keywords in FITS header are at http://lasco-www.nrl.navy.mil/level_1/level_1_keywords.html OPTIONAL OUTPUTS: None COMMON BLOCKS: DBMS, REDUCE_HISTORY RESTRICTIONS: Must have LASCO IDL Library Must have environment $LASCO_DATA defined The REM_CR option is not currently supported outside of NRL *** Current versions of calibration files only tested for images observed before July 1998!!! *** Polarization processing or background removal is Level 2 PROCEDURE: Level 1 consists of calibrating for dark current flat field stray light distortion vignetting photometry (physical units) corrected time and position MODIFICATION HISTORY: Written RA Howard, NRL Version 1 rah 3 Oct 1995 Initial release 2 rah 15 Nov 1995 Modified log output 3 rah 21 Oct 1996 Added fits_hdr to make_browse 4 aee 23 Oct 1997 Added fits name error handling and camera case statement and modified the code to use C3_CALIBRATE instead of photocal. Also introduced environment variable REDUCE_L1_OPTS which must contain 'DBMS' in order to create a DB file. Set negative image intensity values to zeros. Also adds image info to the img_hdr.txt file. Also added stray light and distortion correction. nbr 5 Oct 1998 changed output directory; no database entry 5 nbr 1 Mar 1999 Added header updates from GET_IMG_LEB_HDR_UPDATES; added IMG_LEB_HDR for .db files; open .db file nbr 4 Aug 2000 - Update version recording; reconstruct FITS header for Level 1; compute roll, suncenter, time corrections nbr 7 Aug 2000 - Edit HISTORY fields nbr 26 Oct 2000 - Edit call to C3_CALIBRATE nbr 14 Nov 2000 - Add header field N_MISSING, REM_CR keyword nbr 12 Jan 2001 - Apply mask after warp nbr 25 Jan 2001 - Add bkg, mask_blocks, zblocks0 to common block; add MISSLIST to header nbr 15 Feb 2001 - Add C2 nbr 15 May 2001 - Change SOLAR_R to R_SUN in hdr nbr 31 May 2001 - Change $ANCIL_DATA to $LASCO_DATA nbr 8 Nov 2001 - Modify for use outside of pipeline; remove c3_cal_img COMMON block nbr 3 Dec 2001 - Make paths compatible with Windows SSW for GSV nbr 17 Dec 2001 - Make paths compatible with Windows SSW for GSV nbr 24 Jun 2002 - Use RED_L1_PATH for pipeline savedir and for log and db files; use yyyymmdd for output dir nbr 5 Jul 2002 - Change comment for CROTA; reinsert READPORT in header because is used in offset_bias.pro nbr 17 Sep 2002 - Use BSCALE and BZERO to save images as integers; add BLANK keyword; use .txt instead of .sav for c3[2]nullblocks nbr 9 Jan 2003 - mask_flag=0 for debugging nbr 14 Mar 2003 - Reinsert COMMON c3_cal_img for mask; don't get mask in this program; add fixwrap for summed images; convert only C3 Clear to type integer; use adjust_hdr_tcr() for time, roll, suncenter nbr 9 Apr 2003 - reduce_img_hdr DAY_ONLY if not pipeline nbr 14 Apr 2003 - Modify to do monthly images. nbr 16 May 2003 - Modify keyword comments nbr 11 Sep 2003 - Change img_leb_hdr db update 04.04.01, nbr - Use best available values post-interruption and note in header; obsolete TIME-OBS; rotate inverted images 04.04.08, nbr - Update for bkg images 05.07.25, nbr - Update/fix C3 mask implementation 05/07/28 KarlB - Change output directory structure Aug 1,05 KB - Another minor change to output dir ersion= '@(#)reduce_level_1.pro 1.36, 08/01/05' ; LASCO IDL LIBRARY
NAME: REDUCE_MAIN PURPOSE: Main program to search for new files created by DDIS to perform pipeline processing on. CATEGORY: REDUCTION CALLING SEQUENCE: REDUCE_MAIN, Src INPUTS: None OPTIONAL INPUTS: Src = 0 for processing R/T files at GSFC 1 for processing R/T files at NRL 2 for processing PB files at NRL KEYWORD PARAMETERS: Auto = if set then use closed_img_file if not set then use closed_img_file2 reduce_only -- for use by user reduce only. Nobody else should need it OUTPUTS: None OPTIONAL OUTPUTS: None COMMON BLOCKS: DBMS SIDE EFFECTS: RESTRICTIONS: PROCEDURE: EXAMPLE: MODIFICATION HISTORY: Written RA Howard, NRL Version 1 RAH, 6 Nov 1995, Initial Release Version 2 rah, 15 Nov 1995, Added closed_img_file flag file Modified log printing Version 3 rah, 18 Nov 1995, Added source as optional parameter Version 4 rah, 7 Dec 1995, Minor corrections to version Version 5 rah, 4 Jan 1996, Correction to handling of .mem files Version 6 rah, 15 Jan 1996, Minor correction to file name and get_lun,luf Version 7 rah, 18 Jan 1996, Corrected handling of contents of closed_img_file to correct FP files Version 8 rah, 09 Apr 1996, Added check of letter extension to filename Version 9 rah, 19 Apr 1996, More mods to account for letter extension Version 10 rah, 27 Apr 1996, Added error handling opening closed_img_file Version 11 rah, 08 May 1996, Added creation of file for update list Version 12 nbr, 08 Apr 1997, Changed target directories for .log and .db files Version 13 rah, 26 Aug 1997, Error handling opening closed_img_file Version 14 rah, 27 Sep 1997, Handling of files created out of time order Version 15 rah, 16 Jan 1998, Process mem files first before img files Version 16 nbr, 03 Jun 1998, Remove old .img dirs from previous session Version 17 rah, 19 Oct 1998, Remove old log files for GSFC processing Version 18 nbr, 4 Jan 1999, Add row to .db file to remove QL LEB_HDR Version 19 nbr, 20 Oct 1999, Send message to user if gap between current and last .img files is > 1 hour; add check for good date Version 20 nbr, 4 Apr 2000, Halt processing of QL for db update at 2AM; move save lastdate.sav Version 21 nbr, 24 Jul 2000, Add /SH to spawn commands Version 22 nbr , 17 Oct 2001, Change filename sent in email for db update halt Version 23 nbr, 1 Feb 2002 - Use /noshell keyword for two spawn commands; move chmod updates to end; Add /SH to SPAWN calls Version 23 nbr, 4 Feb 2002 - Move chmod to correct location jake, 030813 - changed mail's to /usr/ucb/mail's Karl 14 Oct 2004 - Add reduce_only keyword to specify LASCO_DATA variable PLEASE CORRECTLY USE TABS FOR INDENTATION POORLY INDENTED CODE IS HARD TO READ @(#)reduce_main.pro 1.30 10/14/04 :LASCO IDL LIBRARY
NAME: REDUCE_RECTIFY PURPOSE: function procedure to rectify the CCD image to account for the port that the image has been read out CATEGORY: CALLING SEQUENCE: x = REDUCE_RECTIFY (a,h) INPUTS: a = input image h = FITS header OUTPUTS: x = rectified image h will be modified to reflect the rectification OPTIONAL OUTPUT PARAMETERS: COMMON BLOCKS: SIDE EFFECTS: RESTRICTIONS: PROCEDURE: rectifies an image taken with the CCD camera to be as though the observer were looking through the CCD. The telescope is assumed to be an erecting one. If !order is 0, the image will be displayed on the screen properly. MODIFICATION HISTORY: rah 3/16/93 revised to use idl built in function, rotate rah 11/7/95 revised to accept readport as string or number V4 rah 11/7/95 revised to accept header as FITS header V5 rah 1/11/96 revised to rectify image for !order=0, origin at bottom left of image V6 rah 1/14/96 EIT doesn't need a rotation, it is an inverting telescope V7 rah 1/30/96 Correction to C1 V8 rah 3/6/96 Correction to C1 orientation and "R" coordinates SCCS variables for IDL use @(#)reduce_rectify.pro 1.1 04 Apr 1996 LASCO IDL LIBRARY
NAME: REDUCE_RECTIFY_P1P2 PURPOSE: Generate R1 and R2 coordinates from the P1,P2 CCD coordinates that simulate coordinates that would have been used if the CCD had been read out in the rectified position. CATEGORY: LASCO REDUCTION CALLING SEQUENCE: REDUCE_RECTIFY_P1P2,Effport,Hdr INPUTS: Effport: A character 'A' to 'D' indicating the CCD readout port, corrected for the telescope position on the S/C Hdr: The FITS image header OUTPUTS: None OPTIONAL OUTPUT PARAMETERS: None COMMON BLOCKS: None SIDE EFFECTS: Adds parameters R1COL, R1ROW, R2COL, R2ROW, EFFPORT to the FITS headers RESTRICTIONS: If the port is not A..D then the values of R1 and R2 are just set to P1 and P2 If R1 is less than 1, the R1 and R2 coordinates are adjusted accordingly PROCEDURE: MODIFICATION HISTORY: Version 1 RA Howard 11 Jan 96 Written @(#)reduce_rectify_p1p2.pro 1.1 04 Apr 1996 LASCO IDL LIBRARY
NAME: REDUCE_REFCOORD PURPOSE: Converts coordinate system to the standard coordinate system using the FITS keyword notation CATEGORY: LASCO DATA REDUCTION CALLING SEQUENCE: REDUCE_REFCOORD, Hdr, Level INPUTS: Hdr: FITS header Level: String indicating level to define coordinate system: '0.5', '1.0', '2.0' SIDE EFFECTS: Keywords are added to the FITS header, where n=1,2: CRPIXn, CRVALn, CROTAn, CDELTn, CTYPEn, CUNITn PROCEDURE: The 12 FITS keywords are computed for each of the processing levels and added to the header. The keywords for one level do not require that the keywords for the preceeding level are present. SUBROUTINE CALLS: FXPAR, FXADDPAR, GET_SUN_CENTER, GET_SEC_PIXEL MODIFICATION HISTORY: RA Howard, NRL, 14 April 1996 Vers 1 14 Apr 1996, Initial Release 2 23 May 1997, All levels use solar coords 030710 jake added lines to account for nominal_roll_attitude 030716 jake using get_soho_roll instead of get_crota 030804 jake replaced GET_SOHO_ROLL with GET_CROTA @(#)reduce_refcoord.pro 1.6 08/04/03 LASCO IDL LIBRARY
NAME: REDUCE_TRANSFER PURPOSE: Peform the transfer of an image file created by DDIS into $LEB_IMG to the appropriate subdirectory under $LAST_IMG CATEGORY: REDUCTION CALLING SEQUENCE: Result = REDUCE_TRANSFER (File_name, Source) INPUTS: File_name = Name of DDIS file to transfer Source = parameter giving source of data OPTIONAL INPUTS: None KEYWORD PARAMETERS: None OUTPUTS: Result = 0 process to level 0.5 1 don't process further OPTIONAL OUTPUTS: None COMMON BLOCKS: SIDE EFFECTS: None PROCEDURE: The subdirectories under $RAW are: $RAW/YYMMDD if .img file The subdirectories under $IMAGES are not used in the procedure. The subdirectories under $LAST_IMG are: $LAST_IMG/misc/leb/mem/YYMMDD if memory dump $LAST_IMG/misc/leb/gnd/YYMMDD if ground to peripheral header Also enters the appropriate information into the data base MODIFICATION HISTORY: Written, RA Howard, NRL Version 1 RAH 13 Oct 1995 Initial Release 2 RAH 15 Nov 1995 Modified log printouts 3 RAH 18 Mar 1996 Added leb summing to DB 4 RAH 03 Apr 1996 Moved DBMS update of hdr & ip to 05 5 RAH 09 Apr 1996 Check validity of image date 6 RAH 29 Oct 1996 Added -f option to mv to force the move 7 NBR 19 May 1997 Use 'RAW' env var to place .img files 8 NBR 24 Dec 1997 Handle 0-length .img files 9 NBR 03 Feb 1999 Change upper bound of validdate to today + 2 NBR 29 Aug 2000 - Use $LAST_IMG instead of $IMAGES NBR, 31 Jan 2002 - Add /SH to spawn calls @(#)reduce_transfer.pro 1.10 02/01/02 ; NRL LASCO IDL LIBRARY
reformat.pro Run the reformatting code in the EOF SCCS variables for IDL use @(#)reformat.pro 1.1 05/14/97 :NRL Solar Physics
NAME: SOLAR_NORTH_UP PURPOSE: Rotates the image to put the solar north at the top of the image. CATEGORY: REDUCTION CALLING SEQUENCE: Result = SOLAR_NORTH_UP (Img, Tel) INPUTS: Img = Image array, corrected for readout port telescope = int representing telescope (0,1,2,3) -or- string representing telescope OPTIONAL INPUTS: None KEYWORD PARAMETERS: None OUTPUTS: Result = Image array, corrected for telescope orientation OPTIONAL OUTPUTS: None COMMON BLOCKS: SIDE EFFECTS: RESTRICTIONS: assumes that the images are already rectified so that the readout port effect has been taken care of To visualize the images properly, the parameter, !order, should be set =1 PROCEDURE: EXAMPLE: MODIFICATION HISTORY: Written, RA Howard, NRL VERSION 1 rah 3 Nov 1995 VERSION 2 rah 2 Jan 1996 EIT changed from 1 to 0 nbr, 3 Jan 2002 - Can use string camera as input @(#)solar_north_up.pro 1.2 01/03/02 LASCO IDL LIBRARY
NAME: SPLIT_QKL PURPOSE: Pre-process QKL files to split them up if they have gaps CATEGORY: REDUCTION CALLING SEQUENCE: SPLIT_QKL, yymmdd INPUTS: date = Date to be processed OPTIONAL INPUTS: None KEYWORD PARAMETERS: None OUTPUTS: None OPTIONAL OUTPUTS: None COMMON BLOCKS: UNPACK_SCIENCE PROCEDURE: A QKL file is broken into smaller files, for which the times in consecutive packets differ by no more than 30 secs. MODIFICATION HISTORY: WRITTEN 4 Nov 1998 by Nathan Rich, Interferometrics/NRL 12 Nov 1998 NBR change qkl allowed gap to 30 sec 30 Nov 1998 RAH Check for undefined input date. 020312 Jake Added /SH to SPAWN SCCS variables for IDL use @(#)split_qkl.pro 1.7 03/12/02 :NRL Solar Physics
PROJET: SOHO - LASCO NAME: STRMAP2MB PURPOSE: Convert a 'string map' to a missing block image map CATEGORY: missing blocks CALLING SEQUENCE: INPUTS: sm : string coded MB map sx,sy : size in pixel of the original image OPTIONAL INPUTS: rebindex : only necessary if 'full' parameter is passed rebin factor of the original image: 1 : full resolution 2 : half resolution 4 : quarter resolution 8 : 8th resolution OUTPUTS: mb : missing block map mask OPTIONAL OUTPUTS: KEYWORD INPUT: full : set to [frame_start_X,frame_start_Y] in 1024 CCD pix if image is not full field MODIFICATION HISTORY: V1.0 Writen by A.Thernisien on 18/07/2001 CVSLOG: $Log: strmap2mb.pro,v $ Revision 1.2 2002/07/11 07:24:19 arnaud Insertion of the Log in each header
NAME: UNPACK_ALL_SCIENCE PURPOSE: Main program to unpack all science TM files from DACS, or ECS into raw DDIS files CATEGORY: REDUCTION CALLING SEQUENCE: UNPACK_ALL_SCIENCE, Date INPUTS: None OPTIONAL INPUTS: Date = Date to be processed, YYMMDD If date is not present, then all science files in $LEB_IMG will be processed. KEYWORD PARAMETERS: /QKL Set to process only QKL files OUTPUTS: None OPTIONAL OUTPUTS: None COMMON BLOCKS: unpack_science SIDE EFFECTS: RESTRICTIONS: PROCEDURE: EXAMPLE: MODIFICATION HISTORY: Written RA Howard, NRL Version 1 RAH, 21 Dec 1995, Initial Release Version 2 RAH, 23 Dec 1995, Changed to read in QKL and REL files Version 3 RAH, 25 Dec 1995, Added call to reduction processing Version 4 RAH, 28 Dec 1995, Removed call to reduction processing Version 5 SEP, 14 Jan 1996, Sort QKL/REL by time Version 6 RAH, 19 Jan 1996, Modified FP file names Version 7 RAH, 26 Jan 1996, Corrected write if nwds=0 Version 8 RAH, 22 Apr 1996, Mods for TM returning after 0 or FF Version 9 RAH, 01 Aug 1996, Added check for end of packet Version 10 RAH, 27 Aug 1996, Correct ddis_name for duplicate times Version 11 SEP, 12 Dec 1996, Sort High & Low packets by time Version 12 NBR, 29 Dec 1997, Ensure pkidwd is less than pktsize in UNPACK_SCIENCE_PACKET Version 13 NBR, 13 May 1998, Fix findfile to not find *.SDU files Version 14 NBR, 4 Nov 1998, Call SPLIT_QKL.pro for QKL files Version 15 NBR, 16 Nov 1998, Added QKL keyword Version 16 NBR, 11 Dec 1998, Do not call SPLIT_QKL with QKL keyword Version 17 NBR, Feb 2000, Fix unpack_science_packet again Version 18 NBR, May 2000, Fix endelse in unpack_science_packet Version 19 NBR, 31 Jan 2002, Add /SH to spawn calls 02/01/02 @(#)unpack_all_science.pro 1.15 LASCO IDL LIBRARY
NAME: UNPACK_LZ_SCIENCE PURPOSE: Main program to unpack all science TM files from Level-0 disks into raw DDIS files CATEGORY: REDUCTION CALLING SEQUENCE: UNPACK_LZ_SCIENCE [, filenames] INPUTS: None OPTIONAL INPUTS: Name of d01 file[s] to be processed filenames STR or STRARR Ex.: '70750101.d01' KEYWORD PARAMETERS: None OUTPUTS: None OPTIONAL OUTPUTS: None COMMON BLOCKS: unpack_science SIDE EFFECTS: RESTRICTIONS: PROCEDURE: EXAMPLE: MODIFICATION HISTORY: Written RA Howard, NRL Version 1 RAH, 21 Dec 1995, Initial Release Version 2 RAH, 23 Dec 1995, Changed to read in QKL and REL files Version 3 RAH, 25 Dec 1995, Added call to reduction processing Version 4 RAH, 28 Dec 1995, Removed call to reduction processing Version 5 SEP, 14 Jan 1996, Sort QKL/REL by time Version 6 RAH, 19 Jan 1996, Modified FP file names Version 7 RAH, 26 Jan 1996, Corrected write if nwds=0 Version 8 RAH, 28 Feb 1996, Mods for level-0 Version 9 RAH, 21 Apr 1996, Corrected when TM comes back after off Version 10 RAH, 04 Aug 1996, Don't process if date < May 1996 because getting disks out of order Also check for end of packet Version 11 RAH, 29 Aug 1996, Correct ddis_name for duplicate times Version 12 RAH, 03 Sep 1996, Correct for time jumps Version 13 RAH, 04 Feb 1997, Correct high/low rate packet lengths Version 14 NBR, 3 Aug 1998, Allow optional input of search parameter Version 15 NBR, 28 Jan 1998, Check for gaps in packet file Version 16 NBR, 13 Sep 1999, Stop for gaps of 10 min. or more Version 17 NBR, Feb 2000, 'first GT 0' instead of 'keyword_set(first)'; If apid NE '88ac' or '88af' then skip packet and go on to the next Version 18 NBR, Apr 2000, Fix case where most of packet is 255 (skip the packet) Version 19 NBR, 31 Jan 2002 - Add /SH to spawn calls 03.10.09, nbr - Allow input of d01 filename(s) 03/12/18 - KB - Changed findfiles() to findfiles('*d01') in Line #610 @(#)unpack_lz_science.pro 1.28 12/18/03 LASCO IDL LIBRARY
NAME: UNPACK_REDUCE_MAIN PURPOSE: Main program to perform pipeline processing on a file created by unpack_science CATEGORY: REDUCTION CALLING SEQUENCE: UNPACK_REDUCE_MAIN, Filename, Src INPUTS: Filename = file name to process Src = 1 for processing QL files at NRL 2 for processing Level-0 files at NRL OPTIONAL INPUTS: None KEYWORD PARAMETERS: None OUTPUTS: None OPTIONAL OUTPUTS: None COMMON BLOCKS: DBMS SIDE EFFECTS: RESTRICTIONS: PROCEDURE: EXAMPLE: MODIFICATION HISTORY: Written RA Howard, NRL Version 1 RAH, 25 Dec 1995, Modified from REDUCE_MAIN, V3 Version 2 NBR, 31 Jan 2002 - Add /SH to spawn calls @(#)unpack_reduce_main.pro 1.2 02/01/02 LASCO IDL LIBRARY
NAME: UPDATE_HDR_ROLLXY PURPOSE: This function updates a level-1 hdr with the solar roll angle, sun xpos and sun ypos obtained from stars and also their running median equivalents. It also writes the number of stars used to calculate the center and total number of stars that could have been used. Center values from time files start with 0 but in FTS header starts with 1, therefore 1 is added to these when updating the header. CATEGORY: LASCO_ANALYSIS CALLING SEQUENCE: Result = UPDATE_HDR_ROLLXY (Hdr) INPUTS: Hdr: A LASCO header structure OUTPUTS: 1: Update Success 0: Update Failure PROCEDURE: Update the hdr using the time files as defined in the c*_rollxy_yymmdd.dat format files. MODIFICATION HISTORY: Written by: 98/10/06 Ed Esfandiari
PROJET: SOHO - LASCO NAME: WHERE2D PURPOSE: Performs the same job as the "where" function but for a 2D array PROCEDURE: Performs the same job as the "where" function, for a 2-dimentional array, but returns explicits a list of 2-D (x and y) subscripts, instead of 1-D subscripts for "where" Afterward, a 2-D subscripts array can be subscripted using the resulting subscript array w2d from where2d, with a sequence such as : arr( w2d(0,*), w2d(1,*) ) (instead of arr(w) with the where function) CATEGORY: Detection CALLING SEQUENCE: index2d = where2d(array [, count] ) INPUTS: array An array (or more generally an array expression) where the function will determine the nonzero elements OUTPUTS: The result is the list of 2-D subscripts of the nonzero elements, i.e.: _ if there are nonzero elements : a 2 x n array the first and second columns contains respectively the x and y subscripts of the non-zero elements of the array _ if there are NO nonzero elements, the result is the scalar -1 Optional OUTPUTS: count the number of nonzero elements found by where2d (=number of rows of the output list, or 0 if empty) MODIFICATION HISTORY: v1.0 written by J.More, September 1996
PROJET: SOHO - LASCO NAME: WRITE_BLOCK PURPOSE: sets the block at column i and row j PROCEDURE: sets the block (array of pixels) at column i and row j to a given array of values, or to a given constant value CATEGORY: Missing Blocks CALLING SEQUENCE: write_block, image, i, j, block INPUTS: image the image where to write the block (image is both an input and a output) i, j the column i and the row j of the block to change (i and j ranges from 0 to 31) block the block (dim : size x size) to overwrite; it can be : _ a integer array _ a scalar value, which leads to a constant array KEYWORD PARAMETERS: SIDE the side of the square blocks (default is 32 pixels) OUTPUTS: The block (i,j) on image is overwritted (image is both an input and a output) MODIFICATION HISTORY: written by J.More, September 1996
NAME: WRITE_CLOSED PURPOSE: This procedure writes the name of the latest *.img file located in $LEB_IMG into closed_img_file2. This file is used by REDUCE_MAIN. CATEGORY: LASCO DATA REDUCTION CALLING SEQUENCE: WRITE_CLOSED OPTIONAL INPUTS: Nfiles: If this parameter is present, the file name of the nfile-th file will be written. Otherwise the default is to write the name of the latest .img file OUTPUTS: This procedure creates the file $LEB_IMG/closed_img_file2 EXAMPLE: Write the file name of the latest file in $LEB_IMG: WRITE_CLOSED Write the file name of the 2nd file in $LEB_IMG: WRITE_CLOSED,2 MODIFICATION HISTORY: Written by: RA Howard, NRL, 23 Dec 1995 Version 2 RAH 10 Apr 1996 Added parameter to write nfile/th name @(#)write_closed.pro 1.2 21 Apr 1996 LASCO IDL LIBRARY
NAME: WRITE_LAST_IMG PURPOSE: Create GIF image of the last real time image processed so that xv can then read and display it. CATEGORY: REDUCTION CALLING SEQUENCE: WRITE_LAST_IMG,Img,Hdr INPUTS: Img = Input Image array Hdr = FITS header OPTIONAL INPUTS: None KEYWORD PARAMETERS: None OUTPUTS: None OPTIONAL OUTPUTS: None COMMON BLOCKS: None SIDE EFFECTS: None RESTRICTIONS: This must be done with IDL haveing an X window display. PROCEDURE: Scales the image to not larger than 512 x 512, and creates a GIF image with annotation along the side EXAMPLE: MODIFICATION HISTORY: Written, RA Howard, NRL VERSION 1 rah 9 Nov 1995 VERSION 2 rah 16 Nov 1995 Conversions added VERSION 3 rah 29 Nov 1995 Modified layout VERSION 4 rah 11 Dec 1995 Modified Detector conversion VERSION 5 rah 12 Jan 1996 Changed assumption to be !order = 0 Added R1 and R2 in place of P1, P2 VERSION 6 rah 19 Apr 1996 Modified scaling of EIT image Corrected display of PIXSUM to include LEB VERSION 7 rah 23 May 1996 Corrected handling of images outside of chip VERSION 8 rah 22 Jul 1996 Corrected handling of cals > 1024 lines VERSION 9 rah 8 Oct 1996 Added subtraction of background model VERSION 10 sep 18 Jun 1997 Changed call for new OFFSET_BIAS() VERSION 11 nbr 28 Oct 1998 Use current year for background image VERSION 12 rah 3 Mar 1999 Added test for C2/3 Cont RO and Dark VERSION 13 nbr 23 Mar 1999 Change header to structure before calling REDUCE_STD_SIZE VERSION 14 nbr 29 Sep 1999 Change min/max for C2 and C3 V 15 nbr Feb 2000 Use ANY_YEAR, new min/max for C2 nbr, 31 Jan 2001 - Do not use ANY_YEAR for C2 nbr, 21 Oct 2001 - Move placement of Logo nbr, 31 Jan 2002 - no change @(#)write_last_img.pro 1.24 08/11/03 :LASCO IDL LIBRARY
PROJET: SOHO - LASCO NAME: WRITE_ZONE PURPOSE: Writes a missing zone PROCEDURE: Writes a missing zone (array of pixel) surrounding a given list of missing blocks onto an image A missing zone is defined as the smallest rectangle of blocks that surrounds a cluster of missing blocks (likely to be neighbor missing blocks) but has no missing block on its border (its outermost rows and columns) For example, 1 single block leads to a 3x3 surrounding block zone CATEGORY: Missing Blocks CALLING SEQUENCE: write_zone, image, list_miss_blocks, zone INPUTS: image the image where to write the zone onto (image is both an input and an output) list_miss_blocks a list of missing blocks (or 1 block) defining the missing zone zone an array of pixels to overwrite onto the image KEYWORD INPUT: rebindex : rebin index (see fuzzy_image.pro) OUTPUTS: zone is overwritten onto image (image is both an input and an output) MODIFICATION HISTORY: Written by J.MORE, October 1996 Add of rebindex keyword on 28/01/2000 by A.Thernisien
NAME: REDUCE_STATISTICS PURPOSE: This procedure generates image statistics for the level 0.5 processing. CATEGORY: LASCO REDUCTION CALLING SEQUENCE: REDUCE_STATISTICS, Img, Hdr INPUTS: Img: The 2D image to compute statistics on. Hdr: A FITS header OUTPUTS: Hdr: The FITS header will have additional keywords added. PROCEDURE: Generates the following statistical quantities: minimum value not equal to 0 maximum value not equal to saturated (16383) number of zero pixels percentage of saturated pixels percentile values for 1%, 10%, 25%, 75%, 90%, 95%, 98% 99% mean of image standard deviation of image MODIFICATION HISTORY: Written by: RA Howard, NRL, 20 Mar 1996 Version 2 RAH, 19 Apr 1996 Made low a long word V3 RAH, 18 Jul 1997 Added check for data type for maximum @(#)reduce_statistics.pro 1.4 07/23/97 LASCO IDL LIBRARY
NAME: STD_INT_SCALE PURPOSE: Scale the intensities of the input image into DN/sec, accounting for the bias in case of summing. CATEGORY: LASCO REDUCTION CALLING SEQUENCE: Result = STD_INT_SCALE(Img,Hdr) INPUTS: Img = Input Image array. Hdr = FITS header KEYWORDS: None OUTPUTS: The function returns a floating point image. PROCEDURE: The input header is examined to extract the on-chip and off-chip summing parameters, and the exposure time. The appropriate bias value is subtracted off the image and then the resultant is divided by the exposure time. MODIFICATION HISTORY: Written, RA Howard, NRL, 22 October 1996 @(#)std_int_scale.pro 1.1 10/22/96 LASCO IDL LIBRARY
NAME: REDUCE_STATISTICS2 PURPOSE: This procedure generates image statistics for the level 1 processing. CATEGORY: LASCO REDUCTION, modified CALLING SEQUENCE: REDUCE_STATISTICS2, Img, Hdr INPUTS: Img: The 2D image to compute statistics on. Hdr: A FITS header KEYWORDS: SATMAX set equal to value to be considered saturated (upper cutoff) SATMIN sat equal to value to be considered minimum cutoff OUTPUTS: Hdr: The FITS header will have additional keywords added. PROCEDURE: Generates the following statistical quantities: minimum value not equal to 0 maximum value not equal to saturated (input value or max of image) number of zero pixels percentage of saturated pixels percentile values for 1%, 10%, 25%, 75%, 90%, 95%, 98% 99% mean of image standard deviation of image MODIFICATION HISTORY: Written by: NB Rich, NRL -- Copied from REDUCE_STATISTICS.PRO by RA Howard NBR, 1 Sep 1998 Make generic, change name, add sat input NBR, 19 Jan 2001 - Change value of DATASAT keyword in output NBR, 29 Aug 2002 - Add SATMAX keyword in input and change handling of this value; add SATMIN; add NDATASAT, DSATMIN, NDSATMIN in output NBR, 11 Mar 2003 - Do percentiles before truncation if SATMAX set 03/14/03 @(#)reduce_statistics2.pro 1.3 LASCO IDL LIBRARY
lasco_mk_html_help.pro
on
Wed Aug 17 12:22:01 2005.