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); }
/// 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); }
/// <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); }
public static String GetParameterValue(ParamPrediction param) { return((Math.Round(param.PredictedValue)).ToString("00") + " " + units[param.ParamKey]); }