script hauteur du soleil

Ce forum est dédié aux discussions qui concernent les graphiques réalisés avec la librairie Highcharts, Une question, un bug ?

Modérateurs : jturlier, Météo Villarzel

Répondre
alain
Messages : 101
Enregistré le : 21 nov. 2014, 20:23

script hauteur du soleil

Message par alain » 13 déc. 2015, 00:10

bonjour
j'ai trouvé ce script,
il donne par exemple la position et la hauteur du soleil
si cela vous intéresse.
que pensez vous de tracer un graphe avec Highcharts
sa sources et explication c'est ici, avancez pour prendre la V015:
le sujet est discuté ici:

sinon une version simple que j'ai modifiée juste pour test

Code : Tout sélectionner

    <?php

    // Version v0.15
    // 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 = 44; // getArg('latitude');
    $ma_longitude = 4 ;//getArg('longitude');

    // Recalcul avec correction depuis le jour d'origine
    $diff_jour_origine = strtotime('2015-03-26 00:00:00');
    $diff_jour = strtotime(date('Y')."-".date('m')."-".date('d')." 00:00:00");

    $jour_diff = $diff_jour - $diff_jour_origine;
    $jour_diff = round($jour_diff / 84600);

    // Aujourd'hui depuis 01/01/1900
    $delta_jour = 42088;

    $Date_1900 = $jour_diff + $delta_jour;

    // Time zone par défaut = Heure d'hiver
    $time_zone = 1;
    $day_year = date('z');

    // SI JOUR > A 87 ET < A 297 = HEURE D'ETE: TIME_ZONE = 2 SINON : TIME_ZONE = 1
    if ($day_year >= 87 && $day_year <= 297)
    {
       // Heure d'été
       $time_zone = 2;
    }

    //--------------------------------------------------------------

    $heure_secondes= date('H') * 3600;
    $heure_inter = date('i') * 60;
    $heure_secondes= $heure_secondes+ $heure_inter;
    $heure_secondes= $heure_secondes+ date('s');
    $Time_past_local_midnight = $heure_secondes/ 86400;
    $Time_past_local_midnight = $Time_past_local_midnight;

    $Julian_Day = $Date_1900 + '2415018.5' + $Time_past_local_midnight;

    $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 = $Time_past_local_midnight * 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);

    $True_Solar_Time_min_format_H = round($True_Solar_Time_min);
    $True_Solar_Time_min_format_H = $True_Solar_Time_min_format_H / 60;
    $Position_Point = strpos($True_Solar_Time_min_format_H,'.');

    if($Position_Point > 0)
    {
       $True_Solar_Time_min_format_HH = substr($True_Solar_Time_min_format_H,0,$Position_Point);
       $True_Solar_Time_min_format_HM = substr($True_Solar_Time_min_format_H,$Position_Point+1,2);
       $True_Solar_Time_min_format_HM = round($True_Solar_Time_min_format_HM *60/100);
       
       if($True_Solar_Time_min_format_HM < 10)
       {$True_Solar_Time_min_format_HM = "0".$True_Solar_Time_min_format_HM;}
    }
    else
    {
       $True_Solar_Time_min_format_HH = $True_Solar_Time_min_format_H;
       $True_Solar_Time_min_format_HM = "00";
    }

    $True_Solar_Time_min_format_H = $True_Solar_Time_min_format_HH."H".$True_Solar_Time_min_format_HM;


    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;


    $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 = sin($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);   

    if ($Hour_Angle_deg > 0)
    {
       $Solar_Azimuth_Angle_deg_cw_from_N = rad2deg($Solar_Azimuth_Angle_deg_cw_from_N);
       $Solar_Azimuth_Angle_deg_cw_from_N = $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 = rad2deg($Solar_Azimuth_Angle_deg_cw_from_N);
       $Solar_Azimuth_Angle_deg_cw_from_N = 540 - $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 < '11.25' )
       { $Solar_Cardinal_point = 1;}      // NORD
       
    if ($Solar_Azimuth_Angle_deg >= '11.25')
       { $Solar_Cardinal_point = 2;}      // NORD-NORD-EST
       
     if ($Solar_Azimuth_Angle_deg >= '33.75')
       {$Solar_Cardinal_point = 3;}      //NORD-EST
       
     if ($Solar_Azimuth_Angle_deg >= '56.25')
       {$Solar_Cardinal_point = 4;}      //EST-NORD-EST
       
     if ($Solar_Azimuth_Angle_deg >= '67.5')
       {$Solar_Cardinal_point = 5;}      //EST
       
     if ($Solar_Azimuth_Angle_deg >= '101.25')
       {$Solar_Cardinal_point = 6;}      //EST-SUD-EST
       
     if ($Solar_Azimuth_Angle_deg >= '123.75')
       {$Solar_Cardinal_point = 7;}      //SUD-EST
       
     if ($Solar_Azimuth_Angle_deg >= '146.25')
       {$Solar_Cardinal_point = 8;}      //SUD-SUD-EST
       
     if ($Solar_Azimuth_Angle_deg >= '168.75')
       {$Solar_Cardinal_point = 9;}      //SUD
       
     if ($Solar_Azimuth_Angle_deg >= '191.25')
       {$Solar_Cardinal_point = 10;}      //SUD-SUD-OUEST
       
     if ($Solar_Azimuth_Angle_deg >= '213.75')
       {$Solar_Cardinal_point = 11;}      //SUD-OUEST
       
     if ($Solar_Azimuth_Angle_deg >= '236.25')
       {$Solar_Cardinal_point = 12;}      //OUEST-SUD-OUEST
       
     if ($Solar_Azimuth_Angle_deg >= '258.75')
       {$Solar_Cardinal_point = 13;}      //OUEST
       
     if ($Solar_Azimuth_Angle_deg >= '281.25')
       {$Solar_Cardinal_point = 14;}      // OUEST-NORD-OUEST
       
     if ($Solar_Azimuth_Angle_deg >= '303.75')
       {$Solar_Cardinal_point = 15;}      // NORD-OUEST
       
     if ($Solar_Azimuth_Angle_deg >= '326.25')
       {$Solar_Cardinal_point = 16;}      //NORD-NORD-OUEST

       
    //$content_type = 'text/xml';
   // sdk_header($content_type);

    echo 'Parametres';
	echo '<br>';
   	echo '<br>';
    echo 'Latitude: '.$ma_latitude;
	echo '<br>';
    echo 'Longitude: '.$ma_longitude;
    echo '<br>';
    echo 'jour_diff: '.$jour_diff;
    echo '<br>';
    echo 'Date_1900: '.$Date_1900;
    echo '<br>';
    echo 'Day_year: '.$day_year;
    echo '<br>';
	echo 'Time_past_local_midnight: '.$Time_past_local_midnight;
    echo '<br>';
    echo 'heure_secondes: '.$heure_secondes;
    echo '<br>';
    echo 'Time_zone: '.$time_zone;
    echo '<br>';
    echo '<br>';
    echo 'Soleil: ';
    echo '<br>';
	echo 'Julian_Day: '.$Julian_Day;
    echo '<br>';
	echo 'Julian_Century: '.$Julian_Century;
    echo '<br>';
	echo 'Geom_Mean_Long_Sun_deg: '.$Geom_Mean_Long_Sun_deg;
    echo '<br>';
	echo 'Geom_Mean_Anom_Sun_deg: '.$Geom_Mean_Anom_Sun_deg;
    echo '<br>';
	echo 'Sun_Eq_of_Ctr: '.$Sun_Eq_of_Ctr;
    echo '<br>';
    echo 'Sun_True_Long_deg: '.$Sun_True_Long_deg;
    echo '<br>';
	echo 'Sun_True_Anom_deg: '.$Sun_True_Anom_deg;
   echo '<br>';
   echo 'Eccent_Earth_Orbit: '.$Eccent_Earth_Orbit;
   echo '<br>';
   echo 'Sun_Rad_Vector_AUs: '.$Sun_Rad_Vector_AUs;
   echo '<br>';
   echo 'Sun_App_Long_deg: '.$Sun_App_Long_deg;
   echo '<br>';
   echo 'Mean_Obliq_Ecliptic_deg: '.$Mean_Obliq_Ecliptic_deg;
  echo '<br>';
  echo 'Obliq_Corr_deg: '.$Obliq_Corr_deg;
   echo '<br>'; 
	echo 'SunRt_Ascen_deg: '.$SunRt_Ascen_deg;
   echo '<br>';
   echo 'Sun_Declin_deg: '.$Sun_Declin_deg;
    echo '<br>';
	echo 'y: '.$y;
   echo '<br>';
   echo 'Eq_of_Time_minutes: '.$Eq_of_Time_minutes;
    echo '<br>';
	echo 'HA_Sunrise_deg_1: '.$HA_Sunrise_deg;
  echo '<br>';
  echo 'Solar_Noon_LST: '.$Solar_Noon_LST;
   echo '<br>';
   echo 'Sunrise_Time_LST: '.$Sunrise_Time_LST;
   echo '<br>';
   echo 'Sunset_Time_LST: '.$Sunset_Time_LST;
   echo '<br>';
   echo 'Sunlight_Duration_minutes: '.$Sunlight_Duration_minutes;
   echo '<br>';
   echo 'True_Solar_Time_min: '.$True_Solar_Time_min;
   echo '<br>';
   echo 'True_Solar_Time_min_format_H: '.$True_Solar_Time_min_format_H;
   echo '<br>';
   echo 'Hour_Angle_deg: '.$Hour_Angle_deg;
    echo '<br>';
	echo 'Solar_Zenith_Angle_deg: '.$Solar_Zenith_Angle_deg;
    echo '<br>';
	echo 'Solar_Elevation_Angle_deg: '.$Solar_Elevation_Angle_deg;
   echo '<br>';
   echo 'Approx_Atmospheric_Refraction_deg: '.$Approx_Atmospheric_Refraction_deg;
   echo '<br>';
   echo 'Solar_Elevation_corrected_for_atm_refraction_deg: '.$Solar_Elevation_corrected_for_atm_refraction_deg;
    echo '<br>';
	echo 'Solar_Azimuth: '.$Solar_Azimuth_Angle_deg_cw_from_N;
    echo '<br>';
	echo 'Solar_Azimuth_round: '.$Solar_Azimuth_Angle_deg;
    echo '<br>';
	echo 'Solar_Cardinal_point: '.$Solar_Cardinal_point;

    
    ?>
station Orégon WMR 200
logiciel Xnet version 2012-03-17a et Graphweather V 3.0.15
windows XP SP3 sur vieux portable destiné a la météo
Windows7 sur mon portable, permet de tester les applications qui ne veulent plus de XP
http://mapetitemeteo.esy.es/

Avatar du membre
PascalWMR
Messages : 323
Enregistré le : 16 févr. 2014, 09:28
Localisation : CONFLANS EN JARNISY (F54800)
Contact :

Re: script hauteur du soleil

Message par PascalWMR » 13 déc. 2015, 10:51

Salut

C'est bien mais Henry de Météo Ennery l'a déjà fait en utilisant une autre méthode de calcul, celle de Jean Meeus.
C'est visible à cette adresse http://www.hc-creation.fr/meteo/cycle_solaire.php onglet Position du jour.

Dans ton post il manque les liens qui permettrais de comprendre ces calculs

Bonne journée
Pascal
Station VP2Plus, Windows 10 64 bits,WeatherLink 6.0.5, VP2SQL, Graphiques Dynamiques à partir d'une BDD MySQL
Météo Conflans-en-Jarnisy
Image

alain
Messages : 101
Enregistré le : 21 nov. 2014, 20:23

Re: script hauteur du soleil

Message par alain » 13 déc. 2015, 12:08

bonjour
zut j'ai oublié les liens
les voici
http://forum.eedomus.com/viewtopic.php? ... 22c27f36d6

http://www.passivact.com/Infos/InfosCon ... aires.html

http://www.vrdigitalworld.com/smarthome ... ur-eedomus

http://www.energieplus-lesite.be/index.php?id=16759

Sinon le script que tu me donne est vraiment super, mais j'avais vue les sources sans comprendre
Alain
station Orégon WMR 200
logiciel Xnet version 2012-03-17a et Graphweather V 3.0.15
windows XP SP3 sur vieux portable destiné a la météo
Windows7 sur mon portable, permet de tester les applications qui ne veulent plus de XP
http://mapetitemeteo.esy.es/

Répondre