Study

class Study(*args)

Save/load a Study.

Parameters:
fileNamestr

Name of the file used by the underlying storage manager, a XMLStorageManager in this case.

compressionLevelint, optional

Compression level of the resulting XML file, in the range 0,…,9 (0=no compression, 9=best compression). The compression is done only if the XML lib has been compiled with zlib support. The default value is given by ‘XMLStorageManager-DefaultCompressionLevel’ in ResourceMap.

Methods

add(*args)

Add an object to the study.

fillObject(*args)

Fill an object with one got from study.

fillObjectByName(*args)

Fill an object with one got from study.

getClassName()

Accessor to the object's name.

getLabels()

Accessor to the labels of the stored objects.

getObject(*args)

Get object from the study.

getStorageManager()

Get the storage manager used by the study.

hasObject(*args)

Query if object is stored in study.

load()

Reload the study from the storage manager.

remove(*args)

Remove an object from the study.

save()

Save the study through the storage manager.

setStorageManager(smgr)

Set the storage manager used by the study.

Notes

The study allows the user to save all its data to a structure looking like a map. The data are copied verbatim to the study. This is not a link, so future modification of the original won’t affect the data saved in the study. To update the data saved in the study, the user has to explicitly save it again. Study allows the user to retrieve previously saved objects either by their name if a name was defined for the object or by their Id.

If the study contains Python wrapper classes (PythonFunction, PythonDistribution, etc) serialization of the pure Python parts of the objects go through the pickle module or the dill module if available. The latter allows one to serialize objects including their Python definition which means the study can be reloaded in a Python environment that does not include their Python class or function definition contrary to the default pickle module. In that regard it can be useful to set the recurse setting of dill before saving.

Examples

>>> import openturns as ot

Create a Study object:

>>> myStudy = ot.Study()
>>> myStudy.setStorageManager(ot.XMLStorageManager('myStudy.xml'))
>>> myStudy2 = ot.Study('myStudy2.xml')
>>> myStudy3 = ot.Study('myStudy2.xml.gz', 5)

If HDF5 format dependencies are satisfied:

>>> myStudy4 = ot.Study()  
>>> myStudy4.setStorageManager(ot.XMLH5StorageManager('myStudy.xml'))  

Add PersistentObjects to the study:

>>> # a Point:
>>> point = ot.Point(3, 0.0)
>>> point[0] = 10.0
>>> point[1] = 11.0
>>> point[2] = 12.0
>>> myStudy.add('point', point)
>>> # a simulation result:
>>> simulationResult = ot.ProbabilitySimulationResult(ot.ThresholdEvent(), 0.5, 0.01, 150, 4)
>>> myStudy.add('simulationResult', simulationResult)

Get objects from the study:

>>> print(myStudy.getObject('point'))
[10,11,12]

Save the Study:

>>> myStudy.save()

Create a new Study object:

>>> myStudy = ot.Study()
>>> myStudy.setStorageManager(ot.XMLStorageManager('myStudy.xml'))

Load data from the study:

>>> myStudy.load()

Create data from the ones stored in the study:

>>> # a Point:
>>> otherPoint = ot.Point()
>>> myStudy.fillObject('point', otherPoint)
>>> # a simulation result:
>>> otherSimulationResult = ot.ProbabilitySimulationResult()
>>> myStudy.fillObject('simulationResult', otherSimulationResult)

Get information from the study:

>>> myStudy.getLabels()
('point', 'simulationResult')

Remove data:

>>> myStudy.hasObject('simulationResult')
True
>>> myStudy.remove('simulationResult')
>>> myStudy.hasObject('simulationResult')
False
__init__(*args)
add(*args)

Add an object to the study.

Available usages:

add(object)

add(name, object, force=False)

Parameters:
objectInterfaceObject, PersistentObject

Object to add in the study.

namestr

Name to associate with the object.

forcebool

If force=True and name is already defined in the study, the previous object associated with this name is removed. A error message is emitted otherwise.

fillObject(*args)

Fill an object with one got from study.

Available usages:

fillObject(name, object)

fillObject(id, object)

Parameters:
objectInterfaceObject, PersistentObject

An object to be refilled (may be empty, i.e. default constructed).

namestr

Name of the object stored in the study.

idint

Internal identifier of the object stored in the study.

fillObjectByName(*args)

Fill an object with one got from study.

Available usages:

fillObjectByName(object, name)

fillObjectByName(id, object)

Parameters:
objectInterfaceObject, PersistentObject

An object to be refilled (may be empty, i.e. default constructed).

namestr

Name of the object stored in the study.

idint

Internal identifier of the object stored in the study.

getClassName()

Accessor to the object’s name.

Returns:
class_namestr

The object class name (object.__class__.__name__).

getLabels()

Accessor to the labels of the stored objects.

Returns:
labelstuple of str

Labels of the objects stored in the study.

getObject(*args)

Get object from the study.

Available usages:

getObject(id)

getObject(name)

Parameters:
namestr

Name of the object stored in the study.

idint

Internal identifier of the object stored in the study.

Returns:
objectPersistentObject

The object saved in the study.

getStorageManager()

Get the storage manager used by the study.

Parameters:
managerStorageManager

Storage manager used by the study to save and reload data.

hasObject(*args)

Query if object is stored in study.

Available usages:

hasObject(id)

hasObject(name)

Parameters:
namestr

Name of the object stored in the study.

idint

Internal identifier of the object stored in the study.

Returns:
hasObjectbool

True if the object is stored in the study.

load()

Reload the study from the storage manager.

remove(*args)

Remove an object from the study.

Available usages:

remove(object)

remove(name)

Parameters:
objectInterfaceObject

An object to be removed.

namestr

Name of the object to be removed.

save()

Save the study through the storage manager.

setStorageManager(smgr)

Set the storage manager used by the study.

Returns:
managerStorageManager

Storage manager used by the study to save and reload data.

Examples using the class

Save/load a study

Save/load a study