Skip to content

Commit

Permalink
Merge pull request #269 from gafusion/nstx_chers
Browse files Browse the repository at this point in the history
Add NSTX CHERS
  • Loading branch information
jmcclena authored Sep 6, 2023
2 parents c603b54 + 60c8ccd commit b1da399
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 2 deletions.
37 changes: 36 additions & 1 deletion omas/machine_mappings/nstxu.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,42 @@
"__options__": {
"EFIT_tree": "EFIT01",
"MSE_Er_correction": true,
"MSE_revision": "ANALYSIS"
"MSE_revision": "ANALYSIS",
"edition": "CT1"
},
"charge_exchange.channel.:": {
"PYTHON": "charge_exchange_data(ods, {pulse}, {edition!r})"
},
"charge_exchange.channel.:.ion.:": {
"PYTHON": "charge_exchange_data(ods, {pulse}, {edition!r})"
},
"charge_exchange.channel.:.ion.:.t_i.data": {
"PYTHON": "charge_exchange_data(ods, {pulse}, {edition!r})"
},
"charge_exchange.channel.:.ion.:.t_i.data_error_upper": {
"PYTHON": "charge_exchange_data(ods, {pulse}, {edition!r})"
},
"charge_exchange.channel.:.ion.:.velocity_tor.data": {
"COCOSIO": 11,
"PYTHON": "charge_exchange_data(ods, {pulse}, {edition!r})"
},
"charge_exchange.channel.:.name": {
"PYTHON": "charge_exchange_data(ods, {pulse}, {edition!r})"
},
"charge_exchange.channel.:.position.r.data": {
"PYTHON": "charge_exchange_data(ods, {pulse}, {edition!r})"
},
"charge_exchange.channel.:.position.z.data": {
"PYTHON": "charge_exchange_data(ods, {pulse}, {edition!r})"
},
"charge_exchange.channel.:.zeff.data": {
"PYTHON": "charge_exchange_data(ods, {pulse}, {edition!r})"
},
"charge_exchange.ids_properties.homogeneous_time": {
"PYTHON": "charge_exchange_data(ods, {pulse}, {edition!r})"
},
"charge_exchange.time": {
"PYTHON": "charge_exchange_data(ods, {pulse}, {edition!r})"
},
"equilibrium.time": {
"TDI": "dim_of(\\{EFIT_tree}::TOP.RESULTS.GEQDSK.BCENTR)",
Expand Down
50 changes: 49 additions & 1 deletion omas/machine_mappings/nstxu.py
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,7 @@ def magnetics_floops_data(ods, pulse):
error[np.abs(data) < tfl_signals[channel + 1]['sig_thresh']] = tfl_signals[channel + 1]['sig_thresh']
ods[f'magnetics.flux_loop.{channel}.flux.data_error_upper'] = error


@machine_mapping_function(__regression_arguments__, pulse=204202)
def magnetics_probes_data(ods, pulse):
r"""
Expand Down Expand Up @@ -504,7 +505,7 @@ def thomson_scattering_hardware(ods, pulse):
@machine_mapping_function(__regression_arguments__, pulse=140001)
def thomson_scattering_data(ods, pulse):
"""
Loads DIII-D Thomson measurement data
Loads NSTX(-U) Thomson measurement data
:param pulse: int
"""
Expand All @@ -531,6 +532,53 @@ def thomson_scattering_data(ods, pulse):
ch['t_e.data_error_upper'] = res['FIT_TE_ERR'][i, :] * signals_norm['FIT_TE_ERR']
ch['t_e.data'] = res['FIT_TE'][i, :] * signals_norm['FIT_TE']

@machine_mapping_function(__regression_arguments__, pulse=140001)
def charge_exchange_hardware(ods, pulse):
"""
Gathers NSTX(-U) charge exchange measurement locations
:param pulse: int
"""
unwrap(charge_exchange_data)(ods, pulse)


@machine_mapping_function(__regression_arguments__, pulse=140001)
def charge_exchange_data(ods, pulse, edition = 'CT1'):
"""
Loads DIII-D charge exchange measurement data
:param pulse: int
"""

tree = 'ACTIVESPEC'
signals = ['ZEFF', 'VT', 'TI', 'RADIUS', 'TIME', 'DVT','DTI']
signals_norm = {'ZEFF':1.0, 'VT':1e3, 'TI':1e3, 'RADIUS':1e-2, 'TIME':1.0, 'DVT':1e3, 'DTI':1e3}

data = {}
TDIs = {}
for sig in signals:
TDI = f'\\{tree}::TOP.CHERS.ANALYSIS.{edition}:{sig}'
TDIs[sig] = '\\' + TDI.strip('\\')

res = mdsvalue('nstxu', pulse=pulse, treename='NSTX', TDI=TDIs).raw()

ods['charge_exchange.ids_properties.homogeneous_time'] = 1
ods['charge_exchange.time'] = res['TIME'] * signals_norm['TIME']
ntimes = len(ods['charge_exchange.time'])
for i, R in enumerate(res['RADIUS']):
ch = ods['charge_exchange']['channel'][i]

ch['name'] = f'TOP.CHERS.ANALYSIS.{edition}' + str(i)
ch['position.r.data'] = R * signals_norm['RADIUS'] * np.ones(ntimes)
ch['position.z.data'] = np.zeros(ntimes)

ch['ion[0].t_i.data'] = res['TI'][:,i] * signals_norm['TI']
ch['ion[0].t_i.data_error_upper'] = res['DTI'][:,i] * signals_norm['DTI']
ch['ion[0].velocity_tor.data'] = res['VT'][:,i] * signals_norm['VT']
ch['ion[0].velocity_tor.data'] = res['DVT'][:,i] * signals_norm['DVT']

ch['zeff.data'] = res['ZEFF'][:,i] * signals_norm['ZEFF']

# =====================
if __name__ == '__main__':
Expand Down

0 comments on commit b1da399

Please sign in to comment.