예제 #1
0
        public static Prev Prévision_final(ElemTabproba[] table, int jour_a_predire)
        {//la méthode qui donne le resultat final qui sera affiché ( les valeurs de variables en prenant les probabilités les plus grandes )
            Prev a = new Prev();

            Element[] interm = new Element[14];

            for (int i = 0; i < interm.Length; i++)
            {
                interm[i] = new Element();
            }
            for (int i = 0; i < 14; i++)              // Pour chaque variables ( precip , tempMin , tempMax..... )
            {
                interm[i] = table[i].GetValeurs()[0]; // reçoit la valeur ayant la plus grande probabilité qui sera par la suite affiché
                                                      // Comme les valeurs de varaibles venant de probabilité sont ordonnée donc on prend la premiere valeur et on l'affiche comme elle a
                                                      // la plus grand probabilité mais si il en existe deux ayant la meme probabilité on prend la plus récente
                if (table[i].GetLentghValeurs() == 2)
                {
                    if (table[i].GetValeurs()[0].GetProba() == table[i].GetValeurs()[1].GetProba())                       // même probailité
                    {
                        if (DateTime.Compare(table[i].GetValeurs()[0].GetDate(), table[i].GetValeurs()[1].GetDate()) > 0) // ==> Date plus récente
                        {
                            interm[i] = table[i].GetValeurs()[0];
                        }
                        else
                        {
                            interm[i] = table[i].GetValeurs()[1];
                        }
                    }
                }
            }
            // c'est la date de jour de la prévision c'est a dire dans nb jour d'aujourd'hui

            DateTime date = DateTime.Now.Date;

            date = date.AddDays(jour_a_predire);


            //remplir la sortie avec les données qu'on a obtenu ==> ces derniers représente les valeurs de variables à afficher
            a.SetDate(date);
            a.SetTempMin(interm[0].GetValeur());
            a.SetTempMax(interm[1].GetValeur());
            a.SetCloudCover(interm[2].GetValeur());
            a.SetDewPoint(interm[3].GetValeur());
            a.SetHeatIndex(interm[4].GetValeur());
            a.SetHumidity(interm[5].GetValeur());
            a.SetPrecipitation(interm[6].GetValeur());
            a.SetPressure(interm[7].GetValeur());
            a.SetTempEvening(interm[8].GetValeur());
            a.SetTempMorning(interm[9].GetValeur());
            a.SetTempNoon(interm[10].GetValeur());
            a.SetTempWind(interm[11].GetValeur());
            a.SetVisibility(interm[12].GetValeur());
            a.SetWindSpeed(interm[13].GetValeur());

            return(a);  //Nous rend les valeurs des variables ayant la plus grande probabilité :)
        }
예제 #2
0
        public static void previsions(int[] tab_id, Prev[] tab_prev, int nb_jours, string wilaya)
        {
            for (int i = 0; i < tab_id.Length; i++)
            {
                if (tab_id[i] != 0)
                {
                    int id = tab_id[i] + nb_jours;

                    bool   b     = false;
                    string table = "[dbo].[" + wilaya + "]";
                    string cmmd  = "SELECT * FROM " + table + " WHERE id = " + id;

                    DataSet data = new DataSet();

                    connection(cmmd, b, ref data, wilaya);
                    foreach (DataRow row in data.Tables[wilaya].Rows)
                    {
                        tab_prev[i] = new Prev();

                        tab_prev[i].SetTempMax(Convert.ToDouble(row["MAX_TEMPERATURE_C"]));
                        tab_prev[i].SetTempMin(Convert.ToDouble(row["MIN_TEMPERATURE_C"]));
                        tab_prev[i].SetWindSpeed(Convert.ToDouble(row["WINDSPEED_MAX_KMH"]));
                        tab_prev[i].SetTempMorning(Convert.ToDouble(row["TEMPERATURE_MORNING_C"]));
                        tab_prev[i].SetTempNoon(Convert.ToDouble(row["TEMPERATURE_NOON_C"]));
                        tab_prev[i].SetTempEvening(Convert.ToDouble(row["TEMPERATURE_EVENING_C"]));

                        string text = Convert.ToString(row["PRECIP_TOTAL_DAY_MM"]);
                        text = text.Replace('.', ',');
                        tab_prev[i].SetPrecipitation(Convert.ToDouble(text));

                        text = Convert.ToString(row["VISIBILITY_AVG_KM"]);
                        text = text.Replace('.', ',');
                        tab_prev[i].SetVisibility(Convert.ToDouble(text));

                        tab_prev[i].SetHumidity(Convert.ToDouble(row["HUMIDITY_MAX_PERCENT"]));

                        tab_prev[i].SetPressure(Convert.ToDouble(row["PRESSURE_MAX_MB"]));

                        text = Convert.ToString(row["CLOUDCOVER_AVG_PERCENT"]);
                        text = text.Replace('.', ',');
                        tab_prev[i].SetCloudCover(Convert.ToDouble(text));

                        tab_prev[i].SetHeatIndex(Convert.ToDouble(row["HEATINDEX_MAX_C"]));
                        tab_prev[i].SetDewPoint(Convert.ToDouble(row["DEWPOINT_MAX_C"]));
                        tab_prev[i].SetTempWind(Convert.ToDouble(row["WINDTEMP_MAX_C"]));

                        tab_prev[i].SetId(Convert.ToInt32(row["id"]));
                        tab_prev[i].SetDate(Convert.ToDateTime(row["Date"]));
                    }
                }
            }
        }