| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> The Python Crop Simulation Environment 系列学习笔记(一) -> 正文阅读 |
|
[Python知识库]The Python Crop Simulation Environment 系列学习笔记(一) |
作者:recommend-item-box type_blog clearfix |
我是目录PCSE:Python 作物模拟环境PCSE(Python Crop Simulation Environment)是一个用于构建作物模拟模型的 Python 包,特别是在瓦赫宁根(荷兰)开发的作物模型。PCSE 提供了实施作物模拟模型的环境、读取辅助数据(天气、土壤、农业管理)的工具以及模拟物候、呼吸和蒸散等生物物理过程的组件。PCSE 还包括已在世界范围内广泛使用的WOFOST和LINTUL3作物模拟模型的实现。例如,WOFOST 已在 MARS 作物产量预测系统中实施,该系统在操作上用于欧洲及其他地区的作物监测和产量预测。 最初,在瓦赫宁根开发的模型通常是使用 FORTRAN 或 FORTRAN 仿真环境 (FSE) 编写的。两者都是非常好的工具,但它们已经有些过时,并且难以与当今可用的许多优秀工具(XML、数据库、Web 等)集成。像许多其他软件包一样,开发 PCSE 是为了促进我自己的研究工作。我想要一些更容易使用、更具交互性和更灵活的东西,同时仍然实现 FSE 的合理计算方法。出于这个原因,PCSE 是用 Python 开发的,成为用于科学目的的重要编程语言。 传统上,瓦赫宁根的作物模拟模型已经提供,包括完整的源代码。PCSE 也不例外,其源代码是开放的,并在欧盟公共许可证下获得许可。PCSE 在 Python 2.7+ 和 3.2+ 上运行,并且对生物物理过程的实现具有不错的测试覆盖率。 PCSE的背景在Python的作物模拟环境是因为需要重新实现在瓦格宁根中开发的作物模拟模型开发。许多瓦赫宁根作物模拟模型最初是在 FORTRAN77 或使用FORTRAN Simulation Translator (FST) 开发的。尽管这种方法产生了具有高数值性能的高质量模型,但用 FORTRAN 编写的模型的固有局限性也越来越明显:
为了克服上述许多限制,开发了 Python 作物模拟环境 (PCSE)。它为开发模拟模型以及许多作物模拟模型的实现提供了环境。PCSE 是用纯 Python 代码编写的,这使得它更灵活、更容易修改和扩展,允许轻松连接数据库、图形用户界面、可视化工具和数字/统计包。PCSE 有几个有趣的功能:
为什么选择 PythonPCSE 首先是从科学需要中发展起来的,以便能够快速适应模型和测试想法。在科学领域,由于其清晰的语法和易用性,Python 正迅速成为实现算法、可视化和探索性分析的工具。另一个优点是 Python 的 C 实现可以很容易地与用 FORTRAN 编写的例程接口,因此许多 FORTRAN 例程可以被用 PCSE 编写的仿真模型重用。 存在许多用于数值分析(例如 NumPy、SciPy)、可视化(例如 MatPlotLib、Chaco)、分布式计算(例如 IPython、pyMPI)和与数据库接口(例如 SQLAlchemy)的软件包。此外,对于统计分析,可以通过 Rpy 或 Rserve 建立与 R-project 的接口。即使像 Google 和 YouTube 这样的大公司也是 Python 的重度用户,MicroSoft 在其 .NET 框架 (IronPython) 中实现了 Python,而 ESRI 在其地理信息系统 (ArcGIS) 中使用 Python 作为主要脚本语言。最后,Python 是一种开源解释型编程语言,几乎可以在任何硬件和操作系统上运行。 鉴于上述考虑,很快就认识到 Python 是一个不错的选择。尽管 PCSE 是为科学目的而开发的,但它已经在生产环境中用于某些任务。 PCSE 的历史在 4.1 版本之前,PCSE 被称为“PyWOFOST”,因为其主要目标是提供 WOFOST 作物模拟模型的 Python 实现。然而,随着系统的发展,很明显该系统可用于实施、扩展或混合(裁剪)仿真模型。因此,名称“PyWOFOST”变得过于狭窄,选择了名称 Python Crop Simulation Environment 以模拟 FORTRAN Simulation Environment (FSE)。 PCSE 的局限性PCSE也有它的局限性,其实有几个:
安装 PCSE要求和依赖PCSE 正在使用 Python 2.7.14 和 python 3.6.5 在 Ubuntu Linux 14.04 和 Windows 7 上开发。由于 Python 是一种独立于平台的语言,因此 PCSE 在 Linux、Windows 或 Mac OSX 上同样有效。在安装 PCSE 之前,Python 本身必须安装在您的系统上,PCSE 对其他 python 包有许多依赖项,如下所示: Numpy >= 1.6 设置你的Python环境为 PCSE 设置 Python 环境的一种便捷方法是通过Anaconda python 发行版。创建引导 PCSE 的专用虚拟环境。我们将创建的虚拟环境不仅包含 PCSE 的依赖项,还包含许多其他有用的包,例如IPython、Pandas和Jupyter notebook。这些包也将用于入门部分。 安装和测试 PCSE安装 PCSE 的最简单方法是通过 python 包索引 ( PyPI )。如果您有兴趣在自己的脚本中使用 PCSE 提供的功能,但对修改或贡献 PCSE 本身不感兴趣,则从 PyPI 安装最有用。从 PyPI 安装是使用包安装程序pip 完成的,它在 python 包索引中搜索一个包,下载并安装到你的 python 环境中:
为了测试 PCSE 包,我们需要启动 python 并导入 pcse:
如果模型输出与预期输出匹配,则测试将报告“OK”,否则将产生错误。 实例入门安装完成,使用一些示例开始建模。这些示例目前侧重于应用 WOFOST 和 LINTUL3 作物模拟模型,但将来可能会在 PCSE 中提供其他作物模拟。 本章使用**start_wofost()**连接到演示数据库,该数据库包含西班牙南部网格位置(网格 31031)的气象数据、土壤数据、作物数据和管理数据。 初始化 PCSE/WOFOST 模型
让我们开始一个 WOFOST 对象,用于模拟 2000 年在西班牙南部的一个位置(网格 31031)在自由排水的土壤(mode=‘wlp’)的限水条件下的冬小麦(crop = 1):
成功初始化了一个 PCSE/WOFOST 对象,该对象处于初始状态并等待进行一些模拟。我们现在可以以1天为例推进模型状态。
也可以指定模拟天数:
获取有关状态和速率变量的信息可以使用PCSE 对象上的get_variable()方法检索有关计算模型状态或比率的信息。例如,反演当前模型状态下的叶面积指数,您可以执行以下操作:
表明 11 天后 LAI 值为 0.287。再经过25天,LAI 增加到 1.528。该get_variable方法可以反演模型中定义的某个地方的任何状态或速率变量。最后,我们可以通过让模型结束,因为作物成熟或收获日期。
接下来,我们在模拟的每个时间步长(“output”)反演模拟结果:
利用pandas库收拾一下结果
最后,我们可以在作物周期结束时查看这些结果:
总结本期内容主要介绍了PCSE: The Python Crop Simulation Environment基本知识、安装流程以及入门实例。 参考文献: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 4:42:28- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |