public double GetDecision(CurrentObservation obs)
 {
     try
     {
         var input = new double[] { obs.ConditionCode, obs.Temp, obs.WindChill, obs.WindMph, obs.WindGustMph };
         return tree.Compute(input);
     }
     catch (Exception ex)
     {
         //if this situation occurs if something is wrong with the tree.
         //TODO: come up with an answer somehow...
         return -5;
     }
 }
        public void AddUserObservation(CurrentObservation obs)
        {
            //get rid of any potentially ridiculous entries.
            //there could be extreme cases where it's sunny but the wind is blowing too hard to go, but I'm simplifying things for now.
            //TODO: look into this more carefully.
            if (obs.ConditionCode == 0 && obs.GoFunston == -1) return;
            if (obs.ConditionCode == 2 && obs.GoFunston == 1) return;
            //TODO: need to get rid of any duplicate observations...or maybe figure out a way to add weight to a given observation

            obs.IsObservedByUser = true;
            //repoService.AddObservation(obs);
            //re-initialize the tree...
            //TODO: this should happen offline as a background job.
            InitDecisionTree();
        }