StellaR是一个免费的开源 Python 应用程序,可将 Stella 模型转换为 R 脚本。此应用程序由 Babak Naimi 和Alexey Voinov 开发。
R 是一种用于统计计算、数据分析和图形的语言和免费(在 GNU 通用公共许可证下)和开源环境。R 提供了广泛的统计和图形技术,并且具有高度的可扩展性。 尽管 R 作为统计分析和图形表示的环境而广为人知,但它正迅速变得更适合数学计算。 R 的功能可以通过这些用户创建的包进行扩展,允许开发新的和专业的分析技术、图形设备、导入/导出功能、报告工具等。所有这些功能使 R 如此强大,因此,用户数量及其功能呈指数增长。
R 使用命令行界面;然而,有几个图形用户界面可用于 R (例如RStudio、Tinn-R)。
Stella有几个完善的动态仿真系统,包括 STELLA 和iThink、PowerSim、Berkeley Madonna、 VENSIM、Simile等。这些系统动力学软件在建模中如此受欢迎的原因之一是它们提供了方便的工具来组合概念图,并且,提供将它们转换为数字计算机模型的工具(Voinov 2008)。尽管它们对于特定的应用程序非常有用,但它们通常缺乏编程语言的全部功能和灵活性(Petzoldt 和 Rinke 2007)。
StellaR 提供了一个桥梁,可以同时使用概念建模工具以及 R 提供的强大功能和编程灵活性。
如何使用Stella
首先,您在 Stella 中构建模型。确保它运行并产生一些输出。
接下来,只需三个简单的步骤即可将 STELLA 模型转换为 R 脚本:
- 将 STELLA 方程导出到文本文件
- 使用 StellaR 程序将导出的文件翻译成 R 脚本和数据文件(如果有的话)
- 在 R 中打开脚本,并通过加载 deSolve 包运行模型(Soetaert et al. 2010b)
a) 将 STELLA 模型导出为文本格式:
打开 STELLA 模型 ->转到Equation layer -> 从File菜单中,选择“Save as text”以将 STELLA 模型导出为机器工作目录中的文本文件。
b) 使用 StellaR 程序将 STELLA 模型转换为 R 脚本:
首先下载程序文件,从http://sourceforge.net/projects/stella-r/files/
可以在任何操作系统上执行的 windows 分发以及 python 源代码可用。
StellaR 是一个基于命令的程序。它只需要从 STELLA 导出的文本文件的名称,以及 R 项目的名称作为参数。
下面你将看到 StellaR 在 windows 操作系统中的使用:
假设以文本格式导出的 STELLA 模型的名称是“st.txt”,并且您在 d:\test 上拥有该文件以及可执行的 StellaR 程序。打开命令提示符 (cmd.exe),将路径更改为工作目录 (d:\test),并使用 StellaR 作为:
D:\test> StellaR st.txt st_r
第一个参数(在 StellaR 之后)是 stella 模型的名称,导出为文本格式(st.txt);第二个参数是您可以在 R 中为您的项目考虑的新名称。
要使用 python 源代码执行命令,在您的机器上安装 python,您可以使用以下行:
$ python StellaR.py st.txt st_r
该程序为 R 项目创建一个具有指定名称的新文件夹(此处为 st_r)。在文件夹内,将创建至少两个文件(R 脚本)。如果 STELLA 模型内有任何数据,对于每个数据项,也会创建一个单独的 CSV 格式的文件。
c) 在 R 中打开翻译后的模型:
您只需在 R 软件的命令行中打开您指定为第二个参数的名称的 R 脚本。
在 R 中,您可以通过在 R 控制台中键入命令来执行大多数操作。通过将命令放入一个名为 R 脚本的文件中,您可以轻松地重新运行、编辑和管理它们。有一些软件可以与 R 一起安装,以帮助您在 R 中编写脚本和管理项目。这里我们使用了 RStudio(www.rstudio.org),它可以被认为是 R 脚本的 IDE。它已针对主要操作系统实现。然而,还有一些其他的 IDE,比如 Tinn-R。正如已经提到的,STELLA 模型被翻译成一些 R 脚本和数据文件。要在 R 中打开脚本,首先将工作目录设置到 StellaR 创建为 R 项目的位置。setwd() 函数设置工作目录:
通过从文件菜单中选择“打开文件”,您可以打开可以在 R 环境中执行的主要 R 脚本。您不需要打开其他生成的脚本和数据文件,因为它们会被主脚本自动读取。主脚本的名称是您指定的项目名称,扩展名为“.R”。
您可以简单地选择脚本中的所有行,然后按运行按钮来执行模型。
参考
Petzoldt, T. 和 Rinke, K. 2007。Simecol:R 中生态建模的面向对象框架——统计软件杂志 22:1-31。
Soetaert,K. 等人。2010a。求解 R 中的微分方程。在:Psihoyios, G. 和 Tsitouras, C. (eds),数值分析和应用数学,第 I-Iiii 卷。Amer Inst Physics,第 31-34 页。
Soetaert,K. 等人。2010b。求解 R 中的微分方程:包 Desolve。— 统计软件杂志 33:1-25。
Voinov, A. 2008。生态经济学的系统科学和建模。— 学术出版社。