mivek/php-metar-taf-parser

此包已被废弃,不再维护。没有建议的替代包。

一个用于解码METAR和TAF消息的PHP库

1.0.0 2019-12-08 11:47 UTC

This package is auto-updated.

Last update: 2024-01-09 05:19:21 UTC


README

Build Status Coverage Maintainability Rating Quality Gate Status

PHPMetarTafParser是一个用PHP(7.2)编写的库,用于解析METAR和TAF消息。

MetarParser和TAFParser包含一个返回metar对象或TAF对象的方法parse。

添加依赖

使用composer

composer require mivek/php-metar-taf-parser

模型

AbstractWeatherContainer

包含基本元素的抽象类

  • 风向
  • 能见度
  • 云层 (Cloud[])
  • 天气状况 (WeatherCondition[])
  • 备注 (string)
  • Cavok (bool)
  • 垂直能见度 (array)

AbstractWeatherCode

AbstractWeatherContainer的子类。

  • icao (string) 机场的ICAO代码
  • day (int) 交付日
  • time (Time) 交付时间
  • message (string) 原始消息

Metar

AbstractWeatherCode的子类

  • temperature (int) 温度
  • dewPoint (int) 露点
  • altimeter (array) 包含键value和unit的数组
  • nosig (bool)
  • auto (bool)
  • runwaysinfo (RunwayInfo[])
  • trends (MetarTrend[])

TAF

AbstractWeatherCode的子类

  • validity (Validity)
  • minTemperature (DatedTemperature)
  • maxTemperature (DatedTemperature)
  • trends (TAFTrend[])
  • probTrends (ProbTafTrend[])
  • amendment (bool)

RunwayInfo

表示跑道的能见度

  • name (string) 跑道名称
  • trend (string)
  • minRange (int)
  • maxRange (int)

Cloud

表示云层

  • Quantity (string)
  • 云的类型 (string可选)
  • 层的高度 (string可选)

DatedTemperature

  • 摄氏度温度 (int)
  • Day (int)
  • Hour (int)

Time

表示METAR或TAF的交付时间

  • Hours (int)
  • Minutes (int)

Validity

表示TAF或TAFTrend的有效性

  • startDay (int)
  • startHour (int)
  • startMinute (int)
  • endDay (int)
  • endHour (int)

Visibility

表示AbstractWeatherContainer的能见度

  • mainVisibility : 包含键'visibility'和'unit'的数组
  • minVisibility : 包含键'visibility'和'direction'的数组

Wind

表示风向元素

  • direction (int) 风的方向(以度为单位)
  • cardinalDirection (string) 基本方向或VRB令牌
  • speed (int)
  • unit (string) 速度的单位
  • 阵风(整数)适用时,阵风的速度
  • variable_wind(数组)数组,包含键minmax,如果适用,包含变化风的方向。

风切变

Wind的子类

  • height(整数)风切变的高度,以英尺为单位。

趋势

METAR和TAF都可以包含趋势

AbstractTrend

趋势类的抽象父类。

  • type:字符串,表示趋势的类型。可以是TEMPO、BECMG、FM或PROB

MetarTrend

代表metar趋势的类,由以下组成

  • times:数组,表示趋势的时间的MetarTrendTime

MetarTrendTime

  • type(字符串)AT、FM或TL
  • time:数组,包含hourminute

TafTrend

由以下组成的AbstractTrend的子类

  • Validity

ProbTafTrend

由以下组成的TafTrend的子类

  • probability(整数)趋势的概率

示例

解析METAR

$code = "LFBG 081130Z AUTO 23012KT 9999 SCT022 BKN072 BKN090 22/16 Q1011 TEMPO 26015G25KT 3000 TSRA SCT025CB BKN050";
$metarParser = new \PHPMetarTafParser\Parser\MetarParser();
$metar = $metarParser->parse($code);

结果metar是

PHPMetarTafParser\Model\Metar Object
(
    [temperature:PHPMetarTafParser\Model\Metar:private] => 22
    [dewPoint:PHPMetarTafParser\Model\Metar:private] => 16
    [altimeter:PHPMetarTafParser\Model\Metar:private] => Array
        (
            [value] => 1011
            [unit] => hPa
        )
    [nosig:PHPMetarTafParser\Model\Metar:private] => 
    [auto:PHPMetarTafParser\Model\Metar:private] => 1
    [runwaysInfo:PHPMetarTafParser\Model\Metar:private] => Array
        (
        )
    [trends:PHPMetarTafParser\Model\Metar:private] => Array
        (
            [0] => PHPMetarTafParser\Model\Trend\MetarTrend Object
                (
                    [times:PHPMetarTafParser\Model\Trend\MetarTrend:private] => Array
                        (
                        )
                    [type:PHPMetarTafParser\Model\Trend\AbstractTrend:private] => TEMPO
                    [wind:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => PHPMetarTafParser\Model\Wind Object
                        (
                            [direction:PHPMetarTafParser\Model\Wind:private] => 260
                            [cardinalDirection:PHPMetarTafParser\Model\Wind:private] => W
                            [speed:PHPMetarTafParser\Model\Wind:private] => 15
                            [unit:PHPMetarTafParser\Model\Wind:private] => KT
                            [gust:PHPMetarTafParser\Model\Wind:private] => 25
                            [variable_wind:PHPMetarTafParser\Model\Wind:private] => 
                        )
                    [visibility:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => PHPMetarTafParser\Model\Visibility Object
                        (
                            [mainVisibility:PHPMetarTafParser\Model\Visibility:private] => Array
                                (
                                    [visibility] => 3000
                                    [unit] => m
                                )
                            [minVisibility:PHPMetarTafParser\Model\Visibility:private] => 
                        )
                    [clouds:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => Array
                        (
                            [0] => PHPMetarTafParser\Model\Cloud Object
                                (
                                    [height:PHPMetarTafParser\Model\Cloud:private] => 2500
                                    [quantity:PHPMetarTafParser\Model\Cloud:private] => SCT
                                    [type:PHPMetarTafParser\Model\Cloud:private] => CB
                                )
                            [1] => PHPMetarTafParser\Model\Cloud Object
                                (
                                    [height:PHPMetarTafParser\Model\Cloud:private] => 5000
                                    [quantity:PHPMetarTafParser\Model\Cloud:private] => BKN
                                    [type:PHPMetarTafParser\Model\Cloud:private] => 
                                )
                        )
                    [weatherConditions:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => Array
                        (
                            [0] => PHPMetarTafParser\Model\WeatherCondition Object
                                (
                                    [intensity:PHPMetarTafParser\Model\WeatherCondition:private] => 
                                    [descriptor:PHPMetarTafParser\Model\WeatherCondition:private] => TS
                                    [phenomenons:PHPMetarTafParser\Model\WeatherCondition:private] => Array
                                        (
                                            [0] => RA
                                        )
                                )
                        )
                    [windShear:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [cavok:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [remark:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [verticalVisibility:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                )
        )
    [icao:PHPMetarTafParser\Model\AbstractWeatherCode:private] => LFBG
    [day:PHPMetarTafParser\Model\AbstractWeatherCode:private] => 8
    [time:PHPMetarTafParser\Model\AbstractWeatherCode:private] => PHPMetarTafParser\Model\Time Object
        (
            [hours:PHPMetarTafParser\Model\Time:private] => 11
            [minutes:PHPMetarTafParser\Model\Time:private] => 30
        )
    [message:PHPMetarTafParser\Model\AbstractWeatherCode:private] => LFBG 081130Z AUTO 23012KT 9999 SCT022 BKN072 BKN090 22/16 Q1011 TEMPO 26015G25KT 3000 TSRA SCT025CB BKN050
    [wind:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => PHPMetarTafParser\Model\Wind Object
        (
            [direction:PHPMetarTafParser\Model\Wind:private] => 230
            [cardinalDirection:PHPMetarTafParser\Model\Wind:private] => SW
            [speed:PHPMetarTafParser\Model\Wind:private] => 12
            [unit:PHPMetarTafParser\Model\Wind:private] => KT
            [gust:PHPMetarTafParser\Model\Wind:private] => 0
            [variable_wind:PHPMetarTafParser\Model\Wind:private] => 
        )
    [visibility:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => PHPMetarTafParser\Model\Visibility Object
        (
            [mainVisibility:PHPMetarTafParser\Model\Visibility:private] => Array
                (
                    [visibility] => 9999
                    [unit] => m
                )
            [minVisibility:PHPMetarTafParser\Model\Visibility:private] => 
        )
    [clouds:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => Array
        (
            [0] => PHPMetarTafParser\Model\Cloud Object
                (
                    [height:PHPMetarTafParser\Model\Cloud:private] => 2200
                    [quantity:PHPMetarTafParser\Model\Cloud:private] => SCT
                    [type:PHPMetarTafParser\Model\Cloud:private] => 
                )
            [1] => PHPMetarTafParser\Model\Cloud Object
                (
                    [height:PHPMetarTafParser\Model\Cloud:private] => 7200
                    [quantity:PHPMetarTafParser\Model\Cloud:private] => BKN
                    [type:PHPMetarTafParser\Model\Cloud:private] => 
                )
            [2] => PHPMetarTafParser\Model\Cloud Object
                (
                    [height:PHPMetarTafParser\Model\Cloud:private] => 9000
                    [quantity:PHPMetarTafParser\Model\Cloud:private] => BKN
                    [type:PHPMetarTafParser\Model\Cloud:private] => 
                )
        )
    [weatherConditions:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => Array
        (
        )
    [windShear:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
    [cavok:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
    [remark:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
    [verticalVisibility:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
)

解析TAF

$code = "TAF LSZH 292025Z 2921/3103 VRB03KT 9999 FEW020 BKN080 TX20/3014Z TN06/3003Z " .
        "PROB30 TEMPO 2921/2923 SHRA " .
        "BECMG 3001/3004 4000 MIFG NSC " .
        "PROB40 3003/3007 1500 BCFG SCT004 " .
        "PROB30 3004/3007 0800 FG VV003 " .
        "BECMG 3006/3009 9999 FEW030 " .
        "PROB40 TEMPO 3012/3017 30008KT";

$tafParser = new \PHPMetarTafParser\Parser\TAFParser();
$taf = $tafParser->parse($code);

结果是对象

PHPMetarTafParser\Model\TAF Object
(
    [validity:PHPMetarTafParser\Model\TAF:private] => PHPMetarTafParser\Model\Validity Object
        (
            [startDay:PHPMetarTafParser\Model\Validity:private] => 29
            [startHour:PHPMetarTafParser\Model\Validity:private] => 21
            [startMinute:PHPMetarTafParser\Model\Validity:private] => 
            [endDay:PHPMetarTafParser\Model\Validity:private] => 31
            [endHour:PHPMetarTafParser\Model\Validity:private] => 3
        )
    [minTemperature:PHPMetarTafParser\Model\TAF:private] => PHPMetarTafParser\Model\DatedTemperature Object
        (
            [temperature:PHPMetarTafParser\Model\DatedTemperature:private] => 6
            [day:PHPMetarTafParser\Model\DatedTemperature:private] => 30
            [hour:PHPMetarTafParser\Model\DatedTemperature:private] => 3
        )
    [maxTemperature:PHPMetarTafParser\Model\TAF:private] => PHPMetarTafParser\Model\DatedTemperature Object
        (
            [temperature:PHPMetarTafParser\Model\DatedTemperature:private] => 20
            [day:PHPMetarTafParser\Model\DatedTemperature:private] => 30
            [hour:PHPMetarTafParser\Model\DatedTemperature:private] => 14
        )
    [trends:PHPMetarTafParser\Model\TAF:private] => Array
        (
            [0] => PHPMetarTafParser\Model\Trend\TafTrend Object
                (
                    [validity:PHPMetarTafParser\Model\Trend\TafTrend:private] => PHPMetarTafParser\Model\Validity Object
                        (
                            [startDay:PHPMetarTafParser\Model\Validity:private] => 30
                            [startHour:PHPMetarTafParser\Model\Validity:private] => 1
                            [startMinute:PHPMetarTafParser\Model\Validity:private] => 
                            [endDay:PHPMetarTafParser\Model\Validity:private] => 30
                            [endHour:PHPMetarTafParser\Model\Validity:private] => 4
                        )
                    [type:PHPMetarTafParser\Model\Trend\AbstractTrend:private] => BECMG
                    [wind:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [visibility:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => PHPMetarTafParser\Model\Visibility Object
                        (
                            [mainVisibility:PHPMetarTafParser\Model\Visibility:private] => Array
                                (
                                    [visibility] => 4000
                                    [unit] => m
                                )
                            [minVisibility:PHPMetarTafParser\Model\Visibility:private] => 
                        )
                    [clouds:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => Array
                        (
                            [0] => PHPMetarTafParser\Model\Cloud Object
                                (
                                    [height:PHPMetarTafParser\Model\Cloud:private] => 0
                                    [quantity:PHPMetarTafParser\Model\Cloud:private] => NSC
                                    [type:PHPMetarTafParser\Model\Cloud:private] => 
                                )
                        )
                    [weatherConditions:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => Array
                        (
                            [0] => PHPMetarTafParser\Model\WeatherCondition Object
                                (
                                    [intensity:PHPMetarTafParser\Model\WeatherCondition:private] => 
                                    [descriptor:PHPMetarTafParser\Model\WeatherCondition:private] => MI
                                    [phenomenons:PHPMetarTafParser\Model\WeatherCondition:private] => Array
                                        (
                                            [0] => FG
                                        )
                                )
                        )
                    [windShear:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [cavok:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [remark:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [verticalVisibility:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                )
            [1] => PHPMetarTafParser\Model\Trend\TafTrend Object
                (
                    [validity:PHPMetarTafParser\Model\Trend\TafTrend:private] => PHPMetarTafParser\Model\Validity Object
                        (
                            [startDay:PHPMetarTafParser\Model\Validity:private] => 30
                            [startHour:PHPMetarTafParser\Model\Validity:private] => 6
                            [startMinute:PHPMetarTafParser\Model\Validity:private] => 
                            [endDay:PHPMetarTafParser\Model\Validity:private] => 30
                            [endHour:PHPMetarTafParser\Model\Validity:private] => 9
                        )
                    [type:PHPMetarTafParser\Model\Trend\AbstractTrend:private] => BECMG
                    [wind:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [visibility:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => PHPMetarTafParser\Model\Visibility Object
                        (
                            [mainVisibility:PHPMetarTafParser\Model\Visibility:private] => Array
                                (
                                    [visibility] => 9999
                                    [unit] => m
                                )
                            [minVisibility:PHPMetarTafParser\Model\Visibility:private] => 
                        )
                    [clouds:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => Array
                        (
                            [0] => PHPMetarTafParser\Model\Cloud Object
                                (
                                    [height:PHPMetarTafParser\Model\Cloud:private] => 3000
                                    [quantity:PHPMetarTafParser\Model\Cloud:private] => FEW
                                    [type:PHPMetarTafParser\Model\Cloud:private] => 
                                )
                        )
                    [weatherConditions:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => Array
                        (
                        )
                    [windShear:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [cavok:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [remark:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [verticalVisibility:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                )
        )
    [probTrends:PHPMetarTafParser\Model\TAF:private] => Array
        (
            [0] => PHPMetarTafParser\Model\Trend\ProbTafTrend Object
                (
                    [probability:PHPMetarTafParser\Model\Trend\ProbTafTrend:private] => 30
                    [validity:PHPMetarTafParser\Model\Trend\TafTrend:private] => PHPMetarTafParser\Model\Validity Object
                        (
                            [startDay:PHPMetarTafParser\Model\Validity:private] => 29
                            [startHour:PHPMetarTafParser\Model\Validity:private] => 21
                            [startMinute:PHPMetarTafParser\Model\Validity:private] => 
                            [endDay:PHPMetarTafParser\Model\Validity:private] => 29
                            [endHour:PHPMetarTafParser\Model\Validity:private] => 23
                        )
                    [type:PHPMetarTafParser\Model\Trend\AbstractTrend:private] => TEMPO
                    [wind:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [visibility:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [clouds:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => Array
                        (
                        )
                    [weatherConditions:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => Array
                        (
                            [0] => PHPMetarTafParser\Model\WeatherCondition Object
                                (
                                    [intensity:PHPMetarTafParser\Model\WeatherCondition:private] => 
                                    [descriptor:PHPMetarTafParser\Model\WeatherCondition:private] => SH
                                    [phenomenons:PHPMetarTafParser\Model\WeatherCondition:private] => Array
                                        (
                                            [0] => RA
                                        )
                                )
                        )
                    [windShear:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [cavok:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [remark:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [verticalVisibility:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                )
            [1] => PHPMetarTafParser\Model\Trend\ProbTafTrend Object
                (
                    [probability:PHPMetarTafParser\Model\Trend\ProbTafTrend:private] => 40
                    [validity:PHPMetarTafParser\Model\Trend\TafTrend:private] => PHPMetarTafParser\Model\Validity Object
                        (
                            [startDay:PHPMetarTafParser\Model\Validity:private] => 30
                            [startHour:PHPMetarTafParser\Model\Validity:private] => 3
                            [startMinute:PHPMetarTafParser\Model\Validity:private] => 
                            [endDay:PHPMetarTafParser\Model\Validity:private] => 30
                            [endHour:PHPMetarTafParser\Model\Validity:private] => 7
                        )
                    [type:PHPMetarTafParser\Model\Trend\AbstractTrend:private] => PROB
                    [wind:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [visibility:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => PHPMetarTafParser\Model\Visibility Object
                        (
                            [mainVisibility:PHPMetarTafParser\Model\Visibility:private] => Array
                                (
                                    [visibility] => 1500
                                    [unit] => m
                                )
                            [minVisibility:PHPMetarTafParser\Model\Visibility:private] => 
                        )
                    [clouds:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => Array
                        (
                            [0] => PHPMetarTafParser\Model\Cloud Object
                                (
                                    [height:PHPMetarTafParser\Model\Cloud:private] => 400
                                    [quantity:PHPMetarTafParser\Model\Cloud:private] => SCT
                                    [type:PHPMetarTafParser\Model\Cloud:private] => 
                                )
                        )
                    [weatherConditions:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => Array
                        (
                            [0] => PHPMetarTafParser\Model\WeatherCondition Object
                                (
                                    [intensity:PHPMetarTafParser\Model\WeatherCondition:private] => 
                                    [descriptor:PHPMetarTafParser\Model\WeatherCondition:private] => BC
                                    [phenomenons:PHPMetarTafParser\Model\WeatherCondition:private] => Array
                                        (
                                            [0] => FG
                                        )
                                )
                        )
                    [windShear:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [cavok:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [remark:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [verticalVisibility:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                )
            [2] => PHPMetarTafParser\Model\Trend\ProbTafTrend Object
                (
                    [probability:PHPMetarTafParser\Model\Trend\ProbTafTrend:private] => 30
                    [validity:PHPMetarTafParser\Model\Trend\TafTrend:private] => PHPMetarTafParser\Model\Validity Object
                        (
                            [startDay:PHPMetarTafParser\Model\Validity:private] => 30
                            [startHour:PHPMetarTafParser\Model\Validity:private] => 4
                            [startMinute:PHPMetarTafParser\Model\Validity:private] => 
                            [endDay:PHPMetarTafParser\Model\Validity:private] => 30
                            [endHour:PHPMetarTafParser\Model\Validity:private] => 7
                        )
                    [type:PHPMetarTafParser\Model\Trend\AbstractTrend:private] => PROB
                    [wind:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [visibility:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => PHPMetarTafParser\Model\Visibility Object
                        (
                            [mainVisibility:PHPMetarTafParser\Model\Visibility:private] => Array
                                (
                                    [visibility] => 0800
                                    [unit] => m
                                )
                            [minVisibility:PHPMetarTafParser\Model\Visibility:private] => 
                        )
                    [clouds:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => Array
                        (
                        )
                    [weatherConditions:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => Array
                        (
                            [0] => PHPMetarTafParser\Model\WeatherCondition Object
                                (
                                    [intensity:PHPMetarTafParser\Model\WeatherCondition:private] => 
                                    [descriptor:PHPMetarTafParser\Model\WeatherCondition:private] => 
                                    [phenomenons:PHPMetarTafParser\Model\WeatherCondition:private] => Array
                                        (
                                            [0] => FG
                                        )
                                )
                        )
                    [windShear:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [cavok:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [remark:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [verticalVisibility:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 300
                )
            [3] => PHPMetarTafParser\Model\Trend\ProbTafTrend Object
                (
                    [probability:PHPMetarTafParser\Model\Trend\ProbTafTrend:private] => 40
                    [validity:PHPMetarTafParser\Model\Trend\TafTrend:private] => PHPMetarTafParser\Model\Validity Object
                        (
                            [startDay:PHPMetarTafParser\Model\Validity:private] => 30
                            [startHour:PHPMetarTafParser\Model\Validity:private] => 12
                            [startMinute:PHPMetarTafParser\Model\Validity:private] => 
                            [endDay:PHPMetarTafParser\Model\Validity:private] => 30
                            [endHour:PHPMetarTafParser\Model\Validity:private] => 17
                        )
                    [type:PHPMetarTafParser\Model\Trend\AbstractTrend:private] => TEMPO
                    [wind:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => PHPMetarTafParser\Model\Wind Object
                        (
                            [direction:PHPMetarTafParser\Model\Wind:private] => 300
                            [cardinalDirection:PHPMetarTafParser\Model\Wind:private] => NW
                            [speed:PHPMetarTafParser\Model\Wind:private] => 8
                            [unit:PHPMetarTafParser\Model\Wind:private] => KT
                            [gust:PHPMetarTafParser\Model\Wind:private] => 0
                            [variable_wind:PHPMetarTafParser\Model\Wind:private] => 
                        )
                    [visibility:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [clouds:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => Array
                        (
                        )
                    [weatherConditions:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => Array
                        (
                        )
                    [windShear:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [cavok:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [remark:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                    [verticalVisibility:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
                )
        )
    [amendment:PHPMetarTafParser\Model\TAF:private] => 
    [icao:PHPMetarTafParser\Model\AbstractWeatherCode:private] => LSZH
    [day:PHPMetarTafParser\Model\AbstractWeatherCode:private] => 29
    [time:PHPMetarTafParser\Model\AbstractWeatherCode:private] => PHPMetarTafParser\Model\Time Object
        (
            [hours:PHPMetarTafParser\Model\Time:private] => 20
            [minutes:PHPMetarTafParser\Model\Time:private] => 25
        )
    [message:PHPMetarTafParser\Model\AbstractWeatherCode:private] => TAF LSZH 292025Z 2921/3103 VRB03KT 9999 FEW020 BKN080 TX20/3014Z TN06/3003Z PROB30 TEMPO 2921/2923 SHRA BECMG 3001/3004 4000 MIFG NSC PROB40 3003/3007 1500 BCFG SCT004 PROB30 3004/3007 0800 FG VV003 BECMG 3006/3009 9999 FEW030 PROB40 TEMPO 3012/3017 30008KT
    [wind:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => PHPMetarTafParser\Model\Wind Object
        (
            [direction:PHPMetarTafParser\Model\Wind:private] => 
            [cardinalDirection:PHPMetarTafParser\Model\Wind:private] => VRB
            [speed:PHPMetarTafParser\Model\Wind:private] => 3
            [unit:PHPMetarTafParser\Model\Wind:private] => KT
            [gust:PHPMetarTafParser\Model\Wind:private] => 0
            [variable_wind:PHPMetarTafParser\Model\Wind:private] => 
        )
    [visibility:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => PHPMetarTafParser\Model\Visibility Object
        (
            [mainVisibility:PHPMetarTafParser\Model\Visibility:private] => Array
                (
                    [visibility] => 9999
                    [unit] => m
                )
            [minVisibility:PHPMetarTafParser\Model\Visibility:private] => 
        )
    [clouds:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => Array
        (
            [0] => PHPMetarTafParser\Model\Cloud Object
                (
                    [height:PHPMetarTafParser\Model\Cloud:private] => 2000
                    [quantity:PHPMetarTafParser\Model\Cloud:private] => FEW
                    [type:PHPMetarTafParser\Model\Cloud:private] => 
                )
            [1] => PHPMetarTafParser\Model\Cloud Object
                (
                    [height:PHPMetarTafParser\Model\Cloud:private] => 8000
                    [quantity:PHPMetarTafParser\Model\Cloud:private] => BKN
                    [type:PHPMetarTafParser\Model\Cloud:private] => 
                )
        )
    [weatherConditions:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => Array
        (
        )
    [windShear:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
    [cavok:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
    [remark:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
    [verticalVisibility:PHPMetarTafParser\Model\AbstractWeatherContainer:private] => 
)