コード例 #1
0
        private List <Result> ConstructResultsBySelection(IEnumerable <PredictionCouple> couples)
        {
            List <Result> results         = new List <Result>();
            double        sumOfSimilarity = 0;

            foreach (PredictionCouple c in couples)
            {
                sumOfSimilarity += c.Similarity;
            }
            foreach (PredictionCouple c in couples)
            {
                List <ParamPrediction> paramss = new List <ParamPrediction>();

                int i = 0;
                foreach (var value in c.Future)
                {
                    ParamPrediction param = new ParamPrediction(dailyObservation.Parameters.ElementAt(i).ParamKey, value, 0);
                    paramss.Add(param);
                    i++;
                }
                Result tempResult = new Result(paramss, c.Similarity);
                results.Add(tempResult);
            }
            return(results);
        }
コード例 #2
0
        ///


        public static string GetImagePathForParameter(ParamPrediction param)


        {
            if (param.ParamKey.Equals(InputKeys.TEMPERATURE))
            {
                if (param.PredictedValue >= 33)
                {
                    return(HIGH_TEMP_ICON_PATH);
                }
                else if (param.PredictedValue >= -19)
                {
                    return(MID_TEMP_ICON_PATH);
                }
            }
            else if (param.ParamKey.Equals(InputKeys.WIND_SPEED))
            {
                return(WIND_SPEED_ICON_PATH);
            }
            else if (param.ParamKey.Equals(InputKeys.WIND_DIRECTION))
            {
                return(WIND_DIRECTION_ICON_PATH);
            }
            else if (param.ParamKey.Equals(InputKeys.GROUND_STATE))
            {
                return(GROUND_ICON_PATH);
            }
            else if (param.ParamKey.Equals(InputKeys.PLUVIOMETRIE))
            {
                if (param.PredictedValue >= 50)
                {
                    return(HIGH_PLUVIOMETRIE_ICON_PATH);
                }
                else if (param.PredictedValue >= 0)
                {
                    return(LOW_PLUVIOMETRIE_ICON_PATH);
                }
                else
                {
                    return(NA_ICON_PATH);
                }
            }
            else if (param.ParamKey.Equals(InputKeys.NUAGES))
            {
                return(NUAGES_ICON_PATH);
            }
            else if (param.ParamKey.Equals(InputKeys.HUMIDITY))
            {
                return(HUMIDITY_ICON_PATH);
            }
            else if (param.ParamKey.Equals(InputKeys.AIR_PRESSURE))
            {
                return(AIR_PRESSURE_ICON_PATH);
            }
            return(NA_ICON_PATH);
        }
コード例 #3
0
        /// <summary>
        ///
        /// </summary>
        /// <remarks> Modify parameters such that no need for index => search based on param key </remarks>
        /// <param name="cluster">The cluster that the function will predict Parameters for</param>
        /// <param name="paramKey">The parameter Key reprenting the parameter as a string </param>
        /// <param name="index">index of the parameter in the array(Future) of each element in the cluster</param>
        /// <returns>A parameter Prediction</returns>
        static ParamPrediction PredictParamsCluster(Cluster cluster, String paramKey, int index)
        {
            List <double> inputs = new List <double>();

            foreach (var e in cluster.Elements)
            {
                inputs.Add(e.Future.ElementAt(index));
            }

            ParamPrediction paramPrediction = new ParamPrediction(paramKey, Statistics.Mean(inputs), Statistics.PopulationStandardDeviation(inputs));

            return(paramPrediction);
        }
コード例 #4
0
 public static String GetParameterValue(ParamPrediction param)
 {
     return((Math.Round(param.PredictedValue)).ToString("00") + " " + units[param.ParamKey]);
 }