";
/*
if(array_key_exists('ISSUED', $input['Info']))
{
echo "Issued '" . $input['Info']['ISSUED'] . " GMT' |
";
}
*/
$place = find_aerodrome($input['Info']['STATION']);
echo "";
echo "" . $place['name'] . " (station id=" . $place['icao'] . ") " . $place['nation'] . " |
";
if(count($place) > 1)
{
echo "";
echo "" . 'Distance from station' . ": ";
echo $place['compass'] . " ";
echo $place['miles'] . " mi, ";
echo $place['kilometres'] . " km |
";
}
if(array_key_exists('LOCAL', $input['Info']))
{
echo "";
echo "METAR Report issued " . $input['Info']['LOCAL'] . ' by ' . $input['Info']['BY'] . " |
";
}
if(array_key_exists('COR', $input['Info']))
{
echo "";
echo "" . $input['Info']['COR'] . " |
";
}
echo "" . $input['Info']['METAR'] . " |
";
#######################################
echo "Parameter | Value |
";
##############################################
# Table rows are optional, appearing #
# if array element exists or count is #
# numerical and greater than zero #
##############################################
if(array_key_exists('COLOUR0', $input['Info']) )
{
echo "\n";
echo "Present Colour State (Visibility and Cloud ceiling summary) | " . $input['Info']['COLOUR0'] . $input['Info']['STATE0'] . " | ";
echo "\n
\n";
}
if(array_key_exists('CONDITIONS',$input['Info']))
{ // Present Weather
echo "\n";
echo "Present Weather | " . $input['Info']['CONDITIONS'] . " | ";
echo "\n
\n";
}
if(isset($input['Info']['WINDMPH']))
{
echo "\n ";
?>
"
height="58" width="55" />
|
";
if(isset($input['Info']['FROM']) )
{
echo "";
}
echo "";
if(isset($input['Info']['TO']))
{
echo "";
}
?>
|
\n";
echo "Wind Direction range | " . $input['Info']['VARIABLE'] . " | ";
echo "\n\n";
}
if(array_key_exists('DIRECTION',$input['Info']) ){
echo "\n";
echo "Average wind direction | ";
if(array_key_exists('BEARING',$input['Info'])) echo $input['Info']['BEARING'] . " = ";
$direction = trim($input['Info']['DIRECTION']);
echo $compass_expanded[$direction] . " | \n
\n";
}
if(array_key_exists('SPEED',$input['Info']) ){
echo "\n";
echo 'Average Wind in last ten minutes | ';
if(array_key_exists('KNOTS', $input['Info']) and array_key_exists('WINDMPH', $input['Info']) and $input['Info']['WINDMPH'] > 0)
echo ' ' . $input['Info']['KNOTS'] . ' knots, ' . $input['Info']['WINDMPH'] . ' mph, ' . $input['Info']['WINDMPS'] . ' m s -1 | ';
else echo '' . $input['Info']['SPEED'] . ' | ';
echo "\n
\n";
}
if(array_key_exists('GUST',$input['Info']) ){
echo "\n";
echo 'Wind Gust in last ten minutes | ';
echo '' . $input['Info']['GUST'] . ' | ';
echo "\n
\n";
}
// CLOUD OUTPUT
$skyString = "";
$skyIterator = 0;
if(array_key_exists('SKY', $input['GroupProcessed']) )
{// Summary of sky conditions
while(array_key_exists('$skyIterator', $input['GroupProcessed']['SKY']) and $skyIterator < $input['GroupCount']['SKY'])
{
$skyIterator++;
$skyString .= $input['GroupProcessed']['SKY'][$skyIterator] . " ";
}
echo "\n";
echo "Sky | " . $input['Info']['SKY'] . " | ";
}
if(array_key_exists('CEILING',$input['Info']) )
{// The height above ground or water of the base of the lowest layer of cloud where the summation amount exceeds half the sky
echo "
\n";
echo "Cloud Ceiling | " . $input['Info']['CEILING'] . " | ";
echo "\n
\n";
}
if(array_key_exists('CLOUD-DETAILS',$input['Info']) )
{ // Specify cloud layers
echo "\n";
echo "Observed clouds (" . $input['GroupCount']['SKY'] . " report";
echo $input['GroupCount']['SKY'] == 1 ? "" : "s";
echo ") | " . $input['Info']['CLOUD-DETAILS'] . " | ";
echo "\n
\n";
}
// VISIBILITY OUTPUT
if(array_key_exists('VISIBILITY',$input['Info']) )
{ // Prevailing visibility
echo "\n";
echo "Prevailing Visibility | " . $input['Info']['VISIBILITY'] . " | ";
echo "\n
\n";
}
if(array_key_exists('MINIMUM',$input['Info']) )
{ // Minimum Directional visibility
echo "\n";
echo "Minimum Directional Visibility | " . $input['Info']['MINIMUM'] . " | ";
echo "\n
\n";
}
if(array_key_exists('RVR',$input['GroupCount']) and $input['GroupCount']['RVR'] > 0 )
{ // Runway visibility
echo "\n";
echo "Runway Visual Range (" . $input['GroupCount']['RVR'] . " reports) | " . $input['Info']['RVR'] . " | ";
echo "\n
\n";
}
// TEMPERATURE OUTPUT
if(array_key_exists('TEMP',$input['Info']) ){
echo "\n";
echo "Temperature | " . $input['Info']['TEMP'] . " | ";
echo "\n
\n";
}
if(array_key_exists('HEAT INDEX',$input['Info']) ){
echo "\n";
echo "Calculated USA Heat Index | " . $input['Info']['HEAT INDEX'] . " | ";
echo "\n
\n";
}
if(array_key_exists('HUMIDEX',$input['Info']) ){
echo "\n";
echo "Calculated Canadian Humidity Index | " . $input['Info']['HUMIDEX'] . " | ";
echo "\n
\n";
}
if(array_key_exists('APPARENT',$input['Info']) ){
echo "\n";
echo "Calculated Australian Apparent Temperature | " . $input['Info']['APPARENT'] . " | ";
echo "\n
\n";
}
if(array_key_exists('WIND CHILL',$input['Info']) ){
echo "\n";
echo "Calculated Wind Chill | " . $input['Info']['WIND CHILL'] . " | ";
echo "\n
\n";
}
if(array_key_exists('DEWPT',$input['Info']) ){
echo "\n";
echo "Dew point | " . $input['Info']['DEWPT'] . " | ";
echo "\n
\n";
}
if(array_key_exists('ABS_HUMIDITY',$input['Info']) ){
echo "\n";
echo "Calculated Absolute Humidity | " . $input['Info']['ABS_HUMIDITY'] . " g m-3 | ";
echo "\n
\n";
}
if(array_key_exists('REL_HUMIDITY',$input['Info']) ){
echo "\n";
echo "Calculated Relative Humidity | " . $input['Info']['REL_HUMIDITY'] . " % | ";
echo "\n
\n";
}
// PRESSURE OUTPUT
// The following code snippet was added January 2018
if(array_key_exists('SLP',$input['Info']) )
{
echo "\n";
echo "Air Pressure (Corrected to sea level) | ";
echo "" . $input['Info']['SLP'] . " | ";
echo "\n
\n";
}
// End of code snippet added January 2018
if(array_key_exists('BAROMETER',$input['Info']) ){
echo "\n";
echo "" . $input['GroupCount']['BAROMETER'] . " | ";
echo "" . $input['Info']['BAROMETER'] . " | ";
echo "\n
\n";
}
if(isset($pressureHPA) and isset($tempC) and isset($dewC)){
calculate_wet_bulb_temperature($tempC,$dewC,$pressureHPA);
echo "\n";
echo "Calculated Wet Bulb temperature | ";
echo "" . $input['Info']['WET_BULB'] . " | ";
echo "\n
\n";
}
// SUPPLEMENTARY OUTPUT
if(array_key_exists('WIND_SHEAR',$input['Info']) ){
echo "\n";
echo "Wind Shear | " . $input['Info']['WIND_SHEAR'] . " | ";
echo "\n
\n";
}
if(array_key_exists('SEA_S',$input['Info']) ){
echo "\n";
echo "Sea report | " . $input['Info']['SEA_S'] . " | ";
echo "\n
\n";
}
if(array_key_exists('RECENT',$input['GroupCount']) and $input['GroupCount']['RECENT'] > 0 ){
echo "\n";
echo "Since the previous observation (but not at present),
the following " . $input['GroupCount']['RECENT'] . " meteorological phenomena were observed | " . $input['Info']['RECENT'] . " | ";
echo "\n
\n";
}
if(array_key_exists('RUNWAY',$input['Info']) ){
echo "\n";
echo "Runway state report | " . $input['Info']['RUNWAY'] . " | ";
echo "\n
\n";
}
if(array_key_exists('TREND_TYPE',$input['Info']) ){
echo "\n";
echo "Forecast trends exist? | " . $input['Info']['TREND_TYPE'] . " | ";
echo "\n
\n";
}
if(array_key_exists('CHANGE',$input['Info']) ){
echo "\n";
echo "Forecast trends details | " . $input['Info']['CHANGE'] . " | ";
echo "\n
\n";
}
if(array_key_exists('STATE2',$input['Info']) ){
echo "\n";
echo "Forecast Colour State (summarising worst of Visibility and Cloud ceiling) | " . $input['Info']['COLOUR2'] . " | ";
echo "\n
\n";
unset($input['Info']['COLOUR2']);
echo "\n";
echo "Decoding colour as Aerodrome Forecast Fitness State | " . $input['Info']['STATE2'] . " | ";
echo "\n
\n";
}
/*
if(array_key_exists('REMARK',$input['GroupProcessed']) and array_key_exists(0, $input['GroupProcessed']['REMARK']))
{
echo "\n";
echo 'Remarks (sources) | ';
if(array_key_exists('single', $input['GroupCount']) and $input['GroupCount']['single'] > 0)
echo "" . $input['GroupCount']['single'] . ' (single segment not country-specific) matches from array_walk ';
if(array_key_exists('common', $input['GroupCount']) and $input['GroupCount']['common'] > 0)
echo "" . $input['GroupCount']['common'] . ' (multiple segments not country-specific) matches from general ';
if(array_key_exists('Australian', $input['GroupCount']) and $input['GroupCount']['Australian'] > 0)
echo "" . $input['GroupCount']['Australian'] . ' matches specific to Australian guide ';
if(array_key_exists('Canada', $input['GroupCount']) and $input['GroupCount']['Canada'] > 0 || $input['GroupCount']['CanadaWalk'] > 0 )
echo "" . $input['GroupCount']['CanadaWalk'] . ' (single segment) and '
. $input['GroupCount']['Canada'] . ' (multiple segments) matches specific to Canadian MANOBS ';
if(array_key_exists('Italian', $input['GroupCount']) and $input['GroupCount']['Italian'] > 0)
echo "" . $input['GroupCount']['Italian'] . ' matches specific to Italian usage ';
if(array_key_exists('NZ', $input['GroupCount']) and $input['GroupCount']['NZ'] > 0)
echo "" . $input['GroupCount']['NZ'] . ' matches specific to New Zealand reports ';
if(array_key_exists('USAF', $input['GroupCount']) and $input['GroupCount']['USAF'] > 0)
echo "" . $input['GroupCount']['USAF'] . ' (multiple segments) matches associated with U.S. Air Force ';
if(array_key_exists('USA_walk', $input['GroupCount']) and $input['GroupCount']['USA_walk'] > 0 )
echo "" . $input['GroupCount']['USA_walk'] . ' (single segment) matches associated with U.S. Air Force ';
if(array_key_exists('FAA', $input['GroupCount']) and $input['GroupCount']['FAA'] > 0)
echo "" . ($input['GroupCount']['FAA'] - $input['GroupCount']['USAF'])
. ' (multiple segments) of matches only associated with Federal Meteorological Handbook No. 1 or known extras ';
echo ' | ';
echo "\n
\n";
}
*/
if(array_key_exists('REMARK',$input['Info']) and array_key_exists(1,$input['Info']['REMARK']))
{
echo "\n";
echo '' . $input['Info']['REMARK'][0] . ' | ';
for($i =1; $i < count($input['Info']['REMARK']); $i++ ) {
if(substr($input['Info']['REMARK'] [$i], 0, 1) == '<')
echo "" . $input['Info']['REMARK'] [$i] . " "; // footnotes
else echo "- " . $input['Info']['REMARK'] [$i] . "
"; // bullets
}
echo ' | ';
echo "\n
\n";
}
// End of snippet amended in January and February 2018
echo "