命令行用法
基本命令行使用
中提供的大部分功能 Getting started 也可以使用命令行访问。运行:
python -m pysd Teacup.mdl
将转化 Teacup.mdl 到 Teacup.py 并使用默认值运行它。输出将保存在 Teacup_output_%Y_%m_%d-%H_%M_%S_%f.tab .命令行界面接受多个参数,可以使用 -h/--help 论点:
python -m pysd --help
设置输出文件
为了设置输出文件路径, -o/--output-file 参数可以使用:
python -m pysd -o my_output_file.csv Teacup.mdl
备注
输出文件格式可以是 .csv , .tab 或 .nc .
备注
如果 -o/--output-file 未给出,则输出将保存在 .tab 以模型文件名开头的文件,后面是时间戳,以避免删除文件。
激活进度条
可以使用激活进度条 -p/--progress 论点:
python -m pysd --progress Teacup.mdl
转换选项
仅转换模型文件
要转换模型文件而不运行模型,请 -t/--translate 提供命令:
python -m pysd --translate Teacup.mdl
将Vensim视图拆分为不同文件
为了将Vensim模型视图拆分为不同的文件,如中所述 advanced usage ,使用 --split-views 论点:
python -m pysd many_views_model.mdl --split-views
之前的代码将每个模型视图放入一个单独的Python模块中。此外,如果视图的名称包括子子模块的概念(例如,GY-transform. efficiency_improvement), --subview-sep (子视图分隔符)参数可用于进一步分类模型方程:
python -m pysd many_views_and_subviews_model.mdl --split-views --subview-sep - .
请注意,在 --subview-sep 参数会引发错误,因此建议将此参数作为最后一个参数传递。
输出各种运行信息
输出变量的数量可以通过将它们作为以逗号分隔的参数传递来修改,使用 -r/return_columns 论点:
python -m pysd -r 'Teacup Temperature, Room Temperature' Teacup.mdl
请注意,必须在 -r/return_columns 参数,包含用逗号分隔的变量名称。
有时,变量名称包含特殊字符,例如逗号,当尝试返回带有脚注的变量时可能会发生这种情况。在这种情况下,我们可以保存 .txt 每行有一个变量名的文件,并将其用作参数:
python -m pysd -r output_selected_vars.txt Teacup.mdl
-R/--return-timestamps 命令可用于设置 return timestamps :
python -m pysd -R '0, 1, 3, 7, 9.5, 13.178, 21, 25, 30' Teacup.mdl
备注
每个时间戳应该能够计算为 initial_time + N x time_step ,在哪里 N 是一个整数。
备注
还可以使用模型控制变量修改时间输出,下一节将对此进行解释。
修改模型变量
修改模型控制变量
模型控制变量的值(即 initial time . final time , time step 和 saving step )可以使用 -I/--initial_time , -F/--final-time , -T/--time-step 和 -S/--saveper 论点,分别。例如:
python -m pysd -I=2005 --final-time=2010 --time-step=1 Teacup.mdl
将初始时间设置为2005年,最终时间设置为2010年,时间步设置为1。
备注
如果 -R/--return-timestamps 参数时, final time 和 saving step 将忽略
修改模型变量
要修改模型变量的值,它们的新值可以在模型文件之后传递:
python -m pysd Teacup.mdl 'Room Temperature'=5
这将设置 Room Temperature 变量为5。时间序列或查找也可以作为变量的新值作为两个相同长度的列表传递:
python -m pysd Teacup.mdl 'Temperature Lookup=[[1, 2, 3, 4], [10, 15, 17, 18]]'
第一个列表将用于 time 或 x 值,第二个用于数据值。请参阅中的设置参数值 Getting started 了解详情。
备注
如果变量名称或右侧用空白定义,则必须用引号将它们括起来,如前一个示例所示。
可以同时更改多个变量,例如:
python -m pysd Teacup.mdl 'Room Temperature'=5 temperature_lookup='[[1, 2, 3, 4], [10, 15, 17, 18]]' 'Initial Temperature'=5
修改模型变量的初始条件
有时我们不想更改变量的实际值,而是想更改其初始值。其中一个例子是更改股票对象的初始值。这可以与前一种情况类似地完成,但使用“:”而不是“=”:
python -m pysd Teacup.mdl 'Teacup Temperature':30
这将设置为初始 Teacup Temperature 至30 μ
把它放在一起
多个命令可以一起使用。可选参数和模型参数首先进行(以“-”或“--”开头的参数),然后是模型文件路径,最后是要更改的变量:
python -m pysd -o my_output_file.csv --progress --final-time=2010 --time-step=1 Teacup.mdl 'Room Temperature'=5 temperature_lookup='[[1, 2, 3, 4], [10, 15, 17, 18]]' 'Teacup Temperature':30
将第1步输出保存到2010年 my_output_file.csv ,在集成期间显示进度条并将foo设置为 5 , temperature_lookup 至((1,10)、(2,15)、(3,17)、(4,18))和初始 Teacup Temperature 至30 μ