Облегчим жизнь метеонаблюдателям!!!!

Полезные ссылки:
Метеоцентр.Азия - наш сайт с высокодетализированными прогнозами погоды по пунктам Pоссии и мира
Облегчённая версия Метеоклуба (для смартфонов)

Облегчим жизнь метеонаблюдателям!!!!

Сейчас в Метеоклубе:
Участников - 0
Максимальное одновременное количество посетителей: 308 [2 Ноя 2013 22:42]
Гостей - 296 / Участников - 12

 - Начало - Ответить - Статистика - Pегистрация - Поиск -

МЕТЕОКЛУБ : независимое сообщество любителей метеорологии (Европа и Азия) : ФОРУМ О ПОГОДЕ И ПРИРОДЕ / Метеорологические приборы и методики наблюдений / Облегчим жизнь метеонаблюдателям!!!!
Автор Сообщение
slon_az
Участник

Байконур
# Дата: 17 Фев 2006 22:59


Знакомый создает электронный дневник погоды, копию АВ-6.
Подскажите? есть ли прямая формула для получения значения точки росы по данным температуры и температуры смоченного, а то я на основании физической связи e=E(τ) вывел формулу, но она получилась с дифференциалами, и дальше уже меня не хватило ее преобразовать, подзабыл многое...

Corvus
Автор сайта

###Corvus###
# Дата: 18 Фев 2006 00:30


slon_az

Психрометрическая формула есть в предисловии к псих. таблицам, в ней используется Е при Т смоч. термометра, а функция Е(Т) вообще такова:


function Met_E_func($t) {// hPa, Т - в °С
$Eo=6.107; $a=7.63; $b=241.9;
$Result = $Eo*pow(10,($a*$t/($b+$t)));

return $Result;
}

Это на языке РНР, но суть, думаю, ясна.
pow(10, ...) - функция возведения в степень (10 - основание, после запятой - показатель).

Corvus
Автор сайта

###Corvus###
# Дата: 18 Фев 2006 00:32


Ну и ещё до кучи - вычисление точки росы по темп-ре и влажности:

function Met_Td_func($t,$f_percent) { // C
$Eo=6.107; $a=7.63; $b=241.9;
$e = Met_E_func($t)*$f_percent/100;
$Tempo = Met_Lg($e/$Eo);
$Result = $b*$Tempo/($a-$Tempo);
return $Result;
}

function Met_Lg($x) {
if ($x == 0) $Result = '0';
else
$Result = log10($x);
return $Result;
}

Corvus
Автор сайта

###Corvus###
# Дата: 20 Фев 2006 05:27


А вот тоже самое на Дельфи (достал доинтернетные свои разработки, 2000 г.):

function Power(Base,Exponent:single):single;
begin
Result:=Exp(Exponent*Ln(Base));
end;

function RoundTo(x:single; CountFigureAftPoint:byte):single;
var
Tempo: single;
begin
Tempo:=Power(10,CountFigureAftPoint);
Result:=(Round(x*Tempo))/Tempo;
end;

function Lg(x:single):single;
begin
Result:=0.43429*Ln(x);
end;

function E_func(T:single):single; {hPa}
const
Eo=6.107; a=7.63; b=241.9;
begin
Result:=Eo*Power(10,(a*T/(b+T)));
Result:=RoundTo(Result,2);
end;

function Td_func(T,f_percent:single):single; {C}
var
e,Tempo: single;
const
Eo=6.107; a=7.63; b=241.9;
begin
e:=E_func(T)*f_percent/100;
Tempo:=Lg(e/Eo);
Result:=b*Tempo/(a-Tempo);
Result:=RoundTo(Result,2);
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
Editing:=True;
L1Source:=Form1.Label1.Caption;
L2Source:=Form1.Label2.Caption;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var
Tdry,Tdamp,e,Td:single;
f: single;
begin
case Editing of
True: begin
Tdry:=StrToFloat(Form1.Edit1.Text);
Tdamp:=StrToFloat(Form1.Edit2.Text);
e:=E_func(Tdamp)-0.7947*(Tdry-Tdamp);
if e<0 then
ShowMessage('Неправильно введена температура смоченного термометра!')
else begin
f:=RoundTo(100*e/E_func(Tdry),0);
Td:=RoundTo(Td_func(Tdry,f),1);
Form1.Edit1.Text:=FloatToStr(f);
Form1.Edit2.Text:=FloatToStr(Td);
Form1.Label1.Caption:='Показатели влажности:';
Form1.Label2.Caption:='Отн.влажн. Точка росы';
end;

end;
False: begin
Form1.Label1.Caption:=L1Source;
Form1.Label2.Caption:=L2Source;
Form1.Edit1.Text:='';
Form1.Edit2.Text:='';
Form1.Edit1.SetFocus;
end;
end;
Editing:=not Editing;
end;

Corvus
Автор сайта

###Corvus###
# Дата: 20 Фев 2006 05:31


slon_az
есть ли прямая формула для получения значения точки росы по данным температуры и температуры смоченного

Кстати, а зачем искать ПРЯМУЮ формулу? Ведь это было бы громоздко и трудночитаемо. А использование нескольких последовательных формул, наоборот, наглядно и понятно. Ну а компьютеру-то по фигу, считать по одной громоздкой формуле или по нескольким простым, в любом случае расчёт займёт ничтожную долю секунды.

slon_az
Участник

Байконур
# Дата: 20 Фев 2006 22:45



Кстати, а зачем искать ПРЯМУЮ формулу? Ведь это было бы громоздко и трудночитаемо. А использование нескольких последовательных формул, наоборот, наглядно и понятно. Ну а компьютеру-то по фигу, считать по одной громоздкой формуле или по нескольким простым, в любом случае расчёт займёт ничтожную долю секунды.



Владимир спасибо!!!
Передам знакомому он кстати на Дельфи сейчас работает!!!
Я как раз Зависимость выводил по формулам взятым из дневника погоды и
физики атмосферы. не смог ее преобразовать.
Кстати огромный привет от Ленки Световой, она ушла от нас, сейчас переехала в Кострому, общаюсь с ней по нету.

Corvus
Автор сайта

###Corvus###
# Дата: 20 Фев 2006 23:02


slon_az

На здоровье)


Лене тоже огромный привет!!!

Alexman1
Участник

Москва
# Дата: 21 Фев 2006 00:33 - Поправил: Alexman1


Corvus
procedure TForm1.FormCreate(Sender: TObject);
Dfm-ку забыли выложить! -:)
Хотя -все очень наглядно.Спасибо-уже Exe-ник сделал.-на даче очень пригодится.

Corvus
Автор сайта

###Corvus###
# Дата: 21 Фев 2006 07:48


Alexman1
Dfm-ку забыли выложить! -:)

Ну там форма-то наипримитивнейшая :)

На здоровье!

Ваш ответ

          Отменить *Что это?

 » Логин  » Пароль 
 
 


Поддержка: miniBB forum software © 2001-2024