omfit-omas 2020.12.2.22.59
omfit_omas
Requires Python: >=3.6

**OMAS** files used as part of the OMFIT project: https://omfit.io/

Provides:
=========
* omas
* socket
* os
* sys
* omas_setup
* omas_utils
* omas_cocos
* omas_physics
* omas_symbols
* omas_plot
* omas_sample
* omas_imas
* omas_s3
* omas_nc
* omas_json
* omas_hdc
* omas_uda
* omas_h5
* omas_ds
* omas_ascii
* omas_mongo
* omas_service
* omas_structure
* omas_core
* ODS
* ODC
* ODX
* CodeParameters
* codeparams_xml_save
* codeparams_xml_load
* ods_sample
* different_ods
* save_omas_pkl
* load_omas_pkl
* through_omas_pkl
* save_omas_json
* load_omas_json
* through_omas_json
* save_omas_mongo
* load_omas_mongo
* through_omas_mongo
* save_omas_hdc
* load_omas_hdc
* through_omas_hdc
* save_omas_nc
* load_omas_nc
* through_omas_nc
* save_omas_h5
* load_omas_h5
* through_omas_h5
* save_omas_ascii
* load_omas_ascii
* through_omas_ascii
* save_omas_ds
* load_omas_ds
* through_omas_ds
* load_omas_dx
* save_omas_dx
* through_omas_dx
* ods_2_odx
* odx_2_ods
* save_omas_imas
* load_omas_imas
* through_omas_imas
* load_omas_iter_scenario
* browse_imas
* save_omas_s3
* load_omas_s3
* through_omas_s3
* list_omas_s3
* del_omas_s3
* imas_json_dir
* imas_versions
* IMAS_versions
* omas_info
* omas_info_node
* get_actor_io_ids
* omas_rcparams
* rcparams_environment
* omas_testdir
* omas_service_script
* latexit
* transform_current
* search_ion
* search_in_array_structure
* define_cocos
* cocos_transform
* identify_cocos
* omas_environment
* save_omas_imas_remote
* load_omas_imas_remote
* load_omas_uda_remote
* browse_imas_remote
* iter_scenario_summary_remote
* load_omas_iter_scenario_remote
* OMFITiterscenario
* OMFITods

Requires:
=========
* numpy>=1.12
* omas>=0.67.0
* scipy>=1.0
* uncertainties>=3
* xarray>=0.10.8
* omfit_json==2020.12.2.22.59
* omfit_ascii==2020.12.2.22.59
* omfit_path==2020.12.2.22.59
* omfit_base==2020.12.2.22.59
* omfit_commonclasses==2020.12.2.22.59

Authors:
=========
https://omfit.io/contributors.html

Documentation:
==============
omas
----
N/A

socket
------
This module provides socket operations and some related functions.
On Unix, it supports IP (Internet Protocol) and Unix domain sockets.
On other systems, it only supports IP. Functions specific for a
socket are available as methods of the socket object.

Functions:

socket() -- create a new socket object
socketpair() -- create a pair of new socket objects [*]
fromfd() -- create a socket object from an open file descriptor [*]
fromshare() -- create a socket object from data received from socket.share() [*]
gethostname() -- return the current hostname
gethostbyname() -- map a hostname to its IP number
gethostbyaddr() -- map an IP number or hostname to DNS info
getservbyname() -- map a service name and a protocol name to a port number
getprotobyname() -- map a protocol name (e.g. 'tcp') to a number
ntohs(), ntohl() -- convert 16, 32 bit int from network to host byte order
htons(), htonl() -- convert 16, 32 bit int from host to network byte order
inet_aton() -- convert IP addr string (123.45.67.89) to 32-bit packed format
inet_ntoa() -- convert 32-bit packed format IP to string (123.45.67.89)
socket.getdefaulttimeout() -- get the default timeout value
socket.setdefaulttimeout() -- set the default timeout value
create_connection() -- connects to an address, with an optional timeout and
                       optional source address.

 [*] not available on all platforms!

Special objects:

SocketType -- type object for socket objects
error -- exception raised for I/O errors
has_ipv6 -- boolean value indicating if IPv6 is supported

IntEnum constants:

AF_INET, AF_UNIX -- socket domains (first argument to socket() call)
SOCK_STREAM, SOCK_DGRAM, SOCK_RAW -- socket types (second argument)

Integer constants:

Many other constants may be defined; these may be used in calls to
the setsockopt() and getsockopt() methods.


os
--
OS routines for NT or Posix depending on what system we're on.

This exports:
  - all functions from posix or nt, e.g. unlink, stat, etc.
  - os.path is either posixpath or ntpath
  - os.name is either 'posix' or 'nt'
  - os.curdir is a string representing the current directory (always '.')
  - os.pardir is a string representing the parent directory (always '..')
  - os.sep is the (or a most common) pathname separator ('/' or '\\')
  - os.extsep is the extension separator (always '.')
  - os.altsep is the alternate pathname separator (None or '/')
  - os.pathsep is the component separator used in $PATH etc
  - os.linesep is the line separator in text files ('\r' or '\n' or '\r\n')
  - os.defpath is the default search path for executables
  - os.devnull is the file path of the null device ('/dev/null', etc.)

Programs that import and use 'os' stand a better chance of being
portable between different platforms.  Of course, they must then
only use functions that are defined by all platforms (e.g., unlink
and opendir), and leave all pathname manipulation to os.path
(e.g., split and join).


sys
---
This module provides access to some objects used or maintained by the
interpreter and to functions that interact strongly with the interpreter.

Dynamic objects:

argv -- command line arguments; argv[0] is the script pathname if known
path -- module search path; path[0] is the script directory, else ''
modules -- dictionary of loaded modules

displayhook -- called to show results in an interactive session
excepthook -- called to handle any uncaught exception other than SystemExit
  To customize printing in an interactive session or to install a custom
  top-level exception handler, assign other functions to replace these.

stdin -- standard input file object; used by input()
stdout -- standard output file object; used by print()
stderr -- standard error object; used for error messages
  By assigning other file objects (or objects that behave like files)
  to these, it is possible to redirect all of the interpreter's I/O.

last_type -- type of last uncaught exception
last_value -- value of last uncaught exception
last_traceback -- traceback of last uncaught exception
  These three are only available in an interactive session after a
  traceback has been printed.

Static objects:

builtin_module_names -- tuple of module names built into this interpreter
copyright -- copyright notice pertaining to this interpreter
exec_prefix -- prefix used to find the machine-specific Python library
executable -- absolute path of the executable binary of the Python interpreter
float_info -- a named tuple with information about the float implementation.
float_repr_style -- string indicating the style of repr() output for floats
hash_info -- a named tuple with information about the hash algorithm.
hexversion -- version information encoded as a single integer
implementation -- Python implementation information.
int_info -- a named tuple with information about the int implementation.
maxsize -- the largest supported length of containers.
maxunicode -- the value of the largest Unicode code point
platform -- platform identifier
prefix -- prefix used to find the Python library
thread_info -- a named tuple with information about the thread implementation.
version -- the version of this interpreter as a string
version_info -- version information as a named tuple
__stdin__ -- the original stdin; don't touch!
__stdout__ -- the original stdout; don't touch!
__stderr__ -- the original stderr; don't touch!
__displayhook__ -- the original displayhook; don't touch!
__excepthook__ -- the original excepthook; don't touch!

Functions:

displayhook() -- print an object to the screen, and save it in builtins._
excepthook() -- print an exception and its traceback to sys.stderr
exc_info() -- return thread-safe information about the current exception
exit() -- exit the interpreter by raising SystemExit
getdlopenflags() -- returns flags to be used for dlopen() calls
getprofile() -- get the global profiling function
getrefcount() -- return the reference count for an object (plus one :-)
getrecursionlimit() -- return the max recursion depth for the interpreter
getsizeof() -- return the size of an object in bytes
gettrace() -- get the global debug tracing function
setcheckinterval() -- control how often the interpreter checks for events
setdlopenflags() -- set the flags to be used for dlopen() calls
setprofile() -- set the global profiling function
setrecursionlimit() -- set the max recursion depth for the interpreter
settrace() -- set the global debug tracing function


omas_setup
----------
pypi setup file

-------


omas_utils
----------
naming convention translation and misc utilities

-------


omas_cocos
----------
List of automatic COCOS transformations

-------


omas_physics
------------
physics-based ODS methods and utilities

-------


omas_symbols
------------

Formatted symbols for physics quantities

Run this script standalone to reorganize the symbols/units definitions in this script


omas_plot
---------
plotting ODS methods and utilities

-------


omas_sample
-----------
sample ODS methods and utilities

-------


omas_imas
---------
save/load from IMAS routines

-------


omas_s3
-------
save/load from S3 routines

-------


omas_nc
-------
save/load from NC routines

-------


omas_json
---------
save/load from JSON routines

-------


omas_hdc
--------
save/load from HDC routines

-------


omas_uda
--------
save/load from UDA routines

-------


omas_h5
-------
save/load from HDF5 routines

-------


omas_ds
-------
save/load from xarray dataset routines

-------


omas_ascii
----------
save/load from ASCII routines

-------


omas_mongo
----------
save/load from MongoDB routines

-------


omas_service
------------
N/A

omas_structure
--------------
functions for handling IMAS XML data dictionaries

-------


omas_core
---------
ODS class and save/load from pickle routines

-------


ODS
---

    OMAS Data Structure class
    

ODC
---

    OMAS Data Collection class
    

ODX
---

    OMAS data xarray class
    

CodeParameters
--------------

    Class used to interface with IMAS code-parameters XML files
    

codeparams_xml_save
-------------------

    Decorator function to be used around the omas_save_XXX methods to enable
    saving of code.parameters as an XML string
    

codeparams_xml_load
-------------------

    Decorator function to be used around the omas_load_XXX methods to enable
    loading of code.parameters from an XML string
    

ods_sample
----------

    Returns an ODS populated with all of the samples

    :param ntimes: number of time slices to generate

    :return: sample ods
    

different_ods
-------------

    Checks if two ODSs have any difference and returns the string with the cause of the different

    :param ods1: first ods to check

    :param ods2: second ods to check

    :param ignore_type: ignore object type differences

    :param ignore_empty: ignore emptry nodes

    :param ignore_keys: ignore the following keys

    :param ignore_default_keys: ignores the following keys from the comparison
                            dataset_description.data_entry.user
                            dataset_description.data_entry.run
                            dataset_description.data_entry.machine
                            dataset_description.ids_properties
                            dataset_description.imas_version
                            dataset_description.time
                            ids_properties.homogeneous_time
                            ids_properties.occurrence
                            ids_properties.version_put.data_dictionary
                            ids_properties.version_put.access_layer
                            ids_properties.version_put.access_layer_language

    :return: string with reason for difference, or False otherwise
    

save_omas_pkl
-------------

    Save ODS to Python pickle

    :param ods: OMAS data set

    :param filename: filename to save to

    :param kw: keywords passed to pickle.dump function
    

load_omas_pkl
-------------

    Load ODS or ODC from Python pickle

    :param filename: filename to save to

    :param consistency_check: verify that data is consistent with IMAS schema (skip if None)

    :param imas_version: imas version to use for consistency check (leave original if None)

    :returns: ods OMAS data set
    

through_omas_pkl
----------------

    Test save and load Python pickle

    :param ods: ods

    :return: ods
    

save_omas_json
--------------

    Save an ODS to Json

    :param ods: OMAS data set

    :param filename: filename or file descriptor to save to

    :param objects_encode: how to handle non-standard JSON objects
        * True: encode numpy arrays, complex, and uncertain
        * None: numpy arrays as lists, encode complex, and uncertain
        * False: numpy arrays as lists, fail on complex, and uncertain

    :param kw: arguments passed to the json.dumps method
    

load_omas_json
--------------

    Load ODS or ODC from Json

    :param filename: filename or file descriptor to load from

    :param consistency_check: verify that data is consistent with IMAS schema

    :param imas_version: imas version to use for consistency check

    :param cls: class to use for loading the data

    :param kw: arguments passed to the json.loads mehtod

    :return: OMAS data set
    

through_omas_json
-----------------

    Test save and load OMAS Json

    :param ods: ods

    :return: ods
    

save_omas_mongo
---------------

    Save an ODS to MongoDB

    :param ods: OMAS data set

    :param collection: collection name in the database

    :param database: database name on the server

    :param server: server name

    :return: unique `_id` identifier of the record
    

load_omas_mongo
---------------

    Load an ODS from MongoDB

    :param find: dictionary to find data in the database

    :param collection: collection name in the database

    :param database: database name on the server

    :param server: server name

    :param consistency_check: verify that data is consistent with IMAS schema

    :param imas_version: imas version to use for consistency check

    :param limit: return at most `limit` number of results

    :return: list of OMAS data set that match find criterion
    

through_omas_mongo
------------------

    Test save and load OMAS MongoDB

    :param ods: ods

    :return: ods
    

save_omas_hdc
-------------
Convert OMAS data structure to HDC

    :param ods: input data structure

    :return: HDC container
    

load_omas_hdc
-------------
Convert HDC data structure to OMAS

    :param hdc: input data structure

    :param consistency_check: verify that data is consistent with IMAS schema

    :return: populated ODS
    

through_omas_hdc
----------------

    Test save and load HDC

    :param ods: ods

    :return: ods
    

save_omas_nc
------------

    Save an ODS to NetCDF file

    :param ods: OMAS data set

    :param filename: filename to save to

    :param kw: arguments passed to the netCDF4 Dataset function
    

load_omas_nc
------------

    Load ODS or ODC from NetCDF file

    :param filename: filename to load from

    :param consistency_check: verify that data is consistent with IMAS schema

    :param imas_version: imas version to use for consistency check

    :param cls: class to use for loading the data

    :return: OMAS data set
    

through_omas_nc
---------------

    Test save and load NetCDF

    :param ods: ods

    :return: ods
    

save_omas_h5
------------

    Save an ODS to HDF5

    :param ods: OMAS data set

    :param filename: filename or file descriptor to save to
    

load_omas_h5
------------

    Load ODS or ODC from HDF5

    :param filename: filename or file descriptor to load from

    :param consistency_check: verify that data is consistent with IMAS schema

    :param imas_version: imas version to use for consistency check

    :param cls: class to use for loading the data

    :return: OMAS data set
    

through_omas_h5
---------------

    Test save and load OMAS HDF5

    :param ods: ods

    :return: ods
    

save_omas_ascii
---------------

    Save an ODS to ASCII (follows IMAS ASCII_BACKEND convention)

    :param ods: OMAS data set

    :param filename: filename or file descriptor to save to
                     use `None` to save IDSs to multiple files based on machine, pulse, run

    :param machine: machine name to build filename for saving IDSs to multiple files

    :param pulse: pulse number to build filename for saving IDSs to multiple files

    :param run: run number to build filename for saving IDSs to multiple files

    :param dir: directory where to save multiple IDSs files
    

load_omas_ascii
---------------

    Load an ODS from ASCII (follows IMAS ASCII_BACKEND convention)

    :param filename: filename or file descriptor to load from
                     use `None` to load IDSs from multiple files based on machine, pulse, run

    :param machine: machine name to build filename for loading IDSs from multiple files

    :param pulse: pulse number to build filename for loading IDSs from multiple files

    :param run: run number to build filename for loading IDSs from multiple files

    :param dir: directory from where to load multiple IDSs files

    :param consistency_check: verify that data is consistent with IMAS schema

    :param imas_version: imas version to use for consistency check

    :return: OMAS data set
    

through_omas_ascii
------------------

    Test save and load OMAS ASCII

    :param ods: ods

    :return: ods
    

save_omas_ds
------------

    Save an ODS to xarray dataset

    :param ods: OMAS data set

    :param filename: filename or file descriptor to save to
    

load_omas_ds
------------

    Load ODS from xarray dataset

    :param filename: filename or file descriptor to load from

    :param consistency_check: verify that data is consistent with IMAS schema

    :return: OMAS data set
    

through_omas_ds
---------------

    Test save and load ODS via xarray file format

    :param ods: OMAS data set

    :return: OMAS data set
    

load_omas_dx
------------

    Load ODX from xarray dataset

    :param filename: filename or file descriptor to load from

    :param consistency_check: verify that data is consistent with IMAS schema

    :return: OMAS data xarray
    

save_omas_dx
------------

    Save an ODX to xarray dataset

    :param odx: OMAS data xarray

    :param filename: filename or file descriptor to save to
    

through_omas_dx
---------------

    Test save and load OMAS data xarray via xarray file format

    :param ods: OMAS data xarray

    :return: OMAS data xarray
    

ods_2_odx
---------

    Map ODS to an ODX

    :param ods: OMAS data set

    :return: OMAS data xarray
    

odx_2_ods
---------

    Map ODX to ODS

    :param odx: OMAS data xarray

    :param consistency_check: verify that data is consistent with IMAS schema

    :return: OMAS data set
    

save_omas_imas
--------------
N/A

load_omas_imas
--------------

    Load OMAS data from IMAS

    :param user: IMAS username

    :param machine: IMAS machine

    :param pulse: IMAS pulse

    :param run: IMAS run

    :param occurrence: dictinonary with the occurrence to load for each IDS

    :param paths: list of paths to load from IMAS

    :param time: time slice [expressed in seconds] to be extracted

    :param imas_version: IMAS version (force specific version)

    :param skip_uncertainties: do not load uncertain data

    :param consistency_check: perform consistency_check

    :param verbose: print loading progress

    :return: OMAS data set
    

through_omas_imas
-----------------

    Test save and load OMAS IMAS

    :param ods: ods

    :return: ods
    

load_omas_iter_scenario
-----------------------

    Load ODS from ITER IMAS scenario database

    :param pulse: IMAS pulse

    :param run: IMAS run

    :param paths: list of paths to load from IMAS

    :param imas_version: IMAS version

    :param verbose: print loading progress

    :return: OMAS data set
    

browse_imas
-----------

    Browse available IMAS data (machine/pulse/run) for given user

    :param user: user (of list of users) to browse. Browses all users if None.

    :param pretty: express size in MB and time in human readeable format

    :param quiet: print database to screen

    :param user_imasdbdir: directory where imasdb is located for current user (typically $HOME/public/imasdb/)

    :return: hierarchical dictionary with database of available IMAS data (machine/pulse/run) for given user
    

save_omas_s3
------------

    Save an OMAS object to pickle and upload it to S3

    :param ods: OMAS data set

    :param filename: filename to save to

    :param user: username where to look for the file

    :param tmp_dir: temporary folder for storing S3 file on local workstation

    :param kw: arguments passed to the save_omas_pkl function
    

load_omas_s3
------------

    Download an OMAS object from S3 and read it as pickle

    :param filename: filename to load from

    :param user: username where to look for the file

    :param consistency_check: verify that data is consistent with IMAS schema (skip if None)

    :param imas_version: imas version to use for consistency check (leave original if None)

    :param tmp_dir: temporary folder for storing S3 file on local workstation

    :return: OMAS data set
    

through_omas_s3
---------------

    Test save and load S3

    :param ods: ods

    :return: ods
    

list_omas_s3
------------

    List S3 content

    :param user: username where to look for the file

    :return: OMAS data set
    

del_omas_s3
-----------

    Delete an OMAS object from S3

    :param user: username where to look for the file

    :return: OMAS data set
    

imas_json_dir
-------------

    directory where the JSON data structures for the different versions of IMAS are stored
    

imas_versions
-------------

    dictionary with list of IMAS version and their sub-folder name in the imas_json_dir
    

IMAS_versions
-------------

    dictionary with list of IMAS version and their sub-folder name in the imas_json_dir
    

omas_info
---------

    This function returns an ods with the leaf nodes filled with their property informations

    :param structures: list with ids names or string with ids name of which to retrieve the info
                       if None, then all structures are returned

    :return: ods
    

omas_info_node
--------------

    return information about a given node

    :param key: IMAS path

    :param imas_version: IMAS version to look up

    :return: dictionary with IMAS information (or an empty dictionary if the node is not found)
    

get_actor_io_ids
----------------

    Parse IMAS Python actor script and return actor input and output IDSs

    :param filename: filename of the IMAS Python actor

    :return: tuple with list of input IDSs and output IDSs
    

omas_rcparams
-------------

    dictionary of parameters that control how OMAS operates
    

rcparams_environment
--------------------
N/A

omas_testdir
------------

    Return path to temporary folder where OMAS TEST file are saved/loaded

    NOTE: If directory does not exists it is created

    :return: string with path to OMAS TEST folder
    

omas_service_script
-------------------
str(object='') -> str
str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or
errors is specified, then the object must expose a data buffer
that will be decoded using the given encoding and error handler.
Otherwise, returns the result of object.__str__() (if defined)
or repr(object).
encoding defaults to sys.getdefaultencoding().
errors defaults to 'strict'.

latexit
-------
N/A

transform_current
-----------------

    Given <Jt/R> returns <J.B>, or vice versa
    Transformation obeys <J.B> = (1/f)*(<B^2>/<1/R^2>)*(<Jt/R> + dp/dpsi*(1 - f^2*<1/R^2>/<B^2>))
    N.B. input current must be in the same COCOS as equilibrium.cocosio

    :param rho: normalized rho grid for input JtoR or JparB

    :param JtoR: input <Jt/R> profile (cannot be set along with JparB)

    :param JparB: input <J.B> profile (cannot be set along with JtoR)

    :param equilibrium: equilibrium.time_slice[:] ODS containing quanities needed for transformation

    :param includes_bootstrap: set to True if input current includes bootstrap

    :return: <Jt/R> if JparB set or <J.B> if JtoR set

    Example: given total <Jt/R> on rho grid with an existing ods, return <J.B>
             JparB = transform_current(rho, JtoR=JtoR,
                                       equilibrium=ods['equilibrium']['time_slice'][0],
                                       includes_bootstrap=True)
    

search_ion
----------

    utility function used to identify the ion number and element numbers given the ion label and or their Z and/or A

    :param ion_ods: ODS location that ends with .ion

    :param label: ion label

    :param Z: ion element charge

    :param A: ion element mass

    :parame no_matches_raise_error: whether to raise a IndexError when no ion matches are found

    :parame multiple_matches_raise_error: whether to raise a IndexError when multiple ion matches are found

    :return: dictionary with matching ions labels, each with list of matching ion elements
    

search_in_array_structure
-------------------------

    search for the index in an array structure that matches some conditions

    :param ods: ODS location that is an array of structures

    :param conditions: dictionary (or ODS) whith entries that must match and their values
                       * condition['name']=value  : check value
                       * condition['name']=True   : check existance
                       * condition['name']=False  : check not existance
                       NOTE: True/False as flags for (not)existance is not an issue since IMAS does not support booleans

    :param no_matches_return: what index to return if no matches are found

    :param no_matches_raise_error: wheter to raise an error in no matches are found

    :param multiple_matches_raise_error: whater to raise an error if multiple matches are found

    :return: list with indeces matching conditions
    

define_cocos
------------

    Returns dictionary with COCOS coefficients given a COCOS index

    https://docs.google.com/document/d/1-efimTbI55SjxL_yE_GKSmV4GEvdzai7mAj5UYLLUXw/edit

    :param cocos_ind: COCOS index

    :return: dictionary with COCOS coefficients
    

cocos_transform
---------------

    Returns a dictionary with coefficients for how various quantities should get multiplied in order to go from cocosin_index to cocosout_index

    https://docs.google.com/document/d/1-efimTbI55SjxL_yE_GKSmV4GEvdzai7mAj5UYLLUXw/edit

    :param cocosin_index: COCOS index in

    :param cocosout_index: COCOS index out

    :return: dictionary with transformation multipliers
    

identify_cocos
--------------

    Utility function to identify COCOS coordinate system
    If multiple COCOS are possible, then all are returned.

    :param B0: toroidal magnetic field (with sign)

    :param Ip: plasma current (with sign)

    :param q: safety factor profile (with sign) as function of psi

    :param psi: poloidal flux as function of psi(with sign)

    :param clockwise_phi: (optional) [True, False] if phi angle is defined clockwise or not
                          This is required to identify odd Vs even COCOS
                          Note that this cannot be determined from the output of a code.
                          An easy way to determine this is to answer the question: is positive B0 clockwise?

    :param a: (optional) flux surfaces minor radius as function of psi
              This is required to identify 2*pi term in psi definition

    :return: list with possible COCOS
    

omas_environment
----------------

    Provides environment for data input/output to/from OMAS

    :param ods: ODS on which to operate

    :param cocosio: COCOS convention

    :param coordsio: dictionary/ODS with coordinates for data interpolation

    :param unitsio: True/False whether data read from OMAS should have units

    :param xmlcodeparams: view code.parameters as an XML string while in this environment

    :param dynamic_path_creation: whether to dynamically create the path when setting an item
                                  * False: raise an error when trying to access a structure element that does not exists
                                  * True (default): arrays of structures can be incrementally extended by accessing at the next element in the array
                                  * 'dynamic_array_structures': arrays of structures can be dynamically extended

    :param kw: extra keywords set attributes of the ods (eg. 'consistency_check', 'dynamic_path_creation', 'imas_version')

    :return: ODS with environment set
    

save_omas_imas_remote
---------------------

    Save OMAS data set to a remote IMAS server

    :param serverPicker: remote server name where to connect to

    :param \**kw: all other parameters are passed to the save_omas_imas function
    

load_omas_imas_remote
---------------------

    Load OMAS data set from a remote IMAS server

    :param serverPicker: remote server name where to connect to

    :param \**kw: all other parameters are passed to the load_omas_imas function
    
        Load OMAS data from IMAS

        :param user: IMAS username

        :param machine: IMAS machine

        :param pulse: IMAS pulse

        :param run: IMAS run

        :param occurrence: dictinonary with the occurrence to load for each IDS

        :param paths: list of paths to load from IMAS

        :param time: time slice [expressed in seconds] to be extracted

        :param imas_version: IMAS version (force specific version)

        :param skip_uncertainties: do not load uncertain data

        :param consistency_check: perform consistency_check

        :param verbose: print loading progress

        :return: OMAS data set
        
        Load OMAS data from IMAS

        :param user: IMAS username

        :param machine: IMAS machine

        :param pulse: IMAS pulse

        :param run: IMAS run

        :param occurrence: dictinonary with the occurrence to load for each IDS

        :param paths: list of paths to load from IMAS

        :param time: time slice [expressed in seconds] to be extracted

        :param imas_version: IMAS version (force specific version)

        :param skip_uncertainties: do not load uncertain data

        :param consistency_check: perform consistency_check

        :param verbose: print loading progress

        :return: OMAS data set
        

load_omas_uda_remote
--------------------

    Load OMAS data set from a remote UDA server

    :param serverPicker: remote server name where to connect to

    :param \**kw: all other parameters are passed to the load_omas_uda function
    

browse_imas_remote
------------------

    Browse available IMAS data (machine/pulse/run) for given user on remote IMAS server

    :param serverPicker: remote server name where to connect to

    :param \**kw: all other parameters are passed to the browse_imas function
    

iter_scenario_summary_remote
----------------------------

    Access iter server and sun `scenario_summary` command

    :param quiet: print output of scenario_summary to screen or not

    :param environment: `module load {IMAS_module}` or the like

    :return: dictionary with info from available scenarios
    

load_omas_iter_scenario_remote
------------------------------

    Load OMAS iter scenario from a remote ITER IMAS server

    :param \**kw: all other parameters are passed to the load_omas_iter_scenario function
    
        Load ODS from ITER IMAS scenario database

        :param pulse: IMAS pulse

        :param run: IMAS run

        :param paths: list of paths to load from IMAS

        :param imas_version: IMAS version

        :param verbose: print loading progress

        :return: OMAS data set
        

OMFITiterscenario
-----------------
N/A

OMFITods
--------
N/A