设备/蒸散

根据天气、气候、物理和农业数据计算蒸散量

dev-master 2019-10-25 14:35 UTC

This package is auto-updated.

Last update: 2024-09-26 01:55:49 UTC


README

Build Status PHP GPL Maintainability BCH compliance Codecov StyleCI

PHP 7.2 实现蒸散量预测。还提供了各种估算缺失数据的计算方法:天气、气候、物理和农业数据。

2014/2019 由 Philippe M. 根据 GNU GPLv3 许可

通过 FAO Penman-Monteith 方法计算计算参考蒸散量(ETc)所需的所有数据。

还可以利用作物和植物数据计算作物蒸散量(ETc)。

说明:https://en.wikipedia.org/wiki/Evapotranspiration

算法和测试数据的来源:http://www.fao.org/docrep/X0490E/x0490e07.htm


(图片(CC)Salsero35 / Wikimedia Commons)

决定蒸散量的气象因素:太阳辐射、空气温度、空气湿度、风速至特定高度

大气参数

  • 大气压力(P)
  • 蒸发潜热(l)
  • 心理常数(g)

缺失数据的估算

  • 气候数据(风速、湿度)
  • 辐射数据(太阳、外太空)

当天气数据缺失时,ETo的简化方程

另请参阅:http://www.cesbio.ups-tlse.fr/multitemp/?p=4802

使用 composer 安装

composer require dispositif/evapotrans

示例

use Evapotrans\Location;
use Evapotrans\MeteoData;
use Evapotrans\ValueObjects\Temperature;
use Evapotrans\ValueObjects\Wind2m;
use Evapotrans\PenmanCalc;
//require_once __DIR__.'/vendor/autoload.php';

$location = new Location(43.29504, 5.3865, 35);
$data = new MeteoData($location, new \DateTime('2019-02-15'));
$data->setTmin(new Temperature(2.7));
$data->setTmax(new Temperature(61, 'F'));
$data->setActualSunnyHours(7.2); // mesured today
$data->setWind2(new Wind2m(20, 'km/h', 2));

// optional if Tdew defined
$data->setRHmax(0.90);
$data->setRHmin(0.38);

$ETcalc = new PenmanCalc();
$ETo = $ETcalc->EToPenmanMonteith($data);
dump("ETo $ETo mm/day"); // ETo 5.7 mm/day

// Crop evapotranspiration (work in progress)
$radish = new Plant(
    'Radish',
    ['initial' => 0.7, 'mid-season' => 0.9, 'late-season' => 0.85]
);
$area = new Area($radish);
$area->setGrowStade('initial');
$area->setFractionWetted(1);
$area->setStressFactor(1.1);

$ETc = (new CropEvapotrans($area, $ETo))->calcETc();
// ETc : 4.0 mm/day