.. _glossary: Glossary Terms ============== Here are some definitions of the specific terms used in the PyMoDAQ documentation: .. glossary:: Actuator Any instrument with a controllable varying parameter CLI Command Line Interface: program to be used within a shell/command prompt conda *conda* is an environment manager part of the `Miniconda `_ distribution (or Anaconda). .. note:: *conda* as a :term:`CLI` is part of Anaconda or Miniconda that have restrictions in terms of licencing. *conda* should therefore not be used anymore. Please use :term:`mamba` as a replacement. Control Modules GUI for actuators and detectors, with subsequent classes: ``DAQ_Move`` and ``DAQ_Viewer``, see :ref:`control_modules` DashBoard GUI allowing configuration and loading of a :term:`preset` file of actuators and detectors. You can also start extensions from its GUI such as the :ref:`DAQ_Scan_module`, :ref:`DAQ_Logger_module`, ... See :ref:`the Dashboard section ` of the documentation. DataDim Enum for the dimensionality representation of the data object, for instance scalars have a dimensionality *Data0D*, waveforms or vectors have *Data1D* dimensionality, camera's data are *Data2D*, and hyperspectral (or other) are *DataND* DataDistribution Enum for the distribution type of the data object. Data can be stored on linear grid (think about an oscilloscope trace having a fixed time interval, or camera having a regular grid of pixels) or stored on non uniform and non linear "positions", for instance data taken at random time intervals. Data can therefore have two distributions: **uniform** or **spread**. DataSource Enum informing about the source of the data object, for instance raw from a detector or processed from mathematical functions (from ROI, ...) Detector Any instrument generating data to be recorded dte Short name for ``DataToExport`` object dwa Short name for ``DataWithAxes`` object environment A Python virtual **environment** consists of two essential components: the Python interpreter that the virtual environment runs on and a folder containing third-party libraries installed in the virtual environment. These virtual environments are isolated from the other virtual environments, which means any changes on dependencies installed in a virtual environment don’t affect the dependencies of the other virtual environments or the system-wide libraries. Thus, we can create multiple virtual environments with different Python versions, plus different libraries or the same libraries in different versions. mamba *mamba* is a command line tool part of the `Miniforge `_ distribution, that is recommended as part of :ref:`PyMoDAQ installation `. In the PyMoDAQ project, *mamba* is exclusively used as a *Python environment manager*. It is not used as a *package manager*, so the command *mamba install ...* will not be used. We will rather use :term:`pip ` as a *package manager*. Module A module in the python sense is an importable object either a directory containing an *__init__.py* file or a python file containing data, functions or classes. .. note:: If there is code that can be executed within your module but you don't want it to be executed when importing, make sure to protect the execution using a : ``if __name__ == '__main__':`` clause. .. glossary:: Navigation See :term:`signal`. pip & PyPI *pip* is the official Python package manager and the one that is used for the PyMoDAQ project. *pip* downloads Python packages that are stored in the `PyPI `_ (Python Package Index) servers. Plugin A plugin is a python package whose name is of the type: *pymodaq_plugins_apluginname* containing functionalities to be added to PyMoDAQ .. note:: A plugin may contains added functionalities such as: * **Classes to add a given instrument**: allows a given instrument to be added programmatically in a :ref:`control_modules` graphical interface * **Instrument drivers** located in a `hardware` folder: contains scripts/classes to ease communication with the instrument. Could be third party packages such as Pymeasure * **PID models** located in a `models` folder: scripts and classes defining the behaviour of a given PID loop including several actuators or detectors, see :ref:`pid_model` * **Extensions** located in a `extensions` folder: scripts and classes allowing to build extensions on top of the :ref:`Dashboard_module` Entry points python mechanism is used to let know PyMoDAQ of installed Instrument, PID models or extensions plugins. .. glossary:: Plugin Manager The :ref:`Plugin Manager ` is a module of PyMoDAQ that ease the installation of plugins. It implements a simple graphical interface for the user to easily manage the plugins that are installed in his environment. The Plugin Manager uses a parser on the PyPI forge to propose any Python packages whose name starts by *pymodaq_plugins_...*. Preset XML file containing the number and type of control modules to be used for a given experiment. You can create, modify and load a preset from the :term:`Dashboard` menu bar. Signal Signal and Navigation are terms taken from the hyperspy package vocabulary. They are useful when dealing with multidimensional data. Imagine data you obtained from a camera (256x1024 pixels) during a linear 1D scan of one actuator (100 steps). The final shape of the data would be (100, 256, 1024). The first dimension corresponds to a Navigation axis (the scan), and the rest to Signal axes (the real detector's data). The corresponding data has a dimensionality of DataND and a representation of (100|256,1024).