Bonjour à tous,
Je vous donne le contenu du script. Le code n'est pas encore optimisé.
- Code : Tout sélectionner
<?php
// Version v0.9 // CE SCRIPT EXPERIMENTAL REALISE EN PHP PERMET DE DETERMINER LA POSITION DU SOLEIL (AZIMUT + ELEVATION, ...) // L'ALGORYTHME EST BASÉ SUR UNE ÉTUDE FAITE PAR LE National Oceanic and Atmospheric Administration
// LES VARIABLES DE LA BOX EEDOMUS: // [VAR1] = @IP DE LA BOX // [VAR2] = Latitude (+ => N) // [VAR3] = Longitude (+ => E)
// Les latitude et longitude doivent contenir des "." (PAS DE VIRGULE) // EXEMPLE: Latitude = 48.858346 // Longitude = 2.294496 // OU // // EXEMPLE: Latitude = 48.387942 // Longitude = -4.484993
// EXEMPLE APPEL DE SCRIPT avec variables: http://[VAR1]/script/?exec=position_soleil.php&latitude=[VAR2]&longitude=[VAR3] // EXEMPLE APPEL DE SCRIPT dans navigateur: http://@IP_BOX_EEDOMUS/script/?exec=position_soleil.php&latitude=48.858346&longitude=2.294496
// LE RESULTAT EST SOUS FORME XML // L'ELEVATION CORRESPOND A L'ANGLE ENTRE L'HORIZON ET LE SOLEIL // XPATH ELEVATION: /Data/Soleil/Solar_Elevation_corrected_for_atm_refraction_deg
// L'AZIMUT CORRESPOND A L'ANGLE ENTRE LE NORD ET LE SOLEIL // XPATH AZIMUT: /Data/Soleil/Solar_Azimuth_round // 0°/ 360° = NORD // 90° = EST // 180° = SUD // 270° = OUEST
//--------------------------------------------------------------
// Stocker les variables passées en argument $ma_latitude = getArg('latitude'); $ma_longitude = getArg('longitude'); $date = date('Y/m/d H:i:s');
// mktime calcule en secondes la différence entre le 01/01/1970 et aujourd'hui $date_mk = mktime(0, 0, 0, date('d'), date('m'), date('Y')); // Correction UNIX /EXCEL = 2208297600 correspond en seconde à la différence en 1900 et 1970 $date_mk = $date_mk + 2079840600;
// 84600 = 3600 * 24 (nombre de seconde en 1 jour) $date_mk = $date_mk / 84600; //$date_mk = round($date_mk);
//--------------------------------------------------------------
$heure = date('H'); $heure_mk = $heure / 24; $time_zone = 1;
$Julian_Day = $date_mk + '2415018.5' + $heure_mk; $Julian_Day_2 = $time_zone / 24; $Julian_Day = $Julian_Day - $Julian_Day_2;
$Julian_Century = $Julian_Day - 2451545; $Julian_Century = $Julian_Century / 36525;
$Geom_Mean_Long_Sun_deg_1 = $Julian_Century * '0.0003032'; $Geom_Mean_Long_Sun_deg_1 = '36000.76983' + $Geom_Mean_Long_Sun_deg_1; $Geom_Mean_Long_Sun_deg_1 = $Julian_Century * $Geom_Mean_Long_Sun_deg_1; $Geom_Mean_Long_Sun_deg = fmod('280.46646' + $Geom_Mean_Long_Sun_deg_1,360);
$Geom_Mean_Anom_Sun_deg = '0.0001537' * $Julian_Century; $Geom_Mean_Anom_Sun_deg = '35999.05029' - $Geom_Mean_Anom_Sun_deg; $Geom_Mean_Anom_Sun_deg = $Julian_Century * $Geom_Mean_Anom_Sun_deg; $Geom_Mean_Anom_Sun_deg = '357.52911' + $Geom_Mean_Anom_Sun_deg;
$Eccent_Earth_Orbit = '0.0000001267'*$Julian_Century; $Eccent_Earth_Orbit = '0.000042037' + $Eccent_Earth_Orbit; $Eccent_Earth_Orbit = $Julian_Century * $Eccent_Earth_Orbit; $Eccent_Earth_Orbit = '0.016708634' - $Eccent_Earth_Orbit;
$Sun_Eq_of_Ctr_1 = deg2rad(3 * $Geom_Mean_Anom_Sun_deg); $Sun_Eq_of_Ctr_1 = sin($Sun_Eq_of_Ctr_1); $Sun_Eq_of_Ctr_1 = $Sun_Eq_of_Ctr_1 * '0.000289'; $Sun_Eq_of_Ctr_2 = '0.000101' * $Julian_Century; $Sun_Eq_of_Ctr_2 = '0.019993' - $Sun_Eq_of_Ctr_2; $Sun_Eq_of_Ctr_3 = deg2rad(2* $Geom_Mean_Anom_Sun_deg); $Sun_Eq_of_Ctr_3 = sin($Sun_Eq_of_Ctr_3); $Sun_Eq_of_Ctr = $Sun_Eq_of_Ctr_2 * $Sun_Eq_of_Ctr_3; $Sun_Eq_of_Ctr = $Sun_Eq_of_Ctr + $Sun_Eq_of_Ctr_1; $Sun_Eq_of_Ctr_3 = '0.000014' * $Julian_Century; $Sun_Eq_of_Ctr_3 = $Sun_Eq_of_Ctr_3 + '0.004817'; $Sun_Eq_of_Ctr_3 = $Julian_Century * $Sun_Eq_of_Ctr_3; $Sun_Eq_of_Ctr_3 = '1.914602' - $Sun_Eq_of_Ctr_3; $Sun_Eq_of_Ctr_2 = deg2rad( $Geom_Mean_Anom_Sun_deg); $Sun_Eq_of_Ctr_2 = sin($Sun_Eq_of_Ctr_2); $Sun_Eq_of_Ctr_2 = $Sun_Eq_of_Ctr_2*$Sun_Eq_of_Ctr_3; $Sun_Eq_of_Ctr = $Sun_Eq_of_Ctr_2 + $Sun_Eq_of_Ctr;
$Sun_True_Long_deg = $Geom_Mean_Long_Sun_deg + $Sun_Eq_of_Ctr;
$Sun_True_Anom_deg = $Geom_Mean_Anom_Sun_deg + $Sun_Eq_of_Ctr;
$Sun_Rad_Vector_AUs_1 = deg2rad($Sun_True_Anom_deg); $Sun_Rad_Vector_AUs_1 = cos($Sun_Rad_Vector_AUs_1); $Sun_Rad_Vector_AUs_1 = $Eccent_Earth_Orbit * $Sun_Rad_Vector_AUs_1; $Sun_Rad_Vector_AUs = 1 + $Sun_Rad_Vector_AUs_1; $Sun_Rad_Vector_AUs_1 = $Eccent_Earth_Orbit*$Eccent_Earth_Orbit; $Sun_Rad_Vector_AUs_1 = 1-$Sun_Rad_Vector_AUs_1; $Sun_Rad_Vector_AUs_1 = '1.000001018'*$Sun_Rad_Vector_AUs_1; $Sun_Rad_Vector_AUs = $Sun_Rad_Vector_AUs_1 / $Sun_Rad_Vector_AUs;
$Sun_App_Long_deg_1 = '1934.136'*$Julian_Century; $Sun_App_Long_deg_1 = '125.04'-$Sun_App_Long_deg_1; $Sun_App_Long_deg_1 = deg2rad($Sun_App_Long_deg_1); $Sun_App_Long_deg_1 = sin($Sun_App_Long_deg_1); $Sun_App_Long_deg_1 = '0.00478'*$Sun_App_Long_deg_1; $Sun_App_Long_deg = $Sun_True_Long_deg - '0.00569'-$Sun_App_Long_deg_1;
$Mean_Obliq_Ecliptic_deg = $Julian_Century * '0.001813'; $Mean_Obliq_Ecliptic_deg = '0.00059'- $Mean_Obliq_Ecliptic_deg; $Mean_Obliq_Ecliptic_deg = $Julian_Century * $Mean_Obliq_Ecliptic_deg; $Mean_Obliq_Ecliptic_deg = '46.815' + $Mean_Obliq_Ecliptic_deg; $Mean_Obliq_Ecliptic_deg = $Julian_Century * $Mean_Obliq_Ecliptic_deg; $Mean_Obliq_Ecliptic_deg = '21.448' - $Mean_Obliq_Ecliptic_deg; $Mean_Obliq_Ecliptic_deg = $Mean_Obliq_Ecliptic_deg / 60; $Mean_Obliq_Ecliptic_deg = '26' + $Mean_Obliq_Ecliptic_deg; $Mean_Obliq_Ecliptic_deg = $Mean_Obliq_Ecliptic_deg / 60; $Mean_Obliq_Ecliptic_deg = 23 + $Mean_Obliq_Ecliptic_deg;
$Obliq_Corr_deg = '1934.136'*$Julian_Century; $Obliq_Corr_deg = '125.04'-$Obliq_Corr_deg; $Obliq_Corr_deg = deg2rad($Obliq_Corr_deg); $Obliq_Corr_deg = cos($Obliq_Corr_deg); $Obliq_Corr_deg = $Obliq_Corr_deg*'0.00256'; $Obliq_Corr_deg = $Mean_Obliq_Ecliptic_deg + $Obliq_Corr_deg;
$Sun_Declin_deg_1 = deg2rad($Sun_App_Long_deg); $Sun_Declin_deg_1 = sin($Sun_Declin_deg_1); $Sun_Declin_deg_2 = deg2rad($Obliq_Corr_deg); $Sun_Declin_deg_2 = sin($Sun_Declin_deg_2); $Sun_Declin_deg = asin($Sun_Declin_deg_1*$Sun_Declin_deg_2); $Sun_Declin_deg = rad2deg($Sun_Declin_deg);
$SunRt_Ascen_deg_1 = deg2rad($Sun_App_Long_deg); $SunRt_Ascen_deg_1 = sin($SunRt_Ascen_deg_1); $SunRt_Ascen_deg_2 = deg2rad($Obliq_Corr_deg); $SunRt_Ascen_deg_2 = cos($SunRt_Ascen_deg_2); $SunRt_Ascen_deg_1 = $SunRt_Ascen_deg_2 * $SunRt_Ascen_deg_1; $SunRt_Ascen_deg_2 = deg2rad($Sun_App_Long_deg); $SunRt_Ascen_deg_2 = cos($SunRt_Ascen_deg_2); $SunRt_Ascen_deg = atan2($SunRt_Ascen_deg_1, $SunRt_Ascen_deg_2); $SunRt_Ascen_deg = rad2deg($SunRt_Ascen_deg);
$y_1 = $Obliq_Corr_deg/2; $y_1 = deg2rad($y_1); $y_1 = tan($y_1); $y = $Obliq_Corr_deg/2; $y = deg2rad($y); $y = tan($y); $y = $y * $y_1;
$Eq_of_Time_minutes_1 = deg2rad($Geom_Mean_Anom_Sun_deg); $Eq_of_Time_minutes_1 = 2 * $Eq_of_Time_minutes_1; $Eq_of_Time_minutes_1 = sin($Eq_of_Time_minutes_1); $Eq_of_Time_minutes_1 = '1.25' * $Eccent_Earth_Orbit * $Eccent_Earth_Orbit * $Eq_of_Time_minutes_1; $Eq_of_Time_minutes_2 = deg2rad($Geom_Mean_Long_Sun_deg); $Eq_of_Time_minutes_2 = 4 * $Eq_of_Time_minutes_2; $Eq_of_Time_minutes_2 = sin($Eq_of_Time_minutes_2); $Eq_of_Time_minutes_2 = '0.5' * $y * $y * $Eq_of_Time_minutes_2; $Eq_of_Time_minutes_3 = deg2rad($Geom_Mean_Long_Sun_deg); $Eq_of_Time_minutes_3 = 2 * $Eq_of_Time_minutes_3; $Eq_of_Time_minutes_3 = cos($Eq_of_Time_minutes_3); $Eq_of_Time_minutes_4 = deg2rad($Geom_Mean_Anom_Sun_deg); $Eq_of_Time_minutes_4 = sin($Eq_of_Time_minutes_4); $Eq_of_Time_minutes_4 = 4 * $Eccent_Earth_Orbit * $y * $Eq_of_Time_minutes_4 * $Eq_of_Time_minutes_3; $Eq_of_Time_minutes_5 = deg2rad($Geom_Mean_Anom_Sun_deg); $Eq_of_Time_minutes_5 = sin($Eq_of_Time_minutes_5); $Eq_of_Time_minutes_5 = 2 * $Eccent_Earth_Orbit * $Eq_of_Time_minutes_5; $Eq_of_Time_minutes_6 = deg2rad($Geom_Mean_Long_Sun_deg); $Eq_of_Time_minutes_6 = 2 * $Eq_of_Time_minutes_6; $Eq_of_Time_minutes_6 = sin($Eq_of_Time_minutes_6); $Eq_of_Time_minutes_6 = $y * $Eq_of_Time_minutes_6;
$Eq_of_Time_minutes = $Eq_of_Time_minutes_6 - $Eq_of_Time_minutes_5 + $Eq_of_Time_minutes_4 - $Eq_of_Time_minutes_2 - $Eq_of_Time_minutes_1; $Eq_of_Time_minutes = 4 * rad2deg($Eq_of_Time_minutes);
$HA_Sunrise_deg_1 = deg2rad($Sun_Declin_deg); $HA_Sunrise_deg_1 = tan($HA_Sunrise_deg_1); $HA_Sunrise_deg_2 = deg2rad($ma_latitude); $HA_Sunrise_deg_2 = tan($HA_Sunrise_deg_2); $HA_Sunrise_deg_1 = $HA_Sunrise_deg_1 * $HA_Sunrise_deg_2; $HA_Sunrise_deg_2 = deg2rad($Sun_Declin_deg); $HA_Sunrise_deg_5 = cos($HA_Sunrise_deg_2); $HA_Sunrise_deg_3 = deg2rad($ma_latitude); $HA_Sunrise_deg_3 = cos($HA_Sunrise_deg_3); $HA_Sunrise_deg_3 = $HA_Sunrise_deg_3 * $HA_Sunrise_deg_5; $HA_Sunrise_deg_4 = deg2rad('90.833'); $HA_Sunrise_deg_4 = cos($HA_Sunrise_deg_4); $HA_Sunrise_deg = $HA_Sunrise_deg_4 / $HA_Sunrise_deg_3; $HA_Sunrise_deg = $HA_Sunrise_deg - $HA_Sunrise_deg_1; $HA_Sunrise_deg = acos($HA_Sunrise_deg); $HA_Sunrise_deg = rad2deg($HA_Sunrise_deg);
$Solar_Noon_LST = $time_zone * 60; $Solar_Noon_LST_1 = 4 * $ma_longitude; $Solar_Noon_LST = 720 - $Solar_Noon_LST_1 - $Eq_of_Time_minutes + $Solar_Noon_LST; $Solar_Noon_LST = $Solar_Noon_LST / 1440;
$Sunrise_Time_LST = $HA_Sunrise_deg*4; $Sunrise_Time_LST = $Sunrise_Time_LST / 1440; $Sunrise_Time_LST = $Solar_Noon_LST - $Sunrise_Time_LST;
$Sunset_Time_LST = $HA_Sunrise_deg*4; $Sunset_Time_LST = $Sunset_Time_LST / 1440; $Sunset_Time_LST = $Solar_Noon_LST + $Sunset_Time_LST;
$Sunlight_Duration_minutes = 8* $HA_Sunrise_deg;
$True_Solar_Time_min_1 = 60 * $time_zone; $True_Solar_Time_min_2 = 4 * $ma_longitude; $True_Solar_Time_min_3 = $heure_mk * 1440; $True_Solar_Time_min = $True_Solar_Time_min_3 + $Eq_of_Time_minutes + $True_Solar_Time_min_2 - $True_Solar_Time_min_1; $True_Solar_Time_min = fmod($True_Solar_Time_min, 1440);
if ($True_Solar_Time_min/4 < 0) { $Hour_Angle_deg = $True_Solar_Time_min / 4; $Hour_Angle_deg = $Hour_Angle_deg +180; } else { $Hour_Angle_deg = $True_Solar_Time_min / 4; $Hour_Angle_deg = $Hour_Angle_deg -180; }
$Solar_Zenith_Angle_deg_1 = deg2rad($Hour_Angle_deg); $Solar_Zenith_Angle_deg_1 = cos($Solar_Zenith_Angle_deg_1 ); $Solar_Zenith_Angle_deg_2 = deg2rad($Sun_Declin_deg); $Solar_Zenith_Angle_deg_2 = cos($Solar_Zenith_Angle_deg_2 ); $Solar_Zenith_Angle_deg_3 = deg2rad($ma_latitude); $Solar_Zenith_Angle_deg_3 = cos($Solar_Zenith_Angle_deg_3 ); $Solar_Zenith_Angle_deg_3 = $Solar_Zenith_Angle_deg_1 * $Solar_Zenith_Angle_deg_2 * $Solar_Zenith_Angle_deg_3; $Solar_Zenith_Angle_deg_4 = deg2rad($Sun_Declin_deg); $Solar_Zenith_Angle_deg_4 = sin($Solar_Zenith_Angle_deg_4); $Solar_Zenith_Angle_deg_5 = deg2rad($ma_latitude); $Solar_Zenith_Angle_deg_5 = sin($Solar_Zenith_Angle_deg_5); $Solar_Zenith_Angle_deg_5 = $Solar_Zenith_Angle_deg_5 * $Solar_Zenith_Angle_deg_4; $Solar_Zenith_Angle_deg = $Solar_Zenith_Angle_deg_5 + $Solar_Zenith_Angle_deg_3; $Solar_Zenith_Angle_deg = acos($Solar_Zenith_Angle_deg); $Solar_Zenith_Angle_deg = rad2deg($Solar_Zenith_Angle_deg);
$Solar_Elevation_Angle_deg = 90 - $Solar_Zenith_Angle_deg;
// A FAIRE $Approx_Atmospheric_Refraction_deg = 0;
$Solar_Elevation_corrected_for_atm_refraction_deg = $Solar_Elevation_Angle_deg + $Approx_Atmospheric_Refraction_deg;
if ($Hour_Angle_deg > 0) { $Solar_Azimuth_Angle_deg_cw_from_N_1 = deg2rad($Solar_Zenith_Angle_deg); $Solar_Azimuth_Angle_deg_cw_from_N_1 = sin($Solar_Azimuth_Angle_deg_cw_from_N_1); $Solar_Azimuth_Angle_deg_cw_from_N_2 = deg2rad($ma_latitude); $Solar_Azimuth_Angle_deg_cw_from_N_2 = cos($Solar_Azimuth_Angle_deg_cw_from_N_2 ); $Solar_Azimuth_Angle_deg_cw_from_N_1 = $Solar_Azimuth_Angle_deg_cw_from_N_1 * $Solar_Azimuth_Angle_deg_cw_from_N_2; $Solar_Azimuth_Angle_deg_cw_from_N_3 = deg2rad($Sun_Declin_deg); $Solar_Azimuth_Angle_deg_cw_from_N_3 = sin($Solar_Azimuth_Angle_deg_cw_from_N_3); $Solar_Azimuth_Angle_deg_cw_from_N_4 = deg2rad($Solar_Zenith_Angle_deg); $Solar_Azimuth_Angle_deg_cw_from_N_4 = cos($Solar_Azimuth_Angle_deg_cw_from_N_4); $Solar_Azimuth_Angle_deg_cw_from_N_5 = deg2rad($ma_latitude); $Solar_Azimuth_Angle_deg_cw_from_N_5 = cos($Solar_Azimuth_Angle_deg_cw_from_N_5 ); $Solar_Azimuth_Angle_deg_cw_from_N_5 = $Solar_Azimuth_Angle_deg_cw_from_N_5 * $Solar_Azimuth_Angle_deg_cw_from_N_4; $Solar_Azimuth_Angle_deg_cw_from_N_5 = $Solar_Azimuth_Angle_deg_cw_from_N_5 - $Solar_Azimuth_Angle_deg_cw_from_N_3; $Solar_Azimuth_Angle_deg_cw_from_N = acos($Solar_Azimuth_Angle_deg_cw_from_N_5 / $Solar_Azimuth_Angle_deg_cw_from_N_1); $Solar_Azimuth_Angle_deg_cw_from_N = rad2deg($Solar_Azimuth_Angle_deg_cw_from_N) + 180; $Solar_Azimuth_Angle_deg_cw_from_N = fmod($Solar_Azimuth_Angle_deg_cw_from_N,360); } else { $Solar_Azimuth_Angle_deg_cw_from_N_1 = deg2rad($Solar_Zenith_Angle_deg); $Solar_Azimuth_Angle_deg_cw_from_N_1 = sin($Solar_Azimuth_Angle_deg_cw_from_N_1); $Solar_Azimuth_Angle_deg_cw_from_N_2 = deg2rad($ma_latitude); $Solar_Azimuth_Angle_deg_cw_from_N_2 = cos($Solar_Azimuth_Angle_deg_cw_from_N_2 ); $Solar_Azimuth_Angle_deg_cw_from_N_1 = $Solar_Azimuth_Angle_deg_cw_from_N_1 * $Solar_Azimuth_Angle_deg_cw_from_N_2; $Solar_Azimuth_Angle_deg_cw_from_N_3 = deg2rad($Sun_Declin_deg); $Solar_Azimuth_Angle_deg_cw_from_N_3 = sin($Solar_Azimuth_Angle_deg_cw_from_N_3); $Solar_Azimuth_Angle_deg_cw_from_N_4 = deg2rad($Solar_Zenith_Angle_deg); $Solar_Azimuth_Angle_deg_cw_from_N_4 = cos($Solar_Azimuth_Angle_deg_cw_from_N_4); $Solar_Azimuth_Angle_deg_cw_from_N_5 = deg2rad($ma_latitude); $Solar_Azimuth_Angle_deg_cw_from_N_5 = cos($Solar_Azimuth_Angle_deg_cw_from_N_5 ); $Solar_Azimuth_Angle_deg_cw_from_N_5 = $Solar_Azimuth_Angle_deg_cw_from_N_5 * $Solar_Azimuth_Angle_deg_cw_from_N_4; $Solar_Azimuth_Angle_deg_cw_from_N_5 = $Solar_Azimuth_Angle_deg_cw_from_N_5 - $Solar_Azimuth_Angle_deg_cw_from_N_3; $Solar_Azimuth_Angle_deg_cw_from_N = acos($Solar_Azimuth_Angle_deg_cw_from_N_5 / $Solar_Azimuth_Angle_deg_cw_from_N_1); $Solar_Azimuth_Angle_deg_cw_from_N = 540 - rad2deg($Solar_Azimuth_Angle_deg_cw_from_N); $Solar_Azimuth_Angle_deg_cw_from_N = fmod($Solar_Azimuth_Angle_deg_cw_from_N,360); }
$Solar_Azimuth_Angle_deg = round($Solar_Azimuth_Angle_deg_cw_from_N);
// Associé le point cardinal à l'angle if ($Solar_Azimuth_Angle_deg == 0) { $Solar_Cardinal_point = 1; // NORD } if ($Solar_Azimuth_Angle_deg > '22.4') { $Solar_Cardinal_point = 2; // NORD-NORD-EST } if ($Solar_Azimuth_Angle_deg > '44.9') { $Solar_Cardinal_point = 3; //NORD-EST } if ($Solar_Azimuth_Angle_deg > '67.4') { $Solar_Cardinal_point = 4; //EST-NORD-EST } if ($Solar_Azimuth_Angle_deg > 90) { $Solar_Cardinal_point = 5; //EST } if ($Solar_Azimuth_Angle_deg > '112.5') { $Solar_Cardinal_point = 6; //EST-SUD-EST } if ($Solar_Azimuth_Angle_deg > '134.9') { $Solar_Cardinal_point = 7; //SUD-EST } if ($Solar_Azimuth_Angle_deg > '157.4') { $Solar_Cardinal_point = 8; //SUD-SUD-EST } if ($Solar_Azimuth_Angle_deg > '179.9') { $Solar_Cardinal_point = 9; //SUD } if ($Solar_Azimuth_Angle_deg > '202.4') { $Solar_Cardinal_point = 10; //SUD-SUD-OUEST } if ($Solar_Azimuth_Angle_deg > '224.9') { $Solar_Cardinal_point = 11; //SUD-OUEST } if ($Solar_Azimuth_Angle_deg > '247.4') { $Solar_Cardinal_point = 12; //OUEST-SUD-OUEST } if ($Solar_Azimuth_Angle_deg > '269.9') { $Solar_Cardinal_point = 13; //OUEST } if ($Solar_Azimuth_Angle_deg > '292.4') { $Solar_Cardinal_point = 14; // OUEST-NORD-OUEST } if ($Solar_Azimuth_Angle_deg > '314.9') { $Solar_Cardinal_point = 15; // NOORD-OUEST } if ($Solar_Azimuth_Angle_deg > '337.4') { $Solar_Cardinal_point = 16; //NORD-NORD-OUEST } if ($Solar_Azimuth_Angle_deg > 360) { $Solar_Cardinal_point = 1; //NORD }
$content_type = 'text/xml'; sdk_header($content_type);
echo "<Data>"; echo "<Parametres>"; echo "<Latitude>".$ma_latitude."</Latitude>"; echo "<Longitude>".$ma_longitude."</Longitude>"; echo "<Date>".$date."</Date>"; echo "<Date_mk>".$date_mk."</Date_mk>"; echo "<Heure_mk>".$heure_mk."</Heure_mk>"; echo "<Time_zone>".$time_zone."</Time_zone>"; echo "</Parametres>";
echo "<Soleil>"; echo "<Julian_Day>".$Julian_Day."</Julian_Day>"; echo "<Julian_Century>".$Julian_Century."</Julian_Century>"; echo "<Geom_Mean_Long_Sun_deg>".$Geom_Mean_Long_Sun_deg."</Geom_Mean_Long_Sun_deg>"; echo "<Geom_Mean_Anom_Sun_deg>".$Geom_Mean_Anom_Sun_deg."</Geom_Mean_Anom_Sun_deg>"; echo "<Sun_Eq_of_Ctr>".$Sun_Eq_of_Ctr."</Sun_Eq_of_Ctr>"; echo "<Sun_True_Long_deg>".$Sun_True_Long_deg."</Sun_True_Long_deg>"; echo "<Sun_True_Anom_deg>".$Sun_True_Anom_deg."</Sun_True_Anom_deg>"; echo "<Eccent_Earth_Orbit>".$Eccent_Earth_Orbit."</Eccent_Earth_Orbit>"; echo "<Sun_Rad_Vector_AUs>".$Sun_Rad_Vector_AUs."</Sun_Rad_Vector_AUs>"; echo "<Sun_App_Long_deg>".$Sun_App_Long_deg."</Sun_App_Long_deg>"; echo "<Mean_Obliq_Ecliptic_deg>".$Mean_Obliq_Ecliptic_deg."</Mean_Obliq_Ecliptic_deg>"; echo "<Obliq_Corr_deg>".$Obliq_Corr_deg."</Obliq_Corr_deg>"; echo "<SunRt_Ascen_deg>".$SunRt_Ascen_deg."</SunRt_Ascen_deg>"; echo "<Sun_Declin_deg>".$Sun_Declin_deg."</Sun_Declin_deg>"; echo "<y>".$y."</y>"; echo "<Eq_of_Time_minutes>".$Eq_of_Time_minutes."</Eq_of_Time_minutes>"; echo "<HA_Sunrise_deg_1>".$HA_Sunrise_deg."</HA_Sunrise_deg_1>"; echo "<Solar_Noon_LST>".$Solar_Noon_LST."</Solar_Noon_LST>"; echo "<Sunrise_Time_LST>".$Sunrise_Time_LST."</Sunrise_Time_LST>"; echo "<Sunset_Time_LST>".$Sunset_Time_LST."</Sunset_Time_LST>"; echo "<Sunlight_Duration_minutes>".$Sunlight_Duration_minutes."</Sunlight_Duration_minutes>"; echo "<True_Solar_Time_min>".$True_Solar_Time_min."</True_Solar_Time_min>"; echo "<Hour_Angle_deg>".$Hour_Angle_deg."</Hour_Angle_deg>"; echo "<Solar_Zenith_Angle_deg>".$Solar_Zenith_Angle_deg."</Solar_Zenith_Angle_deg>";
echo "<Solar_Elevation_Angle_deg>".$Solar_Elevation_Angle_deg."</Solar_Elevation_Angle_deg>"; echo "<Approx_Atmospheric_Refraction_deg>".$Approx_Atmospheric_Refraction_deg."</Approx_Atmospheric_Refraction_deg>"; echo "<Solar_Elevation_corrected_for_atm_refraction_deg>".$Solar_Elevation_corrected_for_atm_refraction_deg."</Solar_Elevation_corrected_for_atm_refraction_deg>"; echo "<Solar_Azimuth>".$Solar_Azimuth_Angle_deg_cw_from_N."</Solar_Azimuth>"; echo "<Solar_Azimuth_round>".$Solar_Azimuth_Angle_deg."</Solar_Azimuth_round>"; echo "<Solar_Cardinal_point>".$Solar_Cardinal_point."</Solar_Cardinal_point>";
echo "</Soleil>"; echo "</Data>";
?>
Pensez à nommer le fichier "position_soleil.php"
j'utilise "notepad++" pour éditer mes scripts.
|