Top
See the eclipse season section for more information about these routines and how/when they are used.
aia_eclipse.pro - makes thermal plots for eclipse season
aia_pointing.pro - makes pointing plots for eclipse season
convert_times.pro - reads in start and end times for eclipses in yyyyddd.hhmmss
format and returns a nice text file with date in mm/dd/yy format and durations
for each eclipse listed
hmi_eclipse.pro - makes thermal plots for eclipse season
actual_dc.pro - returns the ACTUAL effective duty cycle, given the deadband
dutycycle and dutycycle duration.
dc_helper.pro - Calculates deadband duty cycle and duration values for a given
target effective duty cycle
battery_voltage_change.pro - Calculates new deadband duty cycle and duration values in
order to keep the temperatures the same after a spacecraft battery voltage adjustment,
which happens before and after every eclipse season.
temptocounts.pro - Finds the temp-to-counts temperature conversion for a
Steinhart fit. This is used for telemetry points with the Y_TSXX format.
The sdo_oh_control STOL uses a similar method when it forms heater commands.
thermal_limits.pro - Reads and plots the temperatures, target temperatures,
and high and low deadbands for all 7 HMI heater zones. Plots will turn yellow to
indicate the temperature is getting too close to a deadband, and red to indicate the
temperature has violated the deadband.
cal_time.pro - Finds the closest cadence break to a given time for a specified
cadence. It can also calculate when two or more cadences line up. It is useful if you
want a timed script (for, say, a detune calibration) to run at a very specific time,
or if you are switching cadences and do not want a break in observations.
check_limits.pro - Reads in the limits STOLs for AIA and HMI,
then checks if any limits are in danger of being violated in the next day, week, or month,
and outputs a nice HTML file with the results and any warnings.
get_mnems.pro - Allows user to search through the telemetry mnemonics and
definitions by keyword and/or build a mnemonic list for use in IDL
get_power.pro - calculates the power expended by AIA for a given period of time.
It prints the total power and average power to the terminal, and plots the power for the time
range indicated.
hmi_cal_info.pro - Finds and email out the times and FSNs of the HMI weekly calibrations.
used mainly for the JSOC Calendar calibration lists made by Zoe.
iss_err.pro - Plots the standard deviation of the ISS average Y and Z errors for each ATA
iss_err_stack.pro - Plots the standard deviation of the ISS average Y error for
ATA 3 in an easy to look at format.
annotate_plot.pro - Adds the legend and key to the long_term_trending plots.
make_trending_plots.pro - Makes month-long, year-long, and mission-long plots
given data, OR given mnemonics and times. Mainly used to make plots for the long_term_trending
website. Called by trend_aia and trend_hmi.
read_limits.pro - Reads in the limits STOLs for AIA and HMI and outputs the same
tables formatted in HTML for the Health and Safety websites.
trend_aia.pro - Wrapper for make_trending_plots - contains all mnemonic and
plotting info for the AIA long_term_trending website plots.
trend_fits_aia.pro - Makes all the plots for the long_term_trending website that
use FITS header data rather than HK telemetry data.
trend_hmi.pro - Wrapper for make_trending_plots - contains all mnemonic and
plotting info for the HMI long_term_trending website plots.
el_plot_mnem.pro - Like pb_plot_mnem but with lots more formatting options. Used to make the
long-term-trending plots. Unless you need really fancy plots, just use pb_plot_mnem.
get_colors.pro - Returns the 0-256 value for a small selection of colors. Called from
make_trending_plots and other things.
plot_error.pro - Plots error or event occurences (such as framelist errors, timer violations, etc.)
from an already generated input file containing the output of a "grep" in the history logs, or
the date and time of each occurence. This can really be used to plot occurences of anything
over time, where the date (x-axis) is important but there is no (y-axis) value.
save_plot.pro - Saves an IDL plot to a .png file.
utvline.pro - Plots a vertical line over a UTPLOT.
vline.pro - Plots a vertical line over a regular plot.
get_data.pro - wrapper routine for sag_get_mnem that accepts start time, end time, and mnemonics
running_stddev.pro - Returns the running standard deviation of an array.
This is the same method used to create the H&S plot of ISS error stddev for AIA.
uniq_vals.pro - Returns the uniq values of an array. Better than UNIQ() because
it sorts the values and filters out repeats for you.
Empty Arrays New releases of IDL allow you to declare empty arrays (i.e. "tmp=INDGEN()"). However,
our workstations have an older version of IDL which does not allow this. Sometimes I forget
about that detail because I have the newer version on my desktop. So, if you get a weird error about invalid array declaration, you either have to run the program on a non-JSOC computer, or fix the routine.
To fix it you have to declare an array with one variable, and then replace it in the first loop,
or check for the array in the loop and instaniate an array with the first value if it doesn't exist.
Sorry that it's kind of a pain. Apparently IDL licenses are really expensive. I think I fixed all of the
programs with this to make them work in the JSOC, but it's possible I missed one or two.
read_stored_db.pro When you first start IDL and try to plot a mnemonic, its default behavior is to read in the EGSE
database. This takes a little while and is annoying. To avoid this, use the /stored_db tag
in any of the telemetry grabbing /sag/ routines (like sag_plot_mnem or sag_get_mnem). This will store
the EGSE database in a saveset so it can be readily accessed without having to be read in each time.
(But you always have to use the switch to tell it to look for the saveset.) I modified all my local copies
of relevant IDL routines to use this tag but kept the default behavior of the copies in
the CVS repository to read it in
every time. To use this shortcut you must have an environmental variable for EGSE_IDL_DB set
in your .tcshrc (or whatever) startup script: "setenv EGSE_IDL_DB ~/sdocvs/EGSE/DBS/EGSE_IDL_DB".
More details on this can be found in the header of the IDL routine /egsesw/IDL/sag/read_stored_db.pro.