Beispiel #1
0
$ws['rainHour'] = wsConvertRainfall($wx['rainHour'], $from);
$ws['lastRained'] = $wx['lastRained'];
# ------------------------------------------ EVAPOTRANSPIRATION --------
$ws['etToday'] = wsConvertRainfall($wx['etToday'], $from);
$ws['etMonth'] = wsConvertRainfall($wx['etMonth'], $from);
$ws['etMonth'] = wsConvertRainfall($wx['etYear'], $from);
# ------------------------------------------ wind  ---------------------
$ws['gustMaxTodayTime'] = wswindate($wx['gustMaxTodayTime']);
$ws['gustMaxMonthTime'] = wswindate($wx['gustMaxMonthTime']);
$ws['gustMaxYearTime'] = wswindate($wx['gustMaxYearTime']);
$string = trim(strtolower($wx['fromwind']));
// wswin supports:km/h  m/s   mph   Knots  Beaufort
$from_arr = array('knoten', 'knots', 'knopen');
$from_wind = $from = str_replace($from_arr, 'kts', $string);
// =' km/h', =' kts', =' m/s', =' mph'
$ws['windActDsc'] = wsConvertWinddir($wx['windActDsc']);
$ws['windActDir'] = $wx['windActDsc'];
$ws['windBeafort'] = wsBeaufortNumber($wx['windAct'], $from);
$ws['windAct'] = wsConvertWindspeed($wx['windAct'], $from);
$ws['gustAct'] = wsConvertWindspeed($wx['gustAct'], $from);
$ws['windAvgDir'] = $wx['windAvgDir'];
#$ws['gustMaxHour']	= wsConvertWindspeed($wx['xx'], $from);
$ws['gustMaxToday'] = wsConvertWindspeed($wx['gustMaxToday'], $from);
$ws['gustMaxMonth'] = wsConvertWindspeed($wx['gustMaxMonth'], $from);
$ws['gustMaxYear'] = wsConvertWindspeed($wx['gustMaxYear'], $from);
if ($ws['gustAct'] < $ws['windAct']) {
    $ws['gustAct'] = $ws['windAct'];
}
# ------------------------------------------  UV   ---------------------
$ws['uvMaxTodayTime'] = wswindate($wx['uvMaxTodayTime']);
$ws['uvMaxMonthTime'] = wswindate($wx['uvMaxMonthTime']);
function getWindDir($degrees)
{
    if ($degrees == '-') {
        return '';
    }
    $string = wsConvertWinddir($degrees);
    $from = array('North', 'East', 'South', 'West');
    $to = array('N', 'E', 'S', 'W');
    return str_replace($from, $to, $string);
}
Beispiel #3
0
     }
     if (isset($mtr['covers_max']) && $mtr['covers_max'] != '') {
         $text = langtransstr($mtr['covers_max']);
         $long_text .= $extra . $text;
     }
     $mtr['conditions_text'] = $long_text;
     ws_message('<!-- module metarDisplay.php (' . __LINE__ . '):' . ' ' . $key . '  = ' . $long_text . ' ' . $mtr['conditions_text'] . ' -->');
 }
 // eo conditions
 # $result['wind_speed_kt'] = 0;
 # $result['wind_dir']     = 'varies';
 if ($key == 'wind_speed_kt') {
     $long_text = $legend . ': ';
     if (isset($mtr['wind_dir'])) {
         if ($mtr['wind_dir'] != 'varies') {
             $dirlabel = wsConvertWinddir($mtr['wind_dir']);
             $dir = langtransstr($dirlabel);
             $long_text .= $dir . ' ';
         } else {
             $long_text .= langtransstr('Varies') . ' ';
             $dirlabel = 'calm';
         }
     }
     // eo wind
     if (isset($mtr['wind_speed_kt']) && $mtr['wind_speed_kt'] != 0) {
         $speed = round(wsConvertWindspeed($mtr['wind_speed_kt'], 'kts', $SITE["uomWind"]), $SITE["decWind"]);
         $long_text .= $speed . $SITE["uomWind"];
     } else {
         $long_text .= langtransstr('Calm') . ' ';
         $dirlabel = 'calm';
     }
function myWind($array = '')
{
    global $SITE, $windIcons, $windlimit;
    if (!is_array($array)) {
        return '<td>' . langtransstr('Wind') . '</td>';
    }
    $windspeed = $array['windSpeed'];
    $windDir = trim($array['windDir']);
    $windBftNr = wsBeaufortNumber($windspeed, $SITE['uomWind']);
    $windBftText = wsBeaufortText($windBftNr);
    $windBftColor = wsBeaufortColor($windBftNr);
    if (is_numeric($windDir)) {
        $windDir = wsConvertWinddir($windDir);
    }
    $windTekst = '<span style="margin: 0 0 5px 0; width: 100%; font-size: 90%; background-color: ' . $windBftColor . ';">' . round($windspeed) . $SITE['uomWind'];
    if ($windBftNr >= $windlimit) {
        $windTekst = '<span style="border: solid 1px; color: black; background-color: ' . $windBftColor . ';">&nbsp;' . langtransstr($windBftText) . '&nbsp;</span><br />' . $windTekst;
    }
    $windTekst .= '</span></td>';
    $return = '<td style="min-width: 60px;"><img style="height: 32px;    width: 32px;" src="' . $windIcons . $windDir . '.png" alt=""/><br />' . $windTekst;
    #	$tip 	= '<td style="text-align: right;">'.langtransstr('Wind').':&nbsp;</td><td>'.langtransstr($windDir).' '.round($windspeed).$SITE['uomWind'].'</td>';
    $tip = '<td style="text-align: right;">' . langtransstr('Wind') . ':&nbsp;</td><td>' . langtransstr($windDir) . '<br />' . langtransstr($windBftText) . '-' . round($windspeed) . $SITE['uomWind'] . '</td>';
    return array($return, $tip);
}
Beispiel #5
0
    $humiTrends = explode('#', $ws['humiTrends']);
    $baroTrends = explode('#', $ws['baroTrends']);
    $rainTrends = explode('#', $ws['rainTrends']);
    if ($haveUV) {
        $uvTrends = explode('#', $ws['uvTrends']);
    }
    if ($haveSolar) {
        $solarTrends = explode('#', $ws['solarTrends']);
    }
    $end_trends = count($minutes);
    for ($i = 0; $i < $end_trends; $i++) {
        $wsTrends[$i]['min'] = $minutes[$i];
        $wsTrends[$i]['temp'] = wsConvertTemperature($tempTrends[$i], $from_temp);
        $wsTrends[$i]['wind'] = wsConvertWindspeed($windTrends[$i], $from_wind);
        $wsTrends[$i]['gust'] = wsConvertWindspeed($gustTrends[$i], $from_wind);
        $wsTrends[$i]['dir'] = wsConvertWinddir($wdirTrends[$i]);
        $wsTrends[$i]['hum'] = $humiTrends[$i];
        $wsTrends[$i]['baro'] = wsConvertBaro($baroTrends[$i], $from_baro);
        $wsTrends[$i]['rain'] = wsConvertRainfall($rainTrends[$i], $from_rain);
        if ($haveUV) {
            $wsTrends[$i]['uv'] = $uvTrends[$i];
        }
        if ($haveSolar) {
            $wsTrends[$i]['sol'] = $solarTrends[$i];
        }
    }
}
if ($wp == 'MB') {
    // clean rain
    $count = count($wsTrends);
    for ($i = 1; $i < $count; $i++) {
 // "Tbeaufort":"F1",  "Tbeaufort":"<#Tbeaufort>",
 $arrOut['TwgustTM'] = WStime($ws['gustMaxTodayTime']);
 $arrOut['windTM'] = $ws['gustMaxToday'];
 $arrOut['bearingTM'] = '5';
 $arrOut['BearingRangeFrom10'] = '0';
 $arrOut['BearingRangeTo10'] = '359';
 $time = strtotime(substr($ws['rtTime'], 0, 8) . 'T' . substr($ws['rtTime'], 8, 6));
 $arrOut['timeUTC'] = gmdate('Y,m,d,H,i,s', $time);
 $arrOut['UV'] = $ws['uvAct'];
 $arrOut['UVTH'] = $ws['uvMaxToday'];
 // "UVTH":"<#UVTH>",
 $arrOut['SolarRad'] = $ws['solarAct'];
 $arrOut['SolarTM'] = $ws['solarMaxToday'];
 // "SolarTM":"<#solarTH>",
 $arrOut['CurrentSolarMax'] = $ws['solarMaxToday'];
 $arrOut['domwinddir'] = wsConvertWinddir($ws['windAvgDir']);
 if (!isset($ws['WindRoseData'])) {
     $ws['WindRoseData'] = '[]';
 }
 # '[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]';}
 $arrOut['WindRoseData'] = $ws['WindRoseData'];
 $arrOut['windrun'] = '0.0';
 $arrOut['version'] = '0';
 $arrOut['build'] = '0';
 $arrOut['ver'] = '11';
 // "ver":"11"	//  '9';
 # send converted info back
 if (isset($_GET['debug'])) {
     echo '<br />' . PHP_EOL;
     echo 'processed to output array =' . PHP_EOL;
     var_dump($arrOut);
Beispiel #7
0
function checkConvertData($textData, $type, $backData)
{
    global $textData, $type, $backData, $iconsWD;
    $input = trim($textData);
    if ($input === '-') {
        return;
    }
    if ($input === '_') {
        $input = '-';
        return;
    }
    switch ($type) {
        case 'B':
            break;
        case 'C':
            if (!is_numeric($input)) {
                $backData = 'yellow';
                return;
            }
            if ($input <= -30 || $input >= 40) {
                $textData .= ' exceptional data? ';
                $backData = 'yellow';
                return;
            }
            $convert = wsConvertTemperature($input, $type, 'f');
            $textData = $input . '&deg;C ( = ' . $convert . ' &deg;F )';
            break;
        case 'D':
            if (!is_numeric($input)) {
                $backData = 'yellow';
                return;
            }
            if ($input < 0 || $input >= 360.1) {
                $textData .= ' exceptional data? ';
                $backData = 'yellow';
                return;
            }
            $convert = wsConvertWinddir($input);
            $textData = $input . '&deg;( = ' . $convert . ' )';
            break;
        case 'F':
            if (!is_numeric($input)) {
                $backData = 'yellow';
                return;
            }
            if ($input < 0 || $input >= 30000) {
                $textData .= ' exceptional data? ';
                $backData = 'yellow';
                return;
            }
            $convert = round($input / 3.28084, 0);
            $textData = $input . ' feet ( = ' . $convert . ' meter )';
            break;
        case 'H':
            if (!is_numeric($input)) {
                $backData = 'yellow';
                return;
            }
            if ($input <= 900 || $input >= 1400) {
                $textData .= ' exceptional data? ';
                $backData = 'yellow';
                return;
            }
            $convertMb = wsConvertBaro($input, 'hpa', 'mb');
            $convertMmhg = wsConvertBaro($input, 'hpa', 'mmhg');
            $convertInhg = wsConvertBaro($input, 'hpa', 'inhg');
            $textData = $input . ' hPa ( = ' . $convertMb . ' mb; ' . $convertMmhg . ' mmHg; ' . $convertInhg . ' inHg )';
            break;
        case 'I':
            if (!is_numeric($input)) {
                $backData = 'yellow';
                return;
            }
            if ($input < 0 || $input > 36) {
                $textData .= ' exceptional data? ';
                $backData = 'yellow';
                return;
            }
            $textData = $input . ' ( ' . $iconsWD[$input]['iconDescription'] . ' )';
            break;
        case 'K':
            if (!is_numeric($input)) {
                $backData = 'yellow';
                return;
            }
            if ($input < 0 || $input >= 100) {
                $textData .= ' exceptional data? ';
                $backData = 'yellow';
                return;
            }
            $convertKmh = wsConvertWindspeed($input, 'kts', 'kmh');
            $convertMs = wsConvertWindspeed($input, 'kts', 'ms');
            $convertMph = wsConvertWindspeed($input, 'kts', 'mph');
            $textData = $input . ' kts ( = ' . $convertKmh . ' k/H; ' . $convertMs . ' ms; ' . $convertMph . ' m/H )';
            break;
        case 'M':
            if (!is_numeric($input)) {
                $backData = 'yellow';
                return;
            }
            if ($input < 0 || $input >= 300) {
                $textData .= ' exceptional data? ';
                $backData = 'yellow';
                return;
            }
            $convert = wsConvertRainfall($input, 'mm', 'in');
            $textData = $input . ' mm ( = ' . $convert . ' in )';
            break;
        case 'N':
            if (!is_numeric($input)) {
                $backData = 'yellow';
                return;
            }
            break;
        case 'P':
            $textData = $input . '%';
            break;
        case 'T':
            if ($input == 0) {
                return;
            }
            $time = strtotime($input);
            $string = date('H:i', $time);
            if ($string != $input) {
                $textData = $string . ' <> ' . $input . ' exceptional data? ';
                $backData = 'yellow';
                return;
            }
            break;
        case 'U':
            break;
    }
}