This page was created by the IDL library routine `mk_html_help2`.

Last modified: Mon Aug 25 17:03:11 2025.

# Directory Listing of Routines

# projects/goes

- GOES_COMBINE_TDATA
- GOES_CONFIG_FILEDIR
- GOES_INIT
- GOES_LIB
- GOES_LOAD_CRIB_SHEET
- GOES_LOAD_DATA
- GOES_LOAD_POS
- GOES_OVERVIEW_PLOT
- GOES_OVERVIEW_PLOT_WRAPPER
  Generates daily overview plots for GOES data - wrapper for goes_overview_plot
- GOES_READ_CONFIG
  Reads the goes_config file
- GOES_WRITE_CONFIG
  Writes the goes_config file
- GOESSTRUCT_TO_CDFSTRUCT

# Routine Descriptions

## GOESSTRUCT_TO_CDFSTRUCT

[Next Routine] [List of Routines]

     Function:
             GOESstruct_to_cdfstruct

     Purpose:
             Converts an IDL structure returned from a GOES netCDF file
             into an IDL structure that can be passed to cdf_info_to_tplot

     Input:
             netCDFi: GOES IDL structure from ncdf_load_vars

     Output:
             IDL structure that follows the SPDF CDF standard
             (at least enough so to be read by cdf_info_to_tplot)

     $LastChangedBy: nikos $
     $LastChangedDate: 2023-02-02 07:46:23 -0800 (Thu, 02 Feb 2023) $
     $LastChangedRevision: 31461 $
     $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/goes/goesstruct_to_cdfstruct.pro $

(See projects/goes/goesstruct_to_cdfstruct.pro)

## GOES_COMBINE_TDATA

[Previous Routine] [Next Routine] [List of Routines]

     Procedure:    goes_combine_tdata

     Purpose:
         The procedures in this library combine multi-dimensional GOES tplot variables
         and ensure the combined tplot variables contain the standard data attributes structure
         required for TDAS/SPEDAS data processing and analysis

         For instance, GOES magnetometer data can be loaded as 'he', 'hn', 'hp',
         goes_combine_mag_data will find and combine these into a single 'g[8-15]_h_enp' variable, with
         the coordinates set to 'ENP' and units set to 'nT' in the data attributes structure

     Notes:
         If the get_support_data keyword isn't set, these routines will delete the tplot variables
         corresponding to the support data (i.e., variables ending in *_NUM_PTS and *_QUAL_FLAG).

         If the user loads support data for one type of particle data (i.e., electrons) and then
         loads a different type of data without support data, the initial support data may be removed
         by these routines (due to the globbing).

         For the instruments with multiple detectors:
             EPEAD: E, W detectors are combined into a single tplot variable with the E-component
                in the first column of the Y component [*,0] and the W-component in the second
                column of the Y component [*,1]
             MAG(E/P)D: The 9-telescopes are combined into a single tplot variable with each detector
                in the (detector-1) column of the Y-component; note that this is also in order of
                increasing energy

     $LastChangedBy: egrimes $
     $LastChangedDate: 2016-04-29 07:58:21 -0700 (Fri, 29 Apr 2016) $
     $LastChangedRevision: 20969 $
     $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/goes/goes_combine_tdata.pro $

(See projects/goes/goes_combine_tdata.pro)

## GOES_CONFIG_FILEDIR

[Previous Routine] [Next Routine] [List of Routines]

    Function: goes_config_filedir.pro
    Purpose: Get the applications user directory for SPEDAS

    $LastChangedBy: egrimes $
    $LastChangedDate: 2014-03-20 14:33:46 -0700 (Thu, 20 Mar 2014) $
    $LastChangedRevision: 14616 $
    $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/goes/goes_config_filedir.pro $

(See projects/goes/goes_config_filedir.pro)

## GOES_INIT

[Previous Routine] [Next Routine] [List of Routines]

     Procedure:  goes_init

     Purpose:    Initializes system variables for GOES data.  Can be called from idl_startup to set
                 custom locations.

     Keywords:
                reset: resets configuration data already in place on the machine
                local_data_dir: location to save data files on the local machine
                remote_data_dir: location of the data on the remote machine
                no_color_setup: skip setting up the graphics configuration

    $LastChangedBy: nikos $
    $LastChangedDate: 2023-02-02 07:46:23 -0800 (Thu, 02 Feb 2023) $
    $LastChangedRevision: 31461 $
    $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/goes/goes_init.pro $

(See projects/goes/goes_init.pro)

## GOES_LIB

[Previous Routine] [Next Routine] [List of Routines]

     Procedure:
             goes_lib

     Purpose:
             Provides an interface to various routines for postprocessing GOES data

     Notes:
             Most of these routines were provided by Juan Rodriguez, CIRES
               with modifications by A. Kellerman

     $LastChangedBy: nikos $
     $LastChangedDate: 2018-11-16 12:46:28 -0800 (Fri, 16 Nov 2018) $
     $LastChangedRevision: 26139 $
     $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/goes/goes_lib.pro $

(See projects/goes/goes_lib.pro)

## GOES_LOAD_CRIB_SHEET

[Previous Routine] [Next Routine] [List of Routines]

     Procedure:
             goes_load_crib_sheet

     Purpose:
             Example of loading GOES data using the command line

     Notes:
         The GOES routines have their own configuration routines,
         since the data products are in a different location than the
         THEMIS products.  goes_init will create a reasonable default
         configuration and save it in a file. goes_read_config and
         goes_write_config let you customize !goes in case you
         are at SSL and don't need HTTP downloads, or if you have
         an alternate source for GOES products (e.g. a local mirror)

     $LastChangedBy: egrimes $
     $LastChangedDate: 2014-02-28 14:10:44 -0800 (Fri, 28 Feb 2014) $
     $LastChangedRevision: 14467 $
     $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/goes/goes_load_crib_sheet.pro $

(See projects/goes/goes_load_crib_sheet.pro)

## GOES_LOAD_DATA

[Previous Routine] [Next Routine] [List of Routines]

     Procedure: goes_load_data

     Keywords:
                 trange:       time range of interest
                 datatype:     type of GOES data to be loaded. Valid data types are:
                                 'fgm': Fluxgate magnetometer
                                 'epead': Electron, Proton, Alpha Detector
                                 'maged': Magnetospheric Electron Detector
                                 'magpd': Magnetospheric Proton Detector
                                 'hepad': High energy Proton and Alpha Detector
                                 'xrs': X-ray Sensor

                 suffix:        String to append to the end of the loaded tplot variables
                 probes:        Number(s) of the GOES spacecraft, i.e., probes=['13','14','15']
                 varnames:      Name(s) of variables to load, defaults to all (*)
                 /downloadonly: Download the file but don't read it
                 /avg_1m:       Use 1-minute averaged GOES data
                 /avg_5m:       Use 5-minute averaged GOES data
                 /no_time_clip: Don't clip the tplot variables
                 /get_support_data: keep the support data
                 /noephem:     Don't keep the ephemeris data

     $LastChangedBy: egrimes $
     $LastChangedDate: 2022-03-04 13:49:56 -0800 (Fri, 04 Mar 2022) $
     $LastChangedRevision: 30652 $
     $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/goes/goes_load_data.pro $

(See projects/goes/goes_load_data.pro)

## GOES_LOAD_POS

[Previous Routine] [Next Routine] [List of Routines]

     Procedure: goes_load_pos

     Purpose:
       Loads ephemeris data for GOES spacecraft using SSCWeb

     Keywords:
                 trange:       Standard time range of interest
                 probe:        Number of the GOES spacecraft, i.e., probes=15 or probes='15'
                 coord_sys:    Coordinate system for the requested ephemeris data; defaults to GEI (geij2000)
                               Valid coordinate systems are: geo, gm, gse, gsm, sm, geitod, geij2000

     Example:
       To load the GOES-10 position data for the month of January, 2008, in GSM coordinates:

         goes_pos = goes_load_pos(trange=['2008-01-01', '2008-01-31'], probe=10, coord_sys='gsm')
         help, /st, goes_pos

       goes_pos is set to a structure containing the position [x, y, z], time and coordinate system.

     Notes:
         Requires the SSC web services IDL library

     $LastChangedBy: nikos $
     $LastChangedDate: 2021-10-15 09:04:25 -0700 (Fri, 15 Oct 2021) $
     $LastChangedRevision: 30367 $
     $URL $

(See projects/goes/goes_load_pos.pro)

## GOES_OVERVIEW_PLOT

[Previous Routine] [Next Routine] [List of Routines]

     Procedure:
             goes_overview_plot

     Purpose:
             Generates daily overview plots for GOES data

     Keywords:
             date: start date for the overview plot
             duration: duration of the overview plot, in days; defaults to 1-day
             directory: local directory to save the overview plots to (should end with '/' or '\')
             makepng: generate png files
             device: change the plot device for cron plotting (for cron use device = 'z')
             geopack_lshell: calculate L-shell by tracing field lines
                 to the equator instead of using the dipole assumption
             skip_ae_idx: set this keyword to skip downloading/plotting AE data
             error: 1 indicates an error, 0 for no error

        * Keywords specific to creating overview plots in the GUI:
             gui_overplot: overview plot was created in the GUI
             oplot_calls: pointer to an int for tracking calls to overview plots - for
                 avoiding overwriting tplot data already loaded during this session
              import_only: Used to make this routine import the data into the gui, but not plot it.

     Notes:
         For GOES 13-15:
           Panel 1: Kyoto AE, THEMIS AE
           Panel 2: B components in SM coordinates (colored), B magnitude (black)
           Panel 3: delta B components, (B components subtracted from the IGRF)
           Panel 4: MAGPD, line plot of protons by energy channel (omni directional)
           Panel 5: EPEAD, line plot of e- by energy channel (omni directional)
           Panel 6: MAGED, line plot of e- by energy channel (omni directional)
           Panel 7: EPEAD high energy protons by energy channel (omni directional)
           Panel 8: X-ray, short wavelength and long wavelength

         For GOES 8-12:
           Panel 1: Kyoto AE, THEMIS AE
           Panel 2: B components in SM coordinates (colored), B magnitude (black)
           Panel 3: delta B components, (B components subtracted from the IGRF)
           Panel 4: EPS, line plot of protons measured by the telescope detector by energy channel
           Panel 5: EPS, line plot of integral electron flux by energy channel
           Panel 6: EPS, line plot of protons measured by the dome detector by energy channel
           Panel 7: X-ray, short wavelength and long wavelength

          (2020-10-02) Panel 1: Added thg_idx_uc_ae, Kyoto Real Time AE, computed at UCLA.
                                This is shown only if Kyoto AE is not available.

     $LastChangedBy: nikos $
     $LastChangedDate: 2023-10-05 10:04:38 -0700 (Thu, 05 Oct 2023) $
     $LastChangedRevision: 32172 $
     $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/goes/goes_overview_plot.pro $

(See projects/goes/goes_overview_plot.pro)

## GOES_OVERVIEW_PLOT_WRAPPER

[Previous Routine] [Next Routine] [List of Routines]

    NAME:
             goes_overview_plot_wrapper

    PURPOSE:
             Generates daily overview plots for GOES data - wrapper for goes_overview_plot
             If probes=16,17 then it runs goesr_overview_plot

    KEYWORDS:
             probes: array of goes probe numbers, if probe='' then probe=['10','11','12','13','14','15','16,'17','18','19']
             date_start: begin processing at this date (eg. '2013-12-19')
             date_end: end processing at this date (eg. '2013-12-29')
             base_dir: root dir for output plots (eg. /disks/themisdata/overplots/)
             makepng: generate png files
             server_run: for a cron job this has to be set to '1' to avoid downloading files
             themis_dir: server directory for themis (eg. '/disks/themisdata/')
             goes_dir: server directory for goes (eg. '/disks/data/goes/qa/')
             date_mod: date modification keyword
                     date_mod='daysNNN' produces plots from today to NNN days back (days001 is today only)
                     date_mod='startdateNNN' produces plots from datestart to NNN days after that
                     date_mod='enddateNNN' produces plots from dateend to NNN days before that
                     date_mod='continue' continue from last date of processing (text file: base_dir + 'goeslastdate.txt')

    OUTPUT:
             png files in base_dir

    EXAMPLE USAGE:
              goes_overview_plot_wrapper, date_end = '2012-03-01', date_mod='enddate002', base_dir='c:\temp\'
              goes_overview_plot_wrapper, date_start = '2012-03-01', probes='15', base_dir='c:\temp\'
              goes_overview_plot_wrapper, date_start = '2012-01-01', date_end = '2013-12-31', base_dir='/disks/themisdata/overplots/', $
                                 server_run = '1', themis_dir ='/disks/themisdata/', goes_dir = '/disks/data/goes/qa/'
              goes_overview_plot_wrapper, date_mod = 'days004', base_dir='/disks/themisdata/overplots/', $
                                 server_run = '1', themis_dir ='/disks/themisdata/', goes_dir = '/disks/data/goes/qa/'

    HISTORY:
    $LastChangedBy: nikos $
    $LastChangedDate: 2025-07-23 18:52:55 -0700 (Wed, 23 Jul 2025) $
    $LastChangedRevision: 33493 $
    $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/goes/goes_overview_plot_wrapper.pro $

(See projects/goes/goes_overview_plot_wrapper.pro)

## GOES_READ_CONFIG

[Previous Routine] [Next Routine] [List of Routines]

    NAME:
     goes_read_config
    PURPOSE:
     Reads the goes_config file
    CALLING SEQUENCE:
     cstruct = goes_read_config()
    INPUT:
     none, the filename is hardcoded, 'goes_config.txt',and is s put in a
     folder given by the routine goes_config_filedir, that uses the IDL
     routine app_user_dir to create/obtain it: my linux example:
     /disks/ice/home/jimm/.idl/themis/thm_config-4-linux
    OUTPUT:
     otp = a structure with the changeable fields of the !goes
               structure

     Copied from thm_read_config and tt2000_read_config lphilpott 20-jun-2012

    $LastChangedBy: nikos $
    $LastChangedDate: 2015-11-18 14:02:09 -0800 (Wed, 18 Nov 2015) $
    $LastChangedRevision: 19410 $
    $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/goes/goes_read_config.pro $

(See projects/goes/goes_read_config.pro)

## GOES_WRITE_CONFIG

[Previous Routine] [List of Routines]

    NAME:
     goes_write_config
    PURPOSE:
     Writes the goes_config file
    CALLING SEQUENCE:
     goes_write_config, copy=copy
    INPUT:
     none, the filename is hardcoded, 'goes_config.txt',and is s put in a
     folder given by the routine thm_config_filedir, that uses the IDL
     routine app_user_dir to create/obtain it: my linux example:
     /disks/ice/home/jimm/.idl/themis/thm_config-4-linux
    OUTPUT:
     the file is written, and a copy of any old file is generated
    KEYWORD:
     copy = if set, the file is read in and a copy with the !stime
            appended is written out
    HISTORY:
     17-may-2007, jmm, jimm@ssl.berkeley.edu
     18-mar-2009, jmm, fixed problem with writing string representations
                       of byte values
    $LastChangedBy: egrimes $
    $LastChangedDate: 2014-03-20 14:33:46 -0700 (Thu, 20 Mar 2014) $
    $LastChangedRevision: 14616 $
    $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/goes/goes_write_config.pro $

(See projects/goes/goes_write_config.pro)