diff --git a/docs/source/algorithms/LoadLiveData-v1.rst b/docs/source/algorithms/LoadLiveData-v1.rst index 6f117435643a5fde42538e739f4fa4aeaa97ce9e..2f0be8557dd26e817cda3fe00cd38dfe2d473912 100644 --- a/docs/source/algorithms/LoadLiveData-v1.rst +++ b/docs/source/algorithms/LoadLiveData-v1.rst @@ -10,14 +10,15 @@ Description ----------- This algorithm is called on a regular interval by the -:ref:`algm-MonitorLiveData` algorithm. and the whole process is started by the :ref:`algm-StartLiveData` algorithm. **It should not be -necessary to call LoadLiveData directly.** +:ref:`algm-MonitorLiveData` algorithm. and the whole process is +started by the :ref:`algm-StartLiveData` algorithm. **It should not +be necessary to call LoadLiveData directly.** .. figure:: /images/LoadLiveData_flow.png :alt: LoadLiveData_flow.png LoadLiveData\_flow.png - + Data Processing ############### @@ -32,55 +33,63 @@ Data Processing Processing with an Algorithm ############################ -- Specify the name of the algorithm in the *ProcessingAlgorithm* +- Specify the name of the algorithm in the ``ProcessingAlgorithm`` property. - This could be, e.g. a `Python Algorithm <Python Algorithm>`__ written for this purpose. - - The algorithm *must* have at least 2 properties: *InputWorkspace* - and *OutputWorkspace*. + - The algorithm *must* have at least 2 properties: ``InputWorkspace`` + and ``OutputWorkspace``. - Any other properties are set from the string in - *ProcessingProperties*. - - The algorithm is then run, and its OutputWorkspace is saved. + ``ProcessingProperties``. + - The algorithm is then run, and its ``OutputWorkspace`` is saved. Processing with a Python Script ############################### -- Specify a python script in the *ProcessingScript* property. +The python script is run using :ref:`algm-RunPythonScript`. Please see +its documentation for details of how the script is run. + +- Specify a python script in the ``ProcessingScript`` property. - This can have several lines. - Two variables have special meaning: - - *input* is the input workspace. - - *output* is the name of the processed, output workspace. + - ``input`` is a reference to the input workspace. + - ``output`` is the name of the processed, output workspace. - Otherwise, your script can contain any legal python code including calls to other Mantid algorithms. - If you create temporary workspaces, you should delete them in the script. +- Specify a python script in the ``ProcessingScriptFilename`` property. + + - Contents of the file have the exact same rules as specifying the ``ProcessingScript`` + Data Accumulation ################# -- The *AccumulationMethod* property specifies what to do with each +- The ``AccumulationMethod`` property specifies what to do with each chunk. - - If you select 'Add', the chunks of processed data will be added + - If you select ``Add``, the chunks of processed data will be added using :ref:`algm-Plus` or :ref:`algm-PlusMD`. - - If you select 'Replace', then the output workspace will always be + - If you select ``Replace``, then the output workspace will always be equal to the latest processed chunk. - - If you select 'Append', then the spectra from each chunk will be + - If you select ``Append``, then the spectra from each chunk will be appended to the output workspace. A Warning About Events ###################### -Beware! If you select *PreserveEvents* and your processing keeps the -data as :ref:`EventWorkspaces <EventWorkspace>`, you may end up creating -**very large** EventWorkspaces in long runs. Most plots require -re-sorting the events, which is an operation that gets much slower as -the list gets bigger (Order of N\*log(N)). This could cause Mantid to -run very slowly or to crash due to lack of memory. +Beware! If you select ``PreserveEvents=True`` and your processing +keeps the data as :ref:`EventWorkspaces <EventWorkspace>`, you may end +up creating **very large** EventWorkspaces in long runs. Most plots +require re-sorting the events, which is an operation that gets much +slower as the list gets bigger (Order of :math:`N * log(N)`). This +could cause Mantid to run very slowly or to crash due to lack of +memory. Post-Processing Step #################### @@ -88,17 +97,19 @@ Post-Processing Step - Optionally, you can specify some processing to perform *after* accumulation. - - You then need to specify the *AccumulationWorkspace* property. + - You then need to specify the ``AccumulationWorkspace`` property. -- Using either the *PostProcessingAlgorithm* or the - *PostProcessingScript* (same way as above), the - *AccumulationWorkspace* is processed into the *OutputWorkspace* +- Using either the ``PostProcessingAlgorithm``, + ``PostProcessingScript``, or ``PostProcessingScriptFilename`` (same + way as above), the ``AccumulationWorkspace`` is processed into the + ``OutputWorkspace`` Usage ----- -LoadLiveData is not intended for usage directly, it is part of he process that is started using :ref:`algm-StartLiveData`. - +LoadLiveData is not intended for usage directly, it is part of he +process that is started using :ref:`algm-StartLiveData`. + .. categories:: diff --git a/docs/source/algorithms/RunPythonScript-v1.rst b/docs/source/algorithms/RunPythonScript-v1.rst index c636b7f4e17e1e7695f911c72cc31d8f3566a4c7..163a070013490c004b0df14bbe43fd0f448bcbe4 100644 --- a/docs/source/algorithms/RunPythonScript-v1.rst +++ b/docs/source/algorithms/RunPythonScript-v1.rst @@ -12,12 +12,17 @@ Description Algorithm that will run a snippet of python code. This is meant to be used by :ref:`algm-LoadLiveData` to perform some processing. -The input & output workspaces can be accessed from the Python code using -the variable names 'input' & 'output' respectively. +The input & output workspaces can be accessed from the Python code +using the variable names ``input`` and ``output`` respectively. -Within your code "input" is an actual reference to the input workspace, while "output" is a string of the output workspace name. +Within your code ``input`` is an actual reference to the input +workspace, while ``output`` is a string of the output workspace name. You are expected to create the output workspace yourself. +Because of boilerplate code added to the python script being run, +stack-traces for errors will be five (5) lines greater than where the +error occured in the supplied python code. + Usage ----- @@ -26,14 +31,14 @@ Usage .. testcode:: exRunPythonScript ws = CreateSampleWorkspace("Histogram","Multiple Peaks") - + script = """ logger.notice('Logging from within the python script!') wsOut = Integration(input,OutputWorkspace=output) wsOut = SumSpectra(wsOut) """ - RunPythonScript(script,ws,"wsOut") + RunPythonScript(InputWorkspace=ws,Code=script,OutputWorkspace="wsOut") wsOut = mtd["wsOut"] print "The workspace contained a total of %i counts" % wsOut.readY(0)[0] @@ -44,6 +49,8 @@ Output: The workspace contained a total of 9599 counts +The same script could be saved to a file and specified using the +``Filename`` property instead of the ``Code`` property. .. categories:: diff --git a/docs/source/algorithms/StartLiveData-v1.rst b/docs/source/algorithms/StartLiveData-v1.rst index f7e577f946e11bfaa88b859e42d2b5a507410edc..ef14f51d5502cbe0995778ac5b406ccbfc6c5a80 100644 --- a/docs/source/algorithms/StartLiveData-v1.rst +++ b/docs/source/algorithms/StartLiveData-v1.rst @@ -9,15 +9,16 @@ Description ----------- -The StartLiveData algorithm launches a background job that monitors and +The ``StartLiveData`` algorithm launches a background job that monitors and processes live data. -The background algorithm started is -:ref:`algm-MonitorLiveData`, which simply calls -:ref:`algm-LoadLiveData` at a fixed interval. +The background algorithm started is :ref:`algm-MonitorLiveData`, which +simply calls :ref:`algm-LoadLiveData` at a fixed interval. -For details on the way to specify the data processing steps, see: -`LoadLiveData <LoadLiveData#Description>`__. +.. note:: + + For details on the way to specify the data processing steps, see + `LoadLiveData <LoadLiveData#Description>`__. Live Plots ########## @@ -46,15 +47,15 @@ Run Transition Behavior - When the experimenter starts and stops a run, the Live Data Listener receives this as a signal. -- The *RunTransitionBehavior* property specifies what to do at these +- The ``RunTransitionBehavior`` property specifies what to do at these run transitions. - - Restart: the accumulated data (from the previous run if a run has + - ``Restart``: the accumulated data (from the previous run if a run has just ended or from the time between runs a if a run has just started) is discarded as soon as the next chunk of data arrives. - - Stop: live data monitoring ends. It will have to be restarted + - ``Stop``: live data monitoring ends. It will have to be restarted manually. - - Rename: the previous workspaces are renamed, and monitoring + - ``Rename``: the previous workspaces are renamed, and monitoring continues with cleared ones. The run number, if found, is used to rename the old workspaces. @@ -68,8 +69,8 @@ Multiple Live Data Sessions ########################### It is possible to have multiple live data sessions running at the same -time. Simply call StartLiveData more than once, but make sure to specify -unique names for the *OutputWorkspace*. +time. Simply call ``StartLiveData`` more than once, but make sure to specify +unique names for the ``OutputWorkspace``. Please note that you may be limited in how much simultaneous processing you can do by your available memory and CPUs. @@ -160,7 +161,7 @@ Output: def captureLive(): ConfigService.setFacility("TEST_LIVE") - # Start a Live data listener updating every second, + # Start a Live data listener updating every second, # that replaces the results each time with those of the last second. # Load only spectra 2,4, and 6 from periods 1 and 3 StartLiveData(Instrument='ISIS_Histogram', OutputWorkspace='wsOut', UpdateEvery=1, diff --git a/docs/source/release/v3.8.0/framework.rst b/docs/source/release/v3.8.0/framework.rst index 8f0e95437b0b18a329f6a1fddd2aa1b2e931b65a..2ea253e92479f09a50ec33dcbbc8a3c02ca9fab4 100644 --- a/docs/source/release/v3.8.0/framework.rst +++ b/docs/source/release/v3.8.0/framework.rst @@ -83,6 +83,8 @@ Improved - :ref:`FFT <algm-FFT>` deals correctly with histogram input data. Internally, it converts to point data, and the output is always a point data workspace. (It can be converted to histogram data using :ref:`ConvertToHistogram <algm-ConvertToHistogram>` if required). +- :ref:`StartLiveDataClearCache <algm-StartLiveData>` has additional properties for specifying scripts to run for processing and post-processing. + Deprecated ##########