Closed AreWeDreaming closed 9 months ago
Stale issue message
@orso82 Any feedback on this?
I don't really see the reason of making things more complicated. Doesn't current system already allow you to handle all of this:
options = {}
options['equilibrium'] = "EFIT_01"
options['core_profiles'] = "OMFIT_PROFS_001"
options['core_profiles.global_quantities.v_loop'] = None
We have added extra options to the machine mapping files which allows for this.
We access data using syntax like this:
from omas import ODS
ods = ODS().open(
'machine', 'st40',
10009,
options={
'equilibrium_code_run': 'EFIT#RUN01',
'core_profiles_code_run': 'ASTRA#RUN01'
}
)
within the st40.json
file we have entries like this:
"equilibrium.time_slice.:.global_quantities.ip": {
"COCOSIO": 11,
"PYTHON": "equilibrium__tokamak_energy(ods, {pulse}, {equilibrium_code_run!r})"
},
"core_profiles.profiles_1d.:.ion.:.temperature": {
"PYTHON": "core_profiles__tokamak_energy(ods, {pulse}, {core_profiles_code_run!r})"
},
For equilibrium_code_run
we have mappings to our MDSplus database for: EFIT, FreeGS, Fiesta, ASTRA, METIS, CHEASE, and CORSICA.
In my opinion: no changes need to be made to OMFIT source, just the local implementation.
Stale issue message
There are already special cases at DIII-D for
EFIT
andPROFILES_tree
(after #256 ) which are handled as special cases with dedicated keyword arguments. However, this is a much more general problem with can affect a lot more MDS+ trees.Hence, the system that handles which MDS+ tree and pulse id (i.e. shot + run_id) is loaded should be generalized. The following snippet shows how a generic solution could look like
This would specify the tree locations based on ODS locations which is the natural way of defining them. This will require some not insubstantial remodeling of
omas_machine
and related modules.