设备 / 蒸散
根据天气、气候、物理和农业数据计算蒸散量
dev-master
2019-10-25 14:35 UTC
Requires
- php: >=7.1.0
- ext-mbstring: *
Requires (Dev)
- phpunit/phpunit: ^8
This package is auto-updated.
Last update: 2024-09-26 01:55:49 UTC
README
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