anypytools.macroutils#
Created on Mon Mar 23 21:14:59 2015.
@author: Morten
Module Contents#
Classes#
Class for custom macro commands. |
|
Create a load macro command. |
|
Create ‘Set Value’ classoperation macro command. |
|
Create a ‘Set Value’ macro command from a distribution. |
|
Create a Dump classoperation macro command. |
|
Create a Save Design classoperation macro command. |
|
Create a Load Design classoperation macro command. |
|
Create a Save Values classoperation macro command. |
|
Create a Load Values classoperation macro command. |
|
Create an ‘Update Values’ classoperation macro command. |
|
Deprecated: Renamed to RunOperation. Create a macro command to select and run an operation. |
|
Create a Save Data classoperation macro command. |
API#
- class anypytools.macroutils.MacroCommand(command)#
Bases:
objectClass for custom macro commands.
This class also serves as base class for other macro commands.
Examples
>>> mc = MacroCommand('operation "Main.MyStudy.InverseDynamics"') ) >>> print(mc) operation "Main.MyStudy.InverseDynamics"
Initialization
- __repr__()#
- class anypytools.macroutils.Load(filename, defs={}, paths={})#
Bases:
anypytools.macroutils.MacroCommandCreate a load macro command.
- Parameters:
Examples
>>> Load('model.main.any') load "model.main.any"
>>> paths = {'DATA':'c:/MyModel/Data'} >>> defines = {'EXCLUDE_ARMS':None, 'N_STEP':20} >>> Load('c:/MyModel/model.main.any', defines, paths) load "c:/MyModel/model.main.any" -def EXCLUDE_ARMS="" -def N_STEP="20" -p DATA=---"c:/MyModel/Data"
>>> mcr = AnyMacro( Load('model_{id}.main.any'), counter_token = '{id}') >>> mcr.create_macros(3) [[u'load "model_0.main.any"'], [u'load "model_1.main.any"'], [u'load "model_2.main.any"']]
Initialization
- get_macro(index, **kwarg)#
- class anypytools.macroutils.SetValue(var, value)#
Bases:
anypytools.macroutils.MacroCommandCreate ‘Set Value’ classoperation macro command.
- Parameters:
Examples
Set a single values:
>>> SetValue('Main.Study.myvar1', 23.1) classoperation Main.Study.myvar1 "Set Value" --value="23.1"
>>> SetValue('Main.Study.myvar2', np.array([2,3,4])) classoperation Main.Study.myvar2 "Set Value" --value="{2,3,4}"
Set variable across different macros
>>> SetValue('Main.Study.myvar1',[1,2,3]) classoperation Main.Study.myvar1 "Set Value" --value="1" classoperation Main.Study.myvar1 "Set Value" --value="2" classoperation Main.Study.myvar1 "Set Value" --value="3"
Here is a elaborate example:
>>> mg = AnyMacro( Load('MyModel.main.any'), SetValue('Main.Study.myvar1',[1,2]), RunOperation('Main.Study.InverseDynamics') ) >>> mg.number_of_macros = 2 [['load "MyModel.main.any"', 'classoperation Main.Study.myvar1 "Set Value" --value="1"', 'operation Main.Study.InverseDynamics', 'run'], ['load "MyModel.main.any"', 'classoperation Main.Study.myvar1 "Set Value" --value="2"', 'operation Main.Study.InverseDynamics', 'run']]
If we generate more macros that there are values then the values are just repeated
>>> mg.number_of_macros = 4 >>> mg [['load "MyModel.main.any"', 'classoperation Main.Study.myvar1 "Set Value" --value="1"', 'operation Main.Study.InverseDynamics', 'run'], ['load "MyModel.main.any"', 'classoperation Main.Study.myvar1 "Set Value" --value="2"', 'operation Main.Study.InverseDynamics', 'run'], ['load "MyModel.main.any"', 'classoperation Main.Study.myvar1 "Set Value" --value="1"', 'operation Main.Study.InverseDynamics', 'run'], ['load "MyModel.main.any"', 'classoperation Main.Study.myvar1 "Set Value" --value="2"', 'operation Main.Study.InverseDynamics', 'run']]
Initialization
- __repr__()#
- get_macro(index, **kwarg)#
- _format_macro(val)#
- class anypytools.macroutils.SetValue_random(var, frozen_distribution, default_lower_tail_probability=0.5)#
Bases:
anypytools.macroutils.SetValueCreate a ‘Set Value’ macro command from a distribution.
The value is connected to a distibution in
scipy.stats.distributions.- Parameters:
Examples
Creating normal macros will use the default values. Usually the 50 percentile (mean values).
>>> np.random.seed(1) >>> from scipy.stats.distributions import logistic, norm >>> log_dist = logistic( loc= [1,3,4],scale = [0.1,0.5,1] ) >>> norm_dist = norm( loc= [0,0,0],scale = [0.1,0.5,1] ) >>> cmd = [SetValue_random('Main.MyVar1', log_dist), SetValue_random('Main.MyVar2', norm_dist) ] >>> mg = AnyMacro(cmd, number_of_macros = 3) >>> mg [['classoperation Main.MyVar1 "Set Value" --value="{0,0,0}"', 'classoperation Main.MyVar2 "Set Value" --value="{1,3,4}"'], ['classoperation Main.MyVar1 "Set Value" --value="{0,0,0}"', 'classoperation Main.MyVar2 "Set Value" --value="{1,3,4}"'], ['classoperation Main.MyVar1 "Set Value" --value="{0,0,0}"', 'classoperation Main.MyVar2 "Set Value" --value="{1,3,4}"']]
Values can be sampled randomly in a ‘Monte Carlo’ fashion. Note that the first value is still the defaut mean values
>>> mg.create_macros_MonteCarlo() [['classoperation Main.MyVar1 "Set Value" --value="{0,0,0}"', 'classoperation Main.MyVar2 "Set Value" --value="{1,3,4}"'], ['classoperation Main.MyVar1 "Set Value" --value="{-0.0209517840916,0.291902872134,-3.68494766954}"', 'classoperation Main.MyVar2 "Set Value" --value="{0.916378512121,2.11986245798,1.71459079162}"'], ['classoperation Main.MyVar1 "Set Value" --value="{-0.0891762169545,-0.198666812922,-0.261723075945}"', 'classoperation Main.MyVar2 "Set Value" --value="{1.01555799978,2.83695956934,4.7778636562}"']]
Values can also be sampled with a Latin Hyper Cube sampler.
>>> mg.create_macros_LHS() [['classoperation Main.MyVar1 "Set Value" --value="{0.0928967116493,-0.591418725401,-0.484696993931}"', 'classoperation Main.MyVar2 "Set Value" --value="{1.01049414425,2.46211329129,5.73806916203}"'], ['classoperation Main.MyVar1 "Set Value" --value="{-0.0166741228961,0.707722119582,-0.294180629253}"', 'classoperation Main.MyVar2 "Set Value" --value="{1.11326829265,2.66016732923,4.28054911097}"'], ['classoperation Main.MyVar1 "Set Value" --value="{-0.20265197275,0.114947152258,0.924796936287}"', 'classoperation Main.MyVar2 "Set Value" --value="{0.806864877696,4.4114188826,2.93941843565}"']]
Initialization
- __repr__()#
- get_macro(index, lower_tail_probability=None, **kwarg)#
- class anypytools.macroutils.Dump(var, include_in_macro=None)#
Bases:
anypytools.macroutils.MacroCommandCreate a Dump classoperation macro command.
- Parameters:
Examples
>>> Dump('Main.Study.myvar1') classoperation Main.Study.myvar1 "Dump"
Only include the dump command in the two first macro
>>> mg = AnyMacro(number_of_macros = 5) >>> mg.append(Load('mymodel.main.any')) >>> mg.append(Dump('Main.Study.myvar1', include_in_macro = [0,1])) >>> mg [['load "mymodel.main.any"', 'classoperation Main.Study.myvar1 "Dump"'], ['load "mymodel.main.any"', 'classoperation Main.Study.myvar1 "Dump"'], ['load "mymodel.main.any"'], ['load "mymodel.main.any"'], ['load "mymodel.main.any"']]
Initialization
- get_macro(index, **kwarg)#
- class anypytools.macroutils.SaveDesign(operation, filename)#
Bases:
anypytools.macroutils.MacroCommandCreate a Save Design classoperation macro command.
- Parameters:
Examples
>>> SaveDesign('Main.MyStudy.Kinematics', 'c:/design.txt') classoperation Main.MyStudy.Kinematics "Save design" --file="c:/design.txt"
Initialization
- get_macro(index, **kwarg)#
- class anypytools.macroutils.LoadDesign(operation, filename)#
Bases:
anypytools.macroutils.MacroCommandCreate a Load Design classoperation macro command.
- Parameters:
Examples
>>> LoadDesign('Main.MyStudy.Kinematics', 'c:/design.txt') classoperation Main.MyStudy.Kinematics "Load design" --file="c:/design.txt"
Initialization
- get_macro(index, **kwarg)#
- class anypytools.macroutils.SaveValues(filename)#
Bases:
anypytools.macroutils.MacroCommandCreate a Save Values classoperation macro command.
- Parameters:
filename (str) – The anyset file to save the values to
Examples
>>> SaveValues('c:/values.anyset') classoperation Main "Save Values" --file="c:/values.anyset"
Initialization
- get_macro(index, **kwarg)#
- class anypytools.macroutils.LoadValues(filename)#
Bases:
anypytools.macroutils.MacroCommandCreate a Load Values classoperation macro command.
- Parameters:
filename (str) – The anyset file to load the values from.
Examples
>>> LoadValues('c:/values.anyset') classoperation Main "Load Values" --file="c:/values.anyset"
Initialization
- get_macro(index, **kwarg)#
- class anypytools.macroutils.UpdateValues#
Bases:
anypytools.macroutils.MacroCommandCreate an ‘Update Values’ classoperation macro command.
Examples
>>> UpdateValues() classoperation Main "Update Values"
Initialization
- get_macro(index, **kwarg)#
- class anypytools.macroutils.OperationRun(operation)#
Bases:
anypytools.macroutils.MacroCommandDeprecated: Renamed to RunOperation. Create a macro command to select and run an operation.
Examples
>>> OperationRun('Main.MyStudy.Kinematics') >>> pprint( mg.generate_macros()) operation Main.MyStudy.Kinematics run
>>> mg = AnyMacro(Load('my_model.main.any'), OperationRun('Main.MyStudy.Kinematics')) >>> mg.create_macros() [[u'load "my_model.main.any"', u'operation Main.MyStudy.Kinematics', u'run']]
Initialization
- get_macro(index, **kwarg)#
- class anypytools.macroutils.SaveData(operation, filename)#
Bases:
anypytools.macroutils.MacroCommandCreate a Save Data classoperation macro command.
This macro operation will save all data from a study to a HDF5 file.
- Parameters:
Examples
>>> SaveData('Main.Study', 'output.anydata.h5') classoperation Main.Study.Output "Save data" --type="Deep" --file="output.anydata.h5"
Initialization
- get_macro(index, **kwarg)#