вторник, 26 января 2010 г.

Градация давления (Высокое, низкое, нормальное)




В работе над сайтом погода в Иркутске понадобилось сделать вывод значения атмосферного давления в словесной форме, что-то типа: сегодня высокое давление, сегодня низкое давление.

Теория:
 760 - нормальное давление при высоте над уровнем моря= 0, увеличение высоты на 10 метром ведет к уменьшению давлению на 1 мм ртутного столба.
Отсюда получаем, что нормальное давление для любого региона можно вычислить так:

P = 760 - altitude/10, где altitude - высота населенного пункта над уровнем моря.
Например, для Иркутска (высота над уровнем моря 469 метра) нормальное давление будет 713 мм рт.ст.

Так же считают приведенное давление (давление приведенное к высоте уровня моря):
                         760*Pтекущее
Pприведенное   =  -----------------
                           Pнормальное
Pнормальное - давление нормальное для данного региона

Код на php:

//словесное описание давления
// altitude - высота населенног пункта над уровнем моря в метрах
function pressure_to_string( $pressure, $altitude = 469, $lowercase = false ){
    $return_string = '';
    $error = 1;
    $normal = 760 - $altitude/10;
    if ( $pressure < ($normal - $error ) ){
        $return_string = 'Давление низкое';
    } elseif ( $pressure > ($normal + $error ) ){
        $return_string = 'Давление высокое';
    } else {
        $return_string = 'Давление нормальное';
    }
    
    if ($lowercase){
        return strtolower( $return_string );
    } else {
        return $return_string;
    }
        
}
Если вы заметили, то я добавил в своем коде переменную $error - она дает некую погрешность, разсброс для найденного нормально давления.
На самом деле, это очень очень простой метод расчета нормально давления для определенного региона, т.к. эта величина зависит от температуры и еще много от чего)))
Но если вы не собирайтесь делать систему для метеорологической станции, то все выше приведенное вполне подойдет.