soandso/forecast-verifiability

天气预报的可验证性

0.1.1 2019-12-14 13:29 UTC

This package is auto-updated.

Last update: 2024-09-15 00:01:14 UTC


README

天气预报的成功程度由称为气象预报成功标准的指标来表征。成功标准是实际和预测天气特征合规性的定量估计。

设置

将库添加到您的项目中 composer.json 文件

{
  "require": {
      "soandso/forecast-verifiability": "0.*"
  }
}

使用 composer 安装库

$ php composer.phar install

Composer 将在您的 vendor 文件夹中安装 Forecast verifiability。然后您可以在 .php 文件中添加以下内容以使用库进行自动加载。

require_once(__DIR__ . '/vendor/autoload.php');

您也可以在命令行上使用 composer 强制要求并安装 Forecast verifiability

$ php composer.phar require soandso/forecast-verifiability:0.*

最低要求

  • PHP 7

描述

首先,需要形成一个共轭矩阵。为此,您需要创建一个 ConjugacyMatrix 类的对象,并给出气象值的名称,例如风速的评估

$matrix = new ConjugacyMatrix('wind');

接下来,填写共轭矩阵元素的值

$matrix->setN11(104);
$matrix->setN12(12);
$matrix->setN21(58);
$matrix->setN22(369);
$matrix->setN10($matrix->calcN10());
$matrix->setN20($matrix->calcN20());
$matrix->setN01($matrix->calcN01());
$matrix->setN02($matrix->calcN02());
$matrix->setN($matrix->calcN());
$matrix->setMatrix('n11', $matrix->getN11());
$matrix->setMatrix('n12', $matrix->getN12());
$matrix->setMatrix('n21', $matrix->getN21());
$matrix->setMatrix('n22', $matrix->getN22());
$matrix->setMatrix('n10', $matrix->getN10());
$matrix->setMatrix('n20', $matrix->getN20());
$matrix->setMatrix('n01', $matrix->getN01());
$matrix->setMatrix('n02', $matrix->getN02());
$matrix->setMatrix('N', $matrix->getN());

共轭矩阵元素的指定

共轭矩阵构建完成后,可以计算单个标准。为此,首先创建一个 CriteriaForecast 类的对象,并给它提供共轭矩阵对象

$criteria = new CriteriaForecast($matrix);

计算一般预报精度。设置标准的名称(对于生成输出是必要的)

$criteria->setNameCriteria('General forecast accuracy');

有效的标准列表

'General forecast accuracy'
'Forecast accuracy criterion'
'Forecast reliability criterion'
'Climate entropy'
'Conditional entropy'
'Amount of forecaste information'
'Information relation'

设置标准单位

$criteria->setUnit('%');

值计算

$criteria->calclateP();

要生成一般结论(一个任务可以计算多个不同的标准),需要将结果添加到输出的一般容器中。

$criteria->setValueCriteria($criteria->getNameCriteria(), $criteria->getP(), $criteria->getUnit());

计算预报精度标准。

$criteria->setNameCriteria('Forecast accuracy criterion');
$criteria->calculateQ();
$criteria->setValueCriteria($criteria->getNameCriteria(), $criteria->getQ());

计算预报可靠性标准。

$criteria->setNameCriteria('Forecast reliability criterion');
$criteria->calculateH();
$criteria->setValueCriteria($criteria->getNameCriteria(), $criteria->getH());

计算气候熵。

$criteria->setNameCriteria('Climate entropy');
$criteria->calculateHf();
$criteria->setValueCriteria($criteria->getNameCriteria(), $criteria->getHf());

计算条件熵。

$criteria->setNameCriteria('Conditional entropy');
$criteria->calculateHp();
$criteria->setValueCriteria($criteria->getNameCriteria(), $criteria->getHp());

计算预报信息量。

$criteria->setNameCriteria('Amount of forecaste information');
$criteria->calculateI();
$criteria->setValueCriteria($criteria->getNameCriteria(), $criteria->getI());

计算信息关系。

$criteria->setNameCriteria('Information relation');
$criteria->calculateV();
$criteria->setValueCriteria($criteria->getNameCriteria(), $criteria->getV());

获取所有标准的值

$criteria->getValueCriteries();

通过命名获取标准的值

$criteria->getValueCriteria('General forecast accuracy');

输出函数的输出可以是以下形式的数组

Array
(
    [General forecast accuracy] => Array
        (
            [value] => 87.108655616943
            [unit] => %
        )

    [Forecast accuracy criterion] => Array
        (
            [value] => 0.76072034240491
            [unit] => 
        )

    [Forecast reliability criterion] => Array
        (
            [value] => 0.66472611802064
            [unit] => 
        )

   ...........................

)

标准

分组符合以下标准

许可证

本分组受 GPLv2 许可证 (https://gnu.ac.cn/licenses/old-licenses/gpl-2.0.html) 的许可。