This page was created by IDL
lasco_mk_html_help.pro on
Fri Jan 12 09:28:47 2007.
NAME:
ADJUST_DATE_OBS
PURPOSE:
This function returns a structure of two string elements containing the
adjusted date-obs and time-obs for a given C1, C2, or C3 image header.
c2_time_offsets.dat file is used to get the time offset using first
value extend, interpolation, or last value extend. It then calculates
the corrected date-obs and time-obs and returns them.
CATEGORY:
LASCO DATA_ANAL
CALLING SEQUENCE:
adj = adjust_date_obs(hdr)
INPUTS:
hdr: A C1, C2, or C3 image header
OPTIONAL INPUTS:
verbose: print diagnostic messages.
adj = adjust_date_obs(hdr,/verbose)
OUTPUTS:
A two element structure of DATE and TIME containing the adjusted
DATE_OBS and TIME_OBS.
Example:
hdr.DATE_OBS = '1998/01/01'
hdr.TIME_OBS = '00:10:11.181'
adj = adjust_date_obs(hdr)
adj.DATE = '1998/01/01'
adj.TIME = '00:13:06.590'
MODIFICATION HISTORY:
Written by: Ed Esfandiari, Feb 1999
7/24/00, nbr - Add SCCS version, reduce_history commmon block
11. 6.01, nbr - Use OPENR instead of OPENU
11.30.01, nbr - Change fnm for windows SSW compatibility
7. 5.02, nbr - Fix SCCS version syntax
09/22/05 Ed Esfandiari - Check hhdr and if time_obs='' assume level-1
file and do not adjust date_time (already adjusted).
@(#)adjust_date_obs.pro 1.8, 09/22/05 - NRL LASCO IDL LIBRARY
Name:
ADJUST_HDR_TCR
Purpose:
To return an IDL structure containing corrected date-obs, sun-center, and roll-angle
for a input level 0.5 image header. These can then be used to adjust the level-1 image
headers in the level-1 processing.
Input Parameters:
HDR - A C1, C2, C3, or C4 (EIT) header. For C1 and C4, only the returned
date-obs is valid (roll is set to zero and center is not changed).
Output:
None
RETURN VALUE: - This function returns an IDL structure containing the following tags:
DATE: adjusted date-obs (string)
TIME: adjusted time-obs (string)
ERR : delta-erros from the time_correction routine (string)
XPOS: adjusted x-center (float)
YPOS: adjusted y-center (float)
ROLL: roll angle (float) degrees
Keywords:
VERBOSE - If set, print out information from various steps of the processing.
Calling Sequence:
adj = ADJUST_HDR_TCR(hdr,/verbose)
History:
2003 March 11 - Ed Esfandiari (first version).
2003 March 11, nbr - Add version info to header; change path derivation of data files
2004 April 1 , nbr - Adjust HISTORY kewyords for header
2004 July 17, nbr - good thru March 31, 2004
2004 Oct 4, nbr - good thru Aug 15, 2004
2004 Nov 24, AEE - read in last day from a .sav file instead of hard coded date.
2005 Jan 25, AEE - changed linterp call linear_interp.
ersion= '@(#)adjust_hdr_tcr.pro 1.6, 11/24/04 using: ' ; LASCO IDL Library (NRL)
NAME:
BK
PURPOSE:
This function returns a K-coronal image from the total B image by
subtracting off the F-coronal model.
CATEGORY:
DATA_ANAL
CALLING SEQUENCE:
Result = BK(Img,Hdr)
INPUTS:
Img: Array containing an image of total brightness. It is the output
from level 1 processing (for polarizer=clear)
Hdr: FITS image header
OUTPUTS:
This routine returns an image of the K-brightness.
MODIFICATION HISTORY:
Written by: R.A. Howard, NRL, 6 Nov 1996
@(#)bk.pro 1.1 10/04/96 LASCO IDL LIBRARY
NAME:
C2_DISTORTION
PURPOSE:
This function returns distance in arcseconds, given distance
in pixels.
CATEGORY:
DATA_ANAL
CALLING SEQUENCE:
RESULT = C2_DISTORTION(data)
INPUTS:
Data: distances in pixels
OUTPUT:
Result: distances in arcseconds
OPTIONAL OUTPUTS:
None
PROCEDURE:
Given the distance between the sun center and a point (x, y)
on the CCD, in pixels, this function returns the distance to
(x, y) in arcseconds. This function is returns a position
accurate to within less than one pixel, for all possible
distances. However, this function does not work as well for
points in the same quadrant as the post supporting the
occulter.
MODIFICATION HISTORY:
Written by: D.A. Biesecker, 24 Nov 1998
Ed Esfandiari 24 Nov 1998 - used DISTORTION_COEFFS to
get the coefficients.
NAME:
C2_WARP
PURPOSE:
This function distorts a C2 image and returns it.
CALLING SEQUENCE:
Result = C2_WARP(Image,Header)
INPUTS:
Image : C2 image to be distorted
Header: C2 image header
OUTPUTS:
The distorted image is returned. Control points at every 32 pixels
are used for distortion.
COMMON BLOCKS:
NONE
MODIFICATION HISTORY:
Written Ed Esfandiari, NRL
Version 1 aee 19 Nov 1998 Initial release (based on C3_WARP)
aee 24 Nov 1998 changed get_sun_center call to occltr_cntr.
dw 10 Dec 1998 Corrected handling of summed images
NBR 24 Aug 2000 Switch x/y and x0/y0 around in call to WARP_TRI;
Add reduce_history COMMON block
KNOWN BUGS:
1. Subfield images are not handled correctly - dw
ersion= '@(#)c2_warp.pro 1.4 08/24/00' ; LASCO IDL LIBRARY
NAME:
C3_DISTORTION
PURPOSE:
This function returns distance in arcseconds, given distance
in pixels.
CATEGORY:
DATA_ANAL
CALLING SEQUENCE:
RESULT = C3_DISTORTION(data)
INPUTS:
Data: distances in pixels
OUTPUT:
Result: distances in arcseconds
OPTIONAL OUTPUTS:
None
PROCEDURE:
Given the distance between the sun center and a point (x, y)
on the CCD, in pixels, this function returns the distance to
(x, y) in arcseconds. This function is returns a position
accurate to within less than one pixel, for all possible
distances. However, this function does not work as well for
points in the same quadrant as the post supporting the
occulter.
MODIFICATION HISTORY:
Written by: D.A. Biesecker, 29 September 1996
10/5/98 by N B Rich use coefficients from A. Llebaria
11/24/98 Ed Esfandiari used DISTORTION_COEFFS to get the coefficients.
@(#)c3_distortion.pro 1.2 05/14/97 :NRL Solar Physics
NAME:
C3_WARP
PURPOSE:
This function distorts a C3 image and returns it.
CALLING SEQUENCE:
Result = C3_WARP(Image,Header)
INPUTS:
Image : C3 image to be distorted
Header: C3 image header
OUTPUTS:
The distorted image is returned. Control points at every 32 pixels
are used for distortion.
COMMON BLOCKS:
reduce_history
SIDE EFFECTS:
changes cmnver (procedure and version info) in reduce_history common block
MODIFICATION HISTORY:
Written Ed Esfandiari, NRL
Version 1 aee 28 Oct 1997 Initial release
aee 24 Nov 1998 changed get_sun_center call to occltr_cntr.
dw 10 Dec 1998 Corrected handling of summed images
NBR 24 Aug 2000 Switch x/y and x0/y0 around in call to WARP_TRI;
Add reduce_history COMMON block
NBR, 6 Nov 2001 - Simplify header handling
NBR, 14 Mar 2003 - Add subfield functionality
KNOWN BUGS:
ersion= '03/14/03 @(#)c3_warp.pro 1.7' ; NRL LASCO IDL LIBRARY
Project : SOHO-LASCO/EIT Name : cr_rem_array Purpose : Remove cosmic rays from LASCO/EIT images Explanation : This procedure removes cosmic rays from an array previously defined in the idl session by first using statistical techniques to identify regions containing cosmic rays (or stars) and then replaces the pixel values in that region with new values determined by taking the average of column and row fits across the region based on neighboring points. Statistical noise based upon the quality of the fit to the neighboring data is added to the fit to give realistic local variation for aesthetic purposes. Syntax : result=cr_rem_array(image,telescope, BASE_IMAGE=base_image, BLOCK=block, GROUP_SIZE=groupsize, N_SIGMA=n_sigma, CX=cx,CY=cy, RMIN=rmin,RMAX=rmax, RFILE=rfile, USE_ROI=use_roi, ORDER=order) Inputs : image : The array name of a previously read-in image telescope : An integer denoting the telescope used for the image. C1=1, C2=2, C3=3, EIT=4 Keywords : BASE_IMAGE : Image to subtract from the input image array if differencing is desired BLOCK : Size in pixels of the larger neighborhoods used to determine the statistical characteristics which determine which smaller neighborhoods have possible cosmic rays. Default is 32. GROUP_SIZE : Size in pixels of the smaller neighborhoods which are examined for cosmic rays. Default is 8. N_SIGMA : Statistical requirement used to determine candidate smaller neighborhoods withing a larger neighborhood. The maximum value of a given smaller neighborhood must deviate from the median value of the means of the smaller neighborhoods comprising a larger neighborhood in order to be considered a candidate. ORDER : The order of the polynomial fit to use to model the data in the smaller neighborhoods being corrected. Default is 2. Errors may occur for values higher than 3. For smaller neighborhoods abutting the occulter or abutting telemetry dropout regions, a linear fit is used. *** The program is designed to handle the occulter and vignetted outer edge of the circular FOV of the instruments. The high intensity gradients at these edges leads to poor cosmic ray correction when candidate pixel groups are identified there. The following keywords should be included when using this feature. CX,CY : Coordinates of the center of the occulter in the image. Only required if the occulter region is to be ignored in the removal process. This is done in processing LASCO images to avoid problems arising from having large regions with values drastically different from neighboring valid data. In EIT images it is done to avoid processing disk data because some bright features on the disk are indistinguishable from cosmic rays using these statistical methods. RMIN,RMAX : The minimum and maximum radial values to consider for the processing. The minimum value should be slightly larger than the radius of the occulter in the image. The maximum should be slightly smaller than the radius of the unvignetted field of view. IF RMIN is defined but RMAX is not, the entire field of view outside RMIN will be corrected. RFILE : The name of a file containing the radial distance of each pixel in the image from the center coordinates CX, CY. If the file does not exist, it will be generated. If the file exists, but the size of the image or the center coordinates have changed, the file is regenerated. USE_ROI : Sometimes one might want to exclude a region from cosmic ray removal processing, such as when a bright star or a comet appears in the field of view. To do this, set this keyword and then use the mouse buttons to set the ROI (=region of interest). The left mouse button draws line segments, the middle button removes them if necessary, and the right button closes the region. See the description of DEFROI in the IDL manual. Calls : generate_r_matrix Restrictions : Side effects : Category : Image processing Prev. Hist. : None Written : Norm Moulton, NRL, Sept. 1996 Modified : Version :
Project : SOHO-LASCO/EIT Name : cr_rem_file Purpose : Remove cosmic rays from LASCO/EIT images Explanation : This procedure removes cosmic rays from a named FITS file by first using statistical techniques to identify regions containing cosmic rays (or stars) and then replaces the pixel values in that region with new values determined by taking the average of column and row fits across the region based on neighboring points. Statistical noise based upon the quality of the fit to the neighboring data is added to the fit to give realistic local variation for aesthetic purposes. Syntax : result=cr_rem_file(image_file,telescope, BASE_IMAGE=base_image_file, BLOCK=block, GROUP_SIZE=groupsize, N_SIGMA=n_sigma, CX=cx,CY=cy, RMIN=rmin,RMAX=rmax, RFILE=rfile, USE_ROI=use_roi, ORDER=order) Inputs : image_file : The file name of an image (FITS) telescope : An integer denoting the telescope used for the image. C1=1, C2=2, C3=3, EIT=4 Keywords : BASE_IMAGE : Filename of image to subtract from the input image array if differencing is desired. BLOCK : Size in pixels of the larger neighborhoods used to determine the statistical characteristics which determine which smaller neighborhoods have possible cosmic rays. Default is 32. GROUP_SIZE : Size in pixels of the smaller neighborhoods which are examined for cosmic rays. Default is 8. N_SIGMA : Statistical requirement used to determine candidate smaller neighborhoods withing a larger neighborhood. The maximum value of a given smaller neighborhood must deviate from the median value of the means of the smaller neighborhoods comprising a larger neighborhood in order to be considered a candidate. ORDER : The order of the polynomial fit to use to model the data in the smaller neighborhoods being corrected. Default is 2. Errors may occur for values higher than 3. For smaller neighborhoods abutting the occulter or abutting telemetry dropout regions, a linear fit is used. *** The program is designed to handle the occulter and vignetted outer edge of the circular FOV of the instruments. The high intensity gradients at these edges leads to poor cosmic ray correction when candidate pixel groups are identified there. The following keywords should be included when using this feature. CX,CY : Coordinates of the center of the occulter in the image. Only required if the occulter region is to be ignored in the removal process. This is done in processing LASCO images to avoid problems arising from having large regions with values drastically different from neighboring valid data. In EIT images it is done to avoid processing disk data because some bright features on the disk are indistinguishable from cosmic rays using these statistical methods. RMIN,RMAX : The minimum and maximum radial values to consider for the processing. The minimum value should be slightly larger than the radius of the occulter in the image. The maximum should be slightly smaller than the radius of the unvignetted field of view. IF RMIN is defined but RMAX is not, the entire field of view outside RMIN will be corrected. RFILE : The name of a file containing the radial distance of each pixel in the image from the center coordinates CX, CY. If the file does not exist, it will be generated. If the file exists, but the size of the image or the center coordinates have changed, the file is regenerated. USE_ROI : Sometimes one might want to exclude a region from cosmic ray removal processing, such as when a bright star or a comet appears in the field of view. To do this, set this keyword and then use the mouse buttons to set the ROI (=region of interest). The left mouse button draws line segments, the middle button removes them if necessary, and the right button closes the region. See the description of DEFROI in the IDL manual. Calls : generate_r_matrix Restrictions : Side effects : Category : Image processing Prev. Hist. : None Written : Norm Moulton, NRL, Sept. 1996 Modified : Version :
NAME:
DIST2SUN
PURPOSE:
This function computes the distance from SOHO to the sun in km
CATEGORY:
DATA_ANAL
CALLING SEQUENCE:
Result = DIST2SUN(Date)
INPUTS:
Date: The date in any CDS time format
OUTPUTS:
This function returns the distance from SOHO to the sun in km.
The type is double precision.
PROCEDURE:
The orbit ephemeris files are read for the desired date.
The solar vector is returned and the distance is computed.
If an error is found getting the orbit file, the result will be zero
EXAMPLE:
dist = DIST2SUN('1995-dec-21')
MODIFICATION HISTORY:
Written by: R.A. Howard, 25 Jan 2001
@(#)dist2sun.pro 1.1 01/25/01 LASCO IDL LIBRARY
Name:
EIT_TIME_CORRECTION
Purpose:
To interpolate or extrapolate the most recent OBE - LOBT time difference
from the values in TIME_DIFFERENCE_DB.
Input Parameters:
None
Output:
None
Keywords:
CORRECTION_STRING - Used to return an ASCII string with the
time difference.
INTERP - Turn on interpolation
Calling Sequence:
dt = EIT_TIME_CORRECTION(obe_time, CORRECTION_STRING = CORRECTION_STRING)
Restrictions:
If large jumps in the difference occur between realtime contacts, this
routine could return inaccurate values.
History:
1997 April 17 - D.M. fecit.
1997 August 27 - Added CORRECTION_STRING keyword D.M. fecit.
1999 Feb 7 - Added binary search and indexing to speed finding
the right record, created unix version for Solaris - DW
1999 Feb 8 - Added INTERP keyword - IMPORTANT due to time offset jumps
during out of contact periods, interpolation can produce
totally bogus answers - DW
@(#)eit_time_correction.pro 1.2 02/09/99 NRL IDL LIBRARY
NAME: ELTHEORY PURPOSE: This procedure computes various properties of the Thomson scattered light by an electron in the solar corona. CATEGORY: CME CALLING SEQUENCE: ELTHEORY, Rin, T, R, B, Bt, Br, Pol INPUTS: Rin: Impact Distance (in solar radii) T: Angle from plane of sky (in degrees) OUTPUTS: R: Distance of electron from sun center (in solar radii) B: Total Brightness for one electron at R,T Bt: Tangential Brightness for one electron at R,T Br: Radial Brightness for one electron at R,T Pol: Polarization for one electron at R,T KEYWORDS: LIMB: The limb darkening coefficient. If not set then use 0.63 (550 nm). CENTER: If set, then the output is returned as the central solar disk brightness. THe default is mean solar brightness. COMMON BLOCKS: None SIDE EFFECTS: None RESTRICTIONS: None PROCEDURE: This procedure uses the Thomson electron scattering equations to compute the total brightness, the radial and tangential components and the polarization associated with one electron. Limb darkening of 0.63 is included. The results are returned in units of mean solar brightness. MODIFICATION HISTORY: Created IDL version 16 May 1996, RA Howard, NRL RAH 11/25/98 Added common block for VDH coefficients RAH 09/01/99 Added keyword for limb darkening RAH 10/02/99 Changed output to be mean solar brightness RAH 10/27/99 Added keyword for central/mean solar brightness @(#)eltheory.pro 1.5 11/29/05 LASCO IDL LIBRARY
NAME: FCORPOL_KL PURPOSE: This function returns the Koutchmy-Lamy model of the F-coronal polarization CATEGORY: LASCO DATA_ANAL CALLING SEQUENCE: Result = FCORPOL_KL(Rho) INPUTS: Rho: Distance from sun center in solar radii OUTPUTS: This function returns the degree of polarization (0,1) in the F-corona. RESTRICTIONS: Valid for distances to 115 solar radii. PROCEDURE: MODIFICATION HISTORY: Written by: Andrew Hayes, NRL, 12/98 @(#)fcorpol_kl.pro 1.1 10/08/00 LASCO IDL LIBRARY
NAME: FCOR_KL PURPOSE: This function returns the F-coronal brightness model of Koutchmy-Lamy CATEGORY: LASCO DATA_ANAL CALLING SEQUENCE: Result = FCOR_KL(Rho,Etas) INPUTS: Rho: The distance in solar radii Etas: OUTPUTS: This function returns the F-coronal brightness for each point in mean solar brightness units. RESTRICTIONS: None PROCEDURE: MODIFICATION HISTORY: Written by: Andrew Hayes, NRL, 12/98 Modified by: Andrew Hayes, NRL, 16 AUG 2000 returns 0 for rho eq 0 instead of crashing %W% %H% LASCO IDL LIBRARY
NAME: FILTER_PRODUCT PURPOSE: This procedure computes the product of two filter curves CATEGORY: NRL DATA_ANALYSIS CALLING SEQUENCE: FILTER_PRODUCT,WL_a,TR_a,WL_b,TR_b,WL,Q INPUTS: WL_a: 1D array of the wavelengths for curve A TR_a: 1D array of the transmitances for curve A WL_b: 1D array of the wavelengths for curve B TR_b: 1D array of the transmitances for curve B OUTPUTS: WL: 1D array of the wavelenths for the product Q: 1D array of the transmittance product RESTRICTIONS: PROCEDURE: The wavelength interval that is common to both curves is determined by finding the greater of the two minimum wavelengths and the less of the two maximum wavelengths. Then a common set of wavelengths (# pts = 100) is generated, and the two filter curves interpolated at these wavelengths. The product of the two curves is then computed. You can describe the foobar superfloatation method being used here. You might not need this section for your routine. EXAMPLE: One curve is described by two arrays for the wavelength and transmittances in wave1, trans1. The other curve is described in wave2 and trans2. Put the ouput into wl and result: FILTER_PRODUCT,wave1,trans1,wave2,trans2,wl,result result is the product of trans1 and trans2. The corresponding wavelengths are in wl. MODIFICATION HISTORY: Written by: RAHoward, NRL 10/6/00 @(#)filter_product.pro 1.1 10/08/00 :LASCO IDL LIBRARY
NAME: FIND_CHORD_CTR PURPOSE: Find the center of the occulting disk by the method of chords CATEGORY: LASCO Analysis CALLING SEQUENCE: FIND_CHORD_CTR, Img, Xcen, Ycen INPUT PARAMETERS: Img: The 2-D image KEYWORDS: INTEN: Threshold intensity (Default = 1000) INTERP: Flag to perform interpolation (Should be set) PYLON: Flag to avoid pylon (should be used for C2/C3) HDR: Use header to determine starting center OUTPUT PARAMETERS: Xcen: The value of the center in X Ycen: The value of the center in Y OPTIONAL OUTPUT PARAMETERS: None COMMON BLOCKS: Used for debug SIDE EFFECTS: Draws chords and computed center on current window RESTRICTIONS: PROCEDURE: Finds the occulter boundary by finding the row and column numbers where the image exceeds a threshold intensity. Uses the center of the image as the initial center of the occulter If the keyword, Inten, is not present, the default is 1000 For each row, the column numbers for the left and right boundaries of the chord are computed. If the optional input parameter, Interp, is present then linear interpolation is used to find a fractional column number. Otherwise the pixel number of the first pixel exceeding the threshold is used. The column center is then the midpoint of the chord. The process is stopped when two boundaries, separated by at least 50 pixels, cannot be found. Then the average of all rows is computed to find the average column number. The process is repeated for each column to find the average row number. MODIFICATION HISTORY: Written RA Howard, NRL, 20 December 1995 V1 RAH Initial Release V2 RAH 16 Feb 96, Added rejection of outliers to average V3 RAH 18 Mar 96, Corrected 1 pixel error in right/top edge nbr, 1/30/01 - Fix PYLON keyword; change Debug output; plots on open window %W% %H% LASCO IDL LIBRARY
NAME: FIX2IMGS PURPOSE: Construct a single image from 2 identical images which might have missing lines CATEGORY: DATA_ANAL CALLING SEQUENCE: FIX2IMGS, A,Ha,B,Hb,CC,Hc INPUTS: A: Image #1 Ha: Image #1 Header B: Image #2 Hb: Image #2 Header OUTPUTS: CC: Output image Hc: Output image header RESTRICTIONS: The two input images must be identical except for missing lines. They should be created by reading out the same image to TM using the debug readout mode. PROCEDURE: The debug readout mode on LASCO does not block the image. Therefore missing pixels will cause the rest of the image to be shifted. This is difficult to analyze. This procedure calls FIX_CONTROL to correct the two images individually and then searches line by line in the two images to find matches. If a match is not found, it searches ahead to find the next match and adds the missing lines to the the output image. A match is defined to be two consecutive lines with identical values. EXAMPLE: a = LASCO_READFITS(name1,ha) b = LASCO_READFITS(name2,hb) FIX2IMGS,a,ha,b,hb,c,hc MODIFICATION HISTORY: Written by: R.A. Howard, NRL, Mar 29, 1999 @(#)fix2imgs.pro 1.1 03/31/99 LASCO IDL LIBRARY
NAME: FIX_CONTRO PURPOSE: Fixes the continuous readout images that are transmitted in debug mode CATEGORY: DATA_ANAL CALLING SEQUENCE: Result = FIX_CONTRO (A,Ha) INPUTS: A: Image array Ha: Image Header OUTPUTS: This function returns an image which has only good rows RESTRICTIONS: The input image should be created by reading out to TM using the debug readout mode. It must have underscan and overscan pixels. PROCEDURE: The underscan and overscan pixels are assumed to be those that have intensities that are no more than 20 DN above the offset bias. The input array is reformed into a singly dimensioned array. The indices of all of the pixels less than 20 DN are found. Then the complete lines are found by finding those indices that are separated by 1026 points, which is the length of the imaging array (1024) plus 2. Then the beginning of the underscan is set as that point -18 pixels and the end of the line is set from the naxis1 variable in the header. EXAMPLE: a = LASCO_READFITS(name,ha) Result = FIX_CONTRO(a,ha) MODIFICATION HISTORY: Written by: R.A. Howard, NRL, Mar 29, 1999 @(#)fix_contro.pro 1.1 03/31/99 LASCO IDL LIBRARY
NAME:
fpc1_2img
PURPOSE:
To calculate LASCO C1 emission line signal. (Note: the output is in
the same units as the input images. No photometric correction is
made.)
CALLING SEQUENCE:
ee = fpc1_2img(ref1,img,cref1,cref2,cimg)
INPUTS:
ref1 first open-door off-line image
img open door on-line image
cref1 first closed-door off-line image
cref2 second closed-door off-line image
cimg closed door on-line image
dz for the comp1 model, this is a "repair" to f that is a function
of position. Default value is zero.
OPTIONAL INPUTS:
none
KEYWORD PARAMETERS
z this is an array of the form [xmin,ymin,xmax,ymax] which specifies
the two corners of a particular rectangle in the images. It will be
assumed that this region contains zero median emission line signal,
and if any is detected it will be assumed that this is due to an
exposure error in the on-line image (img). Accordingly, the on-line image
will be multiplied by a constant such that the median emission
signal over this region will be exactly zero. If this keyword is
omitted, all images will be assumed to be correct, and no exposure
correction will be made.
model - A number of models are available. The default model is 'comp1'
'subtract' - a simple subtraction of the offline (ref1) from the online (img)
'standard' - assumes no white light background
'comp1' - estimates the white light background with the three-gaussian model
OUTPUTS:
Returns an image consisting of only that part of the signal due to
the emission line irradiance. Note that this signal will not be proportional
to the irradiance, but needs to be further corrected by the instrument
response in order to obtain photometrically correct results.
OPTIONAL OUTPUTS:
none
METHOD
COMMON BLOCKS:
None
SIDE EFFECTS:
None
RESTRICTIONS:
All five input images must be of the same size and at the same location
on the CCD. Images ref1 and cref1 form an open and closed door image
pair and must have the same command wavelength. The same is true
of the img and cimg image pair. Image ref1 must be off line.
All images must be corrected for offset bias and exposure.
MODIFICATION HISTORY:
V 1.00 - Oct 06/98 written by Paul Reiser
V 1.10 - Jul 15/00 included zeroing box
CONTACT: Paul Reiser reiser@susim.nrl.navy.mil
Dennis Socker socker@lambda.nrl.navy.mil
NAME:
fpc1_3img
PURPOSE:
To calculate LASCO C1 emission line signal. (Note: the output is in
the same units as the input images. No photometric correction is
made.)
CALLING SEQUENCE:
ee = fpc1_3img(ref1,ref2,img,cref1,cref2,cimg)
INPUTS:
ref1 first open-door off-line image
ref2 second open-door off-line image
img open door on-line image
cref1 first closed-door off-line image
cref2 second closed-door off-line image
cimg closed door on-line image
OPTIONAL INPUTS:
none
KEYWORD PARAMETERS
z this is an array of the form [xmin,ymin,xmax,ymax] which specifies
the two corners of a particular rectangle in the images. It will be
assumed that this region contains no average emission line signal,
and if any is detected it will be assumed that this is due to an
exposure error in the on-line image (img). Accordingly, the on-line image
will be multiplied by a constant such that the average emission
signal over this region will be exactly zero. If this keyword is
omitted, all images will be assumed to be correct, and no exposure
correction will be made.
OUTPUTS:
Returns an image consisting of only that part of the signal due to
the emission line irradiance. Note that this signal will not be proportional
to the irradiance, but needs to be further corrected by the instrument
response in order to obtain photometrically correct results.
OPTIONAL OUTPUTS:
none
METHOD
COMMON BLOCKS:
None
SIDE EFFECTS:
None
RESTRICTIONS:
All six input images must be of the same size and at the same location
on the CCD. Images ref1 and cref1 form an open and closed door image
pair and must have the same command wavelength. The same is true
of the ref2 and cref2 image pair, and the img and cimg image pair.
All images must be corrected for offset bias and exposure.
MODIFICATION HISTORY:
V 1.00 - written by Paul Reiser February 23, 1998 (2/23/98)
CONTACT: Paul Reiser reiser@susim.nrl.navy.mil
Dennis Socker socker@lambda.nrl.navy.mil
NAME: fpc1_phot PURPOSE: To convert a lasco signal image (DN/pixel/sec) to intensity (erg/sec/cm^2/sr/A) CALLING SEQUENCE: int = fpc1_phot(s,ix,iy,leb,[dataset]) INPUTS: s - the signal image ix,iy - the coordinates of the lower left of the signal image in CCD (1024x1024) coordinates leb - binning (1 or 2, usually) OPTIONAL INPUTS: dataset - the closed door dataset used for calibration (e.g. dataset = '980306') KEYWORD PARAMETERS: none OUTPUTS: Returns the intensity image corresponding to the input signal image. Units of intensity are erg/sec/cm^2/sr/A OPTIONAL OUTPUTS: none METHOD The signal image is multiplied by the calibration image after the calibration image is suitable rebinned and cropped. COMMON BLOCKS: None SIDE EFFECTS: None RESTRICTIONS: none MODIFICATION HISTORY: V 1.00 - written by Paul Reiser Nov 01, 1999 (11/01/99) CONTACT: Paul Reiser reiser@susim.nrl.navy.mil Dennis Socker socker@lambda.nrl.navy.mil REFERENCES http://lasco-www.nrl.navy.mil/~reiser/C1phot.html
NAME:
fpc1_wcw
PURPOSE:
To determine the C1 instrument function central wavelength
as a function of pixel position (x,y), command wavelength
(wc) and FP order (m).
CALLING SEQUENCE:
WCW(x,y,wc,[m],[\air])
INPUTS:
x - x position(s) (pixels on a 1024x1024 image)
y - y position(s) (pixels on a 1024x1024 image)
wc - command wavelength(s) (Angstroms)
OPTIONAL INPUTS:
m - FP order(s). If zero or unspecified, a nominal order
is assumed.
KEYWORD PARAMETERS:
AIR if this keyword is set, the returned wavelength is
for air, otherwise it is for vacuum. (Note: the
NSO[1] solar spectrum is given in air wavelengths)
OUTPUTS:
Returns the C1 instrument function central wavelength
in Angstroms. The table below shows the region of
applicability for each blocking filter The first column
is the blocker ID and the second column is the nominal
wavelength of the feature which was measured to determine
the wavelength scale. The next two columns are the
minimum and maximum wavelength of the region over which
the wavelength correction is valid. The last column is
the std. deviation of the absolute error in wavelength
when using this method. This error holds only at the
nominal wavelength. It increases with distance from
the nominal wavelength to double its value at
the boundaries of the region of validity. The relative
error in wavelength from scan to scan is on the
order of 0.02 A. All wavelengths in the table below are
in Angstroms.
Blocker Nom. Min. Max. Error
ID wav. wav. wav.
FeXIV 5302.27 5300 5318 0.03
CaXV 5693.09 5690 5710 0.07
NaI 5891.59 5885 5907 0.08
FeX 6373.12 6372 6390 0.05
H Alpha 6564.63 6562 6583 0.04
OPTIONAL OUTPUTS:
If the order was not specified on input, the nominal order
used will be returned in the m parameter.
METHOD
The central wavelength calibration was determined by comparing
in-flight FP scans of the photospheric Fraunhofer spectrum
with the NSO[1] solar spectrum.
The FP instrument function was also determined using
in-flight measurements. The optimum instrument function was
found to be a Voigt profile.
A paraboloid of revolution was fitted to the
measured variation of wavelength with position in the image.
The above steps were carried out for each of the five
blocking filters.
COMMON BLOCKS:
None
SIDE EFFECTS:
None
RESTRICTIONS:
In order to increase speed, x, y, and wc may be arrays. There
are four acceptable situations:
1. x,y, and wc are all scalar
2. x and y are arrays of the same type, and wc is a scalar
3. x and y are scalars and wc is an array
4. x,y and wc are arrays of the same type
A further restriction is that wc must lie inside a blocker
passband as described above in the output section.
MODIFICATION HISTORY:
V 1.00 - written by Paul Reiser September 26, 1997 (9/26/97)
V 1.10 - PR 1/8/98 Allow arrays for pixel positions
CONTACT: Paul Reiser reiser@susim.nrl.navy.mil
Dennis Socker socker@lambda.nrl.navy.mil
REFERENCES
1. "Solar Flux Atlas From 296 to 1300 nm", National Solar
Observatory Atlas No. 1, June 1984.
NAME:
FPC1_WWC
PURPOSE:
Given a true wavelength (w) and a pixel position on
a LASCO C1 image (x,y) and an order (m), the function
will return the command wavelength for the FP in order
that the true wavelength be transmitted by the FP
at that position.
CATEGORY:
???
CALLING SEQUENCE:
fpc1_wwc,x,y,w,[m],[AIR=air]
INPUTS:
x - x position (pixels)
y - y position (pixels)
w - true wavelength (Angstroms)
OPTIONAL INPUTS:
m - the FP order. If none is specified, a nominal order
is assumed.
KEYWORD PARAMETERS:
AIR if this keyword is set, the input wavelength is
taken as an air wavelength, otherwise it is for
vacuum.
OUTPUTS:
The value returned is the command wavelength for the image
such that the FP transmits the given true wavelength at the
given position and order. If the order was not specified on
input, the nominal order used will be returned in the m
parameter. The table below shows the region of applicability
for each blocking filter The first column
is the blocker ID and the second column is the nominal
wavelength of the feature which was measured to determine
the wavelength scale. The next two columns are the
minimum and maximum wavelength of the region over which
the wavelength correction is valid. The last column is
the std. deviation of the absolute error in wavelength
when using this method. This error holds only at the
nominal wavelength. It increases with distance from
the nominal wavelength to double its value at
the boundaries of the region of validity. The relative
error in wavelength from scan to scan is on the
order of 0.02 A. All wavelengths in the table below are
in Angstroms.
Blocker Nom. Min. Max. Error
ID wav. wav. wav.
FeXIV 5302.27 5300 5318 0.03
CaXV 5693.09 5690 5710 0.07
NaI 5891.59 5885 5907 0.08
FeX 6373.12 6372 6390 0.05
H Alpha 6564.63 6562 6583 0.04
OPTIONAL OUTPUTS
If the order was not specified on input, the nominal
order used will be returned in the m parameter.
COMMON BLOCKS:
None
SIDE EFFECTS:
None
RESTRICTIONS:
This procedure may not converge unless the input order
is close to the nominal order.
MODIFICATION HISTORY:
Version 1.00 written by Paul Reiser July 22, 1997.
Version 1.10 PR 1/8/98 allows array x and y
NAME: fp_iwcw PURPOSE: Determine C1 instrument function central wavelength map array for a monochromatic image. CATEGORY: image reduction routines CALLING SEQUENCE: w = fp_iwcw(im,h,[x],[y],[xps],[yps],[/air]) INPUTS: im - primary or secondary c1 monochromatic image array A primary monochromatic image array is herein defined as an IDL LASCO/C1 image array whose pixel dimensions, position and extent in the field of view match those of the original telemetered and rectified image array. It may be a subfield of the c1 CCD. A secondary monochromatic image array is herein defined as an IDL LASCO/C1 image array whowse pixel dimensions and/or extent in the field of view do not match those of the original telemetered and rectified image array. h - header associated with an original telemetered c1 monochromatic image array (im) OPTIONAL INPUTS: (??? no, these are outputs ???) (x,y) - the position of the lower left corner of the array (im) in the telemetered image array. (Of the 4 corners of the image rectangle, x and y are the minimum values of the horizontal and vertical coordinates respectively) (xps,yps) - x and y dimension pixel count multiplier of the input image array im with respect to the telemetered array KEYWORD PARAMETERS: AIR if this keyword is set, air wavelength in angstroms is returned, otherwise vacuum wavelength in angstroms is returned. OUTPUTS: Returns an array (wim) with the same dimensions as arry im containing the calibrated instrument function central wavelengths (in Angstroms) corresponding to each pixel of the associated C1 monochromatic image array im. OPTIONAL OUTPUTS none COMMON BLOCKS: None SIDE EFFECTS: None RESTRICTIONS: None PROCEDURE: MODIFICATION HISTORY: 1997 Aug 12 Written by Paul Reiser
Project : SOHO - LASCO/EIT
Name : GETBKGIMG
Purpose : Get background image for given telescope
Explanation : This routine returns a model image (stray light and/or
f-corona) for a given telescope, date, image size.
Use : bkgimg = GETBKGIMG(hdr, model_hdr)
Inputs : None.
Opt. Inputs : ops Start time of display in TAI.
Outputs : None.
Opt. Outputs: None.
Keywords : use /FFV to return full field of view model (1024x1024 image)
use /ALL to return yearly minimum otherwise closest monthly minimum images
are interpolated for given date
use /ANY_YEAR to return monthly minimum over multiple years.
ROLLED Look in $MONTHLY_IMAGES/rolled
Calls :
Common : SOHO_DATA Contains start and end times of SOHO roll periods.
Restrictions: None.
Side effects: None.
Category : Data analysis
Prev. Hist. : None.
Written : Scott Paswaters, NRL
Modified : 06 Oct 1997 SEP - Added year independent option /ANY_YEAR
28 Jul 1998 NBR - added time to tai computation; comment out
STRPUT lines in interpolation section
23 Sep 1998 NBR - finish repair to year difference problem in interpolation
29 Sep 1998 NBR - for /FFV, rebin result to size of input image
5 Oct 1998 NBR - add call for level_1 images
13 Nov 1998 NBR - Fix year difference repair
25 Mar 1999 NBR - Do not interpolate if DATE_OBSs are equal
6 Apr 1999 NBR - Use congrid to resize if necessary
9 Apr 1999 NBR - Set year2 = year1 for ANY_YEAR
Dec 1999 NBR - Fix Y2K glitch for finding ind
Jan 2000 NBR - Tinker with resize of imgm; ReFix y2k bug for finding ind
Feb 2000 NBR - Rebin both imgm and imgm2 before interpolating
Jun 2000 NBR - Add ROLL keyword for rolled images
3/23/01, NBR - Check if bkgimg should be rolled in this procedure, making ROLL keyword
unnecessary
3/30/01, NBR - Redo year problem for any-year
11/20/01, NBR - Use ROLL_TIMES.pro and change ROLL to ROLLED to be consistent with other pros
12/17/01, NBR - Fix ANY_YEAR end-of-year problem
3/ 8/02, NBR - Fix computation of factor for interpolation
7/10/02, NBR - Implement new method of finding images (not offset by 14 days) (except for
ANY_YEAR)
030721 jake added "OR hdr.CROTA1 EQ 180." to ROLLED check
9/03/03, NBR - change hdr.CROTA1 check
03.10.10, nbr - Do ANY_YEAR if time since last available CURRENT monthly image is GT 15 days
04.02.18, nbr - use doy to determine endofyear and begofyear
04.03.02, nbr - Change behavior when model is >15 days old
04.04.09, nbr - Level-1 bkg is ANY_YEAR only
05/09/2006 KarlB - Level-1 bkg no longer ANY_YEAR. Various mods have been made to allow for
level-1 processed backgrounds. None of these changes affect LZ/QL data.
@(#)getbkgimg.pro 1.24, 05/09/06 - NRL LASCO IDL Library
(SCCS variables for IDL use)
NAME:
GET_IMG_CENTER
PURPOSE:
This function returns the center of the image relative to the
sun center in arc seconds.
CATEGORY:
LASCO_ANALYSIS
CALLING SEQUENCE:
Result = GET_IMG_CENTER (Hdr)
INPUTS:
Hdr: A LASCO header structure for the image that the center is desired
OPTIONAL INPUTS:
Pixel: If set the values are returned in pixels rather than arc seconds
OUTPUTS:
This function returns the image center as a two element array
in which the first element is the azimuthal distance from sun
center in arc seconds and the second element is the elevation
distance from sun center.
RESTRICTIONS:
Returns the center for the readout port "C"
PROCEDURE:
Returns values that have been determined by other means and put
into a table here.
MODIFICATION HISTORY:LASCO_FITSHDR2STRUCT(hdr)
Written by: R.A. Howard, NRL, 11 Feb 1997
Updated:
@(#)get_img_center.pro 1.2 07/11/97 LASCO IDL LIBRARY
NAME:
GET_ROLL_OR_XY
Version :
05/02/06 @(#)get_roll_or_xy.pro 1.4 :NRL Solar Physics
PURPOSE:
This function returns the roll angle of solar north in radians
or the sun center position as a 2 element array
{sun_center,xcen:xcen,ycen:ycen} (pixels).
It uses C2 and C3 center and roll files created by star routines
after adjusting header times using EIT/LASCO time-offsets. It should
only be used with ql or lz level_05 data. For other telescopes, the
roll, and center are set to but if a roll is requested and it is zero,
the SOHO roll is returned instead - as was the case in old version of
get_roll_or_xy.
CATEGORY:
LASCO_ANALYSIS
CALLING SEQUENCE:
Result = GET_ROLL_OR_XY (Hdr, Roll_xy)
INPUTS:
Hdr: A LASCO header structure
Roll_xy: 'ROLL' : return the roll angle
'CENTER': return the sun center
OUTPUTS:
Roll angle in radians OR sun center {xcen,ycen} in pixels.
OPTIONAL OUTPUTS:
ROLL_OUT=named_var Named_var contains value of roll angle
CENTER_OUT=named_var Named_var contains sun center structure
OPTIONAL KEYWORD INPUTS:
MEDIAN: Not used - kept for compatability with previous version.
STAR: Not used - kept for compatability with previous version.
AVG: Not used - kept for compatability with previous version.
SILENT: Stop printing of warning and informational messages
DEGREES: Return roll angle in degrees not radians
OPTIONAL IO:
source: On output, returns
'Data generated from SunDec files using EIT/LASCO adjusted time-offsets.'
History:
2005 January 05 - Ed Esfandiari First version - based on adjust_hdr_tcr.
2005 January 05 - Ed Esfandiari Changed call to linterp to linear_interp.
2005 April 12 - Karl Battams - Fixed problem with incompatible date formats
2006 April 25 - Nathan Rich - Add ROLL_OUT and CENTER_OUT keywords
NAME:
GET_SEC_PIXEL
PURPOSE:
This function returns plate scale in arc seconds per pixel.
CATEGORY:
LASCO_ANALYSIS
CALLING SEQUENCE:
Result = GET_SEC_PIXEL (Hdr)
INPUTS:
Hdr: A LASCO header structure
OPTIONAL INPUTS:
FULL=FULL: If the image has been placed in a square field. Ex:
Result = GET_SEC_PIXEL (Hdr, FULL=1024)
Result = SEC_PIXEL (Hdr, FULL=512)
OUTPUTS:
arc seconds per pixel
PROCEDURE:
Returns values that have been determined by other means and put
into a table here.
MODIFICATION HISTORY:
Written by: S.E. Paswaters, 30 August 1996
Updated:
96/10/04 SEP Changed FULL to allow different sizes.
98/08/28 RAH Mods for MLO/MK3
99/08/05 NBR Fixed FULL keyword to compute floating point factor
00/01/14 DAB Mods for MLO/MK4
01/02/12 NBR Mods for MK4 and elimination of sec_pix as array
08/19/05 @(#)get_sec_pixel.pro 1.12 : LASCO IDL LIBRARY
NAME:
GET_SOLAR_RADIUS
PURPOSE:
This function returns the radius of the sun in arc seconds.
CATEGORY:
LASCO_ANALYSIS
CALLING SEQUENCE:
Result = GET_SOLAR_RADIUS (Hdr)
INPUTS:
Hdr: A LASCO header structure
KEYWORDS:
PIXEL Output result in pixels
DISTANCE Set equal to variable which will contain distance
to sun in km
OUTPUTS:
solar radius in arc seconds
PROCEDURE:
Determines the solar radius from the position of SOHO as
defined in the *.cdf format files.
MODIFICATION HISTORY:
Written by: D.A. Biesecker, 12 September 1996
General routine taken from POINTING3.PRO written by S.P. Plunkett
Modified 30 Sept. 1996 by DAB: return default values of the solar
radius if calls to read the SOHO orbit files fail.
RA Howard 5/20/97 Added keyword PIXEL to return solar radius in pixels
NB Rich 8/25/98 Use detector instead of telescop to allow MVIHDR
NB Rich 12/16/98 Use get_orbit_cdf2 instead of get_orbit_cdf
NB Rich 11/13/01 Use solar_ephem instead of sohoephem if linux is OS
NB Rich 07/15/03 Ditto for darwin (MaxOSX)
NB Rich 04.03.29 Fix /pixel for linux case
NB Rich, 05.08.19 - Try to make general for any (FITS) header
08/19/05 @(#)get_solar_radius.pro 1.13 - LASCO IDL LIBRARY
NAME:
GET_SOLAR_ROLL
PURPOSE:
This function returns the roll angle of solar north in radians.
1. If /STAR keword is set, it returns the roll angle computed from
the stars from the daily time files.
2. If /MEDIAN keyword is set, it returns the running median
roll angle from the daily time files.
3. If /AVG keyword is set (or if no /STAR, /MEDIAN, or /AVG
keyword is set), it returns the median average roll angle from
an average file.
4. IF /STAR or /MEDIAN keyword is used but the daily time files
do not contian the needed information, the average files will
be used instead.
CATEGORY:
LASCO_ANALYSIS
CALLING SEQUENCE:
Result = GET_SOLAR_ROLL (Hdr)
INPUTS:
Hdr: A LASCO header structure
OPTIONAL KEYWORD INPUTS:
MEDIAN: Return the running median roll angle from the daily time files.
Result = GET_SOLAR_ROLL (Hdr, /MEDIAN)
STAR: Return the roll angle computed from the stars from the daily
time files.
Result = GET_SOLAR_ROLL (Hdr, /STAR)
AVG: Return the average roll angle for a period to which the image
belongs from an average file. This is used as default if no
MEDIAN, STAR, or AVG keyword is used.
Result = GET_SOLAR_ROLL (Hdr, /AVG) or
Result = GET_SOLAR_ROLL (Hdr)
OUTPUTS:
roll angle in radians
CALLED PROGRAMS:
GET_ROLL_OR_XY
PROCEDURE:
Determines the solar north roll angle from the time files or the
average files.
MODIFICATION HISTORY:
Written by:
Updated: 98/10/06 AEE Changed to use the c?_rollxy_yymmdd.dat
files instead of returning 0.0 (it still
returns zero if the file is not found
or if found it does not contain info for
the image) by calling get_roll_or_xy pro.
98/10/28 AEE Added AVG keyword and made it default.
98/12/11 AEE now returns the source used (STAR,MEDIAN,
AVG,NONE) as a parameter.
@(#)get_solar_roll.pro 1.1 05/14/97 LASCO IDL LIBRARY
NAME:
GET_SUN_CENTER
PURPOSE:
This function returns a 2 element array of the column and row
numbers as the sun center.
1. If /STAR keword is set, it returns the center computed from
the stars from the daily time files.
2. If /MEDIAN keyword is set, it returns the running median
center from the daily time files.
3. If /AVG keyword is set (or if no /STAR, /MEDIAN, or /AVG
keyword is set), it returns the median average center from
an average file.
4. IF /STAR or /MEDIAN keyword is used but the daily time files
do not contian the needed information, the average files will
be used instead.
5. If no time or average file contains the required sun center (get_
roll_or_xy returns {0.0,0.0}), then the center of the occulting
disk is used instead.
The number, in time files, average files, and occulting disk starts
at 0. The definition in the FITS header starts from 1.
CATEGORY:
LASCO_ANALYSIS
CALLING SEQUENCE:
Result = GET_SUN_CENTER (Hdr)
INPUTS:
Hdr: A LASCO header structure for the image that the center is desired
OPTIONAL INPUTS:
MEDIAN: Return the running median sun center from the daily time files.
Result = GET_SUN_CENTER (Hdr, /MEDIAN)
STAR: Return the sun center computed from the stars from the daily
time files.
Result = GET_SUN_CENTER (Hdr, /STAR)
AVG: Return the average sun center for a period to which the image
belongs from an average file. This is used as default if no
MEDIAN, STAR, or AVG keyword is used.
Result = GET_SUN_CENTER (Hdr, /AVG) or
Result = GET_SUN_CENTER (Hdr)
FULL=FULL: If the image has been placed in a square field. Ex:
Result = GET_SUN_CENTER (Hdr, FULL=1024)
Result = GET_SUN_CENTER (Hdr, FULL=512)
RAW: If set, no corrections are applied
DOCHECK: If set, corrected header is read in
NOCHECK: If set, input header is used
DEGREES: Value returned in ROLL keyword is in degrees, else is radians.
OUTPUTS:
This function returns the sun center as a two element array in which
the first element is the column center and the second element is the
row center.
OPTIONAL OUTPUT:
ROLL=named_var Named_var will contain roll value
OPTIONAL IO:
source: On output, returns one of the following sources used to
get the sun center: STAR, AVG, MEDIAN, OCC.
CALLED PROGRAMS:
GET_ROLL_OR_XY
RESTRICTIONS:
Returns the center for the readout port "C"
PROCEDURE:
Returns values that have been determined by other means and put
into a table here.
MODIFICATION HISTORY:
Written by: S.E. Paswaters, 30 August 1996
Updated:
96/10/04 SEP Changed FULL to allow different sizes.
97/01/08 SHH Added correction for cropped images.
97/02/11 RAH Added keyword to return raw center
97/12/16 SEP updated check for EIT date_obs
98/08/24 RAH added capability to handle MLO/MK3 images
98/08/26 DW fixed problem
98/10/06 AEE Added code to use time files for getting
the sun center, first. A returned center
of {0.0,0.0} from get_roll_or_xy means
center info for the image was not in a
time file and, so, occ_cen_arr is used,
as before.
98/10/26 AEE Added AVG keyword and made it default.
It still uses occ_cen_arr if zero is
returned by get_roll_or_xy.
98/11/05 AEE Corrected nocheck and added docheck
98/11/12 RAH Changed MLO/MK3 cam to be MK3
98/11/13 AEE Corrected docheck. Assign all of complete
hdr to shdr.
98/12/01 AEE changed call to read_occ_dat to
occltr_cntr.
98/12/11 AEE now returns the source used for sun
center (STAR,MEDIAN,AVG,OCC) as an
optional parameter.
99/05/14 NBR Change name of sun_cen stucture for MK3
99/06/22 NBR Make factor floating point for /FULL
00/01/14 DAB Added MK4 telescope
01/01/08 NBR Do not correct for subfield if keyword FULL is set
04.04.01, nbr - add COMMON reduce_history
06.04.25, nbr - Add ROLL and DEGREES keywords
ersion= '@(#)get_sun_center.pro 1.27, 05/02/06' ; LASCO IDL LIBRARY
Name:
IMAGE_PLOT
Purpose:
generates standard plots for image analysis
Usage:
IMAGE_PLOT,A,Hdr
Inputs:
A = image
Hdr = FITS header
NAME:
IMG_ADD
PURPOSE:
This function routine performs a weighted sum
of two images, in which the weights are the
same. This would be used as a check of the
procedure, since it is easier to just add
the two arrays together.
CATEGORY:
ANALYSIS
CALLING SEQUENCE:
Result = IMG_ADD (Img1,Img2)
INPUTS:
Img1: Array containing image #1
Img2: Array containing image #2
OPTIONAL INPUTS:
KEYWORD PARAMETERS:
OUTPUTS:
Result: The sum of the two input images if
the operation is successful or -1
if it is not.
OPTIONAL OUTPUTS:
COMMON BLOCKS:
None
SIDE EFFECTS:
None
RESTRICTIONS:
The size of both arrays must be the same or
the routine will exit and set result to be
-1.
PROCEDURE:
The two weighting functions are set to unity.
Then the routine, IMG_WT_SUM, is called.
EXAMPLE:
MODIFICATION HISTORY:
Written by: RA Howard, NRL, 27 November 1995
@(#)img_add.pro 1.1 10/04/96 LASCO IDL LIBRARY
NAME:
IMG_COMP_DIST
PURPOSE:
This function routine creates a composite
image from two images based on two radial
distances. For radii less than R1, the
values from image #1 are used. For radii
greater than R2, the values from image #2
are used. For radii between R1 and R2, the
values fade linearly from image #1 to #2.
CATEGORY:
ANALYSIS
CALLING SEQUENCE:
Result = IMG_COMP_DIST (Img1,Img2,Sun,R1,R2)
INPUTS:
Img1: Array containing image #1
Img2: Array containing image #2
Sun: A four element array containing the
solar coordinates:
Column of the center of the sun
Row of the center of the sun
Roll angle to solar north
Plate scale in arc secs per pixel
R1: Radius specifying the outer
boundary of only Img1
R2: Radius specifying the inner
boundary of only Img2
OPTIONAL INPUTS:
None
KEYWORD PARAMETERS:
None
OUTPUTS:
Result: The composite of the two input
images if the operation is
successful or -1 if it is not.
OPTIONAL OUTPUTS:
None
COMMON BLOCKS:
None
SIDE EFFECTS:
None
RESTRICTIONS:
The plate scale and sun center must be the
same for the two images prior to entering the
routine.
The size of both arrays must be the same or
the routine will exit and set result to be
-1.
PROCEDURE:
The procedure, SUNDIST, is called to compute
the distance matrix from sun center.
The two weighting functions are computed.
Then the routine, IMG_WT_SUM, is called.
EXAMPLE:
MODIFICATION HISTORY:
Written by: RA Howard, NRL, 27 November 1995
@(#)img_comp_dist.pro 1.1 10/04/96 LASCO IDL LIBRARY
NAME:
IMG_COMP_INT
PURPOSE:
This function routine creates a composite
image from two images, based on intensity
values. For intensities less than Int1,
the values from image #1 are used. For
intensities greater than Int2, the values
from image #2 are used. For intensities
between Int1 and Int2, the values from both
images are added together.
CATEGORY:
ANALYSIS
CALLING SEQUENCE:
Result = IMG_COMP_INT (Img1,Img2,Int1,Int2)
INPUTS:
Img1: Array containing image #1
Img2: Array containing image #2
Int1: Intensity specifying the upper
limit for using only Img1
Int2: Intensity specifying the lower
limit for using only Img2
OPTIONAL INPUTS:
None
KEYWORD PARAMETERS:
None
OUTPUTS:
Result: The composite of the two input
images if the operation is
successful or -1 if it is not.
OPTIONAL OUTPUTS:
None
COMMON BLOCKS:
None
SIDE EFFECTS:
None
RESTRICTIONS:
The plate scale and sun center must be the
same for the two images prior to entering the
routine.
The size of both arrays must be the same or
the routine will exit and set result to be
-1.
PROCEDURE:
The two weighting functions are computed
to form the composite image based on the
intensity values of the two images.
Range Value
0-Int1 3*Img1+1*Img1
Int1-Int2 3*Img1+3*Img2
Int2-Max 1*Img1+3*Img2
Then the routine, IMG_WT_SUM, is called.
EXAMPLE:
MODIFICATION HISTORY:
Written by: RA Howard, NRL, 27 November 1995
@(#)img_comp_int.pro 1.1 10/04/96 LASCO IDL LIBRARY
NAME: IMG_SUM_2X2 PURPOSE: This function does a rebinning into an array that is 1/2 the size of the original image in each axis, by summing 2x2 pixels. This increases signal to noise. CATEGORY: LASCO ANALYSIS CALLING SEQUENCE: Result = IMG_SUM_2X2 ( Img ) INPUTS: Img: Input image, can be any type other than string OPTIONAL INPUTS: None OUTPUTS: This function returns an image which is the result of the 2x2 pixel summing. RESTRICTIONS: Forces the input array to have an even number of rows and columns. PROCEDURE: Generates the indices of the 2x2 pixels and forms the summing explicitly from these indices. MODIFICATION HISTORY: Written by: RA Howard, 12 March 1996. @(#)img_sum_2x2.pro 1.1 10/04/96 LASCO IDL LIBRARY
NAME:
IMG_WT_SUM
PURPOSE:
This function routine performs a weighted sum
of two images.
CATEGORY:
ANALYSIS
CALLING SEQUENCE:
Result = IMG_WT_SUM (Img1,Wt1,Img2,Wt2)
INPUTS:
Img1: Array containing image #1
Wt1: Array containing the weights for
image #1
Img2: Array containing image #2
Wt2: Array containing the weights for
image #2
OPTIONAL INPUTS:
KEYWORD PARAMETERS:
OUTPUTS:
Result: The sum of the two input images if
the operation is successful or -1
if it is not.
OPTIONAL OUTPUTS:
COMMON BLOCKS:
None
SIDE EFFECTS:
None
RESTRICTIONS:
The size of all of the arrays must be the
same or the routine will exit and set result
to be -1.
PROCEDURE:
The size of the arrays is verified to be the
same.
The weights are set to zero where the image
values are zero.
The normalizing factor is computed and set to
1 where the factor is 0.
Then the routine forms the weighted sum.
EXAMPLE:
MODIFICATION HISTORY:
Written by: RA Howard, NRL, 27 November 1995
@(#)img_wt_sum.pro 1.1 10/04/96 LASCO IDL LIBRARY
NAME: instf PURPOSE: Return the C1 instrument function Voigt parameters. CATEGORY: image reduction routines CALLING SEQUENCE: fpc1_insf,w,fl,fg INPUTS: w - wavelength in Angstroms at which the instrument function parameters are desired. OPTIONAL INPUTS: NONE KEYWORD PARAMETERS: NONE OUTPUTS: Returns two arrays - fl and fg. The instrument function is a Voigt profile which is a convolution of a Gaussian and a Lorentzian profile. fg is the full width at half maximum of the Gaussian profile G(w): G(w) = exp(-w^2/(2*s^2))/(s*sqrt(2*!pi) where s is the variance and fg = 2*s*sqrt(2*alog(2)) fl is the full width at half maximum of the Lorentzian profile L(w): L(w) = (fl/(2*!pi))/(w^2+(fl/2)^2) The values of both fl and fg are returned in Angstroms OPTIONAL OUTPUTS NONE COMMON BLOCKS: NONE SIDE EFFECTS: NONE RESTRICTIONS: NONE PROCEDURE: MODIFICATION HISTORY: 1997 Oct 20 Written by Paul Reiser
NAME: LIMB_DARK PURPOSE: This function returns the limb darkening coefficient given the wavelength CATEGORY: DATA ANALYSIS CALLING SEQUENCE: Result = LIMB_DARK (Lambda) INPUTS: Lambda: Wavelength in nanometers KEYWORDS MEANFLUX If present, the limb darkening is the ratio of the mean flux to the intensity at the center of the disk. The default is the ratio of the intensity at the limb to the intensity at the center. ALLEN If present the values from Allen "Astrophysical Quantities" are returned rather than from Pierce and Allen. OUTPUTS: This function returns the limb darkening for the input wavelength(s). RESTRICTIONS: The range of wavelengths can be between 305 nm and 995 nm. If any input values are outside of this range, the program will exit without computing anything and will return a value of -1. PROCEDURE: The limb darkening values derived from Table 2 of Pierce and Allen, "The Solar Spectrum Between 0.3 and 10 micron", pp169-192, in "The Solar Output and its Variation" O.R. White, ed, Colorado University Press, Boulder, 1977. Column 6 of Table 2 gives a limb darkening function as the ratio of the average solar flux to the intensity at disk center. We want the ratio of the intensity at the limb to the intensity at the center of the disk Allen, "Astrophysical Quantities" p170 relates the limb darkening coefficient, u, to the ratio of the total flux to the intensity at disk center as approximately: u = 3*[F/I((0)]-2 where, F/I(0) is the mean to center ratio given in Pierce and Allen. Calls the IDL routine INTERPOL to perform the interpolations. EXAMPLE: To obtain the limb darkening at 730 nm (7300 Angstrom): u = LIMB_DARK(730.) MODIFICATION HISTORY: Written by: R.A. Howard, NRL, September, 1999 @(#)limb_dark.pro 1.3 08/10/05 :LASCO IDL LIBRARY
ro make_avg_daily_roll, rollsi, timesi, rollso, timeso, C3=c3, C2=c2, NYEARS=nyears Writes file with a median value for roll for each day in input file INPUTS rollsi FLTARR array of roll values timesi UTC Structure ARR utc date,time of each roll value KEYWORDS (1 is required) /C2 write c2 file /C3 write c3 file NYEARS = number of years included in inputs (default 1) %H, %W - IDL NRL LASCO Library
NAME: NE_FROM_PB PURPOSE: This function does the inversion of a radial fit to pB to electron density. CATEGORY: LASCO DATA_ANALYSIS CALLING SEQUENCE: NE_FROM_PB,Radii,Q,Coeff,Exps INPUTS: Radii: An array of radial points for which the inversion is to be done Q: The limb darkening parameter (0<1) Coeff: The coefficients in the fit of pB versus R Exps: The coefficients in the expansion of pB versus R OUTPUTS: This function returns the electron density inverted from the fit of pB. RESTRICTIONS: The pB fit is assumed to be only of the K-corona. Any F-coronal contribution must be removed. PROCEDURE: The procedure follows the method of van de Hulst, Bull Astron Institutes Netherlands, vol XI, 2 Feb 1950, pp135-150 EXAMPLE: MODIFICATION HISTORY: Written by: RA Howard, NRL, 27 Nov 1998 @(#)ne_from_pb.pro 1.1 11/28/98 LASCO IDL LIBRARY
NAME:
OCCLTR_CNTR
PURPOSE:
This function returns the center of the occulting disk (for LASCO)
and Sun Centers (for EIT) as a 2 element array of the column and
row numbers. The number starts at 0. The definition in the FITS
header is starting from 1.
CATEGORY:
LASCO_ANALYSIS
CALLING SEQUENCE:
Result = OCCLTR_CNTR (Hdr)
INPUTS:
Hdr: A FITS header for the image that the center is desired.
It can be either a string header or a structure header.
OUTPUTS:
This function returns the occulter center as a two element array
in which the first element is the column center and the second
element is the row center.
RESTRICTIONS:
Returns the center for the readout port "C"
PROCEDURE:
occulter_center.dat file is used first but if related data is
not found, then default values that have been determined by
other means and put into a table, here, are used.
MODIFICATION HISTORY:
Written by: R.A. Howard, 14 March 1996
17 Oct 96 RAH, Revised C1 coords
04 Dec 96 RAH, Corrected case statement default value
01 Dec 98 AEE, added code to use occulter_center.dat before
attempting to use the defaults in this file.
Also added defaults for EIT in the case statement.
14 Mar 01 NBR, Use different method to retrieve C3 center using
time-varying points
3 Dec 01 NBR, Change path to Windows and SSW compatible for GSV
12/07/01, @(#)occltr_cntr.pro 1.9 - LASCO NRL IDL LIBRARY
NAME:
ORBIT_FILE_TYPE
PURPOSE:
This function returns an identifier, indicating which type of
orbit files exist at the site. If files of more than one type
exist, then a fits file is returned if possible.
CATEGORY:
CALLING SEQUENCE:
Result = ORBIT_FILE_TYPE (Date)
INPUTS:
Date: format 'DD-Mmm-YYYY HH:MM:SS.SSS'
OUTPUTS:
Type: 'CDF' - cdf format orbit files
'FITS' - fits format orbit files
'NULL' - no orbit files found
PROCEDURE:
Determines whether the available orbit files are definitive or
predictive, whether the available file types are *.CDF or
*.FITS, and whether the prefix is SO_OR_* or YYMMDD*.cdf
MODIFICATION HISTORY:
Written by: D.A. Biesecker, 12 September 1996
Adapted from GET_ORBIT_CDF written by S.P. Plunkett
@(#)orbit_file_type.pro 1.1 10/04/96 LASCO IDL LIBRARY
NAME: PLOT_LASCO_SPECTRA PURPOSE: This procedure plots the LASCO filter spectral data CATEGORY CALIBRATION CALLING SEQUENCE: PLOT_LASCO_SPECTRA,Tel INPUTS: Tel: string containing the telescope: 'c1','c2','c3' KEYWORD PARAMETERS: SINGLE: If set then a single plot is made. The default is to plot all of the spectra. OUTPUTS: Generates a plot MODIFICATION HISTORY: Written by R.A. Howard, NRL @(#)plot_lasco_spectra.pro 1.1 07/31/97 :NRL Solar Physics
NAME:
point_filter
PURPOSE:
This procedure filters out the pixels which are brighter than
the area in which they are found.
CALLING SEQUENCE:
point_filter,indata,bw,tol,niter,outdata,outpts
INPUTS:
indata = 2-dim array of data to be filtered
bw = width of square filter box - must be ODD, recommended
value 5.
tol = scaling factor to controll how bright the point
is before being replaced, recommended value 7.
niter = number of time to repeat the process
OUTPUTS:
outdata = the filtered array
outpts = the value and location of the points removed from
the indata array. outpts is an (n,3) array.
n is the number of points subtracted; ,0 is the data
value (indata - outdata) with pixel coordinates of
x=,1, and y=,2.
PROCEDURE:
Uses filter_image to calculate the mean, median, and variance
over a square box of size bw. For those point which differ from
the mean by more than tol*standard deviation, replace the value
with the median. Finally, fill the outpoint array with the
subtracted values and pixel coordinates.
MODIFICATION HISTORY:
Written by Mike Andrews LASCO/NRL/HUGHES STX 12 Feb 1996.
Modified by MDA 20 Mar 1996 to reduce memory requirement by
reusing the hold array.
Modified by MDA 26 Feb 97 to calculate x and y correctly.
file POPUP_HELP.PRO - Creates a widget that displays a pop up message,
modifed from DMZ's acknowledge.pro -- LYW
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
pro popup_help_event, event
The event handler for PRO POP_HELP
calls to : none
common : none
The only purpose of the routine is to kill the message window,
created by PRO POP_HELP, AFTER the user reads the message.
The user clicks the "Dismiss" button to get here.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
pro popup_help, message [, title=title, group=group]
Creates a message window that informs the user with a message and
requires the user to read the message and to dismiss the window
before control will return to the calling procedure.
calls to : xregistered('pop_help'), xmanager,'popup_help'
common : none
INPUT
message: string or string vector containing a message
that will be displayed on the screen for the
user to read.
(multi-line messages are aesthetically better)
title: Optional title of the message window
OUTPUT
none
MODIFICATION HISTORY
JAN 1993 -- Elaine Einfalt (HSTX)
August 19, 1994 -- Liyun Wang (ARC)
August 31, 1994 -- Liyun Wang (ARC), added GROUP keyword
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Project : SOHO - LASCO/EIT
Name : QUICK_LOOK
Purpose :
Explanation :
Use : IDL> QUICK_LOOK, img
Inputs : img 2 Dimensional image.
Opt. Inputs : caller A structure containing the id of the caller.
Outputs : None.
Opt. Outputs: None.
Keywords : None.
Calls :
Common : QUICK_LOOK_SHARE
Restrictions: None.
Side effects: None.
Category : Image Display.
Prev. Hist. : None.
Written : Scott Paswaters, NRL, January 1995.
Modified :
Version : Version 0.1, January 9, 1995
NAME:
REMOVE_CR
PURPOSE:
Removes cosmic rays (and other bright pixels which are not stars).
PROCEDURE:
Compares each pixel of crnt_im with the pixel in im1 where
a star would be if there was a star in that pixel. If the ratio
exceeds 'threshold', then that pixel = median value of superpixel
in the previous image.
CALLING SEQUENCE:
Result = REMOVE_CR(im1,h1,crnt_im,h2,again)
INPUTS:
im1 (num)ARR previous image
h1 STRUCT header from previous image
crnt_im (num)ARR current image
h2 STRUCT header from current image
AGAIN STRING 'y' to prompt for ROI
shrink FLOAT Factor by which the image is shrunk from 1024x1024
KEYWORDS:
ALL remove cosmic rays AND stars
INIT define ROI on first time through
SUMSTARS Sum star images
PF Return point-filtered image
Returned in Common block:
N_CR Returns number of pixels removed
COORDS Returns coordinates of removed pixels
OUTPUTS:
crnt_im with cosmic rays removed is returned
PROCEDURE:
Compute point filtered image. Subtract point filtered image from current image (imdiff).
Subtract background image from point filtered image (bkgdiff).
Compute std dev of each superpixel of bkgdiff. Candidate crays
and stars are where imdiff is greater than TWICE the interpolated standard deviation for each
superpixel of bkgdiff. For each candidate pixel, check in the previous image in a 5x5 box
where that pixel should have been if it was a star, based on a given star motion across
the FOV. If the maximum value from this box is less than the value of that pixel in the
current image minus the standard deviation of the superpixel from diff, than replace with
the median value of the superpixel of the previous image.
MODIFICATION HISTORY:
Written 12/23/98, N Rich - NRL/Interferometrics
4/12/99 NBR Use median-filtered image to check for CRs
7/14/99 NBR Fix problem when gaps in im1
11/14/00 NBR Add N_CR keyword, reduce_history common block; use point_filter
11/21/00 NBR - Optimized for raw images
12/28/00 NBR - Use C3clearmask2.fts for defining no-check area
7/19/01 NBR - Tinkering; using dn/sec images
LIMITATIONS:
- may remove comets, planets, etc. if not exempted by setting
again to 'y' which calls the DEFROI routine
ersion = '@(#)remove_cr.pro 1.2 11/02/01' ; NRL LASCO IDL LIBRARY
NAME:
ROLL_TIMES
PURPOSE:
Returns dates/times of time periods when SOHO is rolled in TAI seconds
CATEGORY:
Attitude
CALLING SEQUENCE:
roll_times,stautc,enutc
INPUTS:
None
OUTPUTS:
Double-arrays of seconds (times)
stautc Start times of roll periods
enutc End times of roll periods
KEYWORD PARAMETERS:
MODIFICATION HISTORY:
Written by: Nathan Rich, NRL/Interferometrics - 20 Nov. 2001
@(#)roll_times.pro 1.1, 11/30/01 LASCO IDL LIBRARY
NAME:
SCALE_ROTATE
PURPOSE:
This function moves, scales and rotates an
image to a new position and plate scale
factor.
CATEGORY:
ANALYSIS
CALLING SEQUENCE:
Result = SCALE_ROTATE (Img,Roll,
Oldscale,Xcen,Ycen,
Newscale,Newxcen,Newycen)
INPUTS:
Img: Input image array
Roll: Angle between solar north and the top
of the image measured eastward (radians)
Oldscale: Plate scale (arc sec/pixel) of input image
Xcen: Column of sun center of input
Ycen: Row of sun center of input
Newscale: Plate scale (arc sec/pixel) of output image
Newxcen: Column of sun center to move to
Newycen: Row of sun center to move to
OPTIONAL INPUTS:
None
KEYWORD PARAMETERS:
Xsize: Number of columns in output image
Default is input image
Ysize: Number of rows in output image
Default is input image
OUTPUTS:
Result: The scaled and rotated image
OPTIONAL OUTPUTS:
None
COMMON BLOCKS:
None
SIDE EFFECTS:
None
RESTRICTIONS:
PROCEDURE:
EXAMPLE:
MODIFICATION HISTORY:
Written by: RA Howard, NRL, 27 Nov 1995.
@(#)scale_rotate.pro 1.2 05/14/97 :NRL Solar Physics
NAME: SCAN_PROFILE PURPOSE: This function returns the values of the Img in a straight line between the end points specified by P0 and P1. CATEGORY: LASCO ANALYSIS CALLING SEQUENCE: Result = SCAN_PROFILE(Img,P0,P1,Col,Row) INPUTS: Img: A 2-D array containing the image intensities P0: A 2 element array containing the column and row values of one of the end points P1: A 2 element array containing the column and row values of the other end point OUTPUTS: Result: An array containing the scan profile from P0 to P1 OPTIONAL OUTPUTS: COL: An array containing the image column values, where the Function result has been computed. ROW: An array containing the image row values, where the Function result has been computed. MODIFICATION HISTORY: Written by: RA Howard, 17 Mar 1996 @(#)scan_profile.pro 1.2 05/14/97 :NRL Solar Physics
TITLE: SPM_FCOR PURPOSE: This function returns the Saito-Poland-Munro F corona INPUT PARAMETERS: R: Radius (in solar radii) Can be a single number or an array OPTIONAL INPUT PARAMETERS: PA: Position angle (in degrees). If omitted, then the equatorial corona is returned (PA=90) OUTPUTS: The F corona is returned in Mean Solar Brightness units as an array of floating point numbers corresponding to the size of the input R array. RESTRICTION: The F corona is only valid for radial distances from 1.5 to 5 solar radii. PROCEDURE: The F-coronal values for the polar and equatorial cases given in Saito, Poland and Munro, Solar Physics, vol 55, pp 121-134, 1977 are used as the reference points. The logs of the brightness values are linearly interpolated to obtain the brightness at the desired radii. To obtain the brightness for a position angle between the pole and equator, the polar and equatorial values are linearly interpolated (in the log). EXAMPLES: To obtain the polar F-corona at 2.8 solar radii: f = SPM_FCOR(2.8,0) To obtain the equatorial K-corona at 2.8 solar radii: f = SPM_FCOR(2.8,90) or f = SPM_FCOR(2.8) To obtain the F-corona at 45 degrees at 2, 3, 4, 5, and 6 Rs: r = [2,3,4,5,6] f = SPM_FCOR(r,45) WRITTEN: 18 Dec 1997, RAHoward, NRL @(#)spm_fcor.pro 1.1 12/30/97 :LASCO IDL LIBRARY
TITLE: SPM_KCOR PURPOSE: This function returns the Saito-Poland-Munro K corona INPUT PARAMETERS: R: Radius (in solar radii) Can be a single number or an array OPTIONAL INPUT PARAMETERS: PA: Position angle (in degrees). If omitted, then the equatorial corona is returned (PA=90) OUTPUTS: The K corona is returned in Mean Solar Brightness units as an array of floating point numbers corresponding to the size of the input R array. PROCEDURE: The K-coronal values for the polar and equatorial cases given in Saito, Poland and Munro, Solar Physics, vol 55, pp 121-134, 1977 are used as the reference points. The logs of the brightness values are linearly interpolated to obtain the brightness at the desired radii. To obtain the coronal intensity for a position angle between the pole and equator, the polar and equatorial values are linearly interpolated (in the log). EXAMPLES: To obtain the polar K-corona at 2.8 solar radii: K = SPM_KCOR(2.8,0) To obtain the equatorial K-corona at 2.8 solar radii: K = SPM_KCOR(2.8,90) or K = SPM_KCOR(2.8) To obtain the K-corona at 45 degrees at 2, 3, 4, 5, and 6 Rs: r = [2,3,4,5,6] k = SPM_KCOR(r,45) WRITTEN: 18 Dec 1997, RAHoward, NRL @(#)spm_kcor.pro 1.1 12/30/97 :LASCO IDL LIBRARY
TITLE: SPM_NE PURPOSE: This function returns the Saito-Poland-Munro electron density INPUT PARAMETERS: R: Radius (in solar radii) Can be a single number or an array OPTIONAL INPUT PARAMETERS: Region: =0: Return the equatorial corona density =1: Return the polar coronal density =2: Return the coronal hole density If omitted, then the equatorial corona density is returned OUTPUTS: The electron density in particles per cm^3 as an array of floating point numbers corresponding to the size of the input R array. PROCEDURE: The electron density for the polar, equatorial and coronal hole cases given in Saito, Poland and Munro, Solar Physics, vol 55, pp 121-134, 1977 are used as the reference points. The density models are given in a function form as Ne = c1 * R^d1 + c2 * R^d2 The coefficients c1, c2, d1 and d2 are given by SPM for each of the three models. EXAMPLES: To obtain the polar electron density at 2.8 solar radii: dne = SPM_NE(2.8,1) To obtain the equatorial K-corona at 2.8 solar radii: dne = SPM_NE(2.8,0) or dnef = SPM_NE(2.8) To obtain the electron density in an equatorial coronal hole at 2, 3, 4, 5, and 6 Rs: r = [2,3,4,5,6] dne = SPM_NE(r,2) WRITTEN: 18 Dec 1997, RAHoward, NRL 16 Aug 2000, AHayes, NRL, switched polar and equatorial CH order to agree with paper @(#)spm_ne.pro 1.2 08/16/00 :LASCO IDL LIBRARY
TITLE: SPM_PB PURPOSE: This function returns the Saito-Poland-Munro polarization brightness INPUT PARAMETERS: R: Radius (in solar radii) Can be a single number or an array OPTIONAL INPUT PARAMETERS: Region: =0: Return the equatorial pB =1: Return the polar pB =2: Return the coronal hole pB If omitted, then the equatorial pB is returned OUTPUTS: The polarization brightness in mean solar brightness units is returned as an array of floating point numbers corresponding to the size of the input R array. PROCEDURE: The polarization brightness for the polar, equatorial and coronal hole cases given in Saito, Poland and Munro, Solar Physics, vol 55, pp 121-134, 1977 are used as the reference points. The pB models are given in a function form as pB = c1 * R^d1 + c2 * R^d2 The coefficients c1, c2, d1 and d2 are given by SPM for each of the three models. EXAMPLES: To obtain the polar pB model at 2.8 solar radii: pb = SPM_PB(2.8,1) To obtain the equatorial K-corona at 2.8 solar radii: pb = SPM_PB(2.8,0) or pb = SPM_PB(2.8) To obtain the pB in an equatorial coronal hole at 2, 3, 4, 5, and 6 Rs: r = [2,3,4,5,6] pb = SPM_PB(r,2) WRITTEN: 18 Dec 1997, RAHoward, NRL 16 Aug 2000, AHayes, NRL, corrected order of polar and CH @(#)spm_pb.pro 1.2 08/16/00 :LASCO IDL LIBRARY
Name:
STDIMGPLOT
Purpose:
generates standard plots for image analysis
Usage:
STDIMGPLOT,A,Hdr
Inputs:
A = image
Hdr = FITS header, header structure
SCCS variables for IDL use
%W% %H% :NRL Solar Physics
Name:
STDIMGPLOT2
Purpose:
generates standard plots for analysis of 64x1024 images
Usage:
STDIMGPLOT2,A,Hdr
Inputs:
A = image
Hdr = FITS header
%W% %H% :LASCO IDL LIBRARY
NAME: SW_NE PURPOSE: This function returns the electron density in the solar wind for the input solar radii values CATEGORY: DATA ANALYSIS CALLING SEQUENCE: Result = NE_SW(RSUN, NE1AU) INPUTS: RSUN: the radial distance (in solar radii) to compute the electron density OPTIONAL INPUTS: NE1AU: the electron density at 1 AU. If not specified, a value of 7.2/cm3 is used KEYWORD PARAMETERS: None OUTPUTS: This function returns the electron density in particles/cm3 OPTIONAL OUTPUTS: None COMMON BLOCKS: None SIDE EFFECTS: None RESTRICTIONS: None PROCEDURE: Uses the results from Leblanc, Dulk, Bougeret (Solar Physics, v183, pp165-180 (1998) who give the functional form of the electron density as a function of solar radius. The result is scaled to a value of 7.2 particles per cubic centimeter at 1 AU. The function was determined by radio Type III bursts. EXAMPLE: neprofile = NE_SW (Rsun,10) Rsun is an array of solar radii 10 is the electron density at 1 AU MODIFICATION HISTORY: Written by: R.A. Howard, NRL 10 June 2004. %W% %H% LASCO IDL LIBRARY
NAME: TELESCOPE_POINTING PURPOSE: This function returns the telescope pointing information for SUNDIST. CATEGORY: LASCO DATA_ANAL CALLING SEQUENCE: Result = TELESCOPE_POINTING (Hdr) INPUTS: Hdr: The image header as a LASCO header structure. OUTPUTS: This function returns a 4 element floating point array of the telescope pointing information: word 1: column coordinates of the center of the sun word 2: row coordinates of the center of the sun word 3: roll angle to solar north, in degrees, measured westward word 4: size of the solar radius in pixels SIDE EFFECTS: Calls GET_SUN_CENTER, GET_SEC_PIXEL, GET_SOLAR_RADIUS, GET_SOLAR_ROLL PROCEDURE: The SUNDIST procedure needs the pointing information to be supplied in an array. EXAMPLE: Return the pointing information for the image pointed to by header. Coords = TELESCOPE_POINTING(Hdr) MODIFICATION HISTORY: Written by: RA Howard, 30 Apr 1997 Mods to accept MLO headers @(#)telescope_pointing.pro 1.3 08/28/98 LASCO IDL LIBRARY
Name:
TIME_CORRECTION
Purpose:
To return the OBE - LOBT time difference that is equal to or right before the
the input obe-time from the values in TIME_DIFFERENCE_DB.
Input Parameters:
OBE_TIME - An input obe_time for which the time offset is to be obtained.
Output:
DELTA_ERROR - A two element string array.
RETURN VALUE:
DT - A two element long array containing the time offset as
delta_mjd and delta_ms.
Keywords:
CORRECTION_STRING - Used to return an ASCII string with the
time difference.
VERBOSE - If set, print out time selection info.
Calling Sequence:
dt = TIME_CORRECTION(obe_time, delta_error, CORRECTION_STRING = CORRECTION_STRING, /VERBOSE)
Restrictions:
If large jumps in the difference occur between realtime contacts, this
routine could return inaccurate values.
History:
1997 April 17 - D.M. fecit.
1997 August 27 - Added CORRECTION_STRING keyword D.M. fecit.
1999 Feb 7 - Added binary search and indexing to speed finding
the right record, created unix version for Solaris - DW
2002 Jul 10 - Added DELTA_ERROR parameter - Ed Esfandiari
2002 Jul 10 - Also added a true binary search - Ed Esfandiari
2003 Mar 11 - Add REDUCE_HISTORY common block;
change datafile calls; delta_error=N/A for c2_offsets - NRich
2004 Sep 15 - Change OS_version check to 'endian-ness' check, since
not all unix platforns are necessarily big-endian - GR Lawrence
@(#)time_correction.pro 1.4, 10/03/05 NRL IDL LIBRARY
NAME: VDHAN PURPOSE: This function computes the "an" coefficient in equation 24 of van de Hulst's paper CATEGORY: LASCO DATA_ANALYSIS CALLING SEQUENCE: VDHAN,N INPUTS: N: The index of the term OUTPUTS: This function returns the an coefficient. RESTRICTIONS: The index must be positive and less than 34. PROCEDURE: The procedure computes the an coefficient in equations 24a and 24b of van de Hulst, ; Bull Astron Institutes Netherlands, vol XI, 2 Feb 1950, pp143. The definition of the coefficient is given in equation 25: an = pi * n! / ((n/2)!)^2 / 2^(n+1) EXAMPLE: MODIFICATION HISTORY: Written by: RA Howard, NRL, 27 Nov 1998 @(#)vdhan.pro 1.4 11/02/01 LASCO IDL LIBRARY
NAME: VDHAN PURPOSE: This function computes the "an" coefficient in equation 24 of van de Hulst's paper CATEGORY: LASCO DATA_ANALYSIS CALLING SEQUENCE: VDHAN,N INPUTS: N: The index of the term OUTPUTS: This function returns the an coefficient. RESTRICTIONS: The index must be positive and less than 34. PROCEDURE: The procedure computes the an coefficient in equations 24a and 24b of van de Hulst, ; Bull Astron Institutes Netherlands, vol XI, 2 Feb 1950, pp143. The definition of the coefficient is given in equation 25: an = pi * n! / ((n/2)!)^2 / 2^(n+1) EXAMPLE: MODIFICATION HISTORY: Written by: RA Howard, NRL, 27 Nov 1998 @(#)vdhan_new.pro 1.1 11/02/01 LASCO IDL LIBRARY
NAME: VDHCOEFF PURPOSE: This procedure returns the Van de Hulst coefficients for electron scattering. CATEGORY: LASCO Data Analysis CALLING SEQUENCE: VDHCOEFF,RADII,Q,AVDH,BVDH INPUTS: RADII: Array of positions above sun center in solar radii Q; Limb darkening coefficient OUTPUTS: AVDH: Van de Hulst "A" coefficient BVDH: Van de Hulst "B" coefficient COMMON BLOCKS: COM_ELTHEORY: R,AEL,BEL,CEL,DEL PROCEDURE: The functions that describe the scattering of photospheric sunlight from electrons have been developed by van de Hulst (Bulletin of the Astronomical Institutes of the Netherlands, Volume XI, Number 410, February 2, 1950, pp 135-150. The equations were originally developed in a different form by Minnaert (Zeitschrift fur Astrophysics, Vol 1, 209, 1930) and are included in Billings book "A Guide to the Solar Corona. The IDL routine, ELTHEORY in the NRL IDL library, computes the Minnaert coefficients, which are only slightly different from the van de Hulst functions in equations 11 and 12 of his paper. To compute the electron densities from pB, the VDH functions, A and B, are quite useful. The routine ELTHEORY is called to return the Minnaert coefficients and then the VDH coefficients are computed from them. EXAMPLE: To return the VDH coefficients, you must specify an array for the radial distance from the sun and the limb darkening coefficient. VDHCOEFF,R,Q,A,B MODIFICATION HISTORY: Written by: RA Howard, 27 Nov 1998.. @(#)vdhcoeff.pro 1.3 10/27/99 LASCO IDL LIBRARY
NAME: VDH_INVERSION PURPOSE: This function does the inversion of a radial fit to pB to electron density. CATEGORY: LASCO DATA_ANALYSIS CALLING SEQUENCE: VDH_INVERSION,Radii,Q,Coeff,Exps INPUTS: Radii: An array of radial points for which the inversion is to be done Q: The limb darkening parameter (0<1) Coeff: The coefficients in the fit of pB versus R Exps: The coefficients in the expansion of pB versus R OUTPUTS: This function returns the electron density inverted from the fit of pB. RESTRICTIONS: The pB fit is assumed to be only of the K-corona. Any F-coronal contribution must be removed. The pB fit coefficients must be a polynomial of the form, r^(-n). The exponents don't need to be incrementing by 1 and may be fractional. PROCEDURE: The procedure follows the method of van de Hulst, Bull Astron Institutes Netherlands, vol XI, 2 Feb 1950, pp135-150 The Ne is assumed to be axially symmetic. EXAMPLE: MODIFICATION HISTORY: Written by: RA Howard & Andrew Hayes, NRL, Dec 1998 @(#)vdh_inversion.pro 1.2 10/08/00 LASCO IDL LIBRARY
NAME:
GET_PT
PURPOSE:
Digitize a point on a previously plotted curve, and return
the corresponding array element.
CALLING SEQUENCE:
Result = GET_PT(XAXIS,YAXIS,XPOINT,YPOINT)
INPUTS:
XAXIS - the x axis vector which was used to make the plot.
YAXIS - the y axis vector which was used to make the plot.
KEYWORD PARAMETERS:
NOHIGHLIGHT - set to inhibit putting a red mark on the curve
at the digitized point.
MESSAGE - a string to print as the message to the user.
Default = 'Digitize a point: '
NOINIT - set to inhibit placing the cursor in the center of
the plot window.
OUTPUTS:
Result - The array subscript of the digitized point.
OPTIONAL OUTPUT PARAMETERS:
XPOINT, YPOINT - the digitized points.
SIDE EFFECTS:
A mark is drawn on the plot at the digitized point.
PROCEDURE:
The user is asked to digitize a point on the curve using the
mouse. The VALUE_TO_INDEX function is used to find the
closest array element.
MODIFICATION HISTORY:
D. L. Windt, Bell Laboratories, November 1989
Feb. 1991, Removed call to TEK_COLOR
Mar. 1997, replaced index search code with call to
VALUE_TO_INDEX function.
windt@bell-labs.com
NAME:
REDUCE_STD_SIZE
PURPOSE:
Create a "full image" 512x512 of the input image. Accounts for sub
images and pixel summing.
CATEGORY:
LASCO DATA REDUCTION
CALLING SEQUENCE:
Result = REDUCE_STD_SIZE(Img,Hdr)
INPUTS:
Img: Input Image array
Hdr: FITS header or LASCO header structure
OPTIONAL INPUTS:
None
KEYWORD PARAMETERS:
FULL: Returns an image of size 1024x1024 pixels if set. The default is a
512x512 image.
NO_REBIN: Set this to return an array which has not been rescaled
into 512 or 1024. The default is to perform a rebin to
resize the image.
BIAS: Subtracts bias and corrects values for binning before returning image.
If the bias is set to 1, then the OFFSET_BIAS routine is called.
If the bias is greater than 1, then the value in the bias keyword is used.
SAVEHDR: Do not put new values in header
OUTPUTS:
The function result is a full image, with the input image inserted into
the correct place in the full image. Also, hdr is modified.
OPTIONAL OUTPUTS:
bias
COMMON BLOCKS:
None
SIDE EFFECTS:
None
PROCEDURE:
The input image is inserted into its proper place in a full image.
On-chip and off-chip pixel summing are properly considered. The output
image is resized to a 512 x 512 image. Optionally, it can be resized
to 1024 x 1024 or any size, or not resized at all.
If the image is not resized, then each dimension would be determined
by the amount of summing along each axis according to 1024 / SUM,
where SUM is the number of pixels summed along the axis. i.e., if 2x2
summing is used, then the image size would be 512 x 512. If 4x2
summing were used, then the image size would be 256 x 512.
IF BIAS keyword is set, output image values are corrected for summing
and offset bias. LEBSUM and SUM header values are changed to reflect output.
EXAMPLE:
To obtain the default 512 x 512 image:
Output = REDUCE_STD_SIZE(Img,Hdr)
To obtain a 1024 x 1024 image:
Output = REDUCE_STD_SIZE(Img,Hdr,/full)
To obtain an image sized by the summing:
Output = REDUCE_STD_SIZE(Img,Hdr,/no_rebin)
MODIFICATION HISTORY: Written, RA Howard, NRL
VERSION 1 rah 29 Aug 1996
VERSION 1.1 sep 29 Sep 1996 added /FULL keyword, and ability to
handle header structures
VERSION 1.2 rah 22 Oct 1996 Added /no_rebin keyword
VERSION 1.3 rah 17 Jul 1997 Corrected handling of image sizes >1024
VERSION 1.4 nbr 11 Dec 1998 Corrected handling of summed images with sizes > 512
VERSION 1.5 nbr 11 Feb 1999 Modify R[1,2][row,col] in header (returned)
nbr 12 Feb 1999 Divide by lebxsum*lebysum if binned image
nbr 17 Feb 1999 See notes below
nbr 18 Feb 1999 Do not divide by lebxsum*lebysum if %P or PB image
nbr 23 Mar 1999 Modify NAXIS[1,2] in header
nbr 23 Apr 1999 Added telescope check
nbr 7 Dec 1999 Replace stc_flag with LASCO_FITSHDR2STRUCT; fix
problem with unsummed, rebinned images
nbr, 1 Aug 2000 - Modify for MK4 images
nbr, 30 Jan 01 - Add BIAS keyword and streamline program
nbr, 15 Jun 01 - Remove conditional on REBIN
nbr, 19 Nov 01 - Handle zero-size images
nbr, 14 Mar 03 - Correct binning correction again; add /SAVEHDR
nbr, 5 May 04 - Update crpix values in header if subfield
rah, 27 Feb 06 - Add the capability to use the bias value input to the program
02/27/06 @(#)reduce_std_size.pro 1.16 :NRL Solar Physics
lasco_mk_html_help.pro on
Fri Jan 12 09:28:47 2007.