fastTS

Contacts: David Eldon

Short Description

Gathers, maps, processes, and filters Thomson scattering measurements

Keywords

Thomson scattering, data gathering

Long Description

The fastTS module is intended to quickly grab Thomson data, map them, and filter them. fastTS should be a lightweight ingredient that can be imported into other modules that need Thomson data but don’t want all the complexity of a large profile making module.

The default GUI can help explain most of what this module does through the available options, their help text, and other labels.

Don’t worry about all the detailed settings. Some of the sub-GUIs have a lot of options. However, great care has been taken to assign good default values to these and most users will have no need to change any settings beyond the basics: * shot * device * list of sub-systems of interest (core, tangential, etc.) The GUI for changing filtering settings exists as much to help explain the filtering as to allow an advanced user to re-tune the filter.

Typical workflows

This module is used to:

  • Gather, map and filter Thomson scattering data so that arrays are available in the OMFIT tree

  • Organize and return 1D arrays of x, y, and err for a selected time window and settings

  • Provide GUI sections to be included in parent modules using OMFITx.CompoundGUI() so that parent modules’ GUIs can manage Thomson data gathering setup

Supported devices

  • DIII-D, NSTX, NSTX-U

External resources

DIII-D Thomson scattering diagnostic website: https://diii-d.gat.com/diii-d/Thomson

Technical info

1) After setting device and shot, run this script to do most everything:

root['SCRIPTS']['go']

    This will put data into INPUTS. Here are a few important quantities:
    --------------------------------------------------------------------
    root['INPUTS']['filtered_TS']['core']['filters']['okay']        A boolean flag for whether each core datum is okay
    root['INPUTS']['filtered_TS']['tangential']['filters']['okay']
    root['INPUTS']['filtered_TS']['core']['temp']                   Core electron temperature in eV
    root['INPUTS']['filtered_TS']['core']['temp_e']                 Uncertainty in core electron temperature in eV
    root['INPUTS']['filtered_TS']['core']['density']                Core electron density in m^-3
    root['INPUTS']['filtered_TS']['core']['psin_TS']                Normalized poloidal flux for each core datum
    root['INPUTS']['filtered_TS']['core']['time']                   Time of each core laser pulse in ms
    root['INPUTS']['filtered_TS']['core']['z']                      Height above the midplane of each core point in m
    root['INPUTS']['filtered_TS']['core']['temp_typical_scale']     Typical scale of core temp values for this shot
    root['INPUTS']['filtered_TS']['tangential']['temp']             Tangential subsystem electron temperature in eV
    root['INPUTS']['filtered_TS']['shot']                           Shot for which this data set was gathered
    root['INPUTS']['filtered_TS']['temp_typical_scale']             Typical scale of temp values across all sub systems

2) If you need any basic analysis done, run:

root['SCRIPTS']['basicAnalysis']['go']          (this is quite fast so don't be afraid to hit it)

    This will put data into OUTPUTS. Here are a few important quantities:
    ---------------------------------------------------------------------
    root['OUTPUTS']['core']['lnLambda_simple']                      Coulomb logarithm using simple electron-only formula
    root['OUTPUTS']['core']['resistivity']                          Spitzer resistivity, estimated from electrons only
    root['OUTPUTS']['core']['slowing_down_time_check']              Fast ion slowing down time

3) If you want Thomson data for some time window, use importCode() on select_time_window. For example:

res = select_time_window(t0=ft, dt=dt, systems=systems, parameters=partype, psi_n_range=x_range, alt_x_path=alt_x_path)

    ft          Center of the time window you care about, in ms
    dt          Half width of the time window in ms
    systems     List of systems to select. All data from all systems will be put into one sorted 1D array in the output.
    parameters  List of parameters to process. The results dictionary will have one entry per parameter.
    psi_n_range Position filter: a two element array giving the bounds on acceptable psi_N values.
    alt_x_path  Optional: an OMFIT tree containing sys/psi_N_corrected

    Please see the docstring in select_time_window for details.

Other notes:

    - fastTS uses the ELM_processing module to accomplish ELM filtering, but it should search for, link to, or import
      ELM_processing automatically with no effort required by the user.
    - fastTS can work as a sub-module of CAKE. You can see an example of using fastTS in CAKE.

Contributors

List of contributors sorted by number of lines authored:

6020 David Eldon
  95 Fusion Bot
  21 Orso Meneghini
   8 Z. Anthony Xing
   4 Oak Nelson
   2 Sterling Smith
   1 Nikolas Logan

Users

List of usernames sorted by number of module imports: eldond, chabanr, burgessd, zamperinis, peretm, abbatej, glassf, shoushar, hongrongjie, knolkerm, thomek, herfindalj, weisbergd, churchillr, guterlj, yadavn, gibsons, izacardo, nicholsj, ramanr, unterbee, burkem, cotet, diallo, laggnerf, lizeyu, matejaj, messers, moynihanc, ogormant, putrab, rosenthala, sinclairg, smithsp, wwallace, xingz, adiallo, aleynikovp, austinm, bodnerg, boses, bursche, ceelenl, david, degrandchampg, eggertw, groth, jayesh, jriqueze, majorm, masliner, morbeym, mordijck, mortonl, odstrcilt, plh, roelofsm, rraman, schmitzl, shafer, stagnerl, thomas.ogorman, traversop, truongd, tsuic, victorb, wchoi, yangjeong, zegere