[Previous]
[Next]
Name:
valid_pass
Purpose:
Search through the event list and select passes which have antenna
elevations which exceed the minimum op_rules value for the minimum
op_rules time.
CALLS: ***
ADDTIME [1], ADDTIME [2]
CALLED BY:
make_32 [1], op_edit [1], op_edit [2], op_time_sort
History:
19-oct-91, Written, J. R. Lemen
15-nov-91, Updated, J. R. Lemen, take abs() so subsequent
application will still work
[Previous]
[Next]
Name:
valid_pass2
Purpose:
Retain dsn contacts if they are with dsn_time of the times in the
structure dsn_select.
If pause preceeds rep time, use ANT CHNG TO A (or B) instead.
Inputs:
dsn_time = Time in minutes to satisfy the selection criterion
if dsn_num = -1, return
if dsn_num = 0, remove all dsn contacts.
Optional Output Keyword:
str_select = String array of DSN contacts selected
CALLS: ***
ADDTIME [1], ADDTIME [2], fmt_tim [1], fmt_tim [2]
CALLED BY:
make_32 [1], op_edit [1], op_edit [2], op_time_sort
History:
15-nov-91, Written, J. Lemen
27-jan-92, Updated, J. Lemen -- Added check for Pause before REP
1-jul-92, Updated, J. Lemen -- Fixed check for Pause before REP
4-may-93, JRL, Change timing logic for DSN Rep/Ant change during night
27-nov-93, JRL, Improved logic to detect simultaneous BDR and Ant changes
28-mar-95, JRL, Check station and time to try to get the correct DSN
station. Change necessitated by addition of Wallops.
[Previous]
[Next]
Name:
valid_pass3
Purpose:
Eliminate KSC passes from op selection between times KSC_tim1 and KSC_tim2
Inputs:
event = Event structure
KSC_tim1 = Starting time (external format)
KSC_tim2 = Ending time (external format)
Outputs:
Function returns an edited version of event.
Optional Output Keyword:
str_remove = String array of KSC contacts eliminated
Method:
if (total(KSC_tim1) eq 0) or (total(KSC_time2) eq 0), no action is taken.
CALLS: ***
ADDTIME [1], ADDTIME [2], fmt_tim [1], fmt_tim [2]
CALLED BY:
make_32 [1], op_edit [1], op_edit [2], op_time_sort
History:
15-nov-91, Written, J. Lemen
[Previous]
[Next]
Name:
valid_pass4
Purpose:
Called by op_edit (from op_first_guess)
1. Check there are more than 5 contiguous KSC contacts.
If so, give the user the option to remove one.
2. Also, change los to QT M if the sun light time to the next contact
exceeds op_rules.min_sun.a
3. Eliminate events prior to the first KSC AOS and after last KSC LOS
4. Make last two KSC LOSs QT M on the next day.
5. Change to Quiet Rate Med at times of SAA if in Quiet Rate High and
not night.
CALLS: ***
ADDTIME [1], ADDTIME [2], BSORT [1], BSORT [2], BSORT [3], BSORT [4], Ex2Int [1]
Ex2Int [2], STR2ARR [1], STR2ARR [2], contact_sum, fmt_pass, fmt_tim [1]
fmt_tim [2], get_dn_rate [1], get_dn_rate [2], input [1], input [2], make_32 [1]
make_32 [2], op_saa_med [1], op_saa_med [2], save_event [1], save_event [2]
str_replace [1], str_replace [2]
CALLED BY:
get_dn_rate [1], get_dn_rate [2], make_32 [1], make_32 [2], op_edit [1]
op_edit [2], op_time_sort
Modification History:
Written, 11-dec-91, J. R. Lemen
Modified, 11-jan-92, J. R. L. -- Fixed bug in code which counted KSC passes
Modified, 16-sep-92, JRL: Make KSC pass(es) of the next day LOS QT M
Modified, 12-nov-92, JRL, Fixed bug: eliminating a pass made the part of
the code that changed los to QT M fail for
multiple contacts on next day.
12-oct-93, JRL, Call make_32 to force the alignment of the times to be on 32sec boundaries
29-nov-93, JRL, After calling make_32, use bsort to preserve orginal order
Fix the start time (moved code from op_edit to here)
13-jun-94, JRL, Added code to add Quiet Rate Med / Quiet Rate High during SAAs
20-jun-94, JRL, Make only last 2 KSC LOSs on 2nd day QT/M (instead of all on 2nd day KSC LOSs).
30-jul-94, JRL, Always ask if user wants to delete a pass (for ASCA conflicts)
28-mar-95, JRL, Pass in the og_table to contacts_sum
25-apr-95, JRL, Enable deletion of 2nd day KSC passes
26-feb-97, JRL, Add call to op_bdr_opt
8-mar-97, JRL, Altered method for removing events before first KSC AOS
11-mar-97, JRL, Call op_start_end to count KSC passes
Improved algorithm to make last 2 KSC passes QT/M
[Previous]
[Next]
Name:
valid_pass4
Purpose:
Called by op_edit (from op_first_guess)
1. Check there are more than 5 contiguous KSC contacts.
If so, give the user the option to remove one.
2. Also, change los to QT M if the sun light time to the next contact
exceeds op_rules.min_sun.a
3. Eliminate events prior to the first KSC AOS and after last KSC LOS
4. Make last two KSC LOSs QT M on the next day.
5. Change to Quiet Rate Med at times of SAA if in Quiet Rate High and
not night.
CALLS: ***
ADDTIME [1], ADDTIME [2], BSORT [1], BSORT [2], BSORT [3], BSORT [4], Ex2Int [1]
Ex2Int [2], STR2ARR [1], STR2ARR [2], contact_sum, fmt_pass, fmt_tim [1]
fmt_tim [2], get_dn_rate [1], get_dn_rate [2], input [1], input [2], make_32 [1]
make_32 [2], op_saa_med [1], op_saa_med [2], save_event [1], save_event [2]
str_replace [1], str_replace [2]
CALLED BY:
get_dn_rate [1], get_dn_rate [2], make_32 [1], make_32 [2], op_edit [1]
op_edit [2], op_time_sort
Modification History:
Written, 11-dec-91, J. R. Lemen
Modified, 11-jan-92, J. R. L. -- Fixed bug in code which counted KSC passes
Modified, 16-sep-92, JRL: Make KSC pass(es) of the next day LOS QT M
Modified, 12-nov-92, JRL, Fixed bug: eliminating a pass made the part of
the code that changed los to QT M fail for
multiple contacts on next day.
12-oct-93, JRL, Call make_32 to force the alignment of the times to be on 32sec boundaries
29-nov-93, JRL, After calling make_32, use bsort to preserve orginal order
Fix the start time (moved code from op_edit to here)
13-jun-94, JRL, Added code to add Quiet Rate Med / Quiet Rate High during SAAs
20-jun-94, JRL, Make only last 2 KSC LOSs on 2nd day QT/M (instead of all on 2nd day KSC LOSs).
30-jul-94, JRL, Always ask if user wants to delete a pass (for ASCA conflicts)
28-mar-95, JRL, Pass in the og_table to contacts_sum
25-apr-95, JRL, Enable deletion of 2nd day KSC passes
[Previous]
[Next]
NAME:
vblink
PURPOSE:
To blink between two video images
SAMPLE CALLING SEQUENCE:
vblink, f0, f1, nreps=nreps, speed=speed, wait=wait
CALLS: ***
command_tty2, sonyloop [1], sonyloop [2]
HISTORY:
Written 23-Jun-93 by M.Morrison
[Previous]
[Next]
NAME:
VELOVECT3
PURPOSE:
Produce a two-dimensional velocity field plot.
A directed arrow is drawn at each point showing the direction and
magnitude of the field.
CATEGORY:
Plotting, two-dimensional.
CALLING SEQUENCE:
VELOVECT3, U, V [, X, Y]
INPUTS:
U: The X component of the two-dimensional field.
U must be a two-dimensional array.
V: The Y component of the two dimensional field. Y must have
the same dimensions as X. The vector at point (i,j) has a
magnitude of:
(U(i,j)^2 + V(i,j)^2)^0.5
and a direction of:
ATAN2(V(i,j),U(i,j)).
OPTIONAL INPUT PARAMETERS:
X: Optional abcissae values. X must be a vector with a length
equal to the first dimension of U and V.
Y: Optional ordinate values. Y must be a vector with a length
equal to the first dimension of U and V.
KEYWORD INPUT PARAMETERS:
MISSING: Missing data value. Vectors with a LENGTH greater
than MISSING are ignored.
LENGTH: Length factor. The default of 1.0 makes the 5.0km/s
vector the length of a cell.
DOTS: Set this keyword to 1 to place a dot at each missing point.
Set this keyword to 0 or omit it to draw nothing for missing
points. Has effect only if MISSING is specified.
TITLE: A string containing the plot title.
POSITION: A four-element, floating-point vector of normalized
coordinates for the rectangular plot window.
This vector has the form [X0, Y0, X1, Y1], where (X0, Y0)
is the origin, and (X1, Y1) is the upper-right corner.
NOERASE: Set this keyword to inhibit erase before plot.
COLOR: The color index used for the plot.
DEVICE: Use device coordinates
ACOLOR: The color index for arrows.
OUTPUTS:
None.
CALLED BY:
LP_VELMAP
COMMON BLOCKS:
None.
SIDE EFFECTS:
Plotting on the selected device is performed. System
variables concerning plotting are changed.
RESTRICTIONS:
None.
PROCEDURE:
Straightforward. The system variables !XTITLE, !YTITLE and
!MTITLE can be set to title the axes.
MODIFICATION HISTORY:
DMS, RSI, Oct., 1983.
For Sun, DMS, RSI, April, 1989.
Added TITLE, Oct, 1990.
Added POSITION, NOERASE, COLOR, Feb 91, RES.
added Dev and acolor, 21-Sept-93, GAL.
Revised for velvect3.pro T.Shimizu 23-Aug-94
The default of 1.0 makes the 5.0km/s
vector the length of a cell.
[Previous]
[Next]
Constructs a four-panel (one panel for light curves and 3 for spectral
data) viewgraph. The BDA file start and stop dataset numbers are
prompted for. See GS_VG for greyscale interface to same plots.
JM Nov '91
RDB 18-Feb-92 DECOMPRESS -> BCS_DECOMP
[Previous]
[Next]
NAME:
video_blink
PURPOSE:
To blink between two video images
SAMPLE CALLING SEQUENCE:
video_blink, st_frame, nrep, wait_sec
video_blink, 19482, 50, .1
INPUT:
st_frame- The starting frame number
nrep - The number of repeats
wait_sec- The wait between frames in seconds
CALLS: ***
sonyloop [1], sonyloop [2]
HISTORY:
Written 23-Jun-93 by M.Morrison
[Previous]
[Next]
NAME:
video_menu
PURPOSE:
Allow the user to run the Sony video recorder to look at movies
SAMPLE CALLING SEQUENCE:
video_menu
video_menu, /vcr, series=[31, 30, 26, 23, 15, 32, 37, 54]
video_menu, /vcr, series=[52, 77, 78, 104, 110, 113]
OPTIONAL INPUT:
infil - The file describing the start/stop frames
(see $DIR_GEN_DATA/video_menu.txt as an example)
CALLS: ***
get_host [1], get_host [2], input [1], input [2], rd_video_menu, sonyloop [1]
sonyloop [2], tbeep [1], tbeep [2], tbeep [3], video_menu_key, wmenu_sel [1]
wmenu_sel [2], yesnox [1], yesnox [2]
OPTIONAL KEYWORD INPUT:
qdebug - If set, print some debug statements
vcr - If set, run in non-intereactive mode
OPTIONAL KEYWORD OUTPUT:
rec - The structure of the video input file
HISTORY:
Written Jun-93 by M.Morrison
20-Jun-93 (MDM) - Added capability to enter start/stop frames by hand
- Added capability to select a set of movies and play
them in series
22-Jun-93 (MDM) - Made manual frame number variable integer*4
26-Apr-94 (GLS) - Modified host name check
[Previous]
[Next]
NAME:
video_menu_key
PURPOSE:
Routine used by VIDEO_MENU to get a key stroke and to update
the speed accordingly or set the QDONE flag.
INPUT/OUTPUT:
speed - The speed of the video
qdone - A flag of whether the user is done or not (Q key hit)
CALLS: ***
GET_KBRD2
CALLED BY:
video_menu
HISTORY:
Written Jun-93 by M.Morrison
20-Jun-93 (MDM) - Modified to allow the speed to use the -2
value.
[Previous]
[Next]
NAME:
VIDEO_ON
PURPOSE:
Turn video output of SONY laser disk on or off.
CALLING SEQUENCE:
VIDEO_ON ; Turn on video output of dev = 1
VIDEO_ON,/OFF ; Turn off
VIDEO_ON,/DEV=0 ; Turn on video output of dev = 0
OPTIONAL INPUT KEYWORDS
ON ; If set (default) then turn on video output
OFF ; If set then turn off video output
DEV ; Device number (o or 1, def = 1)
CALLS: ***
command_tty2, get_sony_cmd
CALLED BY:
mk_vcr
MODIFICATION HISTORY:
14-Jan-95 - Greg Slater and Jim Lemen, written
21-Jan-95, JRL, Added a 'clear' command
[Previous]
[Next]
CALL:
video_test, [infil=infil, start_frame=start_frame, $
ctab=ctab, monitor=monitor]
KEYWORDS:
CTAB - IDL color table number to load
CALLS:
[Previous]
[Next]
ROUTINE:
video_title
PURPOSE:
Make titles for the PR movie
CALLING SEQUENCE:
array = video_title(infile)
array = video_title(infile,/plot)
array = video_title(infile,font,outfile=outfile)
array = video_title(infile,font,outfile=outfile,/high_res)
The outfile keyword will cause the array to be written to a .genx file.
INPUTS:
infile = Name of an ascii file that contains the information that
will be displayed
OPTIONAL INPUTS:
font = The default font (If not present font = 5). The font
can also be specified by embedding a !n in the text.
OPTIONAL INPUT KEYWORDS:
outfile = If name specified, will write the result to a .genx file
highres = If not set, will write to and read back from a 620x480 window.
If highres is set, the window size is doubled. After reading
back, the image is congrided to 620x480. This improves the
resolution of the IDL vector-drawn characters.
(Note: This option is slow, so it is recommended to debug
using low resolution and then when you are satisfied, use
the /highres option).
plot = If set, call stepper to display the result with loadct,1 (blue)
WARNING:
does not deal properly with semicolons!
CALLS: ***
DOC_LIBRARY, LOADCT, STEPPER [1], STEPPER [2], STEPPER [3], STEPPER [4], STEPPER [5]
STEPPER [6], STEPPER [7], STR2ARR [1], STR2ARR [2], WDEF [1], WDEF [2], rd_tfile [1]
rd_tfile [2], savegen [1], savegen [2]
EXAMPLE:
Example of the data file this routine will read:
(try extracting this message between the == lines and deleting the first ";")
============================================================================
; Semicolons are treated as comments
; Separate fields with //
; xpos // ypos // Text // size // thickness
; (size and thickness will default to 1.0 if omitted)
; (setting xpos to -1 will cause x position to auto-center)
; (setting ypos to negative value -- relative to previous y position)
-1//425//X-RAY CORONA OF THE SUN //2.8//2.8
-1//375//Images from the Soft X-ray Telescope //2.1//1.4
-1//345//on the YOHKOH mission //2.1//1.4
-1//275//Data from: November 11 to 27, 1991 //2.1//1.4
-1//220//!8Prepared by: //2.1//1.4
-1//190//J. Lemen, G. Slater, K. Strong, and S. Tsuneta //1.7//1.7
-1//100//Institute for Astronautical Research, Japan //1.4/1.4
-1// 75//National Aeronautics and Space Administration, USA//1.4//1.4
-1// 30//(V1.0 13 April 1992)//1.4
NEWPAGE//
-1//300//Data from: November 11 to 27, 1991 //2.1//1.4
-1//200//!18Displayed 100,000 times real time //2.1//1.4
============================================================================
Modification History:
14-apr-92, Written, JRL (No appologies -- we were in a hurry)
9-sep-93, JRL, Use the align=.5 option in xyouts
4-jan-94, JRL, Improved the document header. Read file with rd_tfile
11-jan-95, JRL, Allow y positions to be specified relatively
4-sep-95, HSH, edited the documentation page a bit
[Previous]
[Next]
NAME:
VIEW_SFM
PURPOSE:
Displays image from SFM file
CALLING SEQUENCE:
view_sfm,date [,/large]
INPUTS:
date date of image required
KEYWORD INPUTS:
large if set, plots as 512*512 image instead of default of 256*256
new if set, creates new window for each call
OUTPUTS:
none
KEYWORD OUTPUTS:
image array containing dispayed image
info index array associated with image
CALLS: ***
LOADCT, fmt_tim [1], fmt_tim [2], get_sfm
RESTRICTIONS:
PROCEDURE:
Does get_sfm on requested date. Traps and flags if date not found.
MODIFICATION HISTORY:
RDB 15-May-95 Written
[Previous]
[Next]
Name:
vmscopytape
Purpose:
Copy tape to tape on a VMS system
The tapes must be mounted /foreign
Calling Sequence:
vmscopytape, indrive, outdrive
vmscopytape, 0, 1 ; physical device numbers
vmscopytape, def_tapd(0), def_tapd(1) ; Names
vmscopopytape will mount the drives using def_tapd(indrive) and
dismount the drives at the end. The user will have to exit IDL to
deallocate the drives.
Inputs:
indrive Unit number (or name) of drive containing Master tape (input)
outdrive Unit number (or name) of drive containing copy tape (output)
CALLS: ***
TAPRD [1], TAPRD [2], TAPWRT [1], TAPWRT [2], WEOF [1], WEOF [2], def_tapd [1]
def_tapd [2], def_tapd [3], mt
CALLED BY:
ACOPY [1]
Modification History:
31-mar-92, J. R. Lemen, Written
16-Apr-92, gal, some general clean-up on rewind commands
[Previous]
[Next]
Calculates the Voigt function after Humlicek (1982) JQSRT 27,437.
Derivatives are from Humlicek (1979) JQSRT 21, 309.
This method is fast and VERY accurate
h=H(a,v), f=2F(a,v)
Note that the derivatives are: dH(a,v)/dv = 2.0(af-vh)
dH(a,v)/da = 2.0(ah+vf-.56418958)
2 2
Second derivative: d H(a,v)/dv = 4[(v^2-a^2)h - 2avf - h/2 + a*0.56418958]
d(2F)/dv = -2.0(ah+vf-.5641896) (Cauchy-Riemann equation)
2 2
Second derivative: d (2F(a,v))/dv = -4[(a^2-v^2)f - 2avh + f/2 +v*0.56418958]
where .5641896 is 1/sqrt(pi)
CALLED BY
STOKESFIT, VOIGTFIT [1], VOIGTFIT [2]
[Previous]
[Next]
NAME:
voigt_refl
PURPOSE
Compute multi-layer reflectivity for arbitrary wavelength between
94 and 400 A based upon voigt fits to Golub reflectivity data.
METHOD
Use semi-log polynomial fits to the voigt reflectivity parameters
for 370.090, 335.081, 288.998, 194.460, 172.828, 132.883,
107.622, 94.0953, 63.3845 angstroms.
CALLING SEQUENCE
voigt_refl,wave,refl,ll [,dave=dwave]
INPUT
wave, central wavelength of desired reflectivity peak (Angstrom).
OPTIONAL KEYWORD INPUT
dwave, half width of output spectral interval in Angstrom.
Default is wave/8.
OUTPUT
refl = reflectivity vs. wavelength
ll = wavelength array, centered on wave, n_elements = 200.
PROGRAMS CALLED
mvoigt.pro
HISTORY
3/17/98 LWA
3/19/98 LWA, Changed voigt profile resolution to 0.1 A.
4/27/98 LWA, Recomputed voigt fit parameters.
6/24/98 LWA, Assured wave was floating point.
CALLS:
[Previous]
[Next]
NAME:
VOIGTFIT
PURPOSE:
Fits a 5 parameter Voigt function to a vector, presumably representing
a spectral line):
y(x) = C - B * H(a,(x-x0)/x_D)
CATEGORY:
CALLING SEQUENCE:
fit = voigtfit(x,y,a,guess=guess)
INPUTS:
x = vector of x values
y = vector of y values
OPTIONAL INPUT PARAMETERS:
KEYWORD PARAMETERS
guess = vector of initial guesses (same format as a ... see output).
Computed and returned in guess if not specified (see
restrictions).
/plot = plot the fit over the data in the current window
/verbose = print diagnostics
/quiet = do print anything
sigma = returns with the standard deviations for each parameter
weight = vector with same dimension as x,y. Gives the weights for
each point in the fit. Default = uniform weighting.
/derivative = return the derivative, dI(x)/dx, in the vector "fit" rather
than the fit to Voigt function
/emission = Assume and emission line when computing initial guess. The
default is to assume an absorption line. This does not
affect the fit, only the initial guess when one is not
supplied.
vpguess = initial guess for the damping paramter. Only used if
voigtfit computes the initial guess. Default=0.1
/nofitvp = do not fit to the voigt parameter ... use initial guess
doppguess = initial guess for the doppler width (x units). Only used if
voigtfit computes the initial guess. Default=computed value.
/nofitdopp = do not fit to the doppler width ... use initial guess
goodfit = returns with a flag: true = the fit was good, false = the
fit was bad.
chi2 = the chi**2 for the fit. Assumes that the errors on y are sqrt(y)
OUTPUTS:
a = vector of fit values:
a(0) = C (continuum in y units)
a(1) = B (line strength in y units)
a(2) = a (damping parameter)
a(3) = x_D (doppler width in x units)
a(4) = x0 (x-value of line center)
fit = vector of computed values (same dimension as x and y)
CALLS: ***
CHI_SQR, CURVEFIT, VOIGT_FUNCT, voigt
CALLED BY:
STOKESFIT
COMMON BLOCKS:
voigt_fit_private for internal use only
SIDE EFFECTS:
o If /verbose is set, plots in the current window.
RESTRICTIONS:
o If the initial guess is not supplied, it is computed under the
assumption that the line is an absorption line, not an emission line,
unless /emission is set.
o If you call voigtfit repeatedly and both want voigtfit to compute a new
initial guess each time and return the guess in guess, you must reset
guess to 0 before each call. If you don't, the guess for the first
dataset will be used repeatedly.
EXAMPLES:
deriv1 = voigtfit(x,data1,guess=guess) ; guess returns with initial guess
deriv2 = voigtfit(x,data2,guess=guess) ; uses guess for data1
guess=0
deriv3 = voigtfit(x,data3,guess=guess) ; computes a new guess for data3
PROCEDURE:
Calls voigt.pro to compute the Voigt function and derivatives.
Calls curvefit.pro to compute the fit.
MODIFICATION HISTORY:
T. Metcalf January, 1994
[Previous]
[Next]
NAME:
VT200
PURPOSE:
Writes escape sequence to switch tek-type screens to alphnumerics.
CALLING SEQUENCE:
VT200
INPUTS:
none
OUTPUTS:
none
RESTRICTIONS:
PROCEDURE:
MODIFICATION HISTORY:
JP 1991