Skip to main content

气候数据挖掘自动化框架

项目描述

BestiaPop:一个python包,用于自动提取和处理气候数据以进行作物建模

文件状态 GitHub 上次提交 GitHub 代码大小(以字节为单位) PyPI - Python 版本 PyPI - 总下载量 PyPI - 下载量/月 粘合剂

气候数据是作物模型使用特定地点(点)或网格化气候数据预测作物生长和发育的重要输入。但是,Crop Models期望输入数据以不符合通用标准并需要各种自定义的自定义文件格式( 、 等)封装METWTH具体取决于生成作物模型的预测引擎。此外,像SILONASA POWER这样的源数据提供者通常在他们作为 API 服务的一部分提供的数据输出文件的类型上是中立的,这导致源原始数据和作物建模套件开发模型所需的处理数据之间存在差距。我们开发了BestiaPop(一个翻译成流行野兽的西班牙语单词),一个 Python 包,它允许模型用户自动下载 SILO(土地所有者科学信息)或 NASAPOWER 网格化气候数据,并将这些数据转换为可由作物模型(如 APSIM 或DSSAT。

该软件包提供了选择一系列网格(5 km × 5 km 分辨率)和生成各种类型输出文件的年份的可能性:CSV、MET(用于 APSIM)、WTH(用于 DSSAT)和即将成为 JSON(将成为BestiaPop 未来的 API)。

目前,该代码从两个不同的气候数据库下载数据:

  1. 筒仓
  2. 美国宇航局电源

文档

检查我们的文档!--> https://bestiapop.readthedocs.io/en/latest/

作者

核心贡献者

致谢

我如何引用 BestiaPop?

  1. 如果您下载或使用此软件包,请在此存储库中给我们一颗星(本页右上方)

  2. 在您的工作(论文、报告等)中明确指定您使用过Bestiapop并引用以下两篇论文:

  • Ojeda JJ, Eyshi Rezaei E, Remeny TA, Webb MA, Webber HA, Kamali B, Harris RMB, Brown JN, Kidd DB, Mohammed CL, Siebert S, Ewert F, Meinke H (2020) 土壤和气候数据聚合的影响模拟马铃薯产量和灌溉需水量。整体环境科学。710, 135589.链接文件
  • Ojeda JJ, Eyshi Rezaei E, Remenyi TA, Webber HA, Siebert S, Meinke H, Webb MA, Kamali B, Harris RMB, Kidd DB, Mohammed CL, McPhee J, Capuano J, Ewert F (2021) 数据聚合方法的影响作物模型输出——澳大利亚塔斯马尼亚的马铃薯灌溉系统案例。欧洲农学杂志.126, 126276.链接文件

BestiaPop 在行动!

在这里您可以看到 BestiaPop 的实际效果

图片

在 Jupyter Notebook 中使用它:)

如果您想在 Jupyter Notebook 中使用 BESTIAPOP,您可以!请参阅示例笔记本

您也可以在 Binder Project 中现场试用,只需点击徽章伴侣!--> 粘合剂

如果您下载文件,则可以通过 Jupyter 界面检索它们 :)

基于过程的(机械)作物模型

基于过程的作物模型越来越多地用于农业决策。在过去的二十年里,他们为作物管理、环境影响研究、气候风险评估和气候变化适应分析做出了巨大贡献。作物模型和模型用户的数量正在增加,一些研究集中在模型开发上,即建立或改进模型和多模型集合背后的科学。APSIM(农业生产系统模拟器)和DSSAT(农业技术转让决策支持系统)是全球科学界使用的两种主要作物模型。

APSIM

什么是 APSIM?

农业生产系统模拟器 (APSIM) 是国际公认的高度先进的农业系统建模和模拟平台。它包含一套模块,可以模拟各种作物、动物、土壤、气候和管理相互作用的系统。APSIM 正在进行持续开发,新功能已添加到正式版本的常规版本中。它的开发和维护以严格的科学和软件工程标准为基础。APSIM 倡议的成立旨在促进 APSIM 科学模块和基础设施软件的开发和使用。

APSIM 围绕植物、土壤和管理模块构建。这些模块包括各种作物、牧场和树木、土壤过程,包括水平衡、N 和 P 转化、土壤 pH 值、侵蚀和全方位的管理控制。APSIM 源于对工具的需求,这些工具能够准确预测与气候、基因型、土壤和管理因素相关的作物生产,同时解决长期资源管理问题。

APSIM 建模框架由以下组件组成:

  • 一组模拟农业系统中的生物和物理过程的生物物理模块。
  • 一组管理模块,允许用户指定预期的管理规则,这些规则表征正在模拟的场景并控制模拟。
  • 各种模块,便于数据输入和输出模拟。
  • 一个模拟引擎,驱动模拟过程并促进独立模块之间的通信。

除了 APSIM 模拟器的科学和基础设施元素外,该框架还包括:

  • 用于模型构建、测试和应用的各种用户界面
  • 用于可视化和进一步分析输出的各种接口和关联数据库工具。
  • 各种模型开发、测试和文档工具。
  • 基于 Web 的用户和开发人员支持设施,提供文档、分发和缺陷/变更请求跟踪。

什么是 MET 文件

APSIM Met 模块为 APSIM 模拟中的所有模块提供每日气象信息。APSIM 气象模块需要参数来指定每个 APSIM 时间步长的站点气候。此信息包含在MET 文件中。

APSIM MET 文件由一个部分名称(始终为weather.met.weather)、几个由name = value组成的常量、标题行、单位行和数据组成。文件中的间距无关紧要。可以使用 ! 插入评论 特点。

文件中必须至少包含三个常量:latitudetavamp。其中后两个是指年平均环境温度和月平均温度的年振幅。可以在此处找到有关 tav 和 amp 的完整详细信息:tav_amp

MET 文件还必须具有年和日列(或格式为yyyy/mm/dd的日期)、太阳辐射 ( MJ/m2 )、最高温度 ( °C )、最低温度 ( °C ) 和降雨量 ( mm )。用于这些的列标题是年和日(或日期)、radn、maxt、mint、rain。可以将其他常量或列添加到文件中。然后,APSIM 可以将这些变量用作可以在管理器脚本中报告或使用的变量。

虽然数据通常在SILO网页上以 MET 格式提供,但网格数据以 NetCDF 文件格式提供,难以存储和转换为APSIM或其他作物模型可读的输入文件。BestiaPop负责为 APSIM 生成所需的输入文件。

DSSAT

什么是DSSAT?

农业技术转让决策支持系统 (DSSAT) 是一个软件应用程序,包括超过 42 种作物的作物模拟模型(截至 4.7.5 版)以及促进模型有效使用的工具。这些工具包括用于土壤、天气、作物管理和实验数据、实用程序和应用程序的数据库管理程序。作物模拟模型模拟生长、发育和产量作为土壤-植物-大气动力学的函数。

DSSAT 及其作物模拟模型已被用于不同空间和时间尺度的广泛应用。这包括农场和精确管理、气候变率和气候变化影响的区域评估、基于基因的建模和育种选择、用水、温室气体排放以及通过土壤有机碳和氮平衡的长期可持续性。DSSAT 已被全球 174 个国家的 16,500 多名研究人员、教育工作者、顾问、推广代理、种植者以及政策和决策者使用。

作物模型需要每日天气数据、土壤表面和剖面信息以及详细的作物管理作为输入。作物遗传信息在 DSSAT 提供的作物物种文件中定义,而栽培品种或品种信息应由用户提供。模拟在播种时或播种前通过模拟光秃的休耕期开始。根据过程和作物模型,这些模拟按每日步骤进行,在某些情况下,按每小时时间步骤进行。每天结束时,植物和土壤的水、氮、磷和碳平衡都会更新,以及作物的营养和生殖发育阶段。

什么是 WTH 文件

DSSAT 天气文件中的三个关键变量是降水、最低和最高温度以及太阳辐射。*.WTH(类似于 APSIM 中的 *.MET)已被定义为 DSSAT 的标准化文件格式。latitudelongitudetavamp参数对于这些文件也是必需的。

气候数据源

关于筒仓

SILO(土地所有者科学信息)是一个包含 1889 年至今的澳大利亚气候数据的数据库。它以适用于生物物理作物建模、研究和气候应用的即用型格式为一系列气候变量提供每日气象数据集。

SILO 是一种使能技术,它允许用户专注于他们的研究,而无需承担数据准备的负担。SILO 产品通过以下方式支持研究:

  • 全国覆盖范围,缺失数据的填充值,以及
  • 准备好模型的数据集,有多种格式。

SILO 由昆士兰环境与科学部 (DES) 主办。该数据系统始于 1996 年,是昆士兰州政府和澳大利亚气象局 (BoM) 之间的一个合作项目,由土地和水资源研究与开发公司赞助。数据集是根据从 BoM 获得的观测数据构建的。

SILO 的 NetCDF 和 API 数据变体

在某些特定年份,当您从 a 读取数据时,某些数据可能会有所不同NetCDF SILO file,而不是从SILO API. 以下是 SILO 团队的详细说明,说明为什么会发生这种情况。

当您在网格单元位置请求点数据时,将从 NetCDF 文件中的相关网格单元中提取数据。然后,这些数据通过一个简单的过滤器,检查每个数据是否在可接受的范围内:

  • 日降雨量:0 – 1300 毫米
  • 最高温度:-9 - 54 ᵒC
  • 最低温度:-20 - 40 ᵒC
  • A级锅蒸发:0 - 35 mm
  • 太阳辐射:0 - 35 MJ/m2
  • 蒸气压:0 - 43.2 hPa
  • 最高温度 > 最低温度

如果给定数据(或 Tmax > Tmin 检查的一对数据值)未通过检查,则它/它们可能是错误的,因此 SILO 提供长期每日平均值。这由特定数据的值中的数字75表示。

如果您在站点位置请求数据,则会进行相同的检查;主要区别是在可能的情况下提供观测数据,如果在给定日期没有观测数据,则提供网格数据。

API 和 NetCDF 值之间的差异仅在基准未通过上述范围检查之一时出现,例如,当插值的最高温度低于插值的最低温度时。这种情况通常是由于观测数据中的错误(导致网格表面中的错误)或在记录站很少的区域中出现的。我们预计在早期的网格化表面中会有更多的错误,因为在 1957 年之前记录数据(降雨除外)的站台相对较少。Jeffrey 提供了显示记录每个变量的站台数量随时间变化的图表等。2001 年(参见关于 SILO 的出版物部分)。

数据请求

数据请求仅限于 1889 年之后的年份。

关于 NASA POWER

NASA 在地球科学方面的目标是观察、理解和模拟地球系统,以发现它是如何变化的,更好地预测变化,并了解对地球生命的影响。科学任务理事会(取代地球科学办公室和空间科学办公室)内的应用科学计划通过扩大和加速实现地球科学、信息和技术的社会和经济效益来服务于 NASA 和社会研究与开发。

全球能源资源预测 (POWER) 项目的启动是为了改进当前的可再生能源数据集,并从新的卫星系统创建新的数据集。POWER 项目针对三个用户社区:(1) 可再生能源,(2) 可持续建筑,和 (3) 农业气候学。Agroclimatology Archive 旨在提供基于 Web 的对行业友好参数的访问,这些参数格式化为农业 DSS 中包含的作物模型的输入。

POWER 数据的空间分辨率是多少?

Bestiapop 以 0.5° x 0.5° 的分辨率从 NASAPOWER 生成数据,但是原始数据集具有相应的变量空间分辨率。

  • 太阳能:数据最初是在 1° x 1° 全球网格上生成的,然后通过数据复制重新网格化到 0.5° x 0.5° 纬度和经度全球网格。

  • 气象:数据最初是在 1/2° x 2/3° 全球网格上生成的,然后通过双线性插值重新网格化到 0.5° x 0.5° 纬度和经度全球网格。

POWER 数据的时间分辨率是多少?

Bestiapop 每天生成数据,但是原始数据集具有不同的时间分辨率,相应地与变量有关。

  • 太阳能:数据最初是按 3 小时时间增量生成的,平均以提供每日值。日平均值用于计算气候月平均值。

  • 气象学:数据最初是按 1 小时时间增量生成的,这些时间增量是提供的每日值的平均值。日平均值用于计算气候月平均值。

气候变量

一个考虑因素是每个数据源(SILO 与 NASAPOWER)中变量的名称和数量。它们有不同数量的气候变量和名称。因此,为了便于使用不同数据源的 BestiaPop,我们为全球太阳辐射、降水、最高温度和最低温度定义了通用变量名称,这些变量是为作物建模目的创建 MET 和 WTH 文件所必需的。下面提供了 NASAPOWER 变量的缩写及其对应的变量名称:

原名 BestiaPop 名称 描述 单元
ALLSKY_SFC_SW_DWN 辐射 水平面上的全天日照事件 兆焦耳米-2
普雷克托 每日雨 沉淀 毫米
T2M_MIN min_temp 2米处的最低温度 °C
T2M_MAX 最大温度 2米处的最高温度 °C

缺失值

由于卫星观测数据丢失且无法恢复,因此通常会丢失太阳日数据。因此,在 NASAPOWER 数据中,该变量缺少由 表示的值-99。对于日常工作的作物模型来说,这是一个问题,因为它们已经定义了气候变量的边界,因此如果读取Nan值,它们就会崩溃。为了解决这个问题,BestiaPop 自动计算NaN变量的前一个值和后一个值之间的平均值,并用计算的平均值替换NaN

数据请求

降雨量、最高和最低温度要求仅限于 1981 年之后的年份,但可提供 1983 年之后的太阳辐射数据。有关详细信息,请参见此处

安装

BestiaPop有两种安装方式

  1. 带点
  2. 克隆回购

1. 使用 PIP 安装

  1. pip install bestiapop--> 这将安装 BestiaPop 需要运行的所有必需的包
  2. 完毕!, 使用, sipmply 类型python -m bestiapop [args]:)

注意:我们建议您在使用AnacondaVirtualEnv创建的隔离环境中安装 BestiaPop 。如果只使用Anacondaconda create -y --name my_data_env python=3.7

2. 安装克隆 BestiaPop 仓库

  1. 克隆这个 repo
  2. 安装所需的软件包。

使用点子

  1. 将目录更改为 repo 文件夹
  2. pip install -r pip_requirements.txt

使用 Anaconda

在你的基础环境中

由于 Anaconda 可能必须在您的默认基础环境上解决多个依赖项,此选项可能需要长时间。最好使用创建自定义环境的下一个方法安装。

  1. 打开基础环境的 anaconda 提示符(默认)
  2. conda install -y -c conda-forge --file pip_requirements.txt

创建自定义环境

  1. conda create -y --name bestiapop python==3.7
  2. conda install --name bestiapop -y -c conda-forge --file pip_requirements.txt
  3. conda activate bestiapop

用法

BestiaPop 有三个主要的命令,你可以通过-a选项传入:

  1. generate-climate-file:此命令将根据输出类型 ( -ot) 为met或为作物建模软件生成一个输入文件wth。When csvor stdoutis selected, a file containing all years in the sequence, with all requested variables, will be produced for each lat/lon combination.
  2. download-nc4-file:此命令从 SILO 或 NASAPOWER 下载 NetCDF4 文件
  3. convert-nc4目前未实现,此命令将允许您将 NetCDF4 文件转换为其他格式,例如jsoncsv.

例子

注意:如果您使用 安装 BestiaPop pip,那么python bestiapop.py您将不得不使用python -m bestiapop.

下载 NetCDF4 文件

下载 2010 年至 2018 年的 SILO 气候文件和最高气温

此命令只会从云端下载文件,不会执行任何进一步的处理。

注意:年份范围必须用破折号分隔,而多个气候变量用空格分隔

python bestiapop.py -a download-nc4-file --data-source silo -y "2010-2018" -c "daily_rain max_temp" -o C:\some\output\folder

生成气候文件

使用 SILO 云 API 生成 MET 输出文件(用于 APSIM),用于 2015 年至 2016 年的全球太阳辐射、最低气温、最高气温和每日降雨量

注意:* 生成的 MET 文件将放置在“-o”指定的输出目录中 *如果需要 csv 作为输出文件,则在脚本末尾添加-ot csv 。代码默认生成 MET 文件。

python bestiapop.py -a generate-climate-file -s silo -y "2015-2016" -c "radiation max_temp min_temp daily_rain" -lat "-41.15 -41.05" -lon "145.5 145.6" -o C:\some\output\folder\ -ot met

从 LAT/LON 组合列表生成 MET 输出文件

如果您已经知道要处理的纬度/经度组合,则此选项很方便。

注意:具有 lat/lon 组合的 CSV 文件不需要有标题,并且每行应该只列出一个组合,如下所示:

-41.15,145.5
-43.45,146.7
-41.25,145.25
-42.70,147.45
-41.50,145.6
python bestiapop.py -a generate-climate-file -s silo -y "2015-2016" -c "radiation max_temp min_temp daily_rain" --coordinates-file .\path\to\coordinates.csv -o C:\some\output\folder\ -ot met

使用 SILO 云 API 生成 WTH 输出文件(用于 DSSAT)输出文件,用于 2015 年至 2016 年的全球太阳辐射、最低气温、最高气温和每日降雨量

python bestiapop.py -a generate-climate-file -s silo -y "2015-2016" -c "radiation max_temp min_temp daily_rain" -lat "-41.15 -41.05" -lon "145.5 145.6" -o C:\some\output\folder\ -ot wth

使用 SILO 云 API 生成 CSV 输出文件(用于 APSIM),用于 2015 年至 2016 年的全球太阳辐射、最低气温、最高气温和每日降雨量

注意:* BestiaPop 将生成与传递给应用程序的坐标范围中的纬度/经度组合一样多的 CSV 文件。* BestiaPop 还将末尾生成一个额外的文件,该文件bestiapop-beastly-dataframe.csv基本上包含所有年份所有变量的所有纬度/经度组合。该文件的目的是使将这些数据更容易地提取到 Pandas、Excel 或 Elasticsearch 等引擎中,而无需拼凑为每个纬度/经度组合生成的单个 csv 文件。

python bestiapop.py -a generate-climate-file -s silo -y "2015-2016" -c "radiation max_temp min_temp daily_rain" -lat "-41.15 -41.05" -lon "145.5 145.6" -o C:\some\output\folder\ -ot csv

从本地磁盘生成 MET 输出文件(用于 APSIM),用于 1990 年至 2010 年的全球太阳辐射、最低气温、最高气温和每日降雨量

注意:所有必需的 NetCDF 文件都应放在一个目录中,然后使用-i参数引用该目录。该目录应具有以下结构:

C:\input\folder:
    \__ 1990.daily_rain.nc
    \__ 1990.max_temp.nc
    \__ 1990.min_temp.nc
    \__ 1990.radiation.nc
    \__ 1991.daily_rain.nc
    \__ 1991.max_temp.nc
    \__ 1991.min_temp.nc
    \__ 1991.radiation.nc
    \__ ...
    \__ 2010.daily_rain.nc
    \__ 2010.max_temp.nc
    \__ 2010.min_temp.nc
    \__ 2010.radiation.nc
python bestiapop.py -a generate-climate-file -y "1990-2010" -c "radiation max_temp min_temp daily_rain" -lat "-41.15 -41.05" -lon "145.5 145.6" -i C:\some\input\folder\with\all\netcdf\files\ -o C:\some\output\folder\ -ot met

使用 NASAPOWER 云 API 生成 MET 输出文件(用于 APSIM),用于 2003 年至 2016 年的全球太阳辐射、最低气温、最高气温和每日降雨量

python bestiapop.py -a generate-climate-file -s nasapower -y "2015-2016" -c "radiation max_temp min_temp daily_rain" -lat "-41.15 -41.05" -lon "145.5 145.6" -o C:\some\output\folder\ -ot met

生成 WTH 输出文件(用于 DSSAT)输出文件 NASAPOWER 云 API,用于 2015 年至 2016 年的全球太阳辐射、最低气温、最高气温和每日降雨量

python bestiapop.py -a generate-climate-file -s nasapower -y "2015-2016" -c "radiation max_temp min_temp daily_rain" -lat "-41.15 -41.05" -lon "145.5 145.6" -o C:\some\output\folder\ -ot wth

使用 NASAPOWER 云 API 生成 CSV 输出文件,用于 2015 年至 2016 年的全球太阳辐射、最低气温、最高气温和每日降雨量

注意:* BestiaPop 将生成与传递给应用程序的坐标范围中的纬度/经度组合一样多的 CSV 文件。* BestiaPop 还将末尾生成一个额外的文件,该文件bestiapop-beastly-dataframe.csv基本上包含所有年份所有变量的所有纬度/经度组合。该文件的目的是使将这些数据更容易地提取到 Pandas、Excel 或 Elasticsearch 等引擎中,而无需拼凑为每个纬度/经度组合生成的单个 csv 文件。

python bestiapop.py -a generate-climate-file -s nasapower -y "2015-2016" -c "radiation max_temp min_temp daily_rain" -lat "-41.15 -41.05" -lon "145.5 145.6" -o C:\some\output\folder\ -ot csv

使用 NASAPOWER 云 API 将数据直接打印到屏幕(标准输出),以获取 2019 年的全球太阳辐射、最低气温、最高气温和每日降雨量

python bestiapop.py -a generate-climate-file -s nasapower -y "2019" -c "radiation max_temp min_temp daily_rain" -lat "-55" -lon "-20" -ot stdout

结果:

+-------+-------+--------+-------+--------+--------+--------+--------+
|   lon |   lat |   year |   day |   radn |   maxt |   mint |   rain |
|-------+-------+--------+-------+--------+--------+--------+--------|
|   -20 |   -55 |   2019 |     1 |  16.88 |   3.27 |      2 |   1.99 |
|   -20 |   -55 |   2019 |     2 |   8.88 |   3.61 |   2.11 |   1.02 |
|   -20 |   -55 |   2019 |     3 |     23 |   2.91 |   2.22 |   0.85 |
|   -20 |   -55 |   2019 |     4 |   7.64 |   2.22 |    0.7 |  10.42 |
|   -20 |   -55 |   2019 |     5 |  10.38 |   2.33 |   1.17 |   5.89 |
...
|   -20 |   -55 |   2019 |   362 |     14 |    3.4 |   2.68 |   0.66 |
|   -20 |   -55 |   2019 |   363 |  14.51 |   3.75 |   2.29 |   0.51 |
|   -20 |   -55 |   2019 |   364 |   8.37 |   3.41 |   2.47 |   1.61 |
|   -20 |   -55 |   2019 |   365 |  13.57 |    2.3 |   1.67 |   2.35 |
+-------+-------+--------+-------+--------+--------+--------+--------+

并行计算

BestiaPop 2.5 版通过利用 python 的多处理库为多核系统提供并行处理。并非所有操作都已实现此功能,但它们将逐步添加。要启用多处理,只需将-m标志传递给bestiapop.py命令。默认情况下,它将利用您的所有核心(无论是物理的还是逻辑的)。

并行化是基于具有最广泛分布(最高数据点计数)的坐标变量(无论是纬度还是经度)完成。这意味着,当您的数据集引用广泛的纬度经度变量时,您将获得多核的好处。

注意:当根据 SILO 数据从本地可用的 NetCDF4 文件生成MET文件时,您可能会遇到不同的结果,因为 SILO 提供的 NetCDF4 文件被拆分成多个文件,而MET文件需要在同一个 MET 文件中保存多年。截至 2020 年 6 月,SILO 已重构其所有 NetCDF4 文件,以便在提取空间数据点而不是基于时间的数据点时表现更好。这实际上意味着从 NetCDF4 文件中提取一年中所有日子的数据(对于lat/lon 的单个组合)比提取一天中的所有 lat/lon 组合的数据要慢。由于 SILO NetCDF4 文件被拆分为year-variableyear-variable使用多年时,您将始终必须从不同文件中提取数据。

示例:从 SILO Cloud API 全球太阳辐射、最低气温、最高气温和 2015 年至 2016 年的每日降雨量生成 MET 输出文件(用于 APSIM)

python bestiapop.py -a generate-climate-file -s silo -y "2008-2016" -c "radiation max_temp min_temp daily_rain" -lat "-41.15 -41.05" -lon "145.5 145.6" -o C:\some\output\folder\ -m

在这里,-m最后将使用多个核心来处理任务。如果您有 8 个可用内核,它将创建 8 个单独的进程来从云下载数据,然后使用 8 个单独的进程来生成输出文件。

BestiaPop 表演

您可以在下面找到一个描述性表格,其中包含 BestiaPop 的一些性能指标。我们使用 AMD Ryzen Threadripper 2990WX 32 核处理器(128 GB 物理内存)为 SILO 运行 20 lat * 20 lon 组合,即 0.05° 的 400 个文件。NASAPOWER 应用了相同的经纬组合,但由于其数据分辨率的性质,它仅在 0.5° 处生成了 9 个文件。运行 5 年以生成 MET、WTH 和 CSV 文件,并行计算 (PC) 功能 (-m) 激活和停用。我们计算了生成所有文件的总工作量时间(Total Time (seconds))、单个文件(Time/File (s))和生成单年每日数据的时间(Time/Year (seconds))。我们还估计了并行计算功能的效率,即使用 PC 激活的 BestiaPop 快了多少倍(PC 效率(次))。

注意:当 lat-lon 组合的数量减少(例如 9 个文件)时,不会显示多处理的好处。但是,当经纬度组合的数量增加(例如 400 个文件)时,-m建议使用该功能,因为它可以显着提高时间效率。

数据源 并行计算 (PC) 文件类型 文件数 总时间(秒) 时间/文件 时间/年 (s) PC效率(次)
筒仓 停用 遇见 400 5 1571 3.93 0.79
WTH 400 5 1450 3.63 0.73
CSV 400 5 1503 3.76 0.75
活性 遇见 400 5 149 0.37 0.07 10.5
WTH 400 5 152 0.38 0.08 9.5
CSV 400 5 161 0.40 0.08 9.3
NASAPOWER 停用 遇见 9 5 41 4.56 0.91
WTH 9 5 38 4.22 0.84
CSV 9 5 41 4.56 0.91
活性 遇见 9 5 71 7.89 1.58 0.6
WTH 9 5 84 9.33 1.87 0.5
CSV 9 5 94 10.44 2.09 0.4

BestiaPop 产品

MET 文件示例 (APSIM)

图片在这里 完成 MET 文件

WTH 文件示例 (DSSAT)

图片在此处 完成 WTH 文件

CSV 文件示例

图片在此处 完成 CSV 文件

包参考

  1. https://registry.opendata.aws/silo/
  2. https://towardsdatascience.com/handling-netcdf-files-using-xarray-for-absolute-beginners-111a8ab4463f
  3. http://xarray.pydata.org/en/stable/dask.html

项目详情


发布历史 发布通知| RSS订阅

3.0.5