This page was created by the IDL library routine
mk_html_help2
.
Last modified: Wed Dec 20 10:37:44 2023.
INPUT: energylist is a list of energies (keV) alt is altitude in km (20<alt<40) mlat is magnetic latitude in degrees (50<|mlat|<90) OUTPUT: returns a list of counts/s/kev corresponding to energylist returns -1 for input out of range METHOD: based on an empirical model derived from previous flights model is ok between 20 and 7000 keV background is primarily two power law components these turn over at low energy the 511 line contributes several features prevent underflows by avoiding exp(-huge number) CALLS: none EXAMPLE: result = brl_makebkgd([10,20,50,100],63,33.2) calculates bkgd differential count rate at the 4 specified energies for a detector at mag lat 63 degrees and altitude 33.2 km. FUTURE WORK: needs to be compared with BARREL test flights REVISION HISTORY: works, tested mm/18 Dec 2012
(See projects/barrel/barrel_sp_v3.7/barrel_make_model_bkg.pro)
NAME: barrel_selecttimes.pro DESCRIPTION: use mouse to select a time interval from a lightcurve already plotted REQUIRED INPUTS: x,y x and y values of data plotted (lightcurve) OPTIONAL INPUTS: color color code for overplotting selected data OUTPUTS: subset locations of selected data in the array subsetsize length of array "subset" CALLS: cursor NOTES: STATUS: ok TO BE ADDED: might possibly add a mouse-free option later REVISION HISTORY: Version 3.0 DMS 9/9/13 change since version 2.9: removed xplot start and end (not used)
(See projects/barrel/barrel_sp_v3.7/barrel_selecttimes.pro)
NAME: barrel_sp_fitgrid1.pro DESCRIPTION: BARREL low-level spectral folding routine, method 1 (analytic spectral model, single drm) REQUIRED INPUTS: subspec background subtracted count spectrum, cts/keV subspecerr its error bars model spectral model of electron spectrum (default is exponential) 1 = exponential 2 = monoenergetic drm response matrix for correct payload altitude and chosen PID of electrons phmean energy bin centers for the photons dimension phwidth energy bin widths for the photons dimension usebins which energy channels to use in minimizing chisquare startpar Starting value of spectral parameter startnorm Starting value of spectral normalization points Number of points on each side of starting values to test scaling Range around the starting values to test -- for example, points=2 and scaling=1.5 means that the values tested are x/1.5, x/1.25, x, x*1.25, x*1.5 OPTIONAL INPUTS: none OUTPUTS: bestpar best-fit value of the spectral parameter bestnorm best-fit value of the normalization parameter bestparn array location of bestpar bestnormn array location of bestnorm modvals values of the best-fit function at the data bin centers chiarray array of chi-square values bestchi lowest chi-square value pararray array of spectral parameter values normarray array of normalization parameter values CALLS: None. STATUS: Passed early test on artificial data TO BE ADDED: N/A REVISION HISTORY: Version 1.0 DMS 6/23/12 as barrel_fitgrid Version 2.0 DMS 7/18/12 added "usebins" -- functionality was missing before -- renamed "bestvals" to "modvals" Version 2.4 DMS 8/26/12 added support for monoenergetic spectrum removed redundant routine ID in "message" 11/12/13 insist on only one value of bestparn, etc. Version 3.4 DMS 4/17/14 fixed modvals and foldvals to be /chan instead of /keV for model=2 (monoenergetic)
(See projects/barrel/barrel_sp_v3.7/barrel_sp_fitgrid1.pro)
NAME: barrel_sp_fitgrid2.pro DESCRIPTION: BARREL low-level spectral folding routine, method 2 (single model file, single drm) REQUIRED INPUTS: subspec background subtracted count spectrum, cts/keV subspecerr its error bars model spectral model of electron spectrum (default is exponential) 1 = exponential 2 = monoenergetic drm response matrix for correct payload altitude and chosen PID of electrons phmean energy bin centers for the photons dimension phwidth energy bin widths for the photons dimension usebins which energy channels to use in minimizing chisquare startpar Starting value of spectral parameter startnorm Starting value of spectral normalization points Number of points on each side of starting values to test scaling Range around the starting values to test -- for example, points=2 and scaling=1.5 means that the values tested are x/1.5, x/1.25, x, x*1.25, x*1.5 OPTIONAL INPUTS: none OUTPUTS: bestpar best-fit value of the spectral parameter bestnorm best-fit value of the normalization parameter bestparn array location of bestpar bestnormn array location of bestnorm modvals values of the best-fit function at the data bin centers chiarray array of chi-square values bestchi lowest chi-square value pararray array of spectral parameter values normarray array of normalization parameter values CALLS: None. STATUS: Passed early test on artificial data TO BE ADDED: N/A REVISION HISTORY: Version 1.0 DMS 7/24/12 derived from barrel_fitgrid1 11/12/13 insist on only one value of bestparn, etc.
(See projects/barrel/barrel_sp_v3.7/barrel_sp_fitgrid2.pro)
NAME: barrel_sp_fitgrid3.pro DESCRIPTION: BARREL low-level spectral folding routine, method 3 ( two file-based spectral shapes, single drm) REQUIRED INPUTS: subspec background subtracted count spectrum, cts/keV subspecerr its error bars modelspec1 first spectral component (at all energies) modelspec2 second spectral component drm response matrix for correct payload altitude and chosen PID of electrons phmean energy bin centers for the photons dimension phwidth energy bin widths for the photons dimension usebins which energy channels to use in minimizing chisquare startnorm1 Starting value of normalization of 1st component startnorm2 Starting value of normalization of 2nd component points Number of points on each side of starting values to test scaling Range around the starting values to test -- for example, points=2 and scaling=1.5 means that the values tested are x/1.5, x/1.25, x, x*1.25, x*1.5 OPTIONAL INPUTS: none OUTPUTS: bestnorm1 best-fit value of the first normalization bestnorm2 best-fit value of the second normalization bestnorm1n array location of bestnorm1 bestnorm2n array location of bestnorm2 modvals1 values of the fit function at the centers of the energy bins (first component) modvals2 values of the fit function at the centers of the energy bins (second component) chiarray array of chi-square values bestchi lowest chi-square value norm1array array of first normalization parameter values norm2array array of second normalization parameter values CALLS: None. STATUS: Passed early test on artificial data TO BE ADDED: N/A REVISION HISTORY: First version with release 2.3, 8/26/12 11/12/13 insist on only one value of bestparn, etc.
(See projects/barrel/barrel_sp_v3.7/barrel_sp_fitgrid3.pro)
NAME: barrel_sp_fitgrid4.pro DESCRIPTION: BARREL low-level spectral folding routine for method 4 (analytic spectral function, dual DRMs) REQUIRED INPUTS: subspec background subtracted count spectrum, cts/keV subspecerr its error bars model spectral model of electron spectrum (default is exponential) 1 = exponential 2 = monoenergetic drm response matrix for correct payload altitude and chosen PID of electrons drm2 second response matrix; interpolation between these two is the last fit parameter phmean energy bin centers for the photons dimension phwidth energy bin widths for the photons dimension usebins which energy channels to use in minimizing chisquare startpar Starting value of spectral parameter startnorm Starting value of spectral normalization startdrm Starting value of drm parameter points Number of points on each side of starting values to test scaling Range around the starting values to test -- for example, points=2 and scaling=1.5 means that the values tested are x/1.5, x/1.25, x, x*1.25, x*1.5 scaling[0]=norm, scaling[1]=spectral parameter, scaling[2]=drm and works differently (direct value rather than fractional) OPTIONAL INPUTS: none OUTPUTS: bestpar best-fit value of the spectral parameter bestnorm best-fit value of the normalization parameter bestdrm best-fit value of the drm interpolation bestparn array location of bestpar bestnormn array location of bestnorm bestdrmn array location of bestdrm modvals values of the best-fit function at the data bin centers chiarray array of chi-square values bestchi lowest chi-square value pararray array of spectral parameter values normarray array of normalization parameter values drmarray array of drm parameter values CALLS: None. STATUS: not yet tested TO BE ADDED: N/A REVISION HISTORY: Version 1.0 DMS 7/12/12 based on barrel_fitgrid2 Version 2.0 DMS 7/18/12 added "usebins" -- functionality was missing before -- renamed "bestvals" to "modvals" "scaling" becomes an array instead of 3 variables with different names Version 2.1 DMS 7/24/12 Add code to omit unphysical drm scale regions 11/12/13 insist on only one value of bestparn, etc.
(See projects/barrel/barrel_sp_v3.7/barrel_sp_fitgrid4.pro)
NAME: barrel_sp_fold.pro DESCRIPTION: BARREL top-level spectral folding routine REQUIRED INPUTS: ss spectrum structure OPTIONAL INPUTS: method 1 = single-parameter spectrum, single drm, use "model" 2 = single fixed (file input) spectrum, single drm 3 = double fixed (file input) spectrum, single drm 4 = single-parameter spectrum, dual drm, use "model" 5 = single fixed (file input)) spectrum, dual drm 6 = double fixed (file input)) spectrum, dual drm model spectral model of electron spectrum (default is exponential) 1 = exponential 2 = monoenergetic fitrange energy range to use for fitting (regardless of full range of ebins) (this is a vector [start,end] maxcycles Maximum number of times to try rescaling range for fit parameters quiet Don't make graphs + screen output verbose show some debugging info as fits go along modlfile Filename for inputting a handmade model component secondmodlfile Filename for inputting a second handmade model component bkg_renorm match background to source > 3 MeV before subtracting systematic_error_frac Fraction of bkg-subtracted value to be added in quadrature with statistical errors. Typical value might be 0.1 (10%) OUTPUTS (written into ss structure): params best fit parameters param_ranges ranges on best fit parameters (1 sigma) (2x2 array) chisquare chi-square (not reduced) dof degrees of freedom associated with chisquare modvals values of the fit function at the centers of the energy bins CALLS: edge_products(), (imported from solarsoft), barrel_sp_fold_m1 through barrel_sp_fold_m6 NOTES: STATUS: Tested for methods 1&4 on artificial data. TO BE ADDED: Support for other spectral models Support for single + summed fixed spectra (from file), varying normalization REVISION HISTORY: Version 1.0 DMS 7/18/12 -- split out from barrel_folding as the new top layer 7/24/12 -- fixed minimum of plot to account for possible values << 1 (fixed threshold for minimum of plot changed to 1.d-6 instead of 0.5 when there are real values that are too low) 2.3 8/19/12 -- added support for method 3 2.5 1/5/13 -- rewrite to support new general spectroscopy structure ss 2.6 5/29/13 -- adding support for L2 MSPC files (already cts/keV) 2.8 7/8/13 -- remove call to idl_screen_graphics() 3.0 9/9/13 -- set ss.numparams here instead of upstream at barrel_sp_make() 3.2 10/29/13 - Print total, background, and net count rates just before proceeding to fit 11/12/13 - plot data before fitting in case fit crashes 11/12/13 - bkg_renorm defaults to zero, not 1. 3.4 4/17/14 - Report counts & electron flux for best fit. Keep track of best-fit model in electron space and save it and print the total. Fixed bug that would use bkg_renorm regardless of setting. Make explicit that method 4 isn't ready yet. 3.5 8/12/14 Option for adding a fraction of the background-subtracted spectrum as error This keeps very small error bars at low energies from over-dominating the fit, and represents, e.g., systematic uncertainties in the response matrix. 3.6 2/12/15 pass altitude to _m1 for initial param. guess 9/23/15 Change x-axes for plots to [10,1000] always broadened range of default ratio plot residuals=2 counts only pts in fit range.
(See projects/barrel/barrel_sp_v3.7/barrel_sp_fold.pro)
NAME: barrel_sp_fold_m1.pro DESCRIPTION: BARREL mid-level spectral folding routine method1 = single-parameter analytic spectrum, single drm REQUIRED INPUTS: subspec background subtracted count spectrum subspecerr its error bars model spectral model of electron spectrum (default is exponential) 1 = exponential 2 = monoenergetic drm response matrix for correct payload altitude and chosen PID of electrons phmean energy channel centers (should have length = length of spectrum) -- this is for the photons dimension phwidth energy channel widths (should have length = length of spectrum) -- this is for the photons dimension ctwidth energy channel widths (should have length = length of spectrum) -- this is for the counts dimension ctmean energy channel centers (should have length = length of spectrum) -- this is for the counts dimension usebins subset of energy channels (count space) to actually use for fitting maxcycles Maximum number of times to try rescaling range for fit parameters OPTIONAL INPUTS: quiet Don't make graphs + screen output verbose show some debugging info as fits go along OUTPUTS: params best fit parameters param_ranges ranges on best fit parameters (1 sigma) (2x2 array) modvals values of the fit function at the centers of the energy bins chisquare chi-square (not reduced) dof degrees of freedom associated with chisquare CALLS: barrel_sp_fitgrid1.pro STATUS: Tested with artificial data, 7/20/12 TO BE ADDED: Support for other spectral models REVISION HISTORY: Version 1.0 DMS 7/18/12 -- split out from barrel_folding as new middle layer; fixed "dof" to use "usebins" (at the same time as fixing "fitgrid1" to use "usebins") Errors fixed 7/20/12 -- definition of "tryspec" didn't include multiplication by "phwidth", meaning lousy starting point for fits -- which converged anyway. Version 2.3 DMS ;8/26/12 -- fixed logical error in rescaling algorithm in search for chisquare+1 contour. Removed redundant routine identifier from "message" Version 2.4 DMS 8/26/12 -- added support for model 2 (monoenergetic) Version 3.4 DMS 4/17/14 -- save elecmodel for best fit e- spectrum Version 3.6 DMS 2/12/15 Use dynamic generation of first-guess parameters based on true altitude
(See projects/barrel/barrel_sp_v3.7/barrel_sp_fold_m1.pro)
NAME: barrel_sp_fold_m2.pro DESCRIPTION: BARREL mid-level spectral folding routine method2 = single-parameter file-based spectrum, single drm REQUIRED INPUTS: subspec background subtracted count spectrum subspecerr its error bars modlfile Input model spectrum. Required format is starting energy boundary, ending energy boundary, flux it will be interpolated to phebins if necessary. Comment lines beginning with characters not = '0123456789.-' are allowed at the start. drm response matrix for correct payload altitude and chosen PID of electrons phebins energy channel boundaries (length = length of spectrum + 1) phmean energy channel centers (should have length = length of spectrum) -- this is for the photons dimension phwidth energy channel widths (should have length = length of spectrum) -- this is for the photons dimension ctwidth energy channel widths (should have length = length of spectrum) -- this is for the counts dimension usebins subset of energy channels (count space) to actually use for fitting maxcycles Maximum number of times to try rescaling range for fit parameters OPTIONAL INPUTS: quiet Don't make graphs + screen output verbose show some debugging info as fits go along OUTPUTS: params best fit parameters (only one in this case) param_ranges range on best fit parameter (1 sigma) modvals values of the fit function at the centers of the energy bins chisquare chi-square (not reduced) dof degrees of freedom associated with chisquare CALLS: barrel_sp_readmodelspec, barrel_sp_fitgrid2 STATUS: TO BE ADDED: REVISION HISTORY: Version 1.0 DMS 7/24/12 -- split out from barrel_folding as new middle layer; fixed "dof" to use "usebins" (at the same time as fixing "fitgrid1" to use "usebins") Version 2.3 DMS ;8/26/12 -- Removed redundant routine identifier from "message" Version 3.4 DMS 4/17/14 -- save elecmodel for best fit e- spectrum
(See projects/barrel/barrel_sp_v3.7/barrel_sp_fold_m2.pro)
NAME: barrel_sp_fold_m3.pro DESCRIPTION: BARREL mid-level spectral folding routine method3 = two file-based spectral shapes, single drm REQUIRED INPUTS: subspec background subtracted count spectrum subspecerr its error bars modlfile Input model spectrum. Required format is starting energy boundary, ending energy boundary, flux it will be interpolated to phebins if necessary. Comment lines beginning with characters not = '0123456789.-' are allowed at the start. secondmodlfile Second input model spectrum. drm response matrix for correct payload altitude and chosen PID of electrons phebins energy channel boundaries (length = length of spectrum + 1) phmean energy channel centers (should have length = length of spectrum) -- this is for the photons dimension phwidth energy channel widths (should have length = length of spectrum) -- this is for the photons dimension ctwidth energy channel widths (should have length = length of spectrum) -- this is for the counts dimension usebins subset of energy channels (count space) to actually use for fitting maxcycles Maximum number of times to try rescaling range for fit parameters OPTIONAL INPUTS: quiet Don't make graphs + screen output verbose show some debugging info as fits go along OUTPUTS: params best fit parameters param_ranges ranges on best fit parameters (1 sigma) (2x2 array) modvals values of the fit function at the centers of the energy bins (first component) secondmodvals values of the fit function at the centers of the energy bins (second component) chisquare chi-square (not reduced) dof degrees of freedom associated with chisquare CALLS: barrel_sp_fitgrid3.pro STATUS: TO BE ADDED: REVISION HISTORY: Version 1.0 DMS 8/18/12 Version 3.4 DMS 4/17/14 -- save elecmodel for best fit e- spectrum
(See projects/barrel/barrel_sp_v3.7/barrel_sp_fold_m3.pro)
NAME: barrel_sp_fold_m4.pro DESCRIPTION: BARREL mid-level spectral folding routine method4 = analytical spectral model + dual DRMs REQUIRED INPUTS: subspec background subtracted count spectrum subspecerr its error bars model spectral model of electron spectrum (default is exponential) 1 = exponential 2 = monoenergetic drm response matrix for correct payload altitude and chosen PID of electrons drm2 second response matrix (will find allowed interpolated range between these two) phmean energy channel centers (should have length = length of spectrum) -- this is for the photons dimension phwidth energy channel widths (should have length = length of spectrum) -- this is for the photons dimension ctwidth energy channel widths (should have length = length of spectrum) -- this is for the counts dimension usebins subset of energy channels (count space) to actually use for fitting maxcycles Maximum number of times to try rescaling range for fit parameters OPTIONAL INPUTS: quiet Don't make graphs + screen output verbose show some debugging info as fits go along OUTPUTS: params best fit parameters param_ranges ranges on best fit parameters (1 sigma) (2x2 array) modvals values of the fit function at the centers of the energy bins chisquare chi-square (not reduced) dof degrees of freedom associated with chisquare CALLS: barrel_sp_fitgrid4.pro STATUS: TO BE ADDED: Support for other spectral models Reasonable formula to guess e-folding or mono-E from count spectrum REVISION HISTORY: Version 1.0 DMS 7/18/12 -- split out from barrel_folding as new middle layer; fixed "dof" to use "usebins" (at the same time as fixing "fitgrid1" to use "usebins") Errors fixed 7/20/12 -- definition of "tryspec" didn't include multiplication by "phwidth", meaning lousy starting point for fits -- which converged anyway. Version 2.3 DMS ;8/26/12 -- fixed logical error in rescaling algorithm in search for chisquare+1 contour. Removed redundant routine identifier from "message" Version 2.4 DMS 8/26/12 -- added support for model 2 (monoenergetic) Version 3.4 DMS 4/17/14 -- save elecmodel for best fit e- spectrum
(See projects/barrel/barrel_sp_v3.7/barrel_sp_fold_m4.pro)
NAME: barrel_sp_make.pro (function) DESCRIPTION: Creates spectroscopy data structure REQUIRED INPUTS: none OPTIONAL INPUTS: numsrc # of source spectrum time intervals (default 1) numbkg # of background spectrum time intervals (default 1) slow slow (256-channel) spectra versus default medium OUTPUTS: returns the spectroscopy system structure that is passed to all subsequent spectroscopy routines. The structure content will vary with software version. CALLS: barrel_make_standard_energies(),barrel_make_standard_electron_energies() NOTES: STATUS: up to date TO BE ADDED: only in response to changes in other routines REVISION HISTORY: Version 3.0 DMS 9/9/13 revisions from 2.9: add size options for slow spectra postpone numparams until fitting routine; leave room for a large number (10) 3.4 4/17/14 Add space for best fit model in e- space
(See projects/barrel/barrel_sp_v3.7/barrel_sp_make.pro)
NAME: barrel_sp_pick_datatime.pro DESCRIPTION: Pick start and stop times for spectral accumulation and background REQUIRED INPUTS: ss spectrum structure startdatetime start time for plot from which we will pick source and background times, format yyyy-mm-dd/hh:mm:ss duration duration in hours to look, starting at startdatetime payload payload ID, with format, e.g., '1G' bkgmethod 1=select bkg intervals from data stream 2=use bkg model from U. of Washington OPTIONAL INPUTS: lcband which FSPC band to plot during selection (default 1) uselog plot FSPC data on a log scale (default 0) level data CDF level (default 'l2') version data CDF version for barrel_load_data. If not specified, use that routine's default starttimes,endtimes,startbkg,endbkg: start and end times (string format or unix epoch) for source and background intervals (if not to be selected graphically) medticks,slowticks Show vertical dotted lines at the start and and of medium, slow spectra (for use only when zoomed in to small times! OUTPUTS: No direct outputs, but the spectrum structure ss gets updated with trange and bkgtrange (primary purpose of this routine), also: payload,askdate, askduration, bkgmethod CALLS: barrel_load_data, barrel_selecttimes NOTES: STATUS: TO BE ADDED: REVISION HISTORY: Version 3.0 DMS 9/9/13 Most recent changes from v2.9: remove passing x start and stop values to barrel_selecttimes KY 8/28/13 'brl???_' -> 'brl' and '_LC' -> '_FSPC' (update tplot variable names) 9/30/13 -- remove "dobkg"; whether background intervals are selected should automatically follow bkgmethod. 10/1/13 -- put in option for already having specified the time ranges by hand. (start/end times/bkgs) 10/25/13 -- add provision for start/end times entered by hand to be already in unix epoch (as from a prev. run) 10/29/13 - Add plot of altitude to assist in background selection 11/12/13 - Add option for vertical ticks for medium and slow spectra 11/12/13 - Add default "no update" for reading FSPC data 2/10/15 DMS - collect altitude using correct source time interval (average) 3/5/15 DMS - cull out "NaNs" from altitude data before averaging 8/20/15 DMS - fix bug wherein 3/5 fix only applied to screen-selected, not predetermined time intervals. This reorders operations somewhat 4/5/16 DMS - fixed erroneous "numspec" to "numbkg" when looping to set multiple background intervals by hand.
(See projects/barrel/barrel_sp_v3.7/barrel_sp_pick_datatime.pro)
NAME: barrel_sp_readmodelspec.pro DESCRIPTION: Spectral model file reader for barrel folding routines. File format must be 3 columns, start-energy, end-energy, flux per keV at center of the bin. REQUIRED INPUTS: fname spectrum file name phebins energy channel boundaries desired (may or may not match file) phmean energy channel centers OPTIONAL INPUTS: none OUTPUTS: outspec model spectrum in flux per keV at the values phmean CALLS: none STATUS: Tested with artificial data, both with and without interpolation TO BE ADDED: N/A REVISION HISTORY: Version 1.0 DMS 7/24/12 Version 3.4 DMS 4/17/14: The interpolation kills a single-bin (monoenergetic) flux or other narrow features. Replace "interpol" with "hsi_rebinner" for rebinning to our bins. Warning: our bins are broad so we will lose some information about where within the bin the flux actually is. Use method=1, model=2 (precise monoenergetic) for mono. models instead.
(See projects/barrel/barrel_sp_v3.7/barrel_sp_readmodelspec.pro)
INPUT: oldBins is a list of bin edges. It contains n>=2 unique elements sorted in ascending order newBins is a list of bin edges. It contains m>=2 unique elements sorted in ascending order oldVals is a list of n-1 values associated to oldBins, the values to interpolate. That is, oldVals[i] is associated with the bin having edges (oldBins[i], oldBins[i+1]). flux set means oldVals are counts/binWidth, not counts OUTPUT: returns a list of m-1 interpolated values associated to newBins METHOD: traverse both bin lists once. For each old bin there are 4 possibilities: a) old bin precedes current new bin b) new bin precedes the current old bin c) old bin overlaps new bin, extends beyond d) old bin overlaps new bin, does not extend beyond CALLS: none NOTES: 1. algorithm is simple linear interpolation. 2. The interpolated vector might contain less information than the input vector. Exchanging oldBins and newBins is not an inverse function for brl_rebin(). 3. Difference between FLUX=0 and FLUX=1: suppose the old and new binning schemes have the same total range. Then FLUX=0 preserves the sum of oldVals, and would be used when oldVals represents counts in each bin, whereas FLUX=1 preserves the dot product of oldVals and the (n-1 length) vector of differences between successive oldBin entries---used when oldVals has counts divided by bin width. WARNING: since this might be called repeatedly with only oldVals changing, error-checking is minimal. The calling routine is responsible for error-checking. REVISION HISTORY: works, not much testing mm/Jul 2012 22Oct2012: corrected normalization for flux eq 0 01Jan2013: calculates array lengths n&m automatically (DMS)
(See projects/barrel/barrel_sp_v3.7/brl_rebin.pro)
Name: edge_products Purpose: From a vector of contiguous channel boundaries return the commonly used quantities for plotting and scaling. Category: GEN, SPECTRA Input: Edges -if 1d, contiguous channel boundaries, n+1 values for n channels if 2d, 2xn, [lo(i),hi(i)], etc., assumed contiguous for calculating edges_1 Output: Mean - arithmetic mean of boundaries Gmean - geometric mean width - absolute difference between upper and lower edges edges_2 - 2xn array of edges [lo(i), hi(i)], etc. edges_1 - array of n+1 edges of n contiguous channels Keyword Input EPSILON - If the absolute relative difference is less than epsilon then two numbers are considered to be equal and a new bin is not required under the contiguous requirement. If epsilon isn't passed but CONTIGOUS is set it attempts to construct an epsilon based on the average relative difference between adjacent bins, it takes that value and multiplies it by 1e-5 and limits that to 1e-6 CONTIGUOUS - force all edges to be contiguous, including edges_1 Mod. History: ras, 21-oct-93 8-dec-2001, richard.schwartz@gsfc.nasa.gov, added CONTIGUOUS added protection against degenerate entry of single value for edges, clearly edges_2 and width have no meaning, but are set to edges and 0.0 respectively 25-aug-2006, ras, added epsilon and default epsilon as test to differentiate real numbers. If the absolute relative difference is less than epsilon then two numbers are considered to be equal and a new bin is not required under the contiguous requirement
(See projects/barrel/barrel_sp_v3.7/edge_products.pro)
NAME: GEO2MAG() PURPOSE: Convert from geographic to geomagnetic coordinates EXPLANATION: Converts from GEOGRAPHIC (latitude,longitude) to GEOMAGNETIC (latitude, longitude). (Altitude remains the same) Latitudes and longitudes are expressed in degrees. CALLING SEQUENCE: mcoord=geo2mag(gcoord) INPUT: gcoord = a 2-element array of geographic [latitude,longitude], or an array [2,n] of n such coordinates. KEYWORD INPUTS: None OUTPUT: a 2-element array of magnetic [latitude,longitude], or an array [2,n] of n such coordinates COMMON BLOCKS: None EXAMPLES: geographic coordinates of magnetic south pole IDL> mcoord=geo2mag([79.3,288.59]) IDL> print,mcoord 89.999992 -173.02325 MODIFICATION HISTORY: Written by Pascal Saint-Hilaire (Saint-Hilaire@astro.phys.ethz.ch), May 2002 Changed the name to avoid conflicts, jmm, 2017-12-13, no other changes from the SSW version
(See projects/barrel/barrel_sp_v3.7/barrel_geo2mag.pro)
Project : HESSI Name : get_uniq Purpose : return unique elements of an array Category : utility ; Syntax : IDL> out=get_uniq(in) Inputs : IN = array to search Outputs : OUT = unique elements Optional Out: SORDER = sorting index Keywords : NO_CASE: case insensitive ordering on strings COUNT: # of uniq values EPSILON: positive number ge 0, for gt 0 the difference between two consecutive numbers must be gt epsilon for them to be unique. History : Written 20 Sept 1999, D. Zarro, SM&A/GSFC 25-Aug-2006, richard.schwartz@gsfc.nasa.gov; added an epsilon tolerance for determining floats to be the same value Contact : dzarro@solar.stanford.edu
(See projects/barrel/barrel_sp_v3.7/get_uniq.pro)