This page was created by the IDL library routine
mk_html_help2.
Last modified: Sat Apr 5 18:16:45 2025.
PROCEDURE:
feeps_bin_info
PURPOSE:
Prints FEEPS PA bin information - for debugging
KEYWORDS:
OUTPUT:
$LastChangedBy: egrimes $
$LastChangedDate: 2016-01-12 15:10:52 -0800 (Tue, 12 Jan 2016) $
$LastChangedRevision: 19720 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/mms/feeps/feeps_bin_info.pro $
(See projects/mms/feeps/feeps_bin_info.pro)
Function:
mms_feeps_active_eyes
Purpose:
this function returns the FEEPS active eyes,
based on date/probe/species/rate
Output:
Returns a hash table containing 2 hash tables:
output['top'] -> maps to the active top eyes
output['bottom'] -> maps to the active bottom eyes
Notes:
1) Burst mode should include all sensors (TOP and BOTTOM):
electrons: [1, 2, 3, 4, 5, 9, 10, 11, 12]
ions: [6, 7, 8]
2) SITL should return (TOP only):
electrons: set_intersection([5, 11, 12], active_eyes)
ions: None
3) From Drew Turner, 9/7/2017, srvy mode:
- before 16 August 2017:
electrons: [3, 4, 5, 11, 12]
iond: [6, 7, 8]
- after 16 August 2017:
MMS1
Top Eyes: 3, 5, 6, 7, 8, 9, 10, 12
Bot Eyes: 2, 4, 5, 6, 7, 8, 9, 10
MMS2
Top Eyes: 1, 2, 3, 5, 6, 8, 10, 11
Bot Eyes: 1, 4, 5, 6, 7, 8, 9, 11
MMS3
Top Eyes: 3, 5, 6, 7, 8, 9, 10, 12
Bot Eyes: 1, 2, 3, 6, 7, 8, 9, 10
MMS4
Top Eyes: 3, 4, 5, 6, 8, 9, 10, 11
Bot Eyes: 3, 5, 6, 7, 8, 9, 10, 12
$LastChangedBy: jwl $
$LastChangedDate: 2024-03-27 16:34:54 -0700 (Wed, 27 Mar 2024) $
$LastChangedRevision: 32511 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/mms/feeps/mms_feeps_active_eyes.pro $
(See projects/mms/feeps/mms_feeps_active_eyes.pro)
PROCEDURE:
mms_feeps_correct_energies
PURPOSE:
This function modifies the energy table in FEEPS spectra (intensity, count_rate, counts) variables
using the function: mms_feeps_energy_table (which is s/c, sensor head and sensor ID dependent)
NOTES:
BAD EYES are replaced by NaNs
$LastChangedBy: jwl $
$LastChangedDate: 2024-03-27 16:34:54 -0700 (Wed, 27 Mar 2024) $
$LastChangedRevision: 32511 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/mms/feeps/mms_feeps_correct_energies.pro $
(See projects/mms/feeps/mms_feeps_correct_energies.pro)
FUNCTION:
mms_feeps_energy_table
PURPOSE:
This function returns the energy table based on
each spacecraft and eye; based on the table from:
FlatFieldResults_V3.xlsx
from Drew Turner, 1/19/2017
NOTES:
BAD EYES are replaced by NaNs
- different original energy tables are used depending on if the sensor head is 6-8 (ions) or not (electrons)
Electron Eyes: 1, 2, 3, 4, 5, 9, 10, 11, 12
Ion Eyes: 6, 7, 8
If keep_bad_eyes is set, replace NaNs in energy table corrections with zeroes
$LastChangedBy: jwl $
$LastChangedDate: 2024-03-27 16:34:54 -0700 (Wed, 27 Mar 2024) $
$LastChangedRevision: 32511 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/mms/feeps/mms_feeps_energy_table.pro $
(See projects/mms/feeps/mms_feeps_energy_table.pro)
PROCEDURE:
mms_feeps_flat_field_corrections
PURPOSE:
Apply flat field correction factors to FEEPS ion/electron data;
correct factors are from the gain factor found in:
FlatFieldResults_V3.xlsx
from Drew Turner, 1/19/2017
NOTES:
From Drew Turner, 1/18/17:
Here are the correction factors that we need to apply to the current
ION counts/rates/fluxes in the CDF files.
NOTE, THIS IS A DIFFERENT TYPE OF CORRECTION THAN THAT FOR THE ELECTRONS!
These shifts should be applied to the counts/rates/fluxes data EYE-BY-EYE on each spacecraft.
These are multiplication factors (i.e., Jnew = Jold * Gcorr).
For those equations, Jold is the original count/rate/flux array and
Jnew is the corrected version of the arrays using the factors listed below.
MMS1:
Top6: Gcorr = 0.7
Top7: Gcorr = 2.5
Top8: Gcorr = 1.5
Bot6: Gcorr = 0.9
Bot7: Gcorr = 1.2
Bot8: Gcorr = 1.0
MMS2:
Top6: Gcorr = 1.3
Top7: BAD EYE
Top8: Gcorr = 0.8
Bot6: Gcorr = 1.4
Bot7: BAD EYE
Bot8: Gcorr = 1.5
MMS3:
Top6: Gcorr = 0.7
Top7: Gcorr = 0.8
Top8: Gcorr = 1.0
Bot6: Gcorr = 0.9
Bot7: Gcorr = 0.9
Bot8: Gcorr = 1.3
MMS4:
Top6: Gcorr = 0.8
Top7: BAD EYE
Top8: Gcorr = 1.0
Bot6: Gcorr = 0.8
Bot7: Gcorr = 0.6
Bot8: Gcorr = 0.9
$LastChangedBy: jwl $
$LastChangedDate: 2024-03-27 16:34:54 -0700 (Wed, 27 Mar 2024) $
$LastChangedRevision: 32511 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/mms/feeps/mms_feeps_flat_field_corrections.pro $
(See projects/mms/feeps/mms_feeps_flat_field_corrections.pro)
PROCEDURE:
mms_feeps_omni
PURPOSE:
Calculates the omni-directional flux for all 24 sensors
(this version re-bins the data due to the different energy channels for each s/c, sensor head and sensor ID)
INPUT:
probe: spacecraft # (1, 2, 3, or 4)
KEYWORDS:
datatype: feeps data types include ['electron', 'electron-bottom', 'electron-top',
'ion', 'ion-bottom', 'ion-top'].
If no value is given the default is 'electron'.
data_rate: instrument data rates for feeps include 'brst' 'srvy'. The
default is 'srvy'
tplotnames: names of loaded tplot variables
suffix: suffix used in call to mms_load_data; required to find the correct
variables
data_units: specify units for omni-directional calculation
NOTES:
New version, 1/26/17 - egrimes
Newer version, 1/31/17 - dturner
Fixed 2 bugs (3/29/17): 1) off by one bug when setting bottom sensor without data to NaNs, and
2) now initializing output as NaNs, to avoid setting channels with
counts=0 to NaN - egrimes
$LastChangedBy: egrimes $
$LastChangedDate: 2018-10-08 21:09:02 -0700 (Mon, 08 Oct 2018) $
$LastChangedRevision: 25939 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/mms/feeps/mms_feeps_omni.pro $
(See projects/mms/feeps/mms_feeps_omni.pro)
PROCEDURE:
mms_feeps_pad
PURPOSE:
Calculate pitch angle distributions using data from the
MMS Fly's Eye Energetic Particle Sensor (FEEPS)
KEYWORDS:
trange: time range of interest
probe: value for MMS SC #
datatype: 'electron' or 'ion'
energy: energy range to include in the calculation
bin_size: size of the pitch angle bins
num_smooth: should contain number of seconds to use when smoothing
only creates a smoothed product (_pad_smth) if this keyword is specified
angles_from_bfield: calculate the pitch angles from the B-field data instead of
reading from the CDFs
EXAMPLES:
MMS> mms_load_feeps
MMS> mms_feeps_pad, energy=[70, 600]
MMS> tplot, '*70-600keV_pad'
NOTES:
**** this routine requires IDL 8.0+ ****
HISTORY:
Revision of mms_feeps_pad by Drew Turner
dturner, 26 Jan 2017, Modified mms_feeps_pad to produce results consistent with Drew's own PAD codes for FEEPS
egrimes, 27 Sep 2018, modified to use pitch angles from CDF files for burst mode data; added angles_from_bfield keyword for calculating PAs from the Bfield data
$LastChangedBy: egrimes $
$LastChangedDate: 2018-12-13 07:47:03 -0800 (Thu, 13 Dec 2018) $
$LastChangedRevision: 26320 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/mms/feeps/mms_feeps_pad.pro $
(See projects/mms/feeps/mms_feeps_pad.pro)
PROCEDURE:
mms_feeps_pad_spinavg
PURPOSE:
Spin-averages FEEPS pitch angle distributions
KEYWORDS:
probe: value for MMS SC #
datatype: 'electron' or 'ion'
energy: energy range to include in the calculation
bin_size: size of the pitch angle bins
NOTES:
This routine is called automatically from mms_feeps_pad
$LastChangedBy: egrimes $
$LastChangedDate: 2018-12-13 07:47:03 -0800 (Thu, 13 Dec 2018) $
$LastChangedRevision: 26320 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/mms/feeps/mms_feeps_pad_spinavg.pro $
(See projects/mms/feeps/mms_feeps_pad_spinavg.pro)
PROCEDURE:
mms_feeps_pitch_angles
PURPOSE:
Generates a tplot variable containing the FEEPS pitch angles for each telescope
from magnetic field data.
NOTES:
Updated to find active telescopes via mms_feeps_active_eyes, 9/8/2017, egrimes
Most of this routine was copy+pasted from routines provided by Drew Turner
$LastChangedBy: egrimes $
$LastChangedDate: 2018-10-08 18:47:47 -0700 (Mon, 08 Oct 2018) $
$LastChangedRevision: 25935 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/mms/feeps/mms_feeps_pitch_angles.pro $
(See projects/mms/feeps/mms_feeps_pitch_angles.pro)
PROCEDURE:
mms_feeps_remove_bad_data
PURPOSE:
Removes bad eyes, bad lowest energy channels
based on data from Drew Turner, 1/26/2017
NOTES:
Updated to use time varying bad eye tables and changed bottom channels that we NaN out from Drew Turner, egrimes, 8Oct2018
$LastChangedBy: egrimes $
$LastChangedDate: 2022-05-26 12:23:20 -0700 (Thu, 26 May 2022) $
$LastChangedRevision: 30833 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/mms/feeps/mms_feeps_remove_bad_data.pro $
(See projects/mms/feeps/mms_feeps_remove_bad_data.pro)
PROCEDURE:
mms_feeps_remove_sun
PURPOSE:
Removes the sunlight contamination from FEEPS data
NOTES:
Will only work in IDL 8.0+, due to the hash table data structure
Originally based on code from Drew Turner, 2/1/2016
$LastChangedBy: egrimes $
$LastChangedDate: 2017-09-08 14:59:38 -0700 (Fri, 08 Sep 2017) $
$LastChangedRevision: 23939 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/mms/feeps/mms_feeps_remove_sun.pro $
(See projects/mms/feeps/mms_feeps_remove_sun.pro)
PROCEDURE:
mms_feeps_sector_spec
PURPOSE:
Creates sector-spectrograms with FEEPS data (particle data organized by time and sector number)
NOTES:
$LastChangedBy: egrimes $
$LastChangedDate: 2016-08-01 11:29:10 -0700 (Mon, 01 Aug 2016) $
$LastChangedRevision: 21582 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/mms/feeps/mms_feeps_sector_spec.pro $
(See projects/mms/feeps/mms_feeps_sector_spec.pro)
Procedure:
mms_feeps_smooth
Purpose:
Creates tplot variables of the smoothed spectra, with smoothing
specified by num_smooth
$LastChangedBy: egrimes $
$LastChangedDate: 2016-07-26 09:16:24 -0700 (Tue, 26 Jul 2016) $
$LastChangedRevision: 21526 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/mms/feeps/mms_feeps_smooth.pro $
(See projects/mms/feeps/mms_feeps_smooth.pro)
Procedure:
mms_feeps_spin_avg
Purpose:
spin-averages FEEPS spectra using the '_spinsectnum'
variable (variable containing spin sector #s associated
with each measurement)
$LastChangedBy: egrimes $
$LastChangedDate: 2018-03-18 14:43:40 -0700 (Sun, 18 Mar 2018) $
$LastChangedRevision: 24901 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/mms/feeps/mms_feeps_spin_avg.pro $
(See projects/mms/feeps/mms_feeps_spin_avg.pro)
Procedure:
mms_feeps_split_integral_ch
Purpose:
this procedure splits the last integral channel from the FEEPS spectra,
creating 2 new tplot variables:
[original variable]_clean - spectra with the integral channel removed
[original variable]_500keV_int - the integral channel that was removed
$LastChangedBy: egrimes $
$LastChangedDate: 2017-09-12 11:01:04 -0700 (Tue, 12 Sep 2017) $
$LastChangedRevision: 23954 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/mms/feeps/mms_feeps_split_integral_ch.pro $
(See projects/mms/feeps/mms_feeps_split_integral_ch.pro)
PROCEDURE:
mms_load_feeps
PURPOSE:
Load data from the Fly's Eye Energetic Particle Sensor (FEEPS) onboard MMS
KEYWORDS:
trange: time range of interest [starttime, endtime] with the format
['YYYY-MM-DD','YYYY-MM-DD'] or to specify more or less than a day
['YYYY-MM-DD/hh:mm:ss','YYYY-MM-DD/hh:mm:ss']
probes: list of probes, valid values for MMS probes are ['1','2','3','4'].
If no probe is specified the default is '1'
level: indicates level of data processing. levels include 'l2', 'l1b', 'l1a'.
The default if no level is specified is 'l2'
datatype: feeps data types include:
L2, L1b: ['electron', 'ion']
L1a: ['electron-bottom', 'electron-top', 'ion-bottom', 'ion-top']
If no value is given the default is 'electron' for L2/L1b data, and all
for L1a data.
data_rate: instrument data rates for feeps include 'brst' 'srvy'. The
default is 'srvy'.
data_units: specify units for omni-directional calculation and spin averaging
local_data_dir: local directory to store the CDF files; should be set if
you're on *nix or OSX, the default currently assumes Windows (c:\data\mms\)
source: specifies a different system variable. By default the MMS mission
system variable is !mms
get_support_data: load support data (defined by support_data attribute in the CDF)
tplotnames: names for tplot variables
no_color_setup: don't setup graphics configuration; use this keyword when you're using
this load routine from a terminal without an X server running
time_clip: clip the data to the requested time range; note that if you do not use
this keyword you may load a longer time range than requested
no_update: set this flag to preserve the original data. if not set and newer data is
found the existing data will be overwritten
suffix: appends a suffix to the end of the tplot variable name. this is useful for
preserving original tplot variable.
varformat: should be a string (wildcards accepted) that will match the CDF variables
that should be loaded into tplot variables
cdf_filenames: this keyword returns the names of the CDF files used when loading the data
cdf_version: specify a specific CDF version # to load (e.g., cdf_version='4.3.0')
latest_version: only grab the latest CDF version in the requested time interval
(e.g., /latest_version)
major_version: only open the latest major CDF version (e.g., X in vX.Y.Z) in the requested time interval
min_version: specify a minimum CDF version # to load
spdf: grab the data from the SPDF instead of the LASP SDC (only works for public access)
num_smooth: set this keyword to create a smoothed omni-directional spectra variable
num_smooth=1.0, ~3 data points for 1 sec; use num_smooth=19.0 for smoothing over a full spin
available: returns a list of files available at the SDC for the requested parameters
this is useful for finding which files would be downloaded (along with their sizes) if
you didn't specify this keyword (also outputs total download size)
versions: this keyword returns the version #s of the CDF files used when loading the data
always_prompt: set this keyword to always prompt for the user's username and password;
useful if you accidently save an incorrect password, or if your SDC password has changed
tt2000: flag for preserving TT2000 timestamps found in CDF files (note that many routines in
SPEDAS (e.g., tplot.pro) do not currently support these timestamps)
ignore_telescopes: value (or array of values) representing telescope # to ignore while calculating omni-directional spectrograms
keep_bad_eyes: If set, do not remove bad eyes (defaults to false)
OUTPUT:
EXAMPLE:
load electron data (srvy mode)
MMS> mms_load_feeps, probes='1', trange=['2015-12-15', '2015-12-16'], datatype='electron'
MMS> mms_feeps_pad, probe='1', datatype='electron'
See crib sheet mms_load_feeps_crib.pro for usage examples
NOTES:
The MMS plug-in in SPEDAS requires IDL 8.4 to access data at the LASP SDC
Attempts to load FEEPS CDF files with different major versions (e.g., 5.5 and 6.1) will likely lead to
errors; be sure to use the CDF version keywords to load only one major version at a time (e.g., /latest_version or /major_version)
Due to a change in variable names, this routine currently only supports v5.5+ of the FEEPS CDFs
Have questions regarding this load routine, or its usage?
https://groups.google.com/forum/#!forum/spedas
The spectra variables created with "_clean" in their names have
the 500 keV integral channel removed.
The spectra variables with '_sun_removed' in their names
have the sun contamination removed
(*_clean_sun_removed variables have both the 500 keV integral
channel removed and the sun contamination removed)
FEEPS sensor eyes:
- Electron Eyes: 1, 2, 3, 4, 5, 9, 10, 11, 12
- Ion Eyes: 6, 7, 8
8Sept17: Updated to use different active telescopes before/after the CIDP software update on 16 August 2017
14Sept17: Updated to use different active telescopes for level=SITL ^^
Please see the notes in mms_load_data for more information
$LastChangedBy: jwl $
$LastChangedDate: 2024-03-27 16:34:54 -0700 (Wed, 27 Mar 2024) $
$LastChangedRevision: 32511 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/mms/feeps/mms_load_feeps.pro $
(See projects/mms/feeps/mms_load_feeps.pro)
FUNCTION:
mms_read_feeps_sector_masks_csv
PURPOSE:
Returns the FEEPS sectors to mask due to sunlight contamination
OUTPUT:
Hash table containing the sectors to mask for each spacecraft and sensor ID
EXAMPLE:
; to get the masks for MMS1, top sensor = 1:
IDL> masks = mms_read_feeps_sector_masks_csv()
; note the concatenation: mms+probe#+imask+[t or b]+sensorID
IDL> mms1_top_sensor1 = masks['mms1imaskt1']
IDL> mms1_top_sensor1
2 3 4 5 6 20 21
NOTES:
Will only work in IDL 8.0+, due to the hash table data structure
Updated to use CSV files, 8/1/2016
Updated to use the CSV file closest to the requested trange (uses trange[0]), 8/15/2017
$LastChangedBy: jwl $
$LastChangedDate: 2025-02-28 16:59:47 -0800 (Fri, 28 Feb 2025) $
$LastChangedRevision: 33160 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/mms/feeps/mms_read_feeps_sector_masks_csv.pro $
(See projects/mms/feeps/mms_read_feeps_sector_masks_csv.pro)