forked from javiermunozcano/SISIFO
-
Notifications
You must be signed in to change notification settings - Fork 0
/
AmbientTemperature.php
52 lines (43 loc) · 1.22 KB
/
AmbientTemperature.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
include_once 'MonthlyAverageToAll.php';
function AmbientTemperature($w, $ws, $METEO, $TIME) {
//Daily maximum and minimum temperatures
if($TIME['Ndays'] == 365)
{
//All year
$TM=MonthlyAverageToAll($METEO['TMm']);
$Tm=MonthlyAverageToAll($METEO['Tmm']);
}elseif($TIME['Ndays'] == 12)
{
//Only characteristic days
$TM=$METEO['TMm'];
$Tm=$METEO['Tmm'];
}
//Calculations
for ($d = 0; $d < $TIME['Ndays']; $d++)
{
//Daily coefficients
$a3[$d]= -pi() / ($ws[$d] +2 *pi() -pi()/6);
$b3[$d]= -$a3[$d] *$ws[$d];
$a4[$d]= pi() / ($ws[$d] -pi() /6);
$b4[$d]= -$a4[$d] *pi()/6;
$a5[$d]= pi()/(2*pi()+ $ws[$d] -pi()/6);
$b5[$d]= -(pi() +$a5[$d] *pi()/6);
for ($h = 0; $h < $TIME['Nsteps']; $h++)
{
if ( (-pi() < $w[$d][$h]) && ($w[$d][$h] < $ws[$d]) )
{
$Ta[$d][$h]=$TM[$d]-($TM[$d] -$Tm[$d]) / 2*(1+ cos($a3[$d] *$w[$d][$h] +$b3[$d]) );
}
elseif ( ( $ws[$d] < $w[$d][$h]) && ( $w[$d][$h] < pi()/6 ) )
{
$Ta[$d][$h]=$Tm[$d] +($TM[$d] -$Tm[$d]) / 2*(1+cos($a4[$d] * $w[$d][$h] +$b4[$d]) );
}else
{
$Ta[$d][$h]=$TM[$d]-( $TM[$d]-$Tm[$d] )/ 2*(1+cos( $a5[$d] *$w[$d][$h]+ $b5[$d]) );
}
}//end FOR $h
}//end FOREACH $d
return $Ta;
}
?>