\(\renewcommand\AA{\unicode{x212B}}\)
Working with Workspaces in Python¶
Accessing Workspaces¶
In mantid.simpleapi
, you can access existing workspaces as a dictionary using the mtd["worskpace_name"]
command for a specific workspace name key. More explanation can be found in Accessing Workspaces From Python.
# This creates a workspace without explicitly capturing the output
CreateSampleWorkspace(OutputWorkspace="my_new_workspace")
# You can get a python variable pointing to the workspace with the command
myWS = mtd["my_new_workspace"]
print("The variable myWS now points to the workspace called " + str(myWS))
# You can assign a python variable when calling an algorithm and the workspace will match the variable name
myOtherWS = CreateSampleWorkspace()
print("myOtherWS now points to the workspace called " + str(myOtherWS))
Output:
The variable myWS now points to the workspace called my_new_workspace
myOtherWS now points to the workspace called myOtherWS
Workspace Properties¶
You can look at the Workspace API reference for a full list of properties, but here are some of the key ones.
myWS = CreateSampleWorkspace()
print("name = " + myWS.name())
myWS.setTitle("This is my Title")
print("getTitle = " + myWS.getTitle())
myWS.setComment("This is my comment")
print("comment = " + myWS.getComment())
print("id = " + myWS.id())
print("getMemorySize = " + str(myWS.getMemorySize()))
Output:
name = myWS
getTitle = This is my Title
comment = This is my comment
id = Workspace2D
getMemorySize = ...
Workspace History¶
Workspaces keep a track of all of the algorithms used on them, so you can ask a workspace to tell you about it’s history. The algorithm GeneratePythonScript uses this information to create a python script able to re-run the workspace history.
# Run a few algorithms
myWS = CreateSampleWorkspace()
myWS = ConvertUnits(myWS,Target="Wavelength")
myWS = Rebin(myWS,Params=200)
# You can access the history using getHistory()
history = myWS.getHistory()
for algHistory in history.getAlgorithmHistories():
print(algHistory.name())
for property in algHistory.getProperties():
if not property.isDefault():
print("\t" + property.name() + " = " + property.value())
Output:
CreateSampleWorkspace
OutputWorkspace = myWS
ConvertUnits
InputWorkspace = myWS
OutputWorkspace = myWS
Target = Wavelength
Rebin
InputWorkspace = myWS
OutputWorkspace = myWS
Params = 200
The full documentation for workspace history can be found at the WorkspaceHistory
api.
Category: Concepts